/* Keep Android font files deterministic across OEM WebViews. */
@font-face {
  font-family: "Restojob Roboto";
  src: url("/fonts/Roboto-Regular.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 599;
  font-display: swap;
}

@font-face {
  font-family: "Restojob Roboto";
  src: url("/fonts/Roboto-Bold.ttf") format("truetype");
  font-style: normal;
  font-weight: 600 900;
  font-display: swap;
}

@font-face {
  font-family: "Restojob Roboto Salary";
  src: url("/fonts/Roboto-Variable.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

:root {
  --red: #ff4646;
  --red-dark: #e33636;
  --tabbar-active: #FF4647;
  --ink: #171717;
  --muted: #70737a;
  --line: #ececef;
  --soft: #f7f7f8;
  --green: #23a455;
  --yellow: #f6c148;
  --shadow: 0 12px 36px rgba(21, 26, 36, 0.12);
  font-family: Roboto, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html.restojob-android-app body #app {
  font-family: "Restojob Roboto", Roboto, Arial, sans-serif;
}

html.restojob-android-app body #app .vacancy-card-salary strong,
html.restojob-android-app body #app .vacancy-detail-main > div > strong {
  /* True Medium: Regular was too thin and Bold was too heavy on OEM devices. */
  font-family: "Restojob Roboto Salary", "Restojob Roboto", Roboto, Arial, sans-serif;
  font-variation-settings: "wght" 500;
}

html.restojob-android-app body,
html.restojob-android-app body #app,
html.restojob-android-app body #app > .phone:not(.vacancy-map-phone),
html.restojob-android-app body #app > .phone:not(.vacancy-map-phone) > .content {
  min-width: 0;
  max-width: 100%;
  overflow-x: clip;
}

html.restojob-android-app body #app .phone .tabbar.is-catalog-tabbar::before {
  right: 0 !important;
  left: 0 !important;
}

html.restojob-android-app,
html.restojob-android-app * {
  scrollbar-width: none;
}

html.restojob-android-app::-webkit-scrollbar,
html.restojob-android-app *::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
}

@media (max-width: 899px) {
  html.restojob-android-app .phone:not(.auth-phone) {
    width: min(var(--rj-android-visual-viewport-width, 100vw), 460px);
    max-width: var(--rj-android-visual-viewport-width, 100vw);
    margin-left: max(0px, calc((var(--rj-android-visual-viewport-width, 100vw) - 460px) / 2));
    margin-right: 0;
    overflow-x: clip;
  }

  html.restojob-android-app .phone:not(.auth-phone) .content > .vacancy-list,
  html.restojob-android-app .phone:not(.auth-phone) .catalog-vacancy-list {
    width: min(100%, var(--rj-android-visual-viewport-width, 100vw));
    min-width: 0;
    max-width: var(--rj-android-visual-viewport-width, 100vw);
    grid-template-columns: minmax(0, 1fr);
    overflow-x: clip;
  }

  html.restojob-android-app .vacancy-list > *,
  html.restojob-android-app .catalog-vacancy-list > *,
  html.restojob-android-app .vacancy-card,
  html.restojob-android-app .vacancy-card-main-mobile,
  html.restojob-android-app .vacancy-card-main-mobile > *,
  html.restojob-android-app .vacancy-feature-tags {
    min-width: 0;
    max-width: 100%;
  }

  html.restojob-android-app .tabbar,
  html.restojob-android-app .phone:not(.auth-phone):has(> .tabbar)::after,
  html.restojob-android-app .catalog-tabbar-phone::after {
    left: calc(var(--rj-android-visual-viewport-width, 100vw) / 2);
    width: min(var(--rj-android-visual-viewport-width, 100vw), 460px);
  }
}

* {
  box-sizing: border-box;
}

html,
body,
#app {
  width: 100%;
  min-height: 100%;
  margin: 0;
  overflow-x: hidden;
}

html {
  height: auto;
  background: #fff;
  overflow-y: auto;
  scrollbar-gutter: stable;
  -webkit-overflow-scrolling: touch;
}

body {
  background: #ffffff;
  color: var(--ink);
  overscroll-behavior-x: none;
  overscroll-behavior-y: auto;
  touch-action: pan-y;
}

#app {
  background: #fff;
}

@media (max-width: 899px) {
  .restojob-ios-app #app.ios-route-transition {
    position: relative;
    z-index: 70;
    background: transparent;
    backface-visibility: hidden;
    will-change: transform, opacity;
  }

  .restojob-ios-app .ios-route-incoming {
    position: fixed;
    inset: 0;
    z-index: 70;
    width: 100%;
    min-width: 100%;
    overflow: hidden;
    background: #fff;
    pointer-events: none;
    opacity: 1;
    transform: translate3d(100%, 0, 0);
    backface-visibility: hidden;
    will-change: transform;
  }

  .restojob-ios-app .ios-route-incoming.ios-route-enter-active {
    transform: translate3d(0, 0, 0);
    transition: transform 820ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .restojob-ios-app #app.ios-route-enter-forward {
    opacity: 1;
    transform: translate3d(100%, 0, 0);
  }

  .restojob-ios-app #app.ios-route-enter-back {
    opacity: 1;
    z-index: 1;
    transform: translate3d(0, 0, 0);
    transition: none;
  }

  .restojob-ios-app #app.ios-route-enter-active {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition:
      transform 820ms cubic-bezier(0.22, 1, 0.36, 1),
      opacity 520ms ease-out;
  }

  .restojob-ios-app .ios-route-snapshot {
    position: fixed;
    inset: 0;
    z-index: 60;
    width: 100%;
    min-width: 100%;
    contain: paint;
    isolation: isolate;
    overflow: hidden;
    background: #fff;
    pointer-events: none;
    opacity: 1;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    will-change: transform, opacity;
  }

  .restojob-ios-app .ios-route-snapshot-content {
    width: 100%;
    max-width: 100%;
    min-height: 100vh;
    transform-origin: top left;
    will-change: transform;
  }

  .restojob-ios-app #app.ios-route-transition .vacancy-action-bar.ios-route-action-bar,
  .restojob-ios-app .ios-route-snapshot .vacancy-action-bar.ios-route-action-bar {
    position: absolute !important;
    top: var(--rj-ios-route-action-top, auto) !important;
    bottom: auto !important;
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
    will-change: transform;
  }

  .restojob-ios-app .ios-route-snapshot-forward.ios-route-snapshot-active {
    opacity: 1;
    transform: translate3d(0, 0, 0);
    transition: none;
  }

  .restojob-ios-app .ios-route-snapshot-back {
    z-index: 80;
  }

  .restojob-ios-app .ios-route-tabbar-layer {
    z-index: 75;
    pointer-events: none;
  }

  .restojob-ios-app .ios-route-snapshot-back.ios-route-snapshot-active {
    opacity: 1;
    transform: translate3d(100%, 0, 0);
    transition:
      transform 820ms cubic-bezier(0.22, 1, 0.36, 1),
      opacity 520ms ease-out;
  }
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button:not(:disabled),
a[href],
[role="button"]:not([aria-disabled="true"]),
.list-item-button,
[data-open],
[data-menu-action],
[data-resume-edit],
.resume-avatar-edit label,
[data-favorite-spec],
[data-callback-tab],
[data-mark-read],
[data-mark-recommendation-viewed] {
  cursor: pointer;
}

button:not(:disabled),
[role="button"]:not([aria-disabled="true"]),
.list-item-button,
.role-card,
.auth-socials a,
label[for],
.resume-avatar-edit label,
[data-open],
[data-menu-action],
[data-resume-edit],
[data-favorite-spec],
[data-callback-tab],
[data-mark-read],
[data-mark-recommendation-viewed] {
  transition:
    transform 90ms ease-out,
    opacity 90ms ease-out,
    background-color 120ms ease-out,
    border-color 120ms ease-out,
    box-shadow 120ms ease-out;
}

button:not(:disabled):active,
[role="button"]:not([aria-disabled="true"]):active,
.list-item-button:active,
.role-card:active,
.auth-socials a:active,
label[for]:active,
.resume-avatar-edit label:active,
[data-open]:active,
[data-menu-action]:active,
[data-resume-edit]:active,
[data-favorite-spec]:active,
[data-callback-tab]:active,
[data-mark-read]:active,
[data-mark-recommendation-viewed]:active {
  transform: scale(0.985);
  opacity: 0.88;
}

@media (prefers-reduced-motion: reduce) {
  button:not(:disabled),
  [role="button"]:not([aria-disabled="true"]),
  .list-item-button,
  .role-card,
  .auth-socials a,
  label[for],
  .resume-avatar-edit label,
  [data-open],
  [data-menu-action],
  [data-resume-edit],
  [data-favorite-spec],
  [data-callback-tab],
  [data-mark-read],
  [data-mark-recommendation-viewed] {
    transition: none;
  }

  button:not(:disabled):active,
  [role="button"]:not([aria-disabled="true"]):active,
  .list-item-button:active,
  .role-card:active,
  .auth-socials a:active,
  label[for]:active,
  .resume-avatar-edit label:active,
  [data-open]:active,
  [data-menu-action]:active,
  [data-resume-edit]:active,
  [data-favorite-spec]:active,
  [data-callback-tab]:active,
  [data-mark-read]:active,
  [data-mark-recommendation-viewed]:active {
    transform: none;
  }

  .restojob-ios-app #app.ios-route-transition,
  .restojob-ios-app #app.ios-route-enter-active {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .restojob-ios-app .ios-route-snapshot {
    display: none;
  }
}

/* Desktop vacancy detail uses the same flat surface as other cards. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .vacancy-detail-page {
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .vacancy-address-line {
    font-size: 14px;
    line-height: 17px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-detail-layout.has-employer-panel .vacancy-detail-employer {
    margin-bottom: 12px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .vacancy-action-bar :is(a, button) {
    min-height: 38px;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 18px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .vacancy-action-bar svg {
    width: 16px;
    height: 16px;
  }
}

@media (min-width: 900px) and (pointer: coarse) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .vacancy-action-bar :is(a, button) {
    min-height: 44px;
  }
}

/* Wider sidebar shell keeps its original content width, centered inside. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar > .desktop-sidebar-head {
    width: min(100%, 208px);
    max-width: 208px;
    align-self: center;
    margin-inline: auto;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar .desktop-app-download {
    left: 50%;
    width: 246.4px;
    transform: translateX(-50%);
  }
}

@media (min-width: 900px) and (max-width: 1419px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:is(:hover, :has(:focus-visible)) .desktop-app-download {
    width: 246.4px;
  }
}

button:disabled,
[aria-disabled="true"] {
  cursor: not-allowed;
}

.boot {
  min-height: 100svh;
  height: 100svh;
  display: grid;
  grid-template-rows: auto auto;
  align-content: center;
  justify-items: center;
  place-content: center;
  gap: 28px;
  padding: 24px 24px max(24px, env(safe-area-inset-bottom, 0px));
}

.boot-logo {
  display: block;
  width: min(230px, 58vw);
  height: auto;
}

.boot-track {
  width: min(260px, 72vw);
  height: 4px;
  overflow: hidden;
  border-radius: 4px;
  background: #ececec;
}

.boot-track span {
  display: block;
  width: 35%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ff7777, var(--red));
  animation: slide 1.15s ease-in-out infinite;
}

@keyframes slide {
  from { transform: translateX(-100%); }
  to { transform: translateX(380%); }
}

.phone {
  width: min(100%, 460px);
  max-width: 100vw;
  min-height: 100dvh;
  margin: 0 auto;
  background: #fff;
  position: relative;
  overflow: visible;
}

.topbar {
  position: relative;
  z-index: 10;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
  align-items: center;
  min-height: calc(52px + env(safe-area-inset-top, 0px));
  padding: calc(8px + env(safe-area-inset-top, 0px)) 14px 8px;
  background: rgba(255, 255, 255, 0.92);
  border-bottom: 1px solid rgba(236, 236, 239, 0.86);
  backdrop-filter: blur(16px);
}

.city,
.ghost {
  height: 38px;
  border: 0;
  border-radius: 8px;
  background: var(--soft);
  color: var(--ink);
}

.city {
  text-align: left;
  padding: 0 12px;
  font-weight: 700;
}

#citySelect {
  position: absolute;
  inset: calc(8px + env(safe-area-inset-top, 0px)) 60px auto 14px;
  height: 38px;
  opacity: 0;
}

.ghost {
  width: 42px;
  font-size: 22px;
}

.content {
  min-height: calc(100dvh - 52px - env(safe-area-inset-top, 0px));
  display: flex;
  flex-direction: column;
  padding: 0 14px calc(92px + env(safe-area-inset-bottom, 0px));
}

.test-mode-notice {
  flex: 0 0 auto;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin: auto 20px 6px;
  padding: 10px 0 0;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: #6f7680;
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
}

.content > :not(.test-mode-notice) {
  flex-shrink: 0;
}

.test-mode-notice-icon {
  width: 16px;
  height: 16px;
  display: grid;
  place-items: center;
  margin-top: 1px;
  border-radius: 50%;
  background: #dbe2ec;
  color: #6f7680;
  font-size: 11px;
  line-height: 16px;
  font-weight: 700;
  font-style: normal;
}

.test-mode-notice a {
  color: #1978e7;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.auth-content > .test-mode-notice,
.vacancy-page > .test-mode-notice {
  margin-bottom: calc(22px + env(safe-area-inset-bottom, 0px));
}

.phone:not(.auth-phone) .content > .test-mode-notice {
  margin-bottom: calc(-35px + env(safe-area-inset-bottom, 0px));
}

.vacancy-page > .test-mode-notice {
  margin-top: auto;
  margin-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}

.vacancy-detail-page > .test-mode-notice {
  margin: 16px 20px 0;
  padding-top: 0;
}

.hero {
  min-height: 238px;
  display: grid;
  align-content: end;
  gap: 14px;
  padding: 22px 0 12px;
}

.wordmark {
  width: 134px;
  height: auto;
  display: block;
  margin-bottom: 22px;
}

.hero h1 {
  margin: 0;
  max-width: 340px;
  font-size: 34px;
  line-height: 0.98;
  letter-spacing: 0;
}

.hero p {
  margin: 10px 0 0;
  color: var(--muted);
  font-size: 15px;
}

.banner {
  display: block;
  overflow: hidden;
  border-radius: 8px;
  background: var(--soft);
}

.banner img {
  display: block;
  width: 100%;
}

.searchbar {
  height: 48px;
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  margin: 8px 0 14px;
  padding: 0 12px;
  border-radius: 8px;
  background: var(--soft);
  color: var(--muted);
}

.searchbar span {
  font-size: 30px;
  line-height: 1;
}

.searchbar input {
  min-width: 0;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  direction: ltr;
  text-align: left;
  unicode-bidi: plaintext;
  caret-color: var(--ink);
}

.chips,
.pills {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 2px 0 12px;
  scrollbar-width: none;
}

.chips::-webkit-scrollbar,
.pills::-webkit-scrollbar {
  display: none;
}

.chip,
.pill {
  flex: 0 0 auto;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  border-radius: 8px;
}

.chip {
  min-height: 42px;
  padding: 0 12px;
  font-weight: 700;
}

.chip span {
  color: var(--muted);
  font-weight: 500;
}

.pill {
  position: relative;
  min-height: 34px;
  padding: 0 10px;
  font-size: 13px;
}

.pill.has-unviewed::after {
  content: "";
  position: absolute;
  top: -3px;
  right: -3px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 2px #fff;
}

.chip.is-active,
.pill.is-active {
  color: #fff;
  border-color: var(--red);
  background: var(--red);
}

.chip.is-active span {
  color: rgba(255, 255, 255, 0.82);
}

.brand-month {
  display: grid;
  grid-template-columns: 1fr 62px;
  gap: 14px;
  align-items: center;
  margin: 2px 0 16px;
  padding: 14px;
  border-radius: 8px;
  background: #171717;
  color: #fff;
}

.brand-month span {
  display: block;
  color: rgba(255, 255, 255, 0.62);
  font-size: 12px;
}

.brand-month h2,
.brand-month p {
  margin: 3px 0 0;
}

.brand-month h2 {
  font-size: 18px;
}

.brand-month p {
  color: rgba(255, 255, 255, 0.74);
  font-size: 13px;
}

.brand-month img {
  width: 62px;
  height: 62px;
  border-radius: 8px;
  object-fit: cover;
}

.list-head,
.plain-head {
  margin: 16px 0 10px;
}

.list-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}

.list-head h2,
.plain-head h1,
.resume-local h1,
.profile-local h1 {
  margin: 0;
  font-size: 22px;
  letter-spacing: 0;
}

.list-head span,
.plain-head p,
.resume-local p,
.profile-local p {
  color: var(--muted);
  font-size: 14px;
}

.vacancy-list {
  display: grid;
  gap: 10px;
}

.desktop-row-spacer {
  display: none;
}

.desktop-catalog-layout,
.desktop-catalog-results {
  display: contents;
}

.desktop-vacancy-map-panel {
  display: none;
}

.list-loader {
  display: grid;
  gap: 18px;
  padding: 0 20px 18px;
}

.around-vacancies-loader {
  min-height: 360px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  padding: 56px 28px 78px;
  text-align: center;
}

.around-loader-radar {
  position: relative;
  width: 112px;
  height: 112px;
  margin-bottom: 4px;
  border-radius: 50%;
  background:
    radial-gradient(circle at center, #f3f8ff 0 28%, rgba(243, 248, 255, 0.72) 29% 100%);
  overflow: hidden;
}

.around-loader-ring {
  position: absolute;
  inset: 18px;
  border: 2px solid rgba(31, 123, 242, 0.16);
  border-radius: 50%;
}

.around-loader-ring-two {
  inset: 32px;
  border-color: rgba(31, 123, 242, 0.26);
}

.around-loader-sweep {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: conic-gradient(from -24deg, rgba(31, 123, 242, 0.34) 0deg, rgba(31, 123, 242, 0.18) 34deg, rgba(31, 123, 242, 0) 74deg 360deg);
  transform-origin: 50% 50%;
  animation: aroundRadarSweep 1.45s linear infinite;
}

.around-loader-sweep::after {
  content: "";
  position: absolute;
  inset: 6px;
  border-radius: 50%;
  background: #f3f8ff;
  opacity: 0.58;
}

.around-loader-dot {
  position: absolute;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 50%;
  background: #ff4646;
  box-shadow: 0 2px 5px rgba(255, 70, 70, 0.22);
}

.around-loader-dot-one {
  left: 28px;
  top: 36px;
}

.around-loader-dot-two {
  right: 27px;
  top: 45px;
}

.around-loader-dot-three {
  left: 50px;
  bottom: 24px;
}

.around-loader-pin {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  width: 28px;
  height: 28px;
  transform: translate(-50%, -50%);
  border: 4px solid #fff;
  border-radius: 50%;
  background: #1f7bf2;
  box-shadow: 0 4px 10px rgba(31, 123, 242, 0.22);
}

.around-loader-pin::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #fff;
}

.around-vacancies-loader h2 {
  max-width: 320px;
  margin: 6px 0 0;
  color: #141414;
  font-size: 20px;
  line-height: 25px;
  font-weight: 700;
}

.around-vacancies-loader p {
  max-width: 300px;
  margin: 0;
  color: #8b929c;
  font-size: 15px;
  line-height: 21px;
}

@keyframes aroundRadarSweep {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.seo-initial-catalog {
  display: grid;
  gap: 14px;
  padding: 24px 10px 18px;
}

.seo-initial-catalog h1 {
  margin: 0;
  color: #16181d;
  font-size: 26px;
  line-height: 1.15;
  font-weight: 800;
}

.seo-initial-catalog p {
  margin: 0;
  color: #7c828d;
  font-size: 16px;
  line-height: 1.35;
}

.seo-initial-vacancy-list {
  display: grid;
  gap: 12px;
  margin-top: 4px;
}

.seo-initial-vacancy-card {
  display: grid;
  gap: 5px;
  padding: 18px;
  border: 1px solid #e3e6eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 24px rgba(21, 26, 36, 0.06);
}

.seo-initial-vacancy-card a {
  color: #16181d;
  text-decoration: none;
  font-size: 18px;
  line-height: 1.2;
  font-weight: 800;
}

.seo-initial-vacancy-card strong {
  color: var(--red);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 800;
}

.seo-initial-vacancy-card span {
  color: #25282d;
  font-size: 15px;
  line-height: 1.25;
}

.seo-initial-vacancy-card small {
  color: #89909b;
  font-size: 13px;
  line-height: 1.25;
}

.rj-skeleton-shape {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 999px;
  background: #eef1f5;
}

.rj-skeleton-shape::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.72), transparent);
  animation: rj-skeleton-shimmer 1.25s ease-in-out infinite;
}

.rj-page-skeleton {
  width: 100%;
  pointer-events: none;
}

.rj-skeleton-head {
  display: grid;
  gap: 10px;
  padding: 24px 20px 12px;
}

.rj-skeleton-heading {
  width: 58%;
  height: 28px;
  border-radius: 10px;
}

.rj-skeleton-pills {
  display: flex;
  gap: 10px;
  overflow: hidden;
  padding: 2px 20px 20px;
}

.rj-skeleton-pill {
  flex: 0 0 auto;
  width: 82px;
  height: 48px;
  border-radius: 24px;
}

.rj-skeleton-pill-wide {
  width: 132px;
}

.rj-skeleton-card {
  display: block;
  padding: 16px;
  overflow: hidden;
  border: 1px solid #e8e7ed;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
}

.rj-skeleton-card.has-cover {
  padding-top: 0;
}

.rj-skeleton-cover {
  height: 150px;
  margin: 0 -16px 16px;
  border-radius: 18px 18px 0 0;
  background: #e8edf3;
}

.rj-skeleton-card-main,
.rj-skeleton-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 86px;
  gap: 16px;
  align-items: start;
}

.rj-skeleton-card-copy {
  display: grid;
  gap: 8px;
}

.rj-skeleton-title {
  width: 86%;
  height: 20px;
  border-radius: 8px;
}

.rj-skeleton-title-short {
  width: 68%;
}

.rj-skeleton-salary {
  width: 58%;
  height: 24px;
  margin-top: 2px;
  border-radius: 8px;
}

.rj-skeleton-line {
  height: 16px;
  border-radius: 8px;
}

.rj-skeleton-line-wide {
  width: 78%;
}

.rj-skeleton-line-medium {
  width: 54%;
}

.rj-skeleton-details {
  display: grid;
  gap: 7px;
  margin-top: 8px;
}

.rj-skeleton-detail {
  width: 62%;
  height: 16px;
  border-radius: 8px;
}

.rj-skeleton-detail-short {
  width: 42%;
}

.rj-skeleton-detail-medium {
  width: 52%;
}

.rj-skeleton-logo {
  justify-self: end;
  width: 74px;
  height: 74px;
  border-radius: 50%;
}

.rj-skeleton-logo-large {
  width: 98px;
  height: 98px;
}

.rj-map-loading-skeleton {
  display: grid;
  gap: 18px;
  padding-top: 10px;
}

.rj-skeleton-map {
  height: calc(100dvh - 118px - env(safe-area-inset-top, 0px));
  min-height: 560px;
  border-radius: 0;
}

.rj-skeleton-map-card {
  width: calc(100% - 28px);
  height: 118px;
  margin: 0 auto;
  border-radius: 18px;
  background: #fff;
  border: 1px solid #e8e7ed;
}

.rj-detail-loading-skeleton {
  display: grid;
  gap: 0;
  padding: 0 0 120px;
}

.rj-skeleton-detail-cover {
  height: 245px;
  border-radius: 0;
  background: #e8edf3;
}

.rj-skeleton-detail-card {
  display: grid;
  gap: 16px;
  margin-top: -20px;
  padding: 34px 17px 18px;
  border-radius: 20px 20px 0 0;
  background: #fff;
}

.rj-skeleton-detail-hero {
  grid-template-columns: minmax(0, 1fr) 100px;
}

.rj-skeleton-title-wide {
  width: 94%;
}

.rj-skeleton-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.rj-skeleton-tag {
  width: 150px;
  height: 34px;
  border-radius: 17px;
}

.rj-skeleton-tag-wide {
  width: 178px;
}

.rj-skeleton-paragraph {
  height: 132px;
  border-radius: 16px;
}

.rj-skeleton-detail-section {
  display: grid;
  gap: 10px;
  padding: 17px 20px 0;
  background: #fff;
}

.rj-skeleton-detail-map {
  height: 260px;
  min-height: 260px;
  margin-top: 2px;
  border-radius: 0;
}

.rj-skeleton-detail-actions {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 50;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  width: min(100%, 460px);
  margin: 0 auto;
  padding: 10px 14px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #ececec;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 -8px 28px rgba(20, 24, 30, 0.08);
}

.rj-skeleton-action {
  height: 48px;
  border-radius: 14px;
}

.rj-skeleton-action-primary {
  grid-column: 1 / -1;
}

.rj-skeleton-desktop-side {
  display: none;
}

@keyframes rj-skeleton-shimmer {
  to {
    transform: translateX(100%);
  }
}

.vacancy-card {
  position: relative;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
  cursor: pointer;
}

.vacancy-card.is-premium {
  border-color: rgba(255, 70, 70, 0.28);
  box-shadow: 0 9px 24px rgba(255, 70, 70, 0.08);
}

.logo {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 8px;
  background: var(--soft);
  color: var(--red);
  font-weight: 800;
}

.logo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.favorite {
  position: absolute;
  right: 8px;
  top: 8px;
  z-index: 2;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.9);
  color: var(--red);
  font-size: 22px;
}

.card-topline {
  display: flex;
  gap: 42px;
  justify-content: space-between;
  color: var(--muted);
  font-size: 12px;
}

.vacancy-card h3 {
  margin: 4px 34px 5px 0;
  font-size: 17px;
  line-height: 1.18;
}

.vacancy-card strong {
  display: block;
  color: var(--green);
  font-size: 16px;
}

.vacancy-card p {
  margin: 5px 0;
  color: #333;
  font-size: 14px;
}

.meta {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.meta span {
  max-width: 100%;
  padding: 4px 7px;
  border-radius: 6px;
  background: var(--soft);
  color: var(--muted);
  font-size: 12px;
}

.more,
.error button,
.resume-local button,
.apply-bar button {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 8px;
  background: var(--red);
  color: #fff;
  font-weight: 800;
}

.more {
  margin: 14px 0 4px;
}

.tabbar {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 20;
  isolation: isolate;
  width: min(100%, 460px);
  transform: translateX(-50%);
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  min-height: 56px;
  padding: 2px 8px 0;
  border-top: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.restojob-ios-app .tabbar {
  bottom: 0;
  min-height: calc(54px + env(safe-area-inset-bottom, 0px));
  padding-top: 1px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.restojob-ios-app .tabbar button {
  row-gap: 1px;
  padding-top: 5px;
  font-size: 10px;
  line-height: 12px;
}

.restojob-ios-app .tab-mask {
  width: 20px;
  height: 20px;
  margin-bottom: 2px;
}

.restojob-ios-app .tab-icon {
  width: 21px;
  height: 21px;
}

.restojob-ios-app .tab-icon-slot {
  width: 23px;
  height: 23px;
}

.restojob-ios-app .tabbar::before {
  inset: 8px 0 0;
}

.restojob-ios-app .tabbar.is-catalog-tabbar::before {
  top: 8px;
  bottom: calc(-34px - env(safe-area-inset-bottom, 0px));
}

.restojob-ios-app .phone:not(.auth-phone):has(> .tabbar)::after,
.restojob-ios-app .catalog-tabbar-phone::after {
  height: calc(28px + env(safe-area-inset-bottom, 0px));
}

.phone:not(.auth-phone):has(> .tabbar)::after,
.catalog-tabbar-phone::after {
  content: "";
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 19;
  width: min(100%, 460px);
  height: 56px;
  transform: translateX(-50%);
  background: #fff;
  pointer-events: none;
}

.tabbar::before {
  content: "";
  position: absolute;
  inset: 0 0 -8px;
  z-index: -1;
  border-top: 1px solid var(--line);
  background: #fff;
  pointer-events: none;
}

@supports (-webkit-touch-callout: none) {
  html:not(.restojob-ios-app):not(.restojob-android-app) .tabbar {
    bottom: 0;
  }

  /* Keep page content out of Safari's dynamic browser-chrome area. */
  html:not(.restojob-ios-app):not(.restojob-android-app) .tabbar::before {
    bottom: -120px;
  }
}

.tabbar.is-catalog-tabbar::before {
  top: 0;
  right: -16px;
  bottom: -56px;
  left: -16px;
}

.tabbar button {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  z-index: 1;
  min-width: 0;
  display: grid;
  align-content: start;
  justify-items: center;
  row-gap: 3px;
  padding: 4px 0 0;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
  line-height: 13px;
  font-weight: 600;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
  -webkit-user-select: none;
}

.tabbar button:active,
.tabbar button:focus {
  background: transparent;
  outline: none;
}

.tabbar .is-active {
  color: var(--tabbar-active);
  font-weight: 600;
}

.desktop-tabbar {
  display: none;
}

.detail-shell {
  position: fixed;
  inset: 0;
  z-index: 40;
  width: min(100%, 460px);
  margin: 0 auto;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: #fff;
}

.detail-header {
  min-height: calc(52px + env(safe-area-inset-top, 0px));
  display: grid;
  grid-template-columns: 44px 1fr 44px;
  align-items: center;
  padding: calc(8px + env(safe-area-inset-top, 0px)) 8px 8px;
  border-bottom: 1px solid var(--line);
  font-weight: 800;
}

.detail-header button {
  position: static;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 8px;
  background: var(--soft);
  color: var(--ink);
  font-size: 30px;
}

.detail-header .in-header {
  color: var(--red);
  font-size: 22px;
}

.detail {
  overflow: auto;
  padding: 18px 14px 24px;
}

.detail-hero {
  text-align: center;
  padding: 8px 0 18px;
}

.logo.big {
  width: 84px;
  height: 84px;
  margin: 0 auto 14px;
}

.detail-hero p {
  margin: 0 0 6px;
  color: var(--muted);
}

.detail-hero h1 {
  margin: 0;
  font-size: 28px;
  line-height: 1.04;
}

.detail-hero strong {
  display: block;
  margin-top: 10px;
  color: var(--green);
  font-size: 20px;
}

.facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.facts div,
.address,
.description,
.company,
.resume-local,
.profile-local,
.error {
  padding: 14px;
  border-radius: 8px;
  background: var(--soft);
}

.facts span {
  display: block;
  color: var(--muted);
  font-size: 12px;
}

.facts b {
  display: block;
  margin-top: 4px;
  font-size: 14px;
}

.address,
.description,
.company {
  margin-top: 10px;
}

.address h2,
.description h2,
.company h2,
dialog h2 {
  margin: 0 0 8px;
  font-size: 18px;
}

dialog h2 {
  line-height: 23px;
  font-weight: 500;
}

.address p,
.description p,
.company p {
  margin: 0;
  color: #333;
  line-height: 1.45;
}

.photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}

.photos img {
  width: 100%;
  aspect-ratio: 1.25;
  border-radius: 8px;
  object-fit: cover;
}

.apply-bar {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid var(--line);
  background: #fff;
}

.apply-bar a,
.profile-local a {
  min-height: 48px;
  display: grid;
  place-items: center;
  padding: 0 14px;
  border-radius: 8px;
  background: var(--soft);
  color: var(--ink);
  text-decoration: none;
  font-weight: 800;
}

.resume-local,
.profile-local,
.error {
  margin-top: 18px;
}

.system-error {
  display: grid;
  gap: 14px;
  margin: 24px 16px 0;
  padding: 24px 18px;
  background: #f4f7fb;
  text-align: center;
}

.system-error-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 2px;
  color: #b8c0ca;
}

.system-error-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.system-error h1 {
  margin: 0;
  color: #16191d;
  font-size: 22px;
  line-height: 28px;
  font-weight: 700;
}

.system-error p {
  max-width: 330px;
  margin: 0 auto;
  color: #7d8590;
  font-size: 15px;
  line-height: 21px;
}

.system-error button {
  min-height: 48px;
  margin-top: 4px;
  border: 1px solid #dce2ea;
  background: #e9eef6;
  color: #5f6976;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.resume-local label {
  display: grid;
  gap: 6px;
  margin-top: 12px;
  color: var(--muted);
  font-size: 13px;
}

.resume-local input,
.resume-local textarea,
dialog textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
  background: #fff;
  color: var(--ink);
}

.resume-local textarea,
dialog textarea {
  min-height: 94px;
  resize: vertical;
}

.resume-local button {
  margin-top: 14px;
}

.apply-sheet-layer {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.apply-sheet-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.42);
}

.apply-sheet {
  position: relative;
  width: min(100vw, 460px);
  max-height: calc(100dvh - 18px);
  overflow: auto;
  border-radius: 18px 18px 0 0;
  background: #fff;
  box-shadow: 0 -14px 40px rgba(20, 24, 30, 0.22);
  -webkit-overflow-scrolling: touch;
}

.apply-sheet form {
  padding: 18px 18px calc(16px + env(safe-area-inset-bottom, 0px));
}

.apply-sheet h2 {
  margin: 0 0 14px;
  color: #111;
  font-size: 17px;
  line-height: 22px;
  font-weight: 600;
}

.apply-sheet p {
  margin: 0 0 12px;
  color: var(--muted);
}

.apply-sheet-error {
  color: #e53935;
}

.apply-message-field {
  width: 100%;
  min-height: 122px;
  max-height: 32dvh;
  border: 1px solid var(--line);
  border-radius: 10px;
  padding: 12px;
  background: #fff;
  color: var(--ink);
  resize: vertical;
}

.apply-sheet-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 14px;
}

.apply-sheet-actions.is-single {
  grid-template-columns: 1fr;
}

.apply-sheet-actions button {
  min-height: 48px;
  border: 0;
  border-radius: 10px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 500;
}

.apply-sheet-close {
  background: var(--soft);
  color: #25282b;
}

.apply-sheet-submit {
  background: #1f7bf2;
  color: #fff;
}

.apply-sheet-actions button:disabled {
  opacity: 0.55;
}

.apply-success-card {
  display: grid;
  justify-items: center;
  gap: 12px;
  padding: 8px 0 4px;
  text-align: center;
}

.apply-success-icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 50%;
  background: #eaf8ef;
  color: #1fb45b;
}

.apply-success-icon svg {
  width: 36px;
  height: 36px;
}

.apply-success-icon path {
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.apply-success-card h3 {
  margin: 0;
  color: #111;
  font-size: 20px;
  line-height: 25px;
  font-weight: 700;
}

.apply-requirement-card {
  display: grid;
  justify-items: center;
  gap: 0;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: #1d3555;
  text-align: center;
}

.apply-requirement-icon {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  border-radius: 50%;
  background: #fff1f1;
  color: #ff4647;
}

.apply-requirement-icon svg {
  width: 35px;
  height: 35px;
}

.apply-requirement-card h3 {
  margin: 12px 0 0;
  color: #111;
  font-size: 18px;
  line-height: 23px;
  font-weight: 700;
}

.apply-requirement-card p {
  margin: 10px 12px 0;
  color: #657285;
  font-size: 15px;
  line-height: 20px;
}

.apply-requirement-action {
  width: 100%;
  min-height: 48px;
  margin-top: 18px;
  border: 0;
  border-radius: 10px;
  background: #1f7bf2;
  color: #fff;
  font-size: 16px;
  line-height: 20px;
  font-weight: 500;
}

.push-permission-layer {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.push-permission-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(0, 0, 0, 0.36);
}

.push-permission-sheet {
  position: relative;
  display: grid;
  justify-items: center;
  width: min(100vw, 460px);
  padding: 24px 18px calc(18px + env(safe-area-inset-bottom, 0px));
  border-radius: 22px 22px 0 0;
  background: #fff;
  text-align: center;
  box-shadow: 0 -14px 40px rgba(20, 24, 30, 0.22);
}

.push-permission-icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  margin-bottom: 12px;
  border-radius: 18px;
  background: #eef4ff;
  color: #1f7bf2;
}

.push-permission-icon svg {
  width: 30px;
  height: 30px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.3;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.push-permission-sheet h2 {
  margin: 0;
  color: #16191d;
  font-size: 22px;
  line-height: 28px;
  font-weight: 800;
}

.push-permission-sheet p {
  max-width: 360px;
  margin: 10px 0 0;
  color: #6f7783;
  font-size: 15px;
  line-height: 21px;
}

.push-permission-error {
  color: #e53935 !important;
}

.push-permission-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  width: 100%;
  margin-top: 18px;
}

.push-permission-actions button {
  min-height: 50px;
  border: 0;
  border-radius: 12px;
  font-size: 16px;
  line-height: 20px;
  font-weight: 700;
}

.push-permission-close {
  background: #eef2f8;
  color: #5d6672;
}

.push-permission-submit {
  background: #1f7bf2;
  color: #fff;
}

.push-permission-actions button:disabled {
  opacity: 0.55;
}

.apply-inline-card {
  display: none;
}

.phone-inline-card {
  display: none;
}

.hidden-phone-card {
  display: none;
}

.matched-empty {
  min-height: calc(100vh - 64px);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 12px;
  padding: 28px 28px 120px;
  background: #fafafa;
  text-align: center;
}

.matched-empty-icon {
  width: 58px;
  height: 58px;
  color: #d6dbe2;
}

.matched-empty-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.matched-empty-icon circle:first-child,
.matched-empty-icon path:first-of-type,
.matched-empty-icon-check {
  fill: currentColor;
  stroke: none;
}

.matched-empty-icon-check {
  opacity: 0.72;
}

.matched-empty-icon-checkmark {
  stroke: #fff;
  stroke-width: 4;
}

.matched-empty h1 {
  margin: 4px 0 0;
  color: #111;
  font-size: 20px;
  line-height: 25px;
  font-weight: 700;
}

.matched-empty p {
  margin: 0;
  color: #8d9299;
  font-size: 15px;
  line-height: 21px;
  font-weight: 400;
}

.matched-empty button {
  min-height: 42px;
  margin-top: 8px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: #1f7bf2;
  color: #fff;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.recommendation-empty,
.catalog-empty,
.vacancy-load-error {
  min-height: 310px;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 10px;
  padding: 48px 28px 72px;
  text-align: center;
}

.recommendation-empty-icon {
  width: 72px;
  height: 72px;
  color: #d8dde5;
}

.recommendation-empty-icon svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: none;
  stroke: currentColor;
  stroke-width: 5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.recommendation-empty-icon circle:first-child {
  fill: #f1f4f8;
  stroke: none;
}

.recommendation-empty-spark {
  stroke: #b7c0cb;
  stroke-width: 4;
}

.recommendation-empty.is-location-request .recommendation-empty-icon {
  width: 88px;
  height: 88px;
  color: #1f7bf2;
}

.recommendation-empty.is-location-request .recommendation-empty-icon svg,
.recommendation-empty.is-location-empty .recommendation-empty-icon svg {
  stroke-width: 3.2;
}

.recommendation-empty.is-location-empty .recommendation-empty-icon {
  width: 88px;
  height: 88px;
  color: #9aa8ba;
}

.recommendation-empty.is-home-empty .recommendation-empty-icon {
  width: 88px;
  height: 88px;
  color: #9aa8ba;
}

.recommendation-empty.is-home-empty .recommendation-empty-icon svg {
  stroke-width: 3.2;
}

.location-radar-ring {
  fill: rgba(31, 123, 242, 0.06);
  stroke: rgba(31, 123, 242, 0.22);
}

.location-radar-ring-outer {
  fill: #f3f8ff;
  stroke: rgba(31, 123, 242, 0.16);
}

.location-radar-sweep {
  stroke: rgba(31, 123, 242, 0.36);
  stroke-width: 4;
}

.location-radar-dot {
  fill: #ff4646;
  stroke: #fff;
  stroke-width: 2;
}

.location-radar-pin {
  fill: #1f7bf2;
  stroke: #176bd6;
  stroke-width: 2.4;
}

.location-radar-pin-center {
  fill: #fff;
  stroke: none;
}

.location-empty-zone-ground {
  fill: #f3f8ff;
  stroke: #a9c9f7;
  stroke-width: 2.4;
}

.location-empty-zone-ring {
  fill: none;
  stroke: #bcd5f8;
  stroke-width: 2;
}

.location-empty-zone-radius {
  stroke: #8db9f4;
  stroke-width: 3;
}

.location-empty-zone-center {
  fill: #1f7bf2;
  stroke: #fff;
  stroke-width: 2;
}

.location-empty-zone-dot {
  fill: #ff4646;
  stroke: #fff;
  stroke-width: 2;
}

.recommendation-empty h2,
.catalog-empty h2,
.vacancy-load-error h2 {
  max-width: 320px;
  margin: 6px 0 0;
  color: #141414;
  font-size: 20px;
  line-height: 25px;
  font-weight: 700;
}

.recommendation-empty.is-home-empty h2 {
  margin-top: 4px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 500;
}

.recommendation-empty p,
.catalog-empty p,
.vacancy-load-error p {
  max-width: 320px;
  margin: 0;
  color: #8b929c;
  font-size: 15px;
  line-height: 21px;
  font-weight: 400;
}

.recommendation-empty button,
.vacancy-load-error button {
  min-height: 42px;
  margin-top: 10px;
  padding: 0 18px;
  border: 0;
  border-radius: 12px;
  background: #1f7bf2;
  color: #fff;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
  box-shadow: none;
}

.recommendation-empty button:active,
.vacancy-load-error button:active {
  transform: translateY(1px);
  background: #176bd6;
}

.recommendation-empty.is-location-request button[data-current-location-retry] {
  min-height: 48px;
  margin-top: 12px;
  padding: 0 24px;
  border-radius: 16px;
  background: #1f7bf2;
  color: #fff;
  font-size: 15px;
  line-height: 20px;
  font-weight: 500;
  box-shadow: none;
}

.recommendation-empty.is-location-request button[data-current-location-retry]:active {
  transform: translateY(1px);
  background: #176bd6;
  box-shadow: none;
}

.empty-city-note {
  margin-top: 2px;
  color: #9aa1ab;
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
}

.catalog-empty {
  min-height: calc(100vh - 260px);
  padding-top: 72px;
}

.catalog-search-empty {
  min-height: 112px;
  display: grid;
  place-items: center;
  padding: 28px 16px 44px;
  text-align: center;
}

.catalog-search-empty p {
  margin: 0;
  color: #8d9299;
  font-size: 15px;
  line-height: 20px;
  font-weight: 400;
}

.catalog-empty .recommendation-empty-icon,
.vacancy-load-error .recommendation-empty-icon {
  width: 66px;
  height: 66px;
}

.vacancy-load-error {
  min-height: calc(100vh - 300px);
  padding-top: 72px;
}

.vacancy-load-error.is-compact {
  min-height: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 14px 16px;
  padding: 12px 14px;
  border: 1px solid #e3e8f0;
  border-radius: 8px;
  background: #f6f9fd;
  text-align: left;
}

.vacancy-load-error.is-compact p {
  max-width: none;
  color: #747d8a;
  font-size: 14px;
  line-height: 18px;
}

.vacancy-load-error.is-compact button {
  flex: 0 0 auto;
  min-height: 36px;
  margin: 0;
  padding: 0 12px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 17px;
}

.vacancy-load-warning {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border: 1px solid #e3e8f0;
  border-radius: 14px;
  background: #f6f9fd;
  color: #747d8a;
  font-size: 14px;
  line-height: 18px;
}

.vacancy-load-warning button {
  flex: 0 0 auto;
  min-height: 34px;
  padding: 0 12px;
  border: 0;
  border-radius: 10px;
  background: #e6f0ff;
  color: #176bd6;
  font-size: 13px;
  line-height: 16px;
  font-weight: 600;
}

.catalog-empty-action {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 0 18px;
  border-radius: 12px;
  background: #1f7bf2;
  color: #fff;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
  text-decoration: none;
}

.recommendation-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  padding: 18px 20px 14px;
  background: #fafafa;
}

.recommendation-head-copy {
  min-width: 0;
}

.recommendation-head h1 {
  margin: 0;
  color: #161616;
  font-size: 16px;
  line-height: 21px;
  font-weight: 700;
}

.recommendation-head p {
  max-width: 320px;
  margin: 4px 0 0;
  color: #888d94;
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
}

.recommendation-sort-button {
  position: relative;
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #b1b6bd;
  touch-action: manipulation;
}

.recommendation-sort-button svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.recommendation-sort-button.is-date {
  color: #9299a2;
}

.recommendation-location-edit {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #9299a2;
}

.recommendation-location-edit svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.recommendation-sort-button:active {
  transform: scale(0.96);
}

@media (max-width: 899px) {
  .recommendation-sort-button,
  .recommendation-location-edit {
    margin-right: -10px;
  }
}

.recommendation-pills {
  padding-top: 0;
  background: #fafafa;
}

.recommendation-pills .pill.is-loading {
  opacity: 0.68;
  pointer-events: none;
}

.recommendation-mark-viewed {
  width: calc(100% - 40px);
  min-height: 44px;
  margin: 0 20px 16px;
  border: 1px solid #e2e6ed;
  border-radius: 10px;
  background: #eef1f5;
  color: #59616b;
  font-size: 15px;
  line-height: 19px;
  font-weight: 600;
}

.phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed {
  padding-bottom: calc(174px + env(safe-area-inset-bottom, 0px));
}

.restojob-native-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed,
.restojob-ios-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed {
  padding-bottom: calc(186px + env(safe-area-inset-bottom, 0px));
}

.phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed > .recommendation-mark-viewed,
.phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed {
  position: fixed;
  left: 50%;
  bottom: calc(74px + env(safe-area-inset-bottom, 0px));
  z-index: 120;
  width: calc(min(100%, 460px) - 40px);
  max-width: 420px;
  min-height: 48px;
  margin: 0;
  transform: translateX(-50%);
  border: 0;
  border-radius: 8px;
  background: #222831;
  color: #fff;
  font-size: 15px;
  line-height: 18px;
  font-weight: 500;
  box-shadow: 0 10px 26px rgba(20, 24, 30, 0.16);
}

.restojob-native-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed > .recommendation-mark-viewed,
.restojob-native-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed,
.restojob-ios-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed > .recommendation-mark-viewed,
.restojob-ios-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed {
  bottom: calc(66px + env(safe-area-inset-bottom, 0px));
}

.restojob-native-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed .recommendation-mark-viewed,
.restojob-native-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed,
.restojob-ios-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed .recommendation-mark-viewed,
.restojob-ios-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: calc(66px + env(safe-area-inset-bottom, 0px)) !important;
  z-index: 30 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  width: calc(min(100%, 460px) - 40px) !important;
  max-width: 420px !important;
  margin: 0 !important;
  transform: translateX(-50%) !important;
}

.phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed + .floating-map-button,
.phone:not(.desktop-sections-right-phone):not(.auth-phone):has(> .recommendation-mark-viewed) > .floating-map-button {
  bottom: calc(124px + env(safe-area-inset-bottom, 0px));
}

.phone.has-side-menu-open > .recommendation-mark-viewed,
.phone.has-side-menu-open > .messages-read-footer {
  display: none !important;
  pointer-events: none !important;
}

.near-zone-summary {
  margin: 16px 20px;
}

.near-zone-preview,
.near-zone-edit-screen {
  border: 1px solid #e2e5eb;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(20, 28, 40, 0.06);
}

.near-zone-preview {
  display: grid;
  width: 100%;
  padding: 14px;
  gap: 8px;
  color: inherit;
  text-align: left;
}

.near-zone-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.near-zone-head div {
  min-width: 0;
}

.near-zone-edit-screen h2,
.near-zone-summary h2 {
  margin: 0;
  color: #161616;
  font-size: 18px;
  line-height: 22px;
  font-weight: 700;
}

.near-zone-summary p {
  margin: 2px 0 0;
  color: #888d94;
  font-size: 13px;
  line-height: 17px;
  font-weight: 500;
}

.near-zone-head span,
.near-zone-edit-head span {
  margin: 0;
  color: #56616f;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}

.near-zone-preview-action {
  display: grid;
  place-items: center;
  min-height: 42px;
  margin-top: 0;
  border-radius: 10px;
  background: #eef2f8;
  color: #56616f;
  font-size: 13px;
  line-height: 15px;
  font-weight: 500;
  text-align: center;
}

.near-zone-preview.is-home-compact {
  grid-template-columns: 88px minmax(0, 1fr) 28px;
  align-items: center;
  min-height: 72px;
  padding: 8px;
  gap: 10px;
  border-radius: 14px;
  box-shadow: none;
}

.near-zone-preview.is-home-compact .home-zone-compact-map {
  width: 88px;
  height: 56px;
  border-radius: 8px;
}

.near-zone-preview.is-home-compact .home-zone-compact-map img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.home-zone-compact-copy {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.home-zone-compact-copy strong,
.home-zone-compact-copy small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-zone-compact-copy strong {
  color: #171717;
  font-size: 14px;
  line-height: 18px;
}

.home-zone-compact-copy small {
  color: #888d94;
  font-size: 12px;
  line-height: 16px;
}

.home-zone-edit-icon {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  color: #7d8794;
}

.home-zone-edit-icon svg {
  width: 18px;
  height: 18px;
  stroke-width: 1.8;
}

.near-zone-preview-map {
  position: relative;
  height: 136px;
  overflow: hidden;
  border-radius: 14px;
  background: #eef2f7;
  pointer-events: none;
}

.near-zone-preview-map img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.zone-static-preview {
  height: auto;
  background: #eaf0f7;
}

.zone-static-preview img {
  height: auto;
  object-fit: contain;
}

.resume-work-zone-preview-map {
  height: auto;
  margin-top: 14px;
  border: 1px solid #dfe6ef;
  cursor: default;
}

.resume-work-zone-preview-map * {
  cursor: default !important;
  pointer-events: none !important;
}

.near-zone-edit-screen {
  display: grid;
  gap: 10px;
  margin: 12px 20px calc(14px + env(safe-area-inset-bottom, 0px));
  padding: 14px;
}

.near-zone-edit-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.near-zone-city-block {
  display: grid;
  gap: 8px;
  color: #161616;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}

.near-zone-city-block select.resume-text-input {
  min-height: 44px;
  padding-top: 7px;
  padding-bottom: 7px;
  background-position:
    calc(100% - 18px) 18px,
    calc(100% - 12px) 18px;
}

.near-zone-map {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 320px;
  height: calc(100vh - 330px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  height: calc(100dvh - 330px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  max-height: 560px;
  overflow: hidden;
  overscroll-behavior: contain;
  touch-action: none;
  border-radius: 14px;
  background: #eef2f7;
  color: #7f8792;
  font-size: 14px;
  line-height: 18px;
}

.near-zone-map .ymaps-2-1-79-map,
.near-zone-map .ymaps-2-1-79-events-pane {
  overscroll-behavior: contain;
  touch-action: none !important;
}

.near-zone-map::before,
.near-zone-map::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 3;
  pointer-events: none;
}

.near-zone-map::before {
  width: 24px;
  height: 24px;
  border: 2px solid #fff;
  border-radius: 50% 50% 50% 0;
  background: #ff4545;
  box-shadow: 0 3px 10px rgba(20, 28, 40, 0.22);
  transform: translate(-50%, -74%) rotate(-45deg);
}

.near-zone-map::after {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
  transform: translate(-50%, -126%);
}

.near-zone-map.is-home-zone::before,
.near-zone-map.is-home-zone::after {
  display: none;
}

.near-zone-radius {
  display: grid;
  gap: 8px;
  color: #161616;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}

.near-zone-radius input {
  width: 100%;
  accent-color: #ff4545;
}

.near-zone-fixed-radius {
  margin: 0;
  color: #6f7680;
  font-size: 14px;
  line-height: 20px;
}

.resume-work-zone-map {
  min-height: 300px;
  height: 360px;
  max-height: none;
}

.resume-districts-edit-screen {
  padding-top: 12px;
  padding-bottom: 84px;
}

.resume-districts-edit-screen .resume-edit-card {
  padding: 12px;
}

.resume-districts-edit-screen .resume-edit-card h1 {
  margin-bottom: 12px;
}

.resume-districts-edit-screen .resume-edit-block {
  margin-top: 12px;
}

.resume-districts-edit-screen .resume-edit-block:first-of-type {
  margin-top: 0;
}

.resume-work-city-block {
  display: block;
}

.resume-work-city-block .resume-text-input {
  min-height: 42px;
  padding-top: 6px;
  padding-bottom: 6px;
}

.resume-work-city-block select.resume-text-input {
  background-position:
    calc(100% - 18px) 18px,
    calc(100% - 12px) 18px;
}

.resume-districts-edit-screen .resume-work-zone-map {
  min-height: 320px;
  height: clamp(320px, calc(100vh - 430px), 520px);
  height: clamp(320px, calc(100dvh - 430px), 520px);
  max-height: 520px;
}

.resume-districts-edit-screen .near-zone-radius {
  margin-top: 10px;
  gap: 6px;
}

.resume-work-zone-radius {
  margin-top: 2px;
}

.resume-work-zone-radius span {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.resume-work-zone-radius b {
  color: #56616f;
  font-weight: 700;
}

.resume-work-zone-radius input[type="range"] {
  appearance: none;
  -webkit-appearance: none;
  height: 20px;
  margin: 0;
  border: 0;
  outline: 0;
  background: transparent;
}

.resume-work-zone-radius input[type="range"]::-webkit-slider-runnable-track {
  height: 5px;
  border: 0;
  border-radius: 999px;
  background: #30343a;
}

.resume-work-zone-radius input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  -webkit-appearance: none;
  width: 18px;
  height: 18px;
  margin-top: -6.5px;
  border: 0;
  border-radius: 50%;
  background: #ff4545;
  box-shadow: none;
}

.resume-work-zone-radius input[type="range"]::-moz-range-track {
  height: 5px;
  border: 0;
  border-radius: 999px;
  background: #30343a;
}

.resume-work-zone-radius input[type="range"]::-moz-range-thumb {
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 50%;
  background: #ff4545;
  box-shadow: none;
}

.near-zone-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: 8px;
}

.near-zone-actions button,
.near-zone-preview {
  appearance: none;
}

.near-zone-actions button {
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
}

.near-zone-actions button:only-child {
  grid-column: 1 / -1;
}

.near-zone-primary {
  background: #18bf63;
  color: #fff;
}

.near-zone-secondary {
  background: #eef2f8;
  color: #56616f;
}

@media (max-height: 760px) {
  .near-zone-map {
    min-height: 280px;
    height: calc(100vh - 306px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    height: calc(100dvh - 306px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
  }
}

@media (min-width: 461px) {
  body {
    background: #FAFAFA;
  }

  .phone,
  .detail-shell {
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);
  }
}

/* m.restojob.ru visual parity layer */
:root {
  --m-brand: #FF4646;
  --m-brand-end: #E51A3F;
  --m-red-text: #E93C3C;
  --m-bg: #FAFAFA;
  --m-light-gray: #EAEEF4;
  --m-tab-gray: #CACCCF;
  --m-text: #000000;
  --m-secondary: #888D94;
  --m-dark-gray: #979797;
  --m-blue: #046FD1;
}

body {
  background: #fff;
}

.phone {
  background: var(--m-bg);
}

.topbar {
  grid-template-columns: 52px 1fr 52px;
  gap: 0;
  min-height: calc(53px + env(safe-area-inset-top, 0px));
  padding: env(safe-area-inset-top, 0px) 10px 0;
  background: #fff;
  border-bottom: 1px solid #ececec;
  box-shadow: 0 1px 8px rgba(0, 0, 0, 0.06);
  backdrop-filter: none;
}

.header-icon {
  position: relative;
  width: 52px;
  height: 52px;
  display: grid;
  align-items: center;
  border: 0;
  background: transparent;
  padding: 10px 6px;
}

.header-icon.rj-skeleton-shape {
  align-self: center;
  width: 34px;
  height: 34px;
  margin: 9px;
  padding: 0;
  border-radius: 50%;
  background: #eef1f5;
}

.rj-skeleton-detail-logo-word {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.rj-skeleton-detail-logo-word img {
  width: 134px;
  height: 26px;
  object-fit: contain;
}

.header-icon:first-child {
  justify-items: start;
}

.header-icon#routeBack {
  color: #25282b;
}

.header-icon.location {
  justify-items: end;
}

.header-close-section {
  justify-items: end;
  color: #aeb4bb;
}

.header-close-section svg {
  width: 25px;
  height: 25px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.5;
  stroke-linecap: round;
}

.location-pin-icon {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: #aeb4bb;
}

.location-pin-icon svg {
  width: 24px;
  height: 24px;
  display: block;
}

.header-spacer {
  width: 52px;
  height: 52px;
  display: block;
}

.header-icon.is-hamburger {
  justify-items: start;
}

.header-menu-badge {
  position: absolute;
  top: 8px;
  left: 22px;
  min-width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 12px;
  background: #fb4e4e;
  color: #fff;
  font-size: 11px;
  line-height: 1;
  font-weight: 700;
  pointer-events: none;
}

.header-role-new-badge {
  position: absolute;
  top: 12px;
  left: 25px;
  min-width: 26px;
  height: 15px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ff4647;
  color: #fff;
  font-size: 8px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0;
  pointer-events: none;
}

.header-icon img {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

#citySelect {
  inset: env(safe-area-inset-top, 0px) 10px auto auto;
  width: 52px;
  height: 52px;
}

.hamburger-icon {
  position: relative;
  width: 21px;
  height: 16px;
  display: block;
}

.hamburger-icon::before,
.hamburger-icon::after,
.hamburger-icon {
  background:
    linear-gradient(#aeb4bb, #aeb4bb) left 0 top 0 / 21px 2.5px no-repeat,
    linear-gradient(#aeb4bb, #aeb4bb) left 0 top 7px / 21px 2.5px no-repeat,
    linear-gradient(#aeb4bb, #aeb4bb) left 0 top 14px / 21px 2.5px no-repeat;
}

.header-logo {
  height: 52px;
  display: grid;
  place-items: center;
}

.header-logo img {
  width: 134px;
  height: 26px;
  object-fit: contain;
}

.content {
  padding: 0 0 calc(112px + env(safe-area-inset-bottom, 0px));
}

.m-start {
  padding: 0;
}

.banner {
  border-radius: 0;
  margin-bottom: 12px;
}

.m-ad-slot {
  height: 118px;
  margin: 0 20px 16px;
  border-radius: 16px 16px 0 0;
  background: #a8b3bf;
}

.chips,
.pills {
  padding: 2px 20px 14px;
}

.category-pills {
  margin-top: 14px;
}

.chip,
.pill {
  border-radius: 20px;
}

.chip {
  min-height: 36px;
  padding: 0 14px;
  font-size: 13px;
}

.pill {
  min-height: 46px;
  padding: 0 18px;
  font-size: 14px;
  font-weight: 500;
  border-color: #e2e5eb;
  box-shadow: 0 2px 8px rgba(24, 28, 34, 0.04);
}

.pill-map,
.pill-search {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  padding-inline: 18px;
  line-height: 1;
  font-weight: 500;
}

.pill-map svg {
  width: 21px;
  height: 21px;
}

.pill-search {
  font-size: 35px;
}

.chip.is-active,
.pill.is-active {
  border-color: var(--m-brand);
  background: var(--m-brand);
}

.restojob-ios-app .category-pills .pill,
.restojob-ios-app .recommendation-pills .pill,
.restojob-android-app .category-pills .pill,
.restojob-android-app .recommendation-pills .pill {
  transition:
    transform 0.16s ease,
    background-color 0.16s ease,
    border-color 0.16s ease,
    color 0.16s ease,
    box-shadow 0.16s ease;
  will-change: transform;
}

.restojob-ios-app .category-pills .pill.ios-subcategory-peek,
.restojob-ios-app .recommendation-pills .pill.ios-subcategory-peek,
.restojob-android-app .category-pills .pill.ios-subcategory-peek,
.restojob-android-app .recommendation-pills .pill.ios-subcategory-peek {
  color: var(--ios-subcategory-peek-color, #171717);
  border-color: rgba(255, 70, 70, calc(0.28 + var(--ios-subcategory-drag-progress, 0) * 0.42));
  background: rgba(255, 70, 70, calc(var(--ios-subcategory-drag-progress, 0) * 0.78));
  box-shadow:
    inset 0 0 0 1px rgba(255, 70, 70, calc(var(--ios-subcategory-drag-progress, 0) * 0.1)),
    0 2px 8px rgba(24, 28, 34, 0.04);
  transform: scale(calc(1 + var(--ios-subcategory-drag-progress, 0) * 0.012));
}

.restojob-ios-app .category-pills .pill.is-active,
.restojob-ios-app .recommendation-pills .pill.is-active,
.restojob-android-app .category-pills .pill.is-active,
.restojob-android-app .recommendation-pills .pill.is-active {
  box-shadow: 0 2px 8px rgba(24, 28, 34, 0.04);
}

.restojob-ios-app .category-pills .pill.ios-subcategory-pulse,
.restojob-ios-app .recommendation-pills .pill.ios-subcategory-pulse,
.restojob-android-app .category-pills .pill.ios-subcategory-pulse,
.restojob-android-app .recommendation-pills .pill.ios-subcategory-pulse {
  animation: iosSubcategoryPulse 0.24s cubic-bezier(0.2, 0.8, 0.2, 1);
}

@keyframes iosSubcategoryPulse {
  0% {
    transform: scale(1);
  }
  52% {
    transform: scale(1.055);
  }
  100% {
    transform: scale(1);
  }
}

.brand-month {
  margin: 2px 20px 16px;
  padding: 16px;
  border-radius: 20px;
}

.brand-month img {
  border-radius: 50%;
}

.list-head,
.plain-head {
  margin: 16px 20px 10px;
}

.list-head.is-home {
  display: none;
}

.list-head h2,
.plain-head h1,
.resume-local h1,
.profile-local h1 {
  font-size: 18px;
}

.inline-search {
  width: 38px;
  height: 38px;
  border: 1px solid var(--m-light-gray);
  border-radius: 12px;
  background: #fff;
  color: var(--m-secondary);
  font-size: 22px;
}

.searchbar {
  margin: 0 20px 14px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid var(--m-light-gray);
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transition: max-height 0.18s ease, opacity 0.18s ease, margin-bottom 0.18s ease;
}

.searchbar.is-open {
  max-height: 48px;
  opacity: 1;
  pointer-events: auto;
}

.vacancy-list {
  gap: 26px;
  padding: 0 20px;
}

.vacancy-card {
  display: block;
  padding: 0;
  border: 1px solid var(--m-light-gray);
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.07);
  overflow: hidden;
}

.vacancy-card.is-premium {
  border-color: #fff;
  box-shadow: 0 0 7px rgba(0, 0, 0, 0.07);
}

.vacancy-card-inner {
  display: grid;
}

.vacancy-top {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 74px;
  gap: 12px;
  padding: 16px 16px 20px;
}

.vacancy-card h3 {
  margin: 0;
  color: var(--m-text);
  font-size: 14px;
  line-height: 16px;
  font-weight: 700;
}

.vacancy-card strong {
  display: block;
  color: var(--m-red-text);
  font-size: 20px;
  line-height: 20px;
  font-weight: 700;
  padding: 8px 0;
  letter-spacing: 0;
}

.vacancy-card p {
  margin: 0;
  color: var(--m-text);
  font-size: 14px;
  line-height: 14px;
}

.logo {
  width: 64px;
  height: 64px;
  border-radius: 50%;
}

.m-card-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}

.m-card-side time {
  margin-top: 10px;
  color: var(--m-dark-gray);
  font-size: 14px;
  line-height: 14px;
  text-align: center;
}

.favorite {
  position: static;
  width: 30px;
  height: 30px;
  background: transparent;
  color: var(--m-brand);
  font-size: 20px;
  margin-top: 4px;
}

.m-card-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  margin-top: 16px;
}

.m-tag {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 12px;
  border-radius: 20px;
  background: rgba(47, 128, 237, 0.2);
  color: var(--m-blue);
  font-size: 11px;
  line-height: 16px;
  font-weight: 500;
}

.m-tag.top {
  background: #ffbc1f;
  color: var(--m-text);
}

.metro-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  color: var(--m-secondary);
  font-size: 14px;
  line-height: 14px;
}

.metro-dot {
  width: 16px;
  height: 16px;
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  background: var(--metro, #CACCCF);
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

.vacancy-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--m-light-gray);
  min-height: 68px;
}

.vacancy-facts div {
  min-width: 0;
  display: grid;
  align-content: center;
  justify-items: center;
  padding: 10px 6px;
  text-align: center;
  border-right: 1px solid var(--m-light-gray);
}

.vacancy-facts div:last-child {
  border-right: 0;
}

.vacancy-facts b {
  max-width: 100%;
  color: var(--m-text);
  font-size: 17px;
  line-height: 20px;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vacancy-facts span {
  max-width: 100%;
  margin-top: 8px;
  color: var(--m-dark-gray);
  font-size: 11px;
  line-height: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.more {
  width: calc(100% - 40px);
  margin: 14px 20px 4px;
  border: 1px solid #247ef5;
  border-radius: 10px;
  background: #247ef5;
  color: #fff;
  font-size: 15px;
  font-weight: 500;
}

.home-farther-vacancies-section {
  margin-top: 22px;
}

.home-farther-vacancies-section > h2 {
  margin: 0 20px 12px;
  color: #171717;
  font-size: 18px;
  line-height: 1.25;
}

.home-farther-vacancies-section.is-without-nearby {
  margin-top: 4px;
}

.home-farther-vacancies-section > .vacancy-list {
  margin-top: 0;
}

.floating-map-button {
  position: fixed;
  z-index: 22;
  right: max(18px, calc((100vw - 460px) / 2 + 18px));
  bottom: calc(74px + env(safe-area-inset-bottom, 0px));
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 106px;
  min-height: 54px;
  padding: 0 18px 0 15px;
  border: 1px solid rgba(232, 234, 238, 0.78);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: #161616;
  box-shadow: 0 14px 34px rgba(20, 24, 30, 0.16);
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  font-size: 15px;
  line-height: 18px;
  font-weight: 500;
}

.floating-map-button svg {
  width: 24px;
  height: 24px;
  color: var(--m-brand);
  stroke-width: 2.2;
}

.restojob-native-app .floating-map-button {
  z-index: 26;
  bottom: calc(68px + env(safe-area-inset-bottom, 0px));
  display: inline-flex;
}

.restojob-native-app .content.has-recommendation-mark-viewed + .floating-map-button {
  bottom: calc(128px + env(safe-area-inset-bottom, 0px));
}

.restojob-native-app .phone:has(> .recommendation-mark-viewed) > .floating-map-button,
.restojob-ios-app .phone:has(> .recommendation-mark-viewed) > .floating-map-button {
  bottom: calc(128px + env(safe-area-inset-bottom, 0px));
}

.restojob-android-app .floating-map-button {
  bottom: 62px;
}

.restojob-android-app .content.has-recommendation-mark-viewed + .floating-map-button,
.restojob-android-app .phone.has-mobile-recommendation-action > .floating-map-button,
.restojob-android-app .phone:has(> .recommendation-mark-viewed) > .floating-map-button {
  bottom: 118px;
}

.restojob-android-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed {
  padding-bottom: 174px;
}

.restojob-android-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) .content.has-recommendation-mark-viewed > .recommendation-mark-viewed,
.restojob-android-app .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .recommendation-mark-viewed {
  bottom: 62px !important;
}

@media (max-width: 899px) {
  html:not(.restojob-ios-app):not(.restojob-android-app) .floating-map-button {
    bottom: calc(92px + env(safe-area-inset-bottom, 0px));
    box-shadow: 0 8px 24px rgba(20, 24, 30, 0.14);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app) .content.has-recommendation-mark-viewed + .floating-map-button,
  html:not(.restojob-ios-app):not(.restojob-android-app) .phone.has-mobile-recommendation-action > .floating-map-button,
  html:not(.restojob-ios-app):not(.restojob-android-app) .phone:has(> .recommendation-mark-viewed) > .floating-map-button {
    bottom: calc(142px + env(safe-area-inset-bottom, 0px));
  }

  html.restojob-android-app .floating-map-button {
    bottom: 82px;
    box-shadow: 0 8px 24px rgba(20, 24, 30, 0.14);
  }

  html.restojob-android-app .content.has-recommendation-mark-viewed + .floating-map-button,
  html.restojob-android-app .phone.has-mobile-recommendation-action > .floating-map-button,
  html.restojob-android-app .phone:has(> .recommendation-mark-viewed) > .floating-map-button {
    bottom: 138px;
  }
}

.vacancy-map-screen {
  position: relative;
  width: 100%;
  max-width: 100vw;
  min-height: calc(100dvh - 53px - env(safe-area-inset-top, 0px));
  background: #fafafa;
  overflow: hidden;
  overscroll-behavior: none;
}

.vacancy-map-phone {
  height: 100dvh;
  min-height: 100dvh;
  overflow: hidden;
}

.vacancy-map-phone .content {
  height: calc(100dvh - 53px - env(safe-area-inset-top, 0px));
  min-height: 0;
  padding-bottom: 0;
  overflow: hidden;
  overscroll-behavior: none;
}

.vacancy-map-phone .vacancy-map-screen {
  height: 100%;
  min-height: 0;
}

.map-pills {
  position: absolute;
  z-index: 3;
  top: 0;
  left: 0;
  right: 0;
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 12px 20px 14px;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid rgba(232, 234, 238, 0.82);
  background: #fff;
  box-shadow: none;
  scrollbar-width: none;
}

.map-pills::-webkit-scrollbar {
  display: none;
}

.map-pills .pill {
  min-height: 46px;
  padding: 0 18px;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
  box-shadow: none;
}

.vacancy-map-canvas {
  width: 100%;
  max-width: 100%;
  height: 100%;
  min-height: 0;
  display: grid;
  place-items: center;
  color: #888d94;
  font-size: 14px;
  background: #eef1f5;
  overflow: hidden;
  touch-action: pan-x pan-y pinch-zoom;
}

.vacancy-map-empty {
  position: absolute;
  z-index: 4;
  left: 20px;
  right: 20px;
  top: 116px;
  padding: 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid #e8e7ed;
  text-align: center;
}

.vacancy-map-empty h2 {
  margin: 0;
  font-size: 17px;
  line-height: 22px;
  font-weight: 700;
}

.map-card-drawer {
  position: absolute;
  z-index: 5;
  left: 0;
  right: 0;
  bottom: 30px;
  padding: 14px 20px calc(16px + env(safe-area-inset-bottom, 0px));
  background: transparent;
  box-shadow: none;
  pointer-events: none;
}

.restojob-android-app .map-card-drawer {
  bottom: 14px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}

.restojob-ios-app .map-card-drawer {
  bottom: 18px;
  padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
}

.map-vacancy-card {
  width: 100%;
  background: #fff;
  box-shadow: 0 14px 34px rgba(20, 24, 30, 0.16);
  pointer-events: auto;
}

.map-vacancy-card-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}

.map-vacancy-quick-apply {
  display: flex;
  width: 100%;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  margin-top: 13px;
  padding: 8px 16px;
  border: 0;
  border-radius: 12px;
  background: #1f7bf2;
  color: #fff;
  font-size: 15px;
  line-height: 20px;
  font-weight: 500;
  box-shadow: none;
  text-decoration: none;
  cursor: pointer;
}

.map-vacancy-telegram {
  gap: 7px;
  background: #1ab759;
}

.map-vacancy-telegram svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: currentColor;
}

.map-vacancy-quick-apply.is-applied {
  background: #e8ebef;
  color: #7b818a;
}

.map-vacancy-quick-apply.is-error {
  background: #fff0ef;
  color: #d83a32;
}

.regular-map-marker-caption {
  display: block;
  width: max-content;
  max-width: 146px;
  overflow: hidden;
  padding: 3px 6px;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.92);
  color: #15171a;
  font-size: 12px;
  line-height: 16px;
  white-space: nowrap;
  text-overflow: ellipsis;
  box-shadow: 0 2px 6px rgba(20, 24, 30, 0.1);
}

.regular-map-marker-caption:empty {
  display: none;
}

.paid-map-marker {
  position: relative;
  display: inline-flex;
  align-items: flex-start;
  gap: 7px;
  min-height: 64px;
  padding-bottom: 18px;
  box-sizing: border-box;
  font-family: inherit;
  white-space: nowrap;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  transform: translate(-2px, -2px);
}

.paid-map-marker::before {
  content: "";
  position: absolute;
  inset: -24px -42px -34px -24px;
  pointer-events: none;
}

.paid-map-marker-badge {
  position: relative;
  z-index: 1;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #ef3b42;
  box-shadow: 0 5px 12px rgba(20, 24, 30, 0.26);
}

.paid-map-marker-badge::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -9px;
  width: 15px;
  height: 15px;
  border-right: 3px solid #fff;
  border-bottom: 3px solid #fff;
  background: #ef3b42;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 5px 5px 8px rgba(20, 24, 30, 0.12);
}

.paid-map-marker-logo {
  position: relative;
  z-index: 2;
  width: 34px;
  height: 34px;
  display: block;
  border-radius: 50%;
  background: #fff;
  object-fit: contain;
}

.paid-map-marker-fallback {
  position: relative;
  z-index: 2;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  color: #ef3b42;
  font-size: 17px;
  line-height: 1;
  font-weight: 700;
}

.paid-map-marker-caption {
  max-width: 154px;
  overflow: hidden;
  margin-top: 10px;
  padding: 4px 7px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  color: #15171a;
  font-size: 14px;
  line-height: 18px;
  text-overflow: ellipsis;
  box-shadow: 0 3px 10px rgba(20, 24, 30, 0.12);
}

.paid-map-marker.is-selected .paid-map-marker-badge {
  background: #e73138;
  transform: scale(1.08);
}

.paid-map-marker.is-selected .paid-map-marker-badge::after {
  background: #e73138;
}

.tab-mask {
  display: block;
  width: 22px;
  height: 22px;
  margin: 0 auto 4px;
  background: var(--m-tab-gray);
  mask: var(--icon) center / contain no-repeat;
  -webkit-mask: var(--icon) center / contain no-repeat;
}

.tab-icon {
  display: block;
  width: 23px;
  height: 23px;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(81%) sepia(6%) saturate(128%) hue-rotate(179deg) brightness(96%) contrast(86%);
}

.tab-icon-slot {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
}

.tab-label {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tabbar .is-active .tab-mask {
  background: var(--tabbar-active);
}

.tabbar .is-active .tab-icon {
  filter: brightness(0) saturate(100%) invert(36%) sepia(98%) saturate(1682%) hue-rotate(333deg) brightness(103%) contrast(101%);
  opacity: 1;
}

.role-select-screen {
  display: grid;
  align-content: center;
  gap: 12px;
  min-height: calc(100vh - 142px - env(safe-area-inset-bottom, 0px));
  padding: 54px 20px 96px;
  background: #fff;
}

.role-select-phone,
.role-select-phone .content {
  background: #fff;
}

.company-phone,
.company-phone .content {
  background: #fff;
}

.role-select-screen h1 {
  margin: 0 0 12px;
  color: #161616;
  font-size: 20px;
  line-height: 28px;
  font-weight: 700;
  text-align: center;
}

.role-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 91px;
  align-items: center;
  gap: 18px;
  min-height: 132px;
  padding: 16px 17px;
  border: 1px solid #e7e7e7;
  border-radius: 12px;
  background: #fff;
  color: #161616;
  text-align: left;
  text-decoration: none;
  box-shadow: 0 2px 8px rgba(24, 28, 34, 0.04);
}

.role-card h2 {
  margin: 0;
  color: #161616;
  font-size: 16px;
  line-height: 20px;
  font-weight: 700;
}

.role-card p {
  margin: 4px 0 0;
  color: #888d94;
  font-size: 13px;
  line-height: 16px;
}

.role-card-note {
  display: flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  margin-top: 14px;
  color: #5f6875;
  font-size: 12px;
  line-height: 15px;
  font-weight: 400;
}

.role-card-note span {
  flex: 0 0 auto;
  min-width: 32px;
  padding: 3px 6px 2px;
  border-radius: 7px;
  background: #ff4148;
  color: #fff;
  font-size: 10px;
  line-height: 12px;
  font-weight: 500;
  text-align: center;
  letter-spacing: 0;
}

.role-card img {
  width: 91px;
  height: 91px;
  object-fit: contain;
}

.auth-phone,
.auth-content {
  background: #fff;
}

.auth-content {
  padding: 0;
}

.auth-native-header {
  position: relative;
  display: flex;
  align-items: center;
  min-height: calc(72px + env(safe-area-inset-top, 0px));
  padding: calc(20px + env(safe-area-inset-top, 0px)) 18px 8px;
  background: #fff;
}

.auth-back-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 13px 0 10px;
  border: 0;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  color: #24282d;
  font-size: 15px;
  line-height: 1;
  font-weight: 500;
  box-shadow: 0 8px 20px rgba(24, 28, 34, 0.06);
}

.auth-back-pill-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  font-size: 22px;
  line-height: 18px;
  font-weight: 800;
}

.auth-native-header h1 {
  position: absolute;
  left: 50%;
  bottom: 14px;
  margin: 0;
  transform: translateX(-50%);
  color: #000;
  font-size: 20px;
  line-height: 26px;
  font-weight: 700;
}

.auth-screen {
  min-height: calc(100svh - 72px - env(safe-area-inset-top, 0px));
  padding: 46px 20px 20px;
  background: #fff;
}

.auth-login-screen {
  display: flex;
  flex-direction: column;
  min-height: calc(100svh - 72px - env(safe-area-inset-top, 0px));
  padding-top: 28px;
  padding-bottom: max(16px, env(safe-area-inset-bottom, 0px));
}

.auth-login-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  padding-bottom: 22px;
}

.auth-login-bottom {
  margin-top: auto;
}

.auth-logo {
  display: block;
  width: 180px;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}

.auth-login-screen .auth-logo {
  width: min(230px, calc(100vw - 96px));
}

.auth-login-screen h1,
.auth-registration-screen h1 {
  margin: 20px 0 20px;
  color: #000;
  text-align: center;
  font-size: 20px;
  line-height: 26px;
  font-weight: 500;
}

.auth-login-screen h1 {
  margin: 10px 0 28px;
  font-size: 18px;
  line-height: 23px;
}

.auth-error {
  margin: -10px 0 18px;
  color: #ff4046;
  text-align: center;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.auth-success {
  margin: -10px 0 18px;
  color: #1f9d55;
  text-align: center;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.auth-form {
  display: grid;
  gap: 14px;
}

.auth-form input {
  width: 100%;
  min-height: 48px;
  padding: 0 15px;
  border: 1px solid #e5e6ea;
  border-radius: 10px;
  background: #fff;
  color: #161616;
  font: inherit;
  font-size: 15px;
  font-weight: 400;
  outline: none;
}

.auth-form input::placeholder {
  color: #b6b8bd;
}

.auth-forgot {
  justify-self: end;
  min-height: 28px;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;
  font-size: 15px;
  line-height: 20px;
}

.auth-submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 48px;
  margin-top: 4px;
  border: 0;
  border-radius: 12px;
  background: #24282d;
  color: #fff;
  font-size: 16px;
  line-height: 20px;
  font-weight: 500;
}

.auth-social-note {
  margin: 34px 0 10px;
  color: #92959c;
  text-align: center;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.auth-login-bottom .auth-social-note {
  margin-top: 0;
}

.auth-socials {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 0;
}

.auth-socials a,
.auth-socials button {
  display: inline-grid;
  place-items: center;
  height: 46px;
  border: 0;
  border-radius: 10px;
  background: #24282d;
  color: #fff;
  text-decoration: none;
}

.auth-socials [data-vk-auth],
.auth-socials [data-yandex-auth] {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

.auth-register {
  width: 100%;
  min-height: 48px;
  margin-top: 8px;
  padding: 0 25px;
  border: 0;
  border-radius: 12px;
  background: #1fc15c;
  color: #fff;
  font-size: 16px;
  font-weight: 500;
}

.auth-employer-link {
  width: 100%;
  min-height: 40px;
  display: none;
  align-items: center;
  justify-content: center;
  margin-top: 12px;
  border-radius: 10px;
  color: #737a85;
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.auth-employer-link.is-visible {
  display: inline-flex;
}

.auth-employer-link:hover {
  color: #25282d;
  background: #f2f4f7;
}

.auth-employer-sheet-layer {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}

.auth-employer-sheet-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.42);
}

.auth-employer-sheet {
  position: relative;
  z-index: 1;
  width: min(100%, 430px);
  padding: 28px 18px calc(18px + env(safe-area-inset-bottom, 0px));
  border-radius: 22px 22px 0 0;
  background: #fff;
  box-shadow: 0 -12px 36px rgba(18, 24, 33, 0.18);
  text-align: center;
}

.auth-employer-sheet-icon {
  width: 64px;
  height: 64px;
  display: inline-grid;
  place-items: center;
  margin-bottom: 16px;
  border-radius: 50%;
  background: #fff0f0;
  color: #ff4046;
}

.auth-employer-sheet-icon svg {
  width: 34px;
  height: 34px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.auth-employer-sheet h2 {
  margin: 0 0 10px;
  color: #111418;
  font-size: 22px;
  line-height: 27px;
  font-weight: 700;
}

.auth-employer-sheet p {
  max-width: 340px;
  margin: 0 auto 22px;
  color: #69717d;
  font-size: 16px;
  line-height: 22px;
  font-weight: 400;
}

.auth-employer-sheet button {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 12px;
  font-size: 17px;
  line-height: 21px;
  font-weight: 600;
  transition:
    transform 90ms ease-out,
    opacity 90ms ease-out,
    background-color 120ms ease-out;
  transform-origin: center;
  touch-action: manipulation;
}

.auth-employer-sheet button:active {
  transform: scale(0.985);
  opacity: 0.88;
}

.auth-employer-sheet-primary {
  background: #ff4046;
  color: #fff;
}

.auth-employer-sheet-secondary {
  margin-top: 10px;
  background: #f3f4f6;
  color: #24282d;
}

.auth-registration-screen {
  padding-top: 76px;
}

.auth-registration-screen .auth-logo {
  margin-bottom: 34px;
}

.auth-registration-note {
  margin: 28px 0 0;
  color: #888b92;
  text-align: center;
  font-size: 14px;
  line-height: 20px;
}

.auth-registration-form {
  gap: 22px;
}

.auth-city-select {
  width: 100%;
  min-height: 48px;
  padding: 0 15px;
  border: 1px solid #e5e6ea;
  border-radius: 10px;
  background: #fff;
  color: #b6b8bd;
  text-align: left;
  font-size: 15px;
  font-weight: 400;
}

.auth-city-select.is-selected {
  color: #161616;
}

.auth-submit-disabled,
.auth-submit:disabled:not(.is-loading) {
  margin-top: 12px;
  background: #edf1f8;
  color: rgba(255, 255, 255, 0.9);
  text-transform: uppercase;
}

.auth-submit.is-loading,
.auth-submit.is-loading:disabled {
  background: #24282d;
  color: #fff;
  cursor: wait;
  opacity: 0.88;
  text-transform: none;
}

.auth-submit.is-loading::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-top-color: #fff;
  border-radius: 50%;
  animation: authSubmitSpin 0.8s linear infinite;
}

@keyframes authSubmitSpin {
  to { transform: rotate(360deg); }
}

.auth-form-message {
  margin: -8px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef8f2;
  color: #148d45;
  font-size: 13px;
  line-height: 18px;
  text-align: center;
}

.auth-social-logo {
  display: block;
  width: 21px;
  height: 21px;
  object-fit: contain;
}

.auth-social-logo-vk {
  width: 28px;
  height: 27px;
  filter: brightness(0) invert(1);
}

.auth-social-logo-yandex {
  width: 22px;
  height: 22px;
}

@media (max-height: 780px) and (max-width: 899px) {
  .auth-native-header {
    min-height: calc(58px + env(safe-area-inset-top, 0px));
    padding: calc(12px + env(safe-area-inset-top, 0px)) 18px 6px;
  }

  .auth-screen {
    min-height: calc(100svh - 58px - env(safe-area-inset-top, 0px));
    padding-top: 28px;
    padding-bottom: 14px;
  }

  .auth-login-screen {
    min-height: calc(100svh - 58px - env(safe-area-inset-top, 0px));
    padding-top: 14px;
    padding-bottom: max(12px, env(safe-area-inset-bottom, 0px));
  }

  .auth-login-main {
    padding-bottom: 14px;
  }

  .auth-logo {
    width: 164px;
  }

  .auth-login-screen .auth-logo {
    width: min(200px, calc(100vw - 110px));
  }

  .auth-login-screen h1,
  .auth-registration-screen h1 {
    margin: 16px 0 16px;
  }

  .auth-login-screen h1 {
    margin: 8px 0 18px;
    font-size: 18px;
    line-height: 23px;
  }

  .auth-form {
    gap: 10px;
  }

  .auth-forgot {
    min-height: 24px;
    margin-top: 2px;
  }

  .auth-social-note {
    margin-top: 24px;
    margin-bottom: 8px;
  }
}

@media (min-width: 900px) {
  .auth-phone {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    display: grid;
    place-items: center;
    margin: 0;
    padding: 40px;
    background: #f4f6fa;
  }

  .auth-native-header {
    display: none;
  }

  .auth-content {
    width: min(100%, 430px);
    padding: 0;
    background: transparent;
  }

  .auth-screen {
    position: relative;
    min-height: 0;
    padding: 30px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .auth-login-screen {
    display: block;
    min-height: 0;
    margin-top: 70px;
  }

  .auth-login-main {
    display: block;
    padding-bottom: 0;
  }

  .auth-login-bottom {
    margin-top: 0;
  }

  .auth-login-screen .auth-logo {
    position: absolute;
    top: -64px;
    left: 50%;
    display: block;
    width: 210px;
    height: auto;
    margin: 0;
    transform: translateX(-50%);
  }

  .auth-login-screen h1,
  .auth-registration-screen h1 {
    margin: 0 0 22px;
    text-align: left;
    font-size: 22px;
    line-height: 28px;
    font-weight: 600;
  }

  .auth-login-screen h1 {
    text-align: center;
  }

  .auth-login-screen .auth-employer-link {
    display: inline-flex;
  }

  .auth-login-screen .auth-error,
  .auth-login-screen .auth-success {
    margin: -8px 0 16px;
    text-align: left;
  }

  .auth-login-screen .auth-social-note {
    margin-top: 28px;
  }
}

.city-picker-sheet {
  position: fixed;
  inset: 0;
  z-index: 80;
  pointer-events: none;
  opacity: 0;
  transition: opacity 180ms ease;
}

.city-picker-sheet.is-open {
  pointer-events: auto;
  opacity: 1;
}

.city-picker-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  min-height: 100%;
  border: 0;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.3);
}

.city-picker-panel {
  position: absolute;
  display: flex;
  flex-direction: column;
  left: 50%;
  right: auto;
  bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  width: min(calc(100vw - 24px), 436px);
  max-height: min(70vh, 540px);
  padding: 14px 14px 16px;
  border-radius: 22px;
  background: #fff;
  box-shadow: 0 18px 46px rgba(20, 24, 30, 0.18);
  transform: translate(-50%, 18px);
  transition: transform 180ms ease;
}

.city-picker-sheet.is-open .city-picker-panel {
  transform: translate(-50%, 0);
}

.city-picker-panel header {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 2px 2px 12px;
}

.city-picker-panel h2 {
  margin: 0;
  color: #161616;
  font-size: 18px;
  line-height: 23px;
  font-weight: 800;
}

.city-picker-close {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  appearance: none;
  background: transparent;
  color: #616a75;
  cursor: pointer;
}

.city-picker-close svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
}

.city-picker-panel button:focus-visible {
  outline: 2px solid #2275d3;
  outline-offset: 2px;
}

.city-picker-list {
  display: grid;
  flex: 1 1 auto;
  min-height: 0;
  gap: 8px;
  max-height: calc(min(70vh, 540px) - 80px);
  overflow: auto;
  padding: 3px;
  overscroll-behavior: contain;
}

.city-picker-list button {
  min-height: 46px;
  padding: 0 14px;
  border: 1px solid #e5e7ec;
  border-radius: 12px;
  background: #fff;
  color: #161616;
  text-align: left;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.city-picker-list button.is-selected {
  border-color: #ff4646;
  background: #ff4646;
  color: #fff;
}

@media (hover: hover) {
  .city-picker-close:hover,
  .city-picker-list button:not(.is-selected):hover {
    background: #f1f4f8;
  }
}

@media (min-width: 900px) {
  .city-picker-panel {
    top: 50%;
    bottom: auto;
    width: min(calc(100vw - 48px), 520px);
    max-height: calc(100dvh - 48px);
    padding: 24px;
    border-radius: 16px;
    transform: translate(-50%, calc(-50% + 12px));
  }

  .city-picker-sheet.is-open .city-picker-panel {
    transform: translate(-50%, -50%);
  }

  .city-picker-panel header {
    padding: 0 0 16px;
  }

  .city-picker-panel h2 {
    font-size: 20px;
    line-height: 26px;
    font-weight: 700;
  }

  .city-picker-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    max-height: none;
    gap: 10px;
  }

  .city-picker-list button {
    min-height: 48px;
    padding: 10px 14px;
    border-radius: 8px;
    cursor: pointer;
  }
}

@media (prefers-reduced-motion: reduce) {
  .city-picker-sheet,
  .city-picker-panel {
    transition: none;
  }
}

.cabinet-screen {
  min-height: calc(100vh - 64px);
  padding: 20px 20px 32px;
  background: #fafafa;
}

.cabinet-profile-card {
  display: grid;
  grid-template-columns: 58px 1fr;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid #eceef2;
  border-radius: 18px;
  background: #fff;
}

.cabinet-avatar,
.side-menu-avatar {
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #f3f4f6;
}

.cabinet-avatar {
  width: 58px;
  height: 58px;
}

.cabinet-avatar img,
.side-menu-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.side-menu-avatar-placeholder {
  color: #b8c0ca;
  background:
    radial-gradient(circle at 50% 34%, #f3f6f9 0, #f3f6f9 42%, transparent 43%),
    linear-gradient(180deg, #f7f9fb 0%, #e9edf2 100%);
}

.side-menu-avatar-placeholder svg {
  display: block;
  width: 42px;
  height: 42px;
}

.side-menu-avatar-placeholder path {
  fill: currentColor;
}

.cabinet-profile-card h1 {
  margin: 0;
  color: #161616;
  font-size: 20px;
  line-height: 25px;
  font-weight: 800;
}

.cabinet-profile-card p {
  margin: 5px 0 0;
  color: #9a9da3;
  font-size: 14px;
  line-height: 18px;
}

.cabinet-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.cabinet-summary article,
.cabinet-section {
  border: 1px solid #eceef2;
  border-radius: 16px;
  background: #fff;
}

.cabinet-summary article {
  min-height: 76px;
  display: grid;
  align-content: center;
  justify-items: center;
}

.cabinet-summary b {
  color: #161616;
  font-size: 22px;
  line-height: 26px;
  font-weight: 800;
}

.cabinet-summary span {
  margin-top: 4px;
  color: #8d9299;
  font-size: 12px;
  line-height: 15px;
}

.cabinet-section {
  margin-top: 14px;
  padding: 16px;
}

.cabinet-section h2 {
  margin: 0;
  color: #161616;
  font-size: 18px;
  line-height: 23px;
  font-weight: 800;
}

.cabinet-section p {
  margin: 8px 0 14px;
  color: #727780;
  font-size: 14px;
  line-height: 20px;
}

.cabinet-section button {
  width: 100%;
  min-height: 46px;
  border: 0;
  border-radius: 12px;
  background: #24282d;
  color: #fff;
  font-size: 15px;
  font-weight: 800;
}

.resume-screen {
  min-height: calc(100vh - 64px);
  padding: 14px 16px 34px;
  background: #f3f5f8;
}

.resume-status {
  margin: 0 0 10px;
  padding: 10px 12px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  background: #fff;
  color: #68707b;
  font-size: 13px;
  line-height: 18px;
}

.resume-status-error {
  border-color: #ffd0d0;
  background: #fff5f5;
  color: #ff4646;
}

.resume-header-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 22px 18px 20px;
  border: 1px solid #e1e6ee;
  border-radius: 8px;
  background: #fff;
  text-align: center;
  font: inherit;
}

.resume-export-actions {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  gap: 0;
  margin-top: 12px;
}

.resume-export-action {
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 0;
  min-height: 32px;
  padding: 0 6px;
  border: 0;
  background: transparent;
  color: #2378df;
  font: inherit;
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
  text-align: center;
  cursor: pointer;
}

.resume-export-icon {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
}

.resume-export-action svg {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-export-action:active {
  opacity: 0.72;
}

.resume-export-action:active .resume-export-icon {
  transform: scale(0.94);
}

.resume-export-action:disabled {
  cursor: wait;
  opacity: 0.55;
}

.resume-pdf-error,
.resume-header-card .resume-pdf-error {
  margin: 2px 0 0;
  font-size: 12px;
  line-height: 16px;
}

.resume-pdf-error,
.resume-header-card .resume-pdf-error {
  color: #e43d3d;
}

.resume-share-toast {
  position: fixed;
  left: 50%;
  bottom: calc(82px + env(safe-area-inset-bottom, 0px));
  z-index: 1300;
  width: max-content;
  max-width: calc(100vw - 32px);
  padding: 10px 14px;
  border: 1px solid #dfe4eb;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 5px 18px rgba(22, 32, 47, 0.11);
  color: #4f5864;
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
  text-align: center;
  transform: translateX(-50%);
  animation: resume-share-toast-in 160ms ease-out both;
}

.resume-share-toast.is-error {
  color: #d83c3c;
}

html.restojob-native-app body > .resume-share-toast.is-ios-overlay {
  bottom: calc(18px + env(safe-area-inset-bottom, 0px));
  z-index: 10000;
  border: 0;
  background: rgba(31, 39, 50, 0.97);
  box-shadow: 0 8px 24px rgba(15, 23, 34, 0.24);
  color: #fff;
}

html.restojob-native-app body > .resume-share-toast.is-ios-overlay.is-error {
  background: rgba(190, 53, 53, 0.97);
  color: #fff;
}

@keyframes resume-share-toast-in {
  from {
    opacity: 0;
    transform: translate(-50%, 6px);
  }
  to {
    opacity: 1;
    transform: translate(-50%, 0);
  }
}

@media (min-width: 900px) {
  .resume-share-toast {
    bottom: 28px;
  }
}

.resume-header-avatar {
  display: block;
  width: 124px;
  height: 124px;
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  background: #eef1f5;
  box-shadow: 0 0 0 4px #fff;
  overflow: hidden;
}

.resume-header-avatar-button {
  display: inline-grid;
  place-items: center;
  width: 124px;
  height: 124px;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
}

.resume-header-avatar-button img.resume-header-avatar {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.resume-header-avatar-placeholder {
  display: grid;
  place-items: center;
  color: #b8c0ca;
  background:
    radial-gradient(circle at 50% 34%, #f3f6f9 0, #f3f6f9 42%, transparent 43%),
    linear-gradient(180deg, #f7f9fb 0%, #e9edf2 100%);
  overflow: hidden;
}

.resume-header-avatar-placeholder svg {
  display: block;
  width: 82px;
  height: 82px;
}

.resume-header-avatar-placeholder circle,
.resume-header-avatar-placeholder path {
  fill: currentColor;
}

.resume-header-main {
  min-width: 0;
  margin-top: 14px;
}

.resume-header-card h1 {
  margin: 0;
  color: #000;
  font-size: 23px;
  line-height: 28px;
  font-weight: 800;
}

.resume-header-card p {
  max-width: 320px;
  margin: 7px auto 0;
  color: #68707b;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.resume-header-card .resume-header-main > span {
  display: block;
  margin-top: 3px;
  color: #8d9299;
  font-size: 14px;
  line-height: 18px;
}

.resume-avatar-edit {
  display: grid;
  justify-items: center;
  gap: 12px;
  margin: 4px 0 18px;
}

.resume-avatar-edit img {
  width: 86px;
  height: 86px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #fff;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}

.resume-avatar-edit label,
.resume-avatar-edit-trigger {
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 14px;
  border: 1px solid #dbe2ec;
  border-radius: 8px;
  background: #f4f7fb;
  color: #5f6976;
  cursor: pointer;
  font-size: 13px;
  line-height: 17px;
  font-weight: 400;
  font-family: inherit;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

@media (hover: hover) and (pointer: fine) {
  .resume-avatar-edit label:hover,
  .resume-avatar-edit-trigger:hover {
    border-color: #c8d0dc;
    background: #edf1f7;
    color: #25282d;
    box-shadow: 0 6px 16px rgba(21, 26, 36, 0.08);
  }
}

.resume-avatar-input,
.resume-avatar-edit input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
  pointer-events: none;
}

.resume-sheet {
  margin-top: 14px;
  border: 1px solid #e1e6ee;
  border-radius: 8px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 8px 24px rgba(22, 32, 47, 0.05);
}

.resume-section-card {
  position: relative;
  display: block;
  margin: 0;
  padding: 16px;
  border: 0;
  border-top: 1px solid #edf0f4;
  border-radius: 0;
  background: #fff;
}

.resume-section-card:first-child {
  border-top: 0;
}

.resume-section-head {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding-right: 42px;
  margin-bottom: 12px;
}

.resume-section-icon {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #c4cbd4;
}

.resume-section-icon svg {
  width: 30px;
  height: 30px;
  display: block;
  fill: currentColor;
}

.resume-section-head h2 {
  min-width: 0;
  margin: 0;
  color: #000;
  font-size: 16px;
  line-height: 21px;
  font-weight: 700;
}

.resume-section-action {
  position: absolute;
  top: 17px;
  right: 16px;
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  margin: 0;
  padding: 0;
  border: 1px solid #d8dee7;
  border-radius: 50%;
  background: #fff;
  color: #68707b;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
  transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}

.resume-section-action svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: block;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-section-action svg circle {
  fill: currentColor;
  stroke: currentColor;
}

.resume-section-action svg circle + path {
  stroke: #fff;
}

.resume-section-action span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

@media (hover: hover) and (pointer: fine) {
  .resume-section-action:hover {
    border-color: #c8d0dc;
    background: #f2f4f7;
    color: #25282d;
    box-shadow: 0 6px 16px rgba(21, 26, 36, 0.08);
  }
}

.resume-section-content dl {
  display: grid;
  gap: 9px;
  margin: 0;
}

.resume-section-content dl div {
  display: grid;
  grid-template-columns: minmax(112px, 40%) minmax(0, 1fr);
  gap: 8px;
}

.resume-section-content dt,
.resume-section-content dd,
.resume-section-content p {
  margin: 0;
  font-size: 14px;
  line-height: 20px;
}

.resume-section-content dt,
.resume-section-content p {
  color: #8d9299;
}

.resume-section-content dd {
  color: #000;
  font-weight: 500;
}

.resume-work-zone-cta {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 14px;
  padding: 0 14px;
  border: 1px solid #d8dee7;
  border-radius: 8px;
  background: #f3f6fa;
  color: #25282d;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}

.resume-work-zone-cta svg {
  width: 16px;
  height: 16px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-work-zone-cta svg circle {
  fill: currentColor;
  stroke: currentColor;
}

.resume-work-zone-cta svg circle + path {
  stroke: #fff;
}

.resume-work-preview {
  display: grid;
  gap: 14px;
}

.resume-work-preview div {
  display: grid;
  gap: 4px;
}

.resume-work-preview div + div {
  padding-top: 13px;
  border-top: 1px solid #edf0f4;
}

.resume-work-preview strong {
  color: #111;
  font-size: 14px;
  line-height: 18px;
  font-weight: 700;
}

.resume-work-preview span {
  color: #8d9299;
  font-size: 13px;
  line-height: 17px;
  font-weight: 400;
}

.resume-edit-screen {
  min-height: calc(100vh - 64px);
  padding: 16px 16px 110px;
  background: #fafafa;
}

.resume-edit-card {
  margin: 0;
  padding: 14px;
  border: 1px solid #dbe2ec;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(25, 34, 46, 0.06);
}

.resume-edit-card h1 {
  margin: 0 0 16px;
  color: #111;
  font-size: 18px;
  line-height: 23px;
  font-weight: 800;
}

.resume-data-loading-card {
  min-height: 180px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 14px;
  text-align: center;
}

.resume-data-loading-card h1,
.resume-data-loading-card p {
  margin: 0;
}

.resume-data-loading-card p {
  max-width: 300px;
  color: #737b86;
  font-size: 14px;
  line-height: 20px;
}

.resume-data-loading-spinner {
  width: 28px;
  height: 28px;
  border: 3px solid #e4e8ee;
  border-top-color: #ff4646;
  border-radius: 50%;
  animation: resumeDataLoadingSpin 0.8s linear infinite;
}

.resume-data-loading-card button {
  min-height: 42px;
  padding: 0 18px;
  border: 0;
  border-radius: 10px;
  background: #1f7bf2;
  color: #fff;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
}

@keyframes resumeDataLoadingSpin {
  to { transform: rotate(360deg); }
}

.selected-specializations {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 2px 0 12px;
}

.selected-specialization-chip {
  min-height: 30px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;
  border: 0;
  border-radius: 6px;
  background: #1f7bf2;
  color: #fff;
  font-size: 13px;
  line-height: 17px;
  font-weight: 500;
}

.selected-specialization-chip svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.resume-edit-block {
  margin-top: 22px;
}

.resume-edit-block:first-of-type {
  margin-top: 16px;
}

.resume-edit-block label {
  display: block;
  margin: 0 0 8px;
  color: #111;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.resume-position-edit-screen .resume-edit-block label {
  font-weight: 700;
}

.resume-edit-note {
  margin: -4px 0 18px;
  color: #737b86;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}

.resume-salary-input {
  width: 100%;
  height: 48px;
  padding: 8px 16px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  outline: none;
  background: #fff;
  color: #111;
  font-size: 22px;
  line-height: 28px;
  font-weight: 500;
}

.resume-salary-input::placeholder {
  color: #b7bcc4;
}

.resume-text-input {
  width: 100%;
  min-height: 48px;
  padding: 8px 14px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  outline: none;
  background: #fff;
  color: #111;
  font: inherit;
  font-size: 15px;
  line-height: 20px;
  font-weight: 400;
}

.resume-text-input:disabled {
  color: #8d9299;
  background: #f7f8fa;
}

.resume-personal-edit-screen .resume-date-input {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  -webkit-appearance: none;
  appearance: none;
  text-align: left;
}

.resume-personal-edit-screen .resume-date-input::-webkit-date-and-time-value {
  min-width: 0;
  text-align: left;
}

.resume-city-autocomplete {
  position: relative;
}

.resume-city-suggestions {
  position: absolute;
  z-index: 30;
  top: calc(100% + 6px);
  right: 0;
  left: 0;
  display: grid;
  gap: 2px;
  padding: 6px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(25, 34, 46, 0.12);
}

.resume-city-suggestions[hidden] {
  display: none;
}

.resume-city-suggestions button {
  min-height: 38px;
  padding: 0 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #161616;
  text-align: left;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.resume-city-suggestions button:hover {
  background: #f2f4f7;
}

.resume-textarea {
  min-height: 156px;
  resize: vertical;
}

select.resume-text-input {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, #9aa1ab 50%),
    linear-gradient(135deg, #9aa1ab 50%, transparent 50%);
  background-position:
    calc(100% - 18px) 21px,
    calc(100% - 12px) 21px;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 32px;
}

.resume-edit-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.resume-edit-row .resume-edit-block {
  margin-top: 0;
}

.resume-phone-line {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 78px;
  gap: 12px;
  align-items: start;
}

.resume-switch {
  min-height: 48px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  background: #f1f3f6;
  color: #8d9299;
  font-size: 12px;
  line-height: 16px;
  font-weight: 500;
}

.resume-switch.is-on {
  border-color: #1fbd62;
  background: #1fbd62;
  color: #fff;
}

.resume-phone-warning {
  margin: 6px 0 0;
  color: #555b64;
  font-size: 11px;
  line-height: 14px;
  font-weight: 300;
}

.resume-date-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.resume-checkbox {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin: 14px 0 0;
  color: #111;
  font-size: 14px;
  line-height: 19px;
  font-weight: 400;
}

.resume-checkbox input {
  width: 18px;
  height: 18px;
  accent-color: #1f7bf2;
}

.resume-category-select {
  display: flex;
  gap: 10px;
  margin: 0 -14px;
  padding: 0 14px 4px;
  overflow-x: auto;
  scrollbar-width: none;
}

.resume-category-select::-webkit-scrollbar {
  display: none;
}

.resume-category-select button {
  width: 140px;
  min-height: 122px;
  flex: 0 0 140px;
  display: grid;
  grid-template-rows: 70px minmax(32px, auto);
  justify-items: center;
  align-items: center;
  align-content: center;
  gap: 8px;
  padding: 12px 8px 10px;
  border: 1px solid #dbe2ec;
  border-radius: 7px;
  background: #fff;
  color: #111;
  font-size: 12.5px;
  line-height: 1.15;
  font-weight: 400;
  text-align: center;
}

.resume-category-select button.is-selected {
  border: 3px solid #1f7bf2;
  padding: 8px;
}

.resume-category-select img {
  width: 70px;
  height: 70px;
  min-width: 70px;
  border-radius: 50%;
  object-fit: contain;
  background: #fafafa;
  opacity: 1;
}

.resume-category-select button span {
  display: grid;
  min-height: 32px;
  align-items: center;
}

.resume-category-select button.is-selected img {
  opacity: 1;
}

.resume-specializations-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.resume-specializations-picker button {
  min-height: 29px;
  padding: 0 10px;
  border: 1px solid #dbe2ec;
  border-radius: 6px;
  background: #fff;
  color: #111;
  font-size: 13.5px;
  line-height: 18px;
  font-weight: 400;
}

.resume-specializations-picker p,
.resume-edit-error {
  margin: 0;
  color: #8d9299;
  font-size: 14px;
  line-height: 20px;
}

.resume-districts-picker {
  display: grid;
  gap: 8px;
}

.resume-districts-picker button {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 12px 0 14px;
  border: 1px solid #dbe2ec;
  border-radius: 10px;
  background: #fff;
  color: #161616;
  text-align: left;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.resume-districts-picker button svg {
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  opacity: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.resume-districts-picker button.is-selected {
  border-color: #ff4646;
  background: #fff7f7;
  color: #ff4646;
}

.resume-districts-picker button.is-selected svg {
  opacity: 1;
}

.resume-text-input.is-invalid {
  border-color: #fb4e4e;
  background: #fff7f7;
  box-shadow: 0 0 0 1px rgba(251, 78, 78, 0.18);
}

.resume-field-error {
  margin: 6px 0 0;
  color: #fb4e4e;
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
}

.resume-edit-error {
  margin-top: 14px;
  color: #ff4646;
  font-weight: 600;
}

.resume-edit-footer {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 25;
  width: min(100vw, 480px);
  transform: translateX(-50%);
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.restojob-native-app .resume-edit-screen,
.restojob-ios-app .resume-edit-screen {
  min-height: 0;
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}

.restojob-native-app .resume-edit-footer,
.restojob-ios-app .resume-edit-footer {
  position: fixed;
  left: 50%;
  bottom: 0;
  width: min(100vw, 480px);
  margin: 0;
  padding: 10px 16px calc(10px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.restojob-ios-app .resume-edit-screen {
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0px));
}

.restojob-ios-app .resume-edit-footer {
  position: static;
  left: auto;
  bottom: auto;
  width: 100%;
  margin: 12px 0 0;
  padding: 0;
  transform: none;
}

.resume-edit-footer button {
  width: 100%;
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  background: #1fbd62;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.15);
  color: #fff;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.resume-edit-footer button:disabled {
  background: #dbe2ec;
  box-shadow: none;
  color: #fff;
}

.resume-edit-server-error {
  margin: 12px 14px 0;
}

.resume-edit-empty {
  margin: 0;
  color: #8d9299;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
}

.resume-work-title {
  margin: 2px 16px 12px;
  color: #111;
  font-size: 20px;
  line-height: 25px;
  font-weight: 800;
}

.resume-work-list {
  display: grid;
  gap: 12px;
}

.resume-work-item {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid #e2e6ed;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(22, 32, 47, 0.08);
}

.resume-work-item h2 {
  margin: 0 0 4px;
  color: #111;
  font-size: 16px;
  line-height: 20px;
  font-weight: 700;
}

.resume-work-item p,
.resume-work-item span {
  display: block;
  margin: 0;
  color: #8d9299;
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
}

.resume-work-item p {
  color: #111;
}

.resume-work-actions {
  display: flex;
  gap: 10px;
}

.resume-work-actions button {
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid #dbe2ec;
  border-radius: 8px;
  background: #fff;
  color: #68707b;
  font-size: 13px;
  line-height: 17px;
  font-weight: 400;
}

.resume-work-actions button:first-child {
  color: #68707b;
}

.resume-work-confirm {
  display: grid;
  gap: 10px;
  padding: 12px;
  border: 1px solid #f0d4d4;
  border-radius: 8px;
  background: #fff7f7;
}

.resume-work-confirm p {
  margin: 0;
  color: #3f454d;
  font-size: 13px;
  line-height: 18px;
  font-weight: 400;
}

.resume-work-confirm div {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.resume-work-confirm button {
  min-height: 38px;
  border: 1px solid #dbe2ec;
  border-radius: 8px;
  background: #fff;
  color: #68707b;
  font-size: 13px;
  line-height: 17px;
  font-weight: 500;
}

.resume-work-confirm button:last-child {
  border-color: #f3b8b8;
  background: #fff;
  color: #e53935;
}

.resume-work-confirm button:disabled {
  opacity: 0.65;
}

.messages-screen {
  min-height: calc(100vh - 64px);
  padding: 18px 20px calc(96px + env(safe-area-inset-bottom, 0px));
  background: #fafafa;
}

.content.is-account-section-content {
  padding-bottom: max(24px, env(safe-area-inset-bottom, 0px));
  background: #fafafa;
}

.content.is-account-section-content:has(> .feedback-screen) {
  padding-right: 0;
  padding-left: 0;
  background: #fff;
}

.content.is-account-section-content > .messages-screen {
  min-height: 0;
  padding-bottom: 24px;
}

.restojob-native-app .content.is-account-section-content > .messages-screen,
.restojob-ios-app .content.is-account-section-content > .messages-screen {
  padding-bottom: calc(74px + env(safe-area-inset-bottom, 0px));
}

.messages-screen.is-list-head {
  min-height: 0;
  padding-bottom: 0;
}

.content.is-account-section-content > .messages-screen.favorites-head-screen {
  min-height: 0;
  padding-bottom: 18px;
}

.restojob-native-app .content.is-account-section-content > .messages-screen.favorites-head-screen,
.restojob-ios-app .content.is-account-section-content > .messages-screen.favorites-head-screen {
  min-height: 0;
  padding-bottom: 18px;
}

.favorites-phone .content.is-account-section-content {
  gap: 0;
  padding-top: 0;
}

.favorites-phone .content.is-account-section-content > .messages-screen.favorites-head-screen.is-list-head {
  padding-bottom: 8px;
}

.favorites-phone .content.is-account-section-content > .messages-screen.favorites-head-screen.is-list-head + .vacancy-list {
  margin-top: 0;
}

.messages-screen h1 {
  margin: 0 0 14px;
  color: #161616;
  font-size: 22px;
  line-height: 28px;
  font-weight: 800;
}

.message-tabs {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 18px;
  padding: 4px;
  border-radius: 14px;
  background: #eef0f4;
}

.message-tabs button {
  min-height: 38px;
  border: 0;
  border-radius: 11px;
  background: transparent;
  color: #7a7f87;
  font-size: 14px;
  font-weight: 700;
}

.message-tabs button.is-active {
  background: #fff;
  color: #161616;
  box-shadow: 0 3px 10px rgba(20, 24, 30, 0.08);
}

.messages-placeholder {
  min-height: calc(100vh - 230px);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 14px;
  padding: 28px 24px 96px;
  text-align: center;
}

.messages-placeholder-icon {
  width: 68px;
  height: 68px;
  color: #d4d9e1;
}

.messages-placeholder-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.messages-placeholder-lines {
  fill: none;
  stroke: #fff;
  stroke-width: 4;
  stroke-linecap: round;
}

.messages-placeholder-badge {
  fill: #d4d9e1;
  opacity: 0.8;
}

.messages-placeholder-check {
  fill: none;
  stroke: #fff;
  stroke-width: 3.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.messages-placeholder p {
  max-width: 280px;
  margin: 0;
  color: #8d9299;
  font-size: 15px;
  line-height: 21px;
}

.favorites-empty {
  min-height: calc(100vh - 180px);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 14px;
  padding: 28px 24px 96px;
  text-align: center;
}

.favorites-empty-icon {
  width: 68px;
  height: 68px;
  color: #d4d9e1;
}

.favorites-empty-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  fill: currentColor;
}

.favorites-empty-spark {
  fill: none;
  stroke: currentColor;
  stroke-width: 4;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.78;
}

.favorites-empty p {
  max-width: 280px;
  margin: 0;
  color: #8d9299;
  font-size: 15px;
  line-height: 21px;
}

.callback-list {
  display: grid;
  gap: 18px;
}

.messages-read-footer {
  position: fixed;
  left: 50%;
  bottom: 0;
  z-index: 120;
  width: min(100%, 460px);
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
  transform: translateX(-50%);
  background: rgba(255, 255, 255, 0.94);
  border-top: 1px solid #edf0f4;
}

.restojob-native-app .messages-read-footer,
.restojob-ios-app .messages-read-footer {
  position: fixed !important;
  left: 50% !important;
  right: auto !important;
  bottom: 0 !important;
  z-index: 30 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  width: min(100%, 460px) !important;
  padding: 8px 14px calc(8px + env(safe-area-inset-bottom, 0px)) !important;
  transform: translateX(-50%) !important;
  border-radius: 0;
}

.phone.has-mobile-message-action .content.is-account-section-content > .messages-screen {
  padding-bottom: 80px;
}

.restojob-android-app .phone.has-mobile-message-action .content.is-account-section-content > .messages-screen {
  padding-bottom: 76px;
}

.restojob-android-app .phone.has-mobile-message-action > .messages-read-footer {
  bottom: 4px !important;
  padding: 8px 14px !important;
  background: transparent;
  border-top: 0;
}

.messages-read-footer button {
  width: 100%;
  min-height: 48px;
  border: 0;
  border-radius: 8px;
  background: #222831;
  color: #fff;
  font-size: 15px;
  line-height: 18px;
  font-weight: 500;
}

.callback-card {
  display: grid;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #e8e7ed;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
}

.callback-vacancy-card {
  display: block;
}

.callback-vacancy-card .vacancy-card {
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.callback-vacancy-card .vacancy-card-main {
  padding: 14px;
}

  .callback-vacancy-card .vacancy-card-cover,
  .callback-vacancy-card .vacancy-feature-tags {
    display: none;
  }

  @media (min-width: 900px) {
  :root {
    --desktop-sidebar: 260px;
    --desktop-content-max: 1120px;
  }

  body {
    background: #fafafa;
  }

  .phone:not(.auth-phone) {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    background: #fafafa;
  }

  .phone:not(.auth-phone) .topbar {
    display: none;
  }

  .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    max-width: none;
    min-height: 100dvh;
    margin-left: var(--desktop-sidebar);
    padding: 40px 40px 64px;
    background: #fafafa;
  }

  .phone:not(.auth-phone) .content > .m-start {
    display: none;
  }

  .phone:not(.auth-phone) .content > .recommendation-head,
  .phone:not(.auth-phone) .content > .pills,
  .phone:not(.auth-phone) .content > .searchbar,
  .phone:not(.auth-phone) .content > .list-head,
  .phone:not(.auth-phone) .content > .recommendation-empty,
  .phone:not(.auth-phone) .content > .brand-month,
  .phone:not(.auth-phone) .content > .near-zone-summary,
  .phone:not(.auth-phone) .content > .recommendation-mark-viewed,
  .phone:not(.auth-phone) .content > .rj-page-skeleton,
  .phone:not(.auth-phone) .content > .more {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .phone:not(.auth-phone) .content > .recommendation-head {
    padding: 0 0 16px;
    background: transparent;
  }

  .phone:not(.auth-phone) .rj-skeleton-head {
    padding: 0 0 16px;
  }

  .phone:not(.auth-phone) .content > .pills {
    padding-left: 0;
    padding-right: 0;
  }

  .phone:not(.auth-phone) .rj-skeleton-pills,
  .phone:not(.auth-phone) .list-loader {
    padding-left: 0;
    padding-right: 0;
  }

  .phone:not(.auth-phone) .content > .searchbar {
    margin-bottom: 18px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout {
    width: min(100%, 1168px);
    max-width: 1168px;
    display: grid;
    grid-template-columns: minmax(0, 680px) minmax(360px, 1fr);
    align-items: start;
    gap: 24px;
    margin: 0 auto;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .desktop-catalog-results {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open .desktop-catalog-results {
    display: none;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    margin: 0;
    padding: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .more {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .phone:not(.auth-phone) .content > .rj-skeleton-desktop-layout {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .phone:not(.auth-phone) .rj-skeleton-desktop-layout .rj-feed-skeleton {
    width: 100%;
  }

  .rj-skeleton-desktop-side {
    position: sticky;
    top: 24px;
    display: grid;
    gap: 14px;
    min-height: 360px;
    padding: 18px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .rj-skeleton-side-title {
    width: 72%;
    height: 22px;
    border-radius: 8px;
  }

  .rj-skeleton-side-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }

  .rj-skeleton-card-main {
    grid-template-columns: minmax(0, 1fr) 96px;
  }

  .rj-skeleton-map {
    height: 640px;
    min-height: 640px;
    border-radius: 18px;
  }

  .rj-detail-loading-skeleton {
    padding-bottom: 0;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .rj-skeleton-detail-cover {
    height: 260px;
  }

  .rj-skeleton-detail-card {
    margin-top: 0;
    padding: 24px;
    border-radius: 0;
  }

  .rj-skeleton-detail-actions-panel {
    display: grid;
    align-content: start;
    gap: 12px;
  }

  .rj-skeleton-detail-section {
    padding: 22px 24px 24px;
  }

  .rj-skeleton-detail-map {
    height: 320px;
    min-height: 320px;
    border-radius: 16px;
  }

  .rj-skeleton-detail-actions {
    position: static;
    width: 100%;
    max-width: none;
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .desktop-vacancy-map-panel {
    position: sticky;
    top: 40px;
    display: block;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open .desktop-vacancy-map-panel {
    position: static;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-card {
    position: relative;
    min-height: 224px;
    height: 224px;
    max-height: 224px;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #eef1f5;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-card.is-live {
    height: calc(100dvh - 80px);
    min-height: 520px;
    max-height: none;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-head {
    min-height: 58px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 0 14px 0 18px;
    border-bottom: 1px solid rgba(226, 229, 235, 0.86);
    background: rgba(255, 255, 255, 0.94);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-head strong {
    color: #161616;
    font-size: 17px;
    line-height: 20px;
    font-weight: 800;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-head button {
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 0 13px;
    border: 1px solid #e2e5eb;
    border-radius: 999px;
    background: #fff;
    color: #161616;
    cursor: pointer;
    font-size: 13px;
    line-height: 16px;
    font-weight: 700;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-head button svg {
    width: 18px;
    height: 18px;
    color: var(--m-brand);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-canvas {
    height: 100%;
    min-height: 0;
  }

  .phone:not(.auth-phone) .vacancy-map-canvas .ymaps-2-1-79-gototaxi {
    display: none !important;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-card.is-preview {
    grid-template-rows: minmax(0, 1fr);
    background: #fff;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview {
    position: relative;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 172px;
    align-items: center;
    gap: 16px;
    padding: 16px;
    background: #fff;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-static {
    position: relative;
    align-self: stretch;
    min-height: 120px;
    overflow: hidden;
    border: 1px solid #dfe5ec;
    border-radius: 14px;
    background:
      linear-gradient(90deg, rgba(205, 218, 229, 0.58) 1px, transparent 1px),
      linear-gradient(rgba(205, 218, 229, 0.5) 1px, transparent 1px),
      #f7fafc;
    background-size: 44px 44px;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-static::before,
  .phone:not(.auth-phone) .desktop-vacancy-map-static::after {
    content: "";
    position: absolute;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-static::before {
    width: 260px;
    height: 18px;
    left: -34px;
    top: 58px;
    transform: rotate(-18deg);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-static::after {
    width: 180px;
    height: 14px;
    right: -36px;
    bottom: 34px;
    transform: rotate(24deg);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-road {
    position: absolute;
    z-index: 1;
    display: block;
    border-radius: 999px;
    background: #ffd9a7;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-road.road-main {
    width: 280px;
    height: 8px;
    left: -42px;
    top: 76px;
    transform: rotate(-18deg);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-road.road-side {
    width: 180px;
    height: 7px;
    right: -28px;
    top: 38px;
    transform: rotate(32deg);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-road.road-branch {
    width: 150px;
    height: 6px;
    left: 72px;
    bottom: 28px;
    transform: rotate(19deg);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview-icon {
    width: 58px;
    height: 58px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff1f1;
    color: var(--m-brand);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview-icon svg {
    width: 30px;
    height: 30px;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-pin {
    position: absolute;
    z-index: 4;
    left: 50%;
    top: 50%;
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: rgba(255, 241, 241, 0.95);
    color: var(--m-brand);
    transform: translate(-50%, -50%);
    box-shadow: 0 8px 20px rgba(251, 78, 78, 0.18);
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-pin svg {
    width: 24px;
    height: 24px;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview-content {
    position: relative;
    z-index: 2;
    display: grid;
    justify-items: start;
    gap: 7px;
    text-align: left;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview strong {
    color: #161616;
    font-size: 18px;
    line-height: 22px;
    font-weight: 800;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview span {
    color: #6f7680;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-preview button {
    min-height: 38px;
    margin-top: 6px;
    padding: 0 15px;
    border: 0;
    border-radius: 999px;
    background: var(--m-brand);
    color: #fff;
    cursor: pointer;
    font-size: 14px;
    line-height: 18px;
    font-weight: 800;
  }

  .phone:not(.auth-phone) .desktop-vacancy-map-empty {
    position: absolute;
    left: 18px;
    right: 18px;
    top: 76px;
    padding: 14px;
    border: 1px solid #e2e5eb;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    color: #6f7680;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
  }

  .phone:not(.auth-phone) .floating-map-button {
    display: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-list {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0 auto;
    padding: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list > .vacancy-maximum-group {
    grid-column: 1 / -1;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card {
    min-height: 100%;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-cover {
    height: 168px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list > .vacancy-maximum-group {
    grid-column: auto;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card:not(.has-cover) {
    min-height: 150px;
    padding-top: 22px;
    padding-bottom: 22px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card.list-item-button:hover {
    border-color: #9aa4b2;
    box-shadow: 0 10px 28px rgba(30, 40, 58, 0.12);
    background-color: #fff;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .desktop-row-spacer {
    display: none;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card.has-cover {
    border: 1px solid #ffbc1f;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card.has-cover.list-item-button:hover {
    border-color: #f0a800;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card.has-cover .vacancy-card-cover {
    margin: 0 -14px 14px;
    border-radius: 16px 16px 0 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card > .vacancy-card-main-mobile,
  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-mobile {
    display: none;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card > .vacancy-card-main-desktop,
  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-desktop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: stretch;
    flex: 1 1 auto;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card:not(.has-cover) > .vacancy-card-main-desktop {
    min-height: 106px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card .item-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-desktop-info {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: stretch;
    gap: 18px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-desktop-info > .grow {
    display: flex;
    min-height: 96px;
    flex-direction: column;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-desktop-logo {
    display: grid;
    place-items: start center;
    min-width: 0;
    padding: 0 10px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-logo,
  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
    margin: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-desktop-side {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-feature-tags {
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    justify-self: end;
    gap: 9px;
    margin-top: 0;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-card-details {
    margin-top: auto;
    padding-top: 13px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-publication-date {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: auto;
    min-width: 0;
    margin-top: 2px;
    transform: none;
    text-align: right;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .catalog-vacancy-list .vacancy-card-cover {
    height: 168px;
  }

  .phone:not(.auth-phone) .tabbar {
    display: none;
  }

  .desktop-tabbar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 92;
    width: var(--desktop-sidebar);
    min-width: var(--desktop-sidebar);
    max-width: var(--desktop-sidebar);
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 12px 20px 14px;
    border: 0;
    border-right: 1px solid #e7ebf1;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    overflow-y: auto;
  }

  .desktop-tabbar::before {
    content: none;
  }

  .desktop-sidebar-head {
    display: grid;
    gap: 4px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eff1f4;
  }

  .desktop-sidebar-logo {
    display: inline-flex;
    justify-self: center;
    justify-content: center;
    align-items: center;
    width: 100%;
    min-height: auto;
  }

  .desktop-sidebar-logo img {
    transition: transform 120ms ease, opacity 120ms ease;
    transform-origin: center;
    width: 195px;
    height: auto;
    display: block;
  }

  .desktop-sidebar-logo:active img {
    transform: scale(0.97);
    opacity: 0.78;
  }

  @media (prefers-reduced-motion: reduce) {
    .desktop-sidebar-logo img { transition: none; }
    .desktop-sidebar-logo:active img { transform: none; }
  }

  .desktop-sidebar-login,
  .desktop-sidebar-city {
    min-height: 38px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 1px solid #edf0f4;
    border-radius: 12px;
    background: #fff;
    color: #161616;
    font: inherit;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
  }

  .desktop-sidebar-login {
    min-height: 62px;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 14px;
    cursor: pointer;
    transition: border-color 160ms ease;
  }

  .desktop-sidebar-login:hover {
    border-color: #9aa4b2;
  }

  .desktop-sidebar-city {
    min-height: 24px;
    display: block;
    padding: 0;
    border: 0;
    margin-top: 0;
    margin-bottom: 8px;
    background: transparent;
    color: #626a75;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    position: relative;
  }

  .desktop-sidebar-login-icon,
  .desktop-sidebar-city-icon {
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    color: #161616;
  }

  .desktop-sidebar-login-icon {
    width: 30px;
    height: 30px;
  }

  .desktop-sidebar-login-icon svg {
    width: 30px;
    height: 30px;
  }

  .desktop-sidebar-login-text {
    display: block;
  }

  .desktop-sidebar-city-icon svg {
    width: 20px;
    height: 20px;
  }

  .desktop-sidebar-city-icon {
    width: 16px;
    height: 16px;
    color: #8d9299;
  }

  .desktop-sidebar-city-icon svg {
    width: 16px;
    height: 16px;
  }

  .desktop-sidebar-city select {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 500;
    appearance: none;
  }

  .desktop-tabbar-title {
    display: none;
    margin: 0 0 8px 2px;
    color: #8d9299;
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .desktop-tabbar button[data-job-tab] {
    min-width: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    text-align: left;
    cursor: pointer;
    font-size: 13px;
    line-height: 16px;
    font-weight: 400;
  }

  .desktop-tabbar button[data-job-tab].is-active {
    background: #f2f4f7;
    color: #161616;
    font-weight: 700;
  }

  .desktop-tabbar button[data-job-tab]:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.55);
  }

  .desktop-tabbar .tab-icon-slot {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: grid;
    place-items: center;
  }

  .desktop-tabbar .tab-icon {
    width: 24px;
    height: 24px;
    opacity: 1;
    filter: brightness(0) saturate(100%) invert(81%) sepia(6%) saturate(128%) hue-rotate(179deg) brightness(96%) contrast(86%);
  }

  .desktop-tabbar button[data-job-tab].is-active .tab-icon {
    filter: brightness(0) saturate(100%);
  }

  .desktop-tabbar .tab-label {
    overflow: hidden;
    color: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .desktop-sidebar-city {
    padding: 0;
  }

  .desktop-sidebar-city-trigger {
    display: flex;
    grid-template-columns: none;
    justify-content: flex-start;
    gap: 4px;
  }

  .desktop-sidebar-city-current {
    flex: 0 1 auto;
    max-width: calc(100% - 24px);
  }

  .desktop-sidebar-city-chevron {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: grid;
    place-items: center;
    line-height: 1;
  }

  .desktop-sidebar-city-chevron svg {
    width: 18px;
    height: 18px;
  }

  .side-menu {
    display: none;
  }

  .floating-map-button {
    right: 48px;
    bottom: 38px;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) {
    height: auto;
    min-height: 100dvh;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    height: auto;
    min-height: 100dvh;
    margin-left: var(--desktop-sidebar);
    padding: 40px 40px 64px;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-layout {
    min-height: calc(100dvh - 104px);
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .vacancy-map-screen {
    width: 100%;
    max-width: none;
    height: calc(100dvh - 104px);
    min-height: 0;
    margin: 0;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    overflow: hidden;
    background: #fafafa;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .map-pills {
    display: none;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 4;
    width: auto;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 0 14px 0 16px;
    border: 1px solid #e2e5eb;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.94);
    color: #161616;
    cursor: pointer;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    transition: border-color 160ms ease, background-color 160ms ease;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-close b {
    margin-top: -1px;
    font-size: 22px;
    line-height: 1;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-close:hover {
    border-color: #cfd5df;
    background: #f2f4f7;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .map-card-drawer {
    right: auto;
    width: min(560px, calc(100% - 40px));
    padding: 0;
    left: 50%;
    top: 72px;
    bottom: auto;
    transform: translateX(-50%);
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .map-card-drawer .map-vacancy-card {
    width: 100%;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder {
    position: relative;
    min-height: calc(100dvh - 104px);
    padding: 32px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    color: #626a75;
    text-align: left;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder-callout {
    position: absolute;
    top: clamp(245px, 29vh, 310px);
    right: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder-icon {
    width: 36px;
    height: 36px;
    flex: 0 0 36px;
    display: grid;
    place-items: center;
    border-radius: 0;
    background: transparent;
    color: var(--m-brand);
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder-icon svg {
    width: 32px;
    height: 32px;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder strong {
    display: block;
    color: #161616;
    font-size: 17px;
    line-height: 18px;
    font-weight: 400;
    text-align: left;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder strong span {
    display: block;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder-arrow {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: grid;
    place-items: center;
    color: #b7bdc6;
  }

  .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .desktop-vacancy-map-placeholder-arrow svg {
    width: 32px;
    height: 32px;
  }
}

.desktop-tabbar .tab-icon.tab-icon-outline {
  width: 24px;
  height: 24px;
  color: #b9bdc3;
  filter: none;
}

.desktop-tabbar .tab-icon.tab-icon-kitchen {
  transform: scale(1.12);
}

.desktop-tabbar .tab-icon.tab-icon-recommendations {
  stroke-width: 1.8;
}

.desktop-tabbar button[data-job-tab].is-active .tab-icon.tab-icon-outline {
  color: #161616;
  filter: none;
}

.desktop-sections-right-panel {
  display: none;
}

.desktop-site-footer {
  display: none;
}

.initial-vacancy-skeleton-desktop {
  display: none;
}

.desktop-vacancy-map-close {
  display: none;
}

@media (min-width: 900px) {
  .phone.desktop-sections-right-phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    margin-left: var(--desktop-sidebar);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) > .desktop-tabbar button[data-job-tab],
  .phone.desktop-sections-right-phone:not(.auth-phone) > .desktop-tabbar .desktop-tabbar-title {
    display: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-layout {
    width: min(100%, 1180px);
    max-width: 1180px;
    display: grid;
    grid-template-columns: minmax(0, 760px) 320px;
    align-items: start;
    gap: 24px;
    margin: 0 auto;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 18px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .category-pills,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .searchbar,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .list-head,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .seo-vacancy-catalog,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .seo-vacancy-catalog-feed-head,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .recommendation-mark-viewed,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .more {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .category-pills {
    flex-wrap: wrap;
    padding-left: 0;
    padding-right: 0;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list {
    width: 100%;
    max-width: none;
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
    margin: 0;
    padding: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list > .vacancy-maximum-group {
    grid-column: auto;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .desktop-row-spacer {
    display: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card:not(.has-cover) {
    min-height: 150px;
    padding-top: 22px;
    padding-bottom: 22px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.list-item-button:hover {
    border-color: #9aa4b2;
    box-shadow: 0 10px 28px rgba(30, 40, 58, 0.12);
    background-color: #fff;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.has-cover {
    border: 1px solid #ffbc1f;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.has-cover.list-item-button:hover {
    border-color: #f0a800;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.has-cover .vacancy-card-cover {
    height: 168px;
    margin: 0 -14px 14px;
    border-radius: 16px 16px 0 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card > .vacancy-card-main-mobile,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-mobile {
    display: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card > .vacancy-card-main-desktop,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-desktop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: stretch;
    flex: 1 1 auto;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card:not(.has-cover) > .vacancy-card-main-desktop {
    min-height: 106px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card .item-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-desktop-info {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: stretch;
    gap: 18px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-desktop-info > .grow {
    display: flex;
    min-height: 96px;
    flex-direction: column;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-desktop-logo {
    display: grid;
    place-items: start center;
    min-width: 0;
    padding: 0 10px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-logo,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
    margin: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-desktop-side {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-feature-tags {
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    justify-self: end;
    gap: 9px;
    margin-top: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card-main-desktop .vacancy-card-details {
    margin-top: auto;
    padding-top: 13px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-publication-date {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: auto;
    min-width: 0;
    margin-top: 2px;
    transform: none;
    text-align: right;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog {
    display: grid;
    gap: 18px;
    padding: 28px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-heading {
    display: flex;
    align-items: flex-start;
    gap: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-heading > span {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #f2f4f7;
    color: var(--m-brand);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-heading svg {
    width: 24px;
    height: 24px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-heading h1 {
    margin: 0;
    color: #161616;
    font-size: 26px;
    line-height: 31px;
    font-weight: 700;
    letter-spacing: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-heading p {
    margin: 8px 0 0;
    color: #626a75;
    font-size: 15px;
    line-height: 21px;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-card {
    min-width: 0;
    padding: 18px;
    border: 1px solid #e2e5eb;
    border-radius: 14px;
    background: #fafafa;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-card-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #161616;
    text-decoration: none;
    font-size: 17px;
    line-height: 22px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-card-title .tab-icon-slot {
    width: 26px;
    height: 26px;
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-links a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid #e2e5eb;
    border-radius: 999px;
    background: #fff;
    color: #3f4652;
    text-decoration: none;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    transition: border-color 160ms ease, color 160ms ease, background-color 160ms ease;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-links a:hover,
  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-card-title:hover {
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-links a:hover {
    border-color: #cfd5df;
    background: #f2f4f7;
  }

  .seo-vacancy-catalog-accessible-title { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-feed-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 4px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-feed-head :is(h1, h2) {
    margin: 0;
    color: #161616;
    font-size: 22px;
    line-height: 27px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-feed-head a {
    color: #626a75;
    text-decoration: none;
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog-feed-head a:hover {
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel {
    align-self: stretch;
    position: relative;
    display: block;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-stack {
    display: grid;
    gap: 12px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-card {
    display: grid;
    gap: 14px;
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel.is-stuck {
    min-height: var(--desktop-sections-right-height, 1px);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel.is-stuck .desktop-sections-right-stack {
    position: fixed;
    left: var(--desktop-sections-right-left);
    top: 40px;
    width: var(--desktop-sections-right-width);
    z-index: 20;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav {
    display: grid;
    gap: 6px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button {
    min-height: 48px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    cursor: pointer;
    text-align: left;
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button.is-active {
    background: rgba(242, 244, 247, 0.72);
    font-weight: 600;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button.has-caption {
    min-height: 66px;
    align-items: flex-start;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.65);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-copy {
    min-width: 0;
    display: grid;
    gap: 3px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-copy small {
    color: #626a75;
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-icon-slot {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: grid;
    place-items: center;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-icon {
    width: 24px;
    height: 24px;
    color: #b9bdc3;
    filter: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button.is-active .tab-icon {
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories {
    padding-top: 14px;
    border-top: 1px solid #eff1f4;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .category-pills {
    width: 100%;
    max-width: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .pill {
    min-height: 38px;
    padding: 0 14px;
    font-size: 13px;
    line-height: 17px;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .pill:hover:not(.is-active) {
    border-color: #9aa4b2;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card {
    gap: 16px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-inline {
    padding-top: 16px;
    border-top: 1px solid #eff1f4;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-head {
    padding: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-head h1 {
    font-size: 15px;
    line-height: 19px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-head p {
    max-width: none;
    color: #626a75;
    font-size: 13px;
    line-height: 18px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills {
    width: 100%;
    max-width: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0 0;
    padding: 0;
    background: transparent;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill {
    min-height: 38px;
    padding: 0 14px;
    font-size: 13px;
    line-height: 17px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .near-zone-summary,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-mark-viewed {
    width: 100%;
    max-width: none;
    margin: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .near-zone-summary {
    margin-top: 10px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .near-zone-preview {
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-mark-viewed {
    min-height: 38px;
    font-size: 13px;
    line-height: 17px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .recommendation-mark-viewed {
    min-height: 44px;
    margin-top: -4px;
    margin-bottom: 0;
    border-color: transparent;
    background: #222831;
    color: #fff;
    font-weight: 500;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .recommendation-mark-viewed.is-floating {
    position: fixed;
    left: var(--desktop-recommendation-action-left);
    bottom: 24px;
    z-index: 25;
    width: var(--desktop-recommendation-action-width);
    margin: 0;
    box-shadow: 0 10px 28px rgba(30, 40, 58, 0.16);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .recommendation-mark-viewed:hover {
    border-color: transparent;
    background: #171c23;
    color: #fff;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .pill-search {
    width: 42px;
    min-width: 42px;
    padding: 0;
    font-size: 22px;
    line-height: 1;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .searchbar {
    width: 100%;
    max-width: none;
    height: 44px;
    grid-template-columns: 28px 1fr;
    margin: 10px 0 0;
    padding: 0 12px;
    border-radius: 12px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .searchbar.is-open {
    max-height: 44px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .searchbar span {
    font-size: 16px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-subcategories .searchbar input {
    font-size: 13px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview {
    width: 100%;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid #e2e5eb;
    border-radius: 14px;
    background: #fff;
    color: #161616;
    cursor: pointer;
    text-align: left;
    box-shadow: 0 8px 24px rgba(20, 28, 40, 0.08);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview:hover {
    border-color: #9aa4b2;
    box-shadow: 0 10px 26px rgba(20, 28, 40, 0.12);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .messages-screen {
    min-height: 0;
    padding: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .messages-screen h1 {
    margin: 0 0 14px;
    font-size: 22px;
    line-height: 28px;
    font-weight: 800;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .desktop-messages-screen h1 {
    margin-bottom: 32px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-list {
    gap: 18px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-results {
    gap: 18px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card {
    min-height: 150px;
    display: flex;
    flex-direction: column;
    padding: 22px 14px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-main-mobile {
    display: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-main-desktop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: stretch;
    flex: 1 1 auto;
    min-height: 106px;
    padding: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-desktop-info {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: stretch;
    gap: 18px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-desktop-info > .grow {
    display: flex;
    min-height: 96px;
    flex-direction: column;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-desktop-logo {
    display: grid;
    place-items: start center;
    min-width: 0;
    padding: 0 10px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-main-desktop .vacancy-logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
    margin: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-desktop-side {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-main-desktop .vacancy-feature-tags {
    display: flex;
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    justify-self: end;
    gap: 9px;
    margin-top: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-main-desktop .vacancy-publication-date {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: auto;
    min-width: 0;
    margin-top: 2px;
    transform: none;
    text-align: right;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .vacancy-card-details {
    margin-top: auto;
    padding-top: 13px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-vacancy-card .item-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .messages-read-footer {
    position: static;
    width: 100%;
    margin-top: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    transform: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions {
    gap: 10px;
    padding: 12px 14px 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions a {
    min-height: 42px;
    gap: 8px;
    border-radius: 10px;
    font-size: 15px;
    line-height: 19px;
    font-weight: 500;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions svg {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-card {
    gap: 0;
    margin-top: 42px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card h2 {
    margin: 0 0 12px;
    font-size: 18px;
    line-height: 23px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-card .message-tabs {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
    margin: 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-card .message-tabs button {
    min-height: 48px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 10px 12px;
    border-radius: 12px;
    color: #626a75;
    text-align: left;
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card .message-tabs button {
    justify-content: space-between;
    gap: 12px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card .message-tabs button span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card .message-tabs button b {
    min-width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #eef1f5;
    color: #626a75;
    font-size: 12px;
    line-height: 14px;
    font-weight: 600;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card .message-tabs button.is-active b {
    background: #fff;
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-card .message-tabs button.is-active {
    background: rgba(242, 244, 247, 0.72);
    color: #161616;
    font-weight: 600;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-card .message-tabs button:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.65);
    color: #161616;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-static {
    width: 46px;
    height: 46px;
    min-height: 0;
    display: inline-grid;
    place-items: center;
    border-radius: 12px;
    background: #f0f5fb;
    color: #ff4646;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-static::before,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-static::after,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-road {
    display: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-static::before {
    width: 270px;
    height: 17px;
    left: -32px;
    top: 62px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-static::after {
    width: 192px;
    height: 13px;
    right: -36px;
    bottom: 34px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-road.road-main {
    width: 294px;
    height: 8px;
    left: -44px;
    top: 80px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-road.road-side {
    width: 184px;
    height: 7px;
    right: -28px;
    top: 42px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-road.road-branch {
    width: 154px;
    height: 6px;
    left: 74px;
    bottom: 28px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-pin {
    position: static;
    width: 24px;
    height: 24px;
    transform: none;
    background: transparent;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview .desktop-vacancy-map-pin svg {
    width: 24px;
    height: 24px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-content {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-content strong {
    font-size: 15px;
    line-height: 19px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-content span {
    overflow: hidden;
    color: #6f7680;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer {
    width: calc(100% - var(--desktop-sidebar));
    display: block;
    margin-left: var(--desktop-sidebar);
    padding: 14px 40px 34px;
    background: #fafafa;
    color: #626a75;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-inner {
    width: min(100%, 1180px);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 24px;
    margin: 0 auto;
    padding-top: 18px;
    border-top: 1px solid #e5e8ee;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer a {
    color: inherit;
    text-decoration: none;
    transition: color 160ms ease, background-color 160ms ease;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer a:hover {
    color: #4b5563;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer a.desktop-site-footer-logo {
    display: inline-block;
    color: #616a75;
    font-size: 22px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-brand p {
    margin: 10px 0 0;
    font-size: 13px;
    line-height: 20px;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-col a {
    color: #6b7280;
    overflow-wrap: anywhere;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-col {
    display: grid;
    align-content: start;
    gap: 9px;
    min-width: 0;
    font-size: 13px;
    line-height: 17px;
    font-weight: 400;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout {
    overflow: visible;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel {
    position: relative !important;
    top: auto !important;
    align-self: start;
    width: auto;
    z-index: 4;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel.is-stuck {
    min-height: var(--desktop-vacancy-map-height, 224px);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel.is-stuck .desktop-vacancy-map-card {
    position: fixed;
    left: var(--desktop-vacancy-map-left);
    top: 24px;
    width: var(--desktop-vacancy-map-width);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open > .desktop-vacancy-map-panel {
    position: static !important;
  }
}

@media (min-width: 900px) {
  .phone:not(.auth-phone) .content > .desktop-catalog-layout {
    overflow: visible;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel {
    position: sticky !important;
    top: 24px !important;
    align-self: start;
    z-index: 4;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open > .desktop-vacancy-map-panel {
    position: static !important;
  }
}
@media (min-width: 900px) {
  :root {
    --desktop-sidebar: 236px;
  }

  .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    margin-left: var(--desktop-sidebar);
  }

  .phone:not(.auth-phone) .content > .m-start {
    display: none;
  }

  .desktop-tabbar {
    width: var(--desktop-sidebar);
    padding: 20px 12px 20px 14px;
  }

  .desktop-sidebar-head {
    gap: 4px;
    padding-bottom: 16px;
  }

  .desktop-sidebar-logo {
    justify-self: center;
    justify-content: center;
    width: 100%;
    min-height: auto;
  }

  .desktop-sidebar-logo img {
    width: 195px;
  }

  .desktop-sidebar-login,
  .desktop-sidebar-city {
    min-height: 38px;
    grid-template-columns: 22px minmax(0, 1fr);
  }

  .desktop-sidebar-login {
    min-height: 62px;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 14px;
  }

  .desktop-sidebar-city {
    min-height: 24px;
    display: block;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 6px;
    padding: 0 7px;
    border: 0;
    margin-top: 0;
    margin-bottom: 8px;
    font-size: 13px;
    line-height: 17px;
  }

  .desktop-sidebar-login-icon,
  .desktop-sidebar-city-icon {
    width: 20px;
    height: 20px;
  }

  .desktop-sidebar-login-icon,
  .desktop-sidebar-login-icon svg {
    width: 30px;
    height: 30px;
  }

  .desktop-sidebar-city-icon svg {
    width: 20px;
    height: 20px;
  }

  .desktop-sidebar-city-icon,
  .desktop-sidebar-city-icon svg {
    width: 16px;
    height: 16px;
  }

  .desktop-tabbar-title {
    margin-left: 2px;
  }

  .desktop-tabbar button[data-job-tab] {
    min-height: 46px;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 11px;
    padding: 0 10px;
    font-size: 14px;
    line-height: 18px;
    font-weight: 400;
  }

  .desktop-tabbar .tab-icon-slot,
  .desktop-tabbar .tab-icon {
    width: 20px;
    height: 20px;
  }
}

@media (min-width: 900px) {
  :root {
    --desktop-sidebar: 300px;
    --desktop-content-max: 1120px;
  }

  body {
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) .topbar {
    position: sticky;
    top: 0;
    width: calc(100% - var(--desktop-sidebar));
    margin-left: var(--desktop-sidebar);
    padding: 0 40px;
    border-bottom: 1px solid #e5e8ee;
    box-shadow: 0 8px 24px rgba(20, 24, 30, 0.06);
  }

  .phone:not(.auth-phone) .header-icon.is-hamburger,
  .phone:not(.auth-phone) .header-spacer {
    visibility: hidden;
    pointer-events: none;
  }

  .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    max-width: none;
    margin-left: var(--desktop-sidebar);
    padding: 28px 40px 64px;
  }

  .phone:not(.auth-phone) .content > .recommendation-head,
  .phone:not(.auth-phone) .content > .pills,
  .phone:not(.auth-phone) .content > .searchbar,
  .phone:not(.auth-phone) .content > .list-head,
  .phone:not(.auth-phone) .content > .recommendation-empty,
  .phone:not(.auth-phone) .content > .brand-month,
  .phone:not(.auth-phone) .content > .near-zone-summary,
  .phone:not(.auth-phone) .content > .recommendation-mark-viewed,
  .phone:not(.auth-phone) .content > .more {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .phone:not(.auth-phone) .content > .recommendation-head {
    padding: 0 0 16px;
    background: transparent;
  }

  .phone:not(.auth-phone) .content > .pills {
    padding-left: 0;
    padding-right: 0;
  }

  .phone:not(.auth-phone) .content > .searchbar {
    margin-bottom: 18px;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout .desktop-vacancy-map-panel {
    position: sticky;
    top: 40px;
    align-self: start;
  }

  .phone:not(.auth-phone) .content > .vacancy-list {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0 auto;
    padding: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list > .vacancy-maximum-group {
    grid-column: 1 / -1;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card {
    min-height: 100%;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-cover {
    height: 168px;
  }

  .phone:not(.auth-phone) .tabbar {
    display: none;
  }

  .desktop-tabbar {
    position: fixed;
    left: 20px;
    top: 96px;
    z-index: 92;
    width: 260px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 16px;
    border: 1px solid #e7ebf1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(20, 24, 30, 0.08);
  }

  .desktop-tabbar.is-account {
    top: auto;
    bottom: 24px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .desktop-tabbar::before {
    content: none;
    margin: 0 0 8px;
    color: #8d9299;
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .desktop-tabbar button[data-job-tab] {
    min-width: 0;
    min-height: 46px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    text-align: left;
    font-size: 14px;
    line-height: 18px;
    font-weight: 400;
  }

  .desktop-tabbar button[data-job-tab].is-active {
    background: #f2f4f7;
    color: #161616;
    font-weight: 700;
  }

  .desktop-tabbar button[data-job-tab]:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.55);
  }

  .desktop-tabbar .tab-icon-slot {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
  }

  .desktop-tabbar .tab-icon {
    width: 25px;
    height: 25px;
  }

  .desktop-tabbar .tab-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .side-menu {
    inset: 0 auto 0 0;
    width: var(--desktop-sidebar);
    pointer-events: auto;
  }

  .side-menu-backdrop {
    display: none;
  }

  .side-menu-panel {
    width: var(--desktop-sidebar);
    padding: 24px 20px 350px;
    border-right: 1px solid #e7ebf1;
    box-shadow: none;
    transform: translateX(0);
    overflow-y: auto;
  }

  .side-menu.is-open .side-menu-panel {
    box-shadow: none;
  }

  .side-menu-profile {
    grid-template-columns: 58px 1fr;
    min-height: 58px;
    gap: 14px;
  }

  .side-menu-avatar {
    width: 58px;
    height: 58px;
  }

  .floating-map-button {
    right: 48px;
    bottom: 38px;
  }
}

@media (min-width: 900px) {
  .test-mode-notice {
    display: none;
  }

  .phone:not(.auth-phone) .content,
  .auth-content {
    min-height: 100dvh;
    display: block;
  }

  .phone:not(.desktop-sections-right-phone):not(.auth-phone) > .desktop-tabbar {
    display: none;
  }
}

@media (min-width: 900px) and (max-width: 1419px) {
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-layout {
    width: min(100%, 760px);
    max-width: 760px;
    grid-template-columns: minmax(0, 1fr);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel {
    display: none;
  }
}

@media (min-width: 900px) {
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-tabbar,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.list-item-button:hover,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results .catalog-vacancy-list .vacancy-card.has-cover.list-item-button:hover,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-card,
  .phone.desktop-sections-right-phone:not(.auth-phone) .seo-vacancy-catalog,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-map-preview:hover,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-card,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .messages-read-footer button,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .recommendation-mark-viewed.is-floating,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-sheet,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-card,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-work-item,
  .phone.desktop-sections-right-phone:not(.auth-phone) .resume-status,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel:not(:empty) {
    box-shadow: none;
  }
}

@media (min-width: 900px) {
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-edit-shell .desktop-resume-main {
    gap: 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main > .resume-edit-screen {
    min-height: 0;
    padding: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-card {
    padding: 24px;
    border-color: #e2e5eb;
    border-radius: 18px;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-card h1,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-work-title {
    margin: 0 0 18px;
    font-size: 22px;
    line-height: 28px;
    font-weight: 800;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-block {
    margin-top: 20px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-block:first-of-type {
    margin-top: 16px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-row {
    gap: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-work-zone-map {
    height: 340px;
    min-height: 300px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-avatar-edit {
    margin: 0 0 20px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-category-select {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    overflow: visible;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-category-select button {
    width: auto;
    min-height: 116px;
    flex-basis: auto;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-specializations-picker {
    gap: 9px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-districts-picker {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-specializations-picker button,
  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .selected-specialization-chip {
    min-height: 34px;
    border-radius: 999px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-footer {
    position: static;
    width: 100%;
    margin-top: 16px;
    padding: 0;
    transform: none;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-footer button {
    min-height: 48px;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-edit-server-error {
    margin: 14px 0 0;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-work-list {
    gap: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-work-item {
    padding: 18px;
    border-radius: 16px;
    box-shadow: none;
  }
}

@media (min-width: 900px) {
  .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-resume-screen {
    width: min(100%, 1180px);
    max-width: 1180px;
    min-height: 0;
    margin: 0 auto;
    padding: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-layout {
    display: grid;
    grid-template-columns: minmax(0, 760px) 320px;
    align-items: start;
    gap: 24px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main {
    min-width: 0;
    display: grid;
    gap: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-sheet {
    margin-top: 0;
    border-radius: 18px;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-card {
    padding: 20px 24px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-head {
    grid-template-columns: 34px minmax(0, 1fr) auto;
    padding-right: 150px;
    margin-bottom: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-action {
    position: absolute;
    top: 20px;
    right: 24px;
    width: max-content;
    min-height: 30px;
    margin: 0;
    gap: 6px;
    padding: 0 9px;
    border-radius: 7px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-action svg {
    width: 14px;
    height: 14px;
    flex-basis: 14px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-action span {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-main .resume-section-content dl div {
    grid-template-columns: minmax(160px, 38%) minmax(0, 1fr);
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card {
    position: sticky;
    top: 40px;
    min-width: 0;
    display: grid;
    justify-items: center;
    padding: 28px 20px 22px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
    text-align: center;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card .resume-header-avatar {
    width: 112px;
    height: 112px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card .resume-header-avatar-button {
    width: 112px;
    height: 112px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card .resume-header-avatar-placeholder svg {
    width: 74px;
    height: 74px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card h1 {
    max-width: 100%;
    margin: 18px 0 0;
    overflow-wrap: anywhere;
    color: #161616;
    font-size: 22px;
    line-height: 27px;
    font-weight: 800;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-city {
    margin-top: 5px;
    color: #8b929c;
    font-size: 14px;
    line-height: 18px;
    font-weight: 430;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-specs {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-specs span {
    max-width: 100%;
    padding: 8px 11px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #49515c;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
  }

}

@media (min-width: 900px) {
  :root {
    --desktop-sidebar: 300px;
    --desktop-content-max: 1120px;
  }

  html,
  body,
  #app {
    min-height: 100%;
    overflow-x: hidden;
  }

  body {
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) .topbar {
    position: sticky;
    top: 0;
    width: calc(100% - var(--desktop-sidebar));
    margin-left: var(--desktop-sidebar);
    padding: 0 40px;
    border-bottom: 1px solid #e5e8ee;
    box-shadow: 0 8px 24px rgba(20, 24, 30, 0.06);
  }

  .phone:not(.auth-phone) .header-icon.is-hamburger,
  .phone:not(.auth-phone) .header-spacer {
    visibility: hidden;
    pointer-events: none;
  }

  .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    max-width: none;
    margin-left: var(--desktop-sidebar);
    padding: 28px 40px 64px;
  }

  .phone:not(.auth-phone) .content > .recommendation-head,
  .phone:not(.auth-phone) .content > .pills,
  .phone:not(.auth-phone) .content > .searchbar,
  .phone:not(.auth-phone) .content > .list-head,
  .phone:not(.auth-phone) .content > .recommendation-empty,
  .phone:not(.auth-phone) .content > .brand-month,
  .phone:not(.auth-phone) .content > .near-zone-summary,
  .phone:not(.auth-phone) .content > .recommendation-mark-viewed,
  .phone:not(.auth-phone) .content > .more {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .phone:not(.auth-phone) .content > .recommendation-head {
    padding: 0 0 16px;
    background: transparent;
  }

  .phone:not(.auth-phone) .content > .pills {
    padding-left: 0;
    padding-right: 0;
  }

  .phone:not(.auth-phone) .content > .searchbar {
    margin-bottom: 18px;
  }

  .phone:not(.auth-phone) .content > .vacancy-list {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0 auto;
    padding: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list > .vacancy-maximum-group {
    grid-column: 1 / -1;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-cover {
    height: 168px;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card {
    min-height: 100%;
  }

  .phone:not(.auth-phone) .tabbar {
    display: none;
  }

  .desktop-tabbar {
    position: fixed;
    left: 20px;
    top: 96px;
    z-index: 92;
    width: 260px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 16px;
    border: 1px solid #e7ebf1;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 16px 34px rgba(20, 24, 30, 0.08);
  }

  .desktop-tabbar.is-account {
    top: auto;
    bottom: 24px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .desktop-tabbar::before {
    content: none;
    margin: 0 0 8px;
    color: #8d9299;
    font-size: 12px;
    line-height: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

  .desktop-tabbar button[data-job-tab] {
    min-width: 0;
    min-height: 46px;
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    text-align: left;
    font-size: 14px;
    line-height: 18px;
    font-weight: 400;
  }

  .desktop-tabbar button[data-job-tab].is-active {
    background: #f2f4f7;
    color: #161616;
    font-weight: 700;
  }

  .desktop-tabbar button[data-job-tab]:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.55);
  }

  .desktop-tabbar .tab-icon-slot {
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
  }

  .desktop-tabbar .tab-icon {
    width: 25px;
    height: 25px;
  }

  .desktop-tabbar .tab-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .side-menu {
    width: var(--desktop-sidebar);
    right: auto;
    pointer-events: auto;
  }

  .side-menu-backdrop {
    display: none;
  }

  .side-menu-panel {
    width: var(--desktop-sidebar);
    padding: 24px 20px 350px;
    border-right: 1px solid #e7ebf1;
    box-shadow: none;
    transform: translateX(0);
    overflow-y: auto;
  }

  .side-menu.is-open .side-menu-panel {
    box-shadow: none;
  }

  .side-menu-profile {
    grid-template-columns: 58px 1fr;
    min-height: 58px;
    gap: 14px;
  }

  .side-menu-avatar {
    width: 58px;
    height: 58px;
  }

  .floating-map-button {
    right: 48px;
    bottom: 38px;
  }
}

.callback-vacancy-card .vacancy-logo {
  width: 62px;
  height: 62px;
}

.callback-message {
  margin: 0;
  padding: 14px;
  border: 0;
  border-top: 1px solid #f0f1f3;
  border-radius: 0;
  background: transparent;
}

.callback-message h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  color: #bdbdbd;
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
}

.callback-message h2 b {
  min-width: 0;
  flex: 1;
  font: inherit;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.callback-message h2 time {
  margin-left: auto;
  color: #a2a7ae;
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
  white-space: nowrap;
}

.callback-message h2 span {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #bdbdbd;
  color: #fff;
  font-size: 13px;
  line-height: 1;
}

.callback-message.is-success h2 {
  color: #27ae60;
}

.callback-message.is-success h2 span {
  background: #27ae60;
}

.callback-message.is-reject h2 {
  color: #eb5757;
}

.callback-message.is-reject h2 span {
  background: #eb5757;
}

.callback-message p {
  margin: 0;
  color: #24282d;
  font-size: 14px;
  line-height: 20px;
}

.callback-message.worker {
  padding: 12px 14px;
  border-radius: 0;
  background: #f9f9fa;
}

.callback-message.worker summary {
  cursor: pointer;
  color: #8d9299;
  font-size: 14px;
  line-height: 18px;
  font-weight: 500;
}

.callback-message.worker summary span {
  display: inline;
}

.callback-message.worker summary time {
  float: right;
  margin-left: 10px;
  color: #a2a7ae;
  font-size: 12px;
  line-height: 18px;
  font-weight: 500;
}

.callback-message.worker[open] summary {
  margin-bottom: 8px;
}

.callback-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 14px 12px;
  border-top: 1px solid #f0f1f3;
}

.callback-actions a {
  min-height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-radius: 9px;
  background: #19b85a;
  color: #fff;
  text-decoration: none;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
  transform: translate3d(0, 0, 0);
  transition: transform 100ms ease, background-color 100ms ease;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

.callback-actions a:active {
  background: #16aa52;
  transform: translate3d(0, 1px, 0) scale(0.99);
}

.callback-actions svg {
  width: 19px;
  height: 19px;
  flex: 0 0 19px;
  fill: currentColor;
}

.profile-settings-card {
  display: grid;
  gap: 0;
  overflow: hidden;
  border: 1px solid #eceef2;
  border-radius: 18px;
  background: #fff;
}

.profile-settings-card div {
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  border-bottom: 1px solid #f2f2f2;
}

.profile-settings-card div:last-child {
  border-bottom: 0;
}

.profile-settings-card span {
  color: #8d9299;
  font-size: 12px;
  line-height: 16px;
}

.profile-settings-card b {
  color: #161616;
  font-size: 15px;
  line-height: 20px;
  font-weight: 700;
}

.side-menu {
  position: fixed;
  inset: 0;
  z-index: 90;
  pointer-events: none;
}

.side-menu.is-open {
  pointer-events: auto;
}

.side-menu-backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  min-height: 100%;
  border: 0;
  border-radius: 0;
  background: rgba(0, 0, 0, 0);
  transition: background 180ms ease;
}

.side-menu.is-open .side-menu-backdrop {
  background: rgba(0, 0, 0, 0.26);
}

.side-menu-panel {
  position: absolute;
  isolation: isolate;
  z-index: 1;
  top: 0;
  bottom: 0;
  left: 0;
  width: min(320px, 84vw);
  padding: calc(18px + env(safe-area-inset-top, 0px)) 16px 18px;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none;
  background-clip: padding-box;
  opacity: 1;
  filter: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  transform: translateX(-105%);
  transition: transform 180ms ease;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
}

.side-menu-panel::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: #fff;
}

.side-menu.is-open .side-menu-panel {
  box-shadow: 12px 0 28px rgba(20, 24, 30, 0.12);
  transform: translateX(0);
}

.side-menu-profile {
  width: 100%;
  min-height: 64px;
  display: grid;
  grid-template-columns: 64px 1fr;
  align-items: center;
  gap: 16px;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
}

.side-menu-avatar {
  width: 64px;
  height: 64px;
}

.side-menu-profile strong {
  display: block;
  max-width: 100%;
  color: #000;
  font-size: 15px;
  line-height: 18px;
  font-weight: 800;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.side-menu-profile small {
  display: block;
  margin-top: 3px;
  color: #bdbdbd;
  font-size: 13px;
  line-height: 17px;
}

.side-menu-line {
  display: block;
  height: 1px;
  margin: 16px 0;
  background: #f2f2f2;
}

.side-menu-item {
  width: 100%;
  min-height: 50px;
  display: grid;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000;
  text-align: left;
  font-size: 15px;
  line-height: 25px;
}

.side-menu-icon {
  width: 28px;
  height: 28px;
  display: block;
  color: #c8ced6;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.15;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.side-menu-item b {
  min-width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 15px;
  background: #fb4e4e;
  color: #fff;
  font-size: 14px;
  line-height: 16px;
  font-weight: 700;
}

.side-menu-item:disabled,
.desktop-sidebar-account-item:disabled {
  cursor: progress;
  opacity: 0.72;
}

.side-menu-switch {
  width: 46px;
  height: 28px;
  padding: 3px;
  border-radius: 14px;
  background: #d8dce2;
  transition: background 160ms ease;
}

.side-menu-switch::before {
  content: "";
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 6px rgba(20, 24, 30, 0.18);
  transition: transform 160ms ease;
}

.side-menu-switch.is-on {
  background: #1fc15c;
}

.side-menu-switch.is-on::before {
  transform: translateX(18px);
}

.side-menu-status-note {
  margin: 6px 0 0 42px;
  color: #8d9299;
  font-size: 12px;
  line-height: 16px;
  font-weight: 430;
}

.side-menu-feedback,
.desktop-sidebar-feedback {
  width: 100%;
  display: grid;
  position: relative;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  border: 1px solid #e7eaf0;
  border-radius: 8px;
  background: #fff;
  color: #161616;
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.side-menu-feedback {
  min-height: 66px;
  margin-top: auto;
  padding: 10px 12px;
}

.side-menu-app-download {
  display: block;
  width: 132px;
  max-width: 100%;
  margin: 14px 0 0;
  border-radius: 7px;
}

.side-menu-app-download:focus-visible {
  outline: 2px solid #ff474f;
  outline-offset: 3px;
}

.side-menu-app-download img {
  display: block;
  width: 100%;
  height: auto;
}

.side-menu-feedback .side-menu-icon,
.desktop-sidebar-feedback .side-menu-icon {
  color: #8e97a4;
}

.side-menu-feedback strong,
.side-menu-feedback small,
.desktop-sidebar-feedback strong,
.desktop-sidebar-feedback small {
  display: block;
}

.side-menu-feedback strong,
.desktop-sidebar-feedback strong {
  color: #8e97a4;
  font-size: 13px;
  line-height: 17px;
  font-weight: 500;
}

.side-menu-feedback small,
.desktop-sidebar-feedback small {
  margin-top: 1px;
  color: #7f8792;
  font-size: 12px;
  line-height: 16px;
  font-weight: 430;
}

.desktop-sidebar-feedback {
  grid-template-columns: 23px minmax(0, 1fr);
  gap: 10px;
  min-height: 58px;
  margin-top: 12px;
  padding: 8px 10px;
}

.desktop-sidebar-feedback.is-active {
  border-color: #ccd3dc;
  background: #fff;
}

.desktop-sidebar-feedback .side-menu-icon {
  width: 23px;
  height: 23px;
}

.feedback-answer-badge {
  position: absolute;
  top: -8px;
  right: 9px;
  min-width: 64px;
  height: 18px;
  display: grid;
  place-items: center;
  padding: 0 7px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ff4647;
  color: #fff;
  font-size: 8px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  pointer-events: none;
}

.feedback-screen {
  width: min(100%, 720px);
  margin: 0 auto;
  padding: 0 0 40px;
  background: #fff;
}

.feedback-card {
  padding: 22px 20px 0;
  border: 0;
  border-radius: 0;
  background: #fff;
}

.feedback-heading {
  display: block;
}

.feedback-heading h1 {
  margin: 1px 0 0;
  color: #161616;
  font-size: 17px;
  line-height: 23px;
  font-weight: 700;
}

.feedback-history {
  display: grid;
  gap: 10px;
  margin-top: 20px;
}

.feedback-history-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.feedback-history-heading h2 {
  margin: 0;
  font-size: 16px;
  line-height: 22px;
}

.feedback-history-heading button,
.feedback-history-state button {
  border: 0;
  background: transparent;
  color: #247ef5;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 600;
}

.feedback-history-item {
  padding: 14px;
  border: 1px solid #e1e5eb;
  border-radius: 8px;
  background: #fff;
}

.feedback-history-item > time,
.feedback-history-reply time {
  color: #9097a1;
  font-size: 11px;
  line-height: 15px;
}

.feedback-history-message,
.feedback-history-reply p {
  margin: 6px 0 0;
  color: #25292f;
  font-size: 14px;
  line-height: 20px;
  white-space: pre-wrap;
}

.feedback-history-reply {
  margin-top: 12px;
  padding: 12px;
  border-left: 3px solid #247ef5;
  background: #f2f7ff;
}

.feedback-history-reply strong {
  display: block;
  color: #176bd7;
  font-size: 13px;
  line-height: 18px;
}

.feedback-history-pending {
  margin: 10px 0 0;
  color: #9097a1;
  font-size: 12px;
  line-height: 17px;
}

.feedback-history-state {
  margin-top: 18px;
  padding: 14px;
  border: 1px solid #e1e5eb;
  border-radius: 8px;
  color: #747c87;
  font-size: 13px;
  line-height: 18px;
  text-align: center;
}

.feedback-history-state.is-error {
  color: #c9323a;
}

.feedback-hero {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin: 0;
  border-radius: 0;
  object-fit: cover;
}

.feedback-form {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.feedback-field {
  display: grid;
  gap: 8px;
}

.feedback-field > span {
  color: #5f6670;
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
}

.feedback-field textarea {
  width: 100%;
  min-height: 164px;
  resize: vertical;
  padding: 14px;
  border: 1px solid #d8dde5;
  border-radius: 8px;
  outline: none;
  background: #fff;
  color: #161616;
  font: inherit;
  font-size: 15px;
  line-height: 21px;
  letter-spacing: 0;
}

.feedback-field textarea:focus {
  border-color: #7e8793;
  box-shadow: 0 0 0 3px rgba(126, 135, 147, 0.12);
}

.feedback-field textarea::placeholder {
  color: #a7adb6;
}

.feedback-field.is-error textarea {
  border-color: #e43d3d;
  background: #fffafa;
  box-shadow: 0 0 0 3px rgba(228, 61, 61, 0.1);
}

.feedback-field > .feedback-field-error {
  color: #d93636;
  font-size: 12px;
  line-height: 17px;
  font-weight: 500;
}

.feedback-file-input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

.feedback-attach-button {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px 14px;
  border: 1px dashed #cbd1da;
  border-radius: 8px;
  background: #fafbfc;
  color: #39414b;
  cursor: pointer;
  font-size: 14px;
  line-height: 18px;
  font-weight: 600;
}

.feedback-attach-button svg {
  width: 22px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.feedback-file-preview {
  min-height: 66px;
  display: grid;
  grid-template-columns: 50px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 11px;
  padding: 8px;
  border: 1px solid #dde1e7;
  border-radius: 8px;
  background: #fafbfc;
}

.feedback-file-preview img {
  width: 50px;
  height: 50px;
  display: block;
  border-radius: 5px;
  object-fit: cover;
}

.feedback-file-preview strong,
.feedback-file-preview small {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.feedback-file-preview strong {
  color: #22262b;
  font-size: 13px;
  line-height: 18px;
  font-weight: 600;
}

.feedback-file-preview small {
  margin-top: 2px;
  color: #9299a3;
  font-size: 12px;
  line-height: 16px;
}

.feedback-file-preview button {
  width: 32px;
  height: 32px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #858d98;
  font-size: 24px;
  line-height: 30px;
}

.feedback-file-note {
  margin: -4px 2px 0;
  color: #969da7;
  font-size: 11px;
  line-height: 15px;
}

.feedback-error {
  margin: 0;
  color: #d93636;
  font-size: 13px;
  line-height: 18px;
}

.feedback-submit,
.feedback-secondary-button {
  width: 100%;
  min-height: 50px;
  border: 0;
  border-radius: 8px;
  font: inherit;
  font-size: 15px;
  line-height: 20px;
  font-weight: 700;
}

.feedback-submit {
  margin-top: 6px;
  border: 1px solid #247ef5;
  background: #247ef5;
  color: #fff;
  font-weight: 600;
}

.feedback-submit:disabled {
  opacity: 0.55;
  cursor: wait;
}

.feedback-telegram-note {
  margin: 16px 0 0;
  color: #9299a3;
  font-size: 12px;
  line-height: 17px;
  text-align: center;
}

.feedback-telegram-note a {
  color: #6f7782;
  font-weight: 600;
  text-decoration: none;
}

.feedback-success {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  margin-top: 24px;
  padding: 16px;
  border-left: 3px solid #35a866;
  background: #f3faf6;
  color: #26342c;
}

.feedback-success strong {
  font-size: 14px;
  line-height: 19px;
  font-weight: 650;
}

.feedback-success-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #35a866;
  color: #fff;
}

.feedback-success-icon svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.feedback-secondary-button {
  margin-top: 16px;
  border: 1px solid #d7dce3;
  background: #fff;
  color: #24282e;
}

@media (min-width: 900px) {
  .feedback-screen {
    padding-bottom: 64px;
  }

  .feedback-card {
    padding: 28px 30px 0;
  }
}

/* HR MiniApp vacancy card parity */
.vacancy-list {
  gap: 22px;
}

.catalog-app-download {
  display: none;
}

@media (max-width: 899px) {
  .catalog-app-download {
    width: 100%;
    min-width: 0;
    display: block;
    overflow: hidden;
    padding: 0;
    border: 1px solid #e8e7ed;
    border-radius: 18px;
    background: #fff;
    color: #171717;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: transform 90ms ease-out, opacity 90ms ease-out, box-shadow 90ms ease-out;
  }

  .catalog-app-download:active {
    transform: scale(0.985);
    opacity: 0.9;
    box-shadow: 0 4px 16px rgba(18, 24, 33, 0.08);
  }

  .catalog-app-download:focus-visible {
    outline: 2px solid var(--m-brand);
    outline-offset: 3px;
  }

  .catalog-app-download-cover {
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 439;
    display: block;
    object-fit: cover;
    object-position: center;
  }

  .catalog-app-download-main {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 72px;
    align-items: start;
    gap: 14px;
    padding: 14px;
  }

  .catalog-app-download-logo {
    width: 72px;
    height: 72px;
    display: block;
    justify-self: end;
    border-radius: 50%;
    object-fit: cover;
  }

  .catalog-app-download-copy {
    min-width: 0;
    display: grid;
    align-content: start;
    gap: 4px;
  }

  .catalog-app-download-copy strong {
    font-size: 18px;
    line-height: 22px;
    font-weight: 700;
  }

  .catalog-app-download-copy span {
    color: #70737a;
    font-size: 14px;
    line-height: 18px;
    font-weight: 400;
  }

  .catalog-app-download-link {
    justify-self: start;
    display: block;
    margin-top: 8px;
    border-radius: 6px;
    -webkit-tap-highlight-color: transparent;
  }

  .catalog-app-download-link img {
    width: auto;
    height: 34px;
    display: block;
  }
}

.list-item {
  width: 100%;
  text-align: left;
  color: #161616;
  background: #fff;
  border: 1px solid #e8e7ed;
  border-radius: 18px;
}

.list-item-button {
  cursor: pointer;
}

.vacancy-list .list-item {
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
}

.vacancy-card {
  display: block;
  padding: 14px;
  overflow: hidden;
  border-radius: 18px;
  border-color: #e8e7ed;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  color: inherit;
  text-decoration: none;
}

@media (max-width: 899px) {
  .vacancy-list .vacancy-card.list-item-button,
  .catalog-vacancy-list .vacancy-card.list-item-button {
    transform: translateZ(0);
    transition:
      transform 90ms ease-out,
      opacity 90ms ease-out,
      background-color 90ms ease-out,
      box-shadow 90ms ease-out;
    -webkit-tap-highlight-color: transparent;
  }

  .vacancy-list .vacancy-card.list-item-button:active,
  .catalog-vacancy-list .vacancy-card.list-item-button:active {
    transform: scale(0.985);
    opacity: 0.9;
    background-color: #f8f9fb;
    box-shadow: 0 4px 16px rgba(18, 24, 33, 0.08);
  }

  .vacancy-list .vacancy-maximum-group-item,
  .catalog-vacancy-list .vacancy-maximum-group-item {
    transition: background-color 90ms ease-out;
    -webkit-tap-highlight-color: transparent;
  }

  .vacancy-list .vacancy-maximum-group-item:active,
  .catalog-vacancy-list .vacancy-maximum-group-item:active {
    background-color: #fafbfc;
  }
}

.vacancy-list .vacancy-card:not(.is-paid),
.vacancy-card:not(.is-paid) {
  box-shadow: none;
}

.map-card-drawer .map-vacancy-card {
  border: 1px solid #1f242b;
  box-shadow: 0 16px 36px rgba(20, 24, 30, 0.2);
}

.vacancy-card.has-cover {
  padding-top: 0;
  border: 1px solid #e8e7ed;
}

.vacancy-card.is-paid:not(.has-cover) {
  border: 1px solid #e8e7ed;
}

.vacancy-maximum-group {
  padding-bottom: 0;
}

.vacancy-maximum-group-items {
  margin: 0 -14px;
}

.vacancy-maximum-group-item {
  display: block;
  padding: 0 14px 14px;
  color: inherit;
  cursor: pointer;
  text-decoration: none;
}

.vacancy-maximum-group-item.has-separator {
  padding-top: 14px;
  border-top: 1px solid #edf0f4;
}

.vacancy-card-cover {
  height: 150px;
  margin: 0 -14px 14px;
  border: 0;
  border-radius: 18px 18px 0 0;
  overflow: hidden;
  background: #4f545b;
}

.vacancy-card-cover img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
}

.venue-photo-carousel {
  position: relative;
  overflow: hidden;
}

.venue-photo-track {
  display: flex;
  width: 100%;
  height: 100%;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.venue-photo-carousel.has-peek .venue-photo-track {
  gap: 0;
  padding-right: 0;
  scroll-padding-left: 0;
}

.venue-photo-track::-webkit-scrollbar {
  display: none;
}

.venue-photo-track img {
  flex: 0 0 100%;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  scroll-snap-align: start;
}

.restojob-android-app .venue-photo-carousel,
.restojob-android-app .venue-photo-track,
.restojob-android-app .venue-photo-track img {
  touch-action: pan-y;
  overscroll-behavior: contain;
}

.restojob-android-app .venue-photo-track img {
  -webkit-user-drag: none;
  user-select: none;
}

.venue-photo-carousel.has-peek .venue-photo-track img {
  flex-basis: calc(100% - 10px);
  width: calc(100% - 10px);
}

.venue-photo-carousel.has-peek .venue-photo-track img:last-child {
  flex-basis: 100%;
  width: 100%;
}

.vacancy-card-cover-placeholder {
  width: 100%;
  height: 100%;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 5px;
  color: #fff;
  background: #4f545b;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.15;
  text-align: center;
}

.vacancy-card-cover-placeholder svg {
  width: 30px;
  height: 30px;
  stroke-width: 1.9;
}

.vacancy-card-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px;
  gap: 14px;
  align-items: flex-start;
}

.vacancy-card-main-desktop {
  display: none;
}

.vacancy-card:not(.is-paid):not(.is-new-employer) .vacancy-card-main {
  grid-template-columns: minmax(0, 1fr) 74px;
  align-items: stretch;
}

.grow {
  min-width: 0;
}

.vacancy-head {
  align-items: flex-start;
}

.vacancy-card .item-title {
  margin: 0;
  color: #161616;
  font-size: 16px;
  line-height: 20px;
  font-weight: 680;
  overflow-wrap: anywhere;
}

.vacancy-card-salary {
  margin-top: 5px;
  line-height: 1.18;
}

.vacancy-card-salary strong,
.vacancy-card strong {
  display: block;
  padding: 0;
  color: #e14038;
  font-size: 20px;
  line-height: 24px;
  font-weight: 520;
}

.item-meta {
  color: #747474;
  font-size: 13px;
  line-height: 17px;
}

.item-meta.vacancy-venue {
  margin-top: 3px;
  color: #161616;
  font-size: 14px;
  line-height: 18px;
  font-weight: 400;
}

.vacancy-card-details {
  display: grid;
  gap: 3px;
  margin-top: 9px;
}

.vacancy-detail-row {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: center;
  gap: 4px;
  min-width: 0;
  color: #161616;
  font-size: 13px;
  font-weight: 400;
  line-height: 17px;
}

.vacancy-detail-row svg {
  width: 15px;
  height: 15px;
  display: block;
  justify-self: center;
  color: #ccc;
  stroke-width: 2.25;
}

.vacancy-detail-row span {
  min-width: 0;
  color: #161616;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transform: translateY(1px);
}

.vacancy-detail-row.vacancy-distance,
.vacancy-detail-row.vacancy-distance span,
.vacancy-detail-row.vacancy-distance svg {
  color: #2478e8;
}

.vacancy-detail-row.vacancy-distance span {
  font-weight: 400;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

.vacancy-card:not(.is-paid):not(.is-new-employer) .vacancy-metro span:last-child,
.vacancy-card:not(.is-paid):not(.is-new-employer) .vacancy-address-count span:last-child {
  color: #888d94;
}

.metro-mark {
  --metro-color: #d71920;
  position: relative;
  display: inline-block;
  justify-self: center;
  width: 14px;
  height: 14px;
  min-height: 14px;
  flex: 0 0 auto;
  border-radius: 999px;
  background: var(--metro-color);
  color: #fff;
  transform: none;
}

.metro-mark::before {
  content: attr(data-label);
  position: absolute;
  left: 50%;
  top: 50%;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  line-height: 1;
  transform: translate(-50%, -47%);
}

.metro-mark.transport-mcd,
.metro-mark.transport-mcc {
  width: auto;
  min-width: 18px;
  padding: 0 1px;
  border-radius: 3px;
}

.metro-mark.transport-mcd::before,
.metro-mark.transport-mcc::before {
  position: static;
  display: block;
  font-size: 8px;
  line-height: 14px;
  text-align: center;
  transform: none;
}

.metro-mark-stack,
.vacancy-detail-row .metro-mark-stack,
.vacancy-detail-line .metro-mark-stack {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  min-width: 14px;
  overflow: visible;
  line-height: 0;
  white-space: normal;
  transform: none;
}

.metro-mark-stack .metro-mark {
  overflow: visible;
  box-shadow: 0 0 0 1.5px #fff;
  transform: none;
}

.metro-mark-stack .metro-mark + .metro-mark {
  margin-left: -4px;
}

.metro-mark-stack .metro-mark.transport-mcd + .metro-mark,
.metro-mark-stack .metro-mark.transport-mcc + .metro-mark,
.metro-mark-stack .metro-mark + .metro-mark.transport-mcd,
.metro-mark-stack .metro-mark + .metro-mark.transport-mcc {
  margin-left: 2px;
}

.vacancy-detail-row.has-metro-stack,
.vacancy-detail-line.has-metro-stack {
  grid-template-columns: auto minmax(0, 1fr);
}

.metro-mark-stack.is-detail {
  min-width: 16px;
}

.vacancy-card-side {
  display: grid;
  justify-items: center;
  align-content: start;
  gap: 8px;
  min-width: 0;
}

.vacancy-card:not(.is-paid):not(.is-new-employer) .vacancy-card-side {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100%;
  gap: 0;
}

.vacancy-card:not(.is-paid):not(.is-new-employer).has-shift-pay .vacancy-card-side {
  gap: 0;
}

.venue-logo {
  display: block;
  width: 84px;
  height: 84px;
  flex: 0 0 84px;
  border-radius: 999px;
  object-fit: contain;
  background: #fff;
  border: 0;
}

img.venue-logo {
  padding: 0;
}

.vacancy-logo {
  width: 96px;
  height: 96px;
  flex-basis: 96px;
  border-radius: 999px;
}

.vacancy-card:not(.is-paid):not(.is-new-employer) .vacancy-logo {
  width: 64px;
  height: 64px;
  flex-basis: 64px;
  margin: 0 auto;
}

.venue-logo-placeholder {
  display: grid;
  place-items: center;
  color: #1f6feb;
  font-weight: 800;
  font-size: 20px;
}

.admin-seed-logo-placeholder {
  background: #eef0f3;
}

.vacancy-publication-date {
  color: #888d94;
  font-size: 12px;
  line-height: 16px;
  font-weight: 400;
  text-align: center;
  white-space: nowrap;
}

.vacancy-card.is-paid .vacancy-publication-date {
  display: none;
}

.vacancy-card:not(.is-paid) .vacancy-publication-date {
  position: static;
  left: auto;
  right: auto;
  top: auto;
  width: auto;
  min-width: 0;
  margin-top: auto;
  transform: none;
  text-align: center;
}

.vacancy-card-side .favorite {
  display: none;
}

.vacancy-feature-tags {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 16px;
}

@media (max-width: 899px) {
  .vacancy-card-main-mobile {
    row-gap: 0;
  }

  .vacancy-card-main-mobile .vacancy-feature-tags {
    margin-top: 14px;
  }
}

.vacancy-feature-tag {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  min-height: 28px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #d5e5fc;
  color: #1472c9;
  font-size: 12px;
  font-weight: 400;
  line-height: 16px;
  white-space: nowrap;
}

.vacancy-feature-tag.urgent {
  padding-left: 7px;
  background: #ffe1df;
  color: #b42318;
}

.vacancy-feature-tag.urgent svg {
  color: #e11d16;
}

.vacancy-feature-tag.vacancy-of-the-week {
  padding-left: 9px;
  background: #ffbc1f;
  color: #161616;
}

.vacancy-feature-tag.no-experience,
.vacancy-feature-tag.part-time,
.vacancy-feature-tag.accommodation {
  padding-left: 8px;
}

.vacancy-feature-tag.active-search {
  padding-left: 7px;
  background: rgba(47, 128, 237, 0.2);
  color: #046fd1;
}

.vacancy-feature-tag.new-employer {
  padding-left: 6px;
  background: #e3f3ea;
  color: #176b47;
}

.vacancy-feature-tag img,
.vacancy-feature-tag svg {
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  display: block;
  object-fit: contain;
}

.vacancy-card-stats {
  display: none;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin-top: 12px;
}

.vacancy-card-stats span {
  min-width: 0;
  display: grid;
  align-content: center;
  padding: 11px 8px;
  border-radius: 12px;
  background: #fafafa;
  color: #747474;
}

.vacancy-card-stats strong,
.vacancy-card-stats small {
  display: block;
  max-width: 100%;
  line-height: 1.05;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vacancy-card-stats strong {
  color: #161616;
  font-size: 16px;
  font-weight: 740;
  font-variant-numeric: tabular-nums;
}

.vacancy-card-stats small {
  margin-top: 4px;
  font-size: 11px;
}

.vacancy-card-stats .hot {
  background: color-mix(in srgb, var(--m-brand) 13%, transparent);
}

.vacancy-card-stats .hot strong,
.vacancy-card-stats .hot small {
  color: var(--m-gradient-end);
}

.detail-header,
.apply-bar {
  border-color: #ececec;
}

.facts div,
.address,
.description,
.company,
.resume-local,
.profile-local,
.error,
.photos img {
  border-radius: 20px;
}

/* m.restojob.ru vacancy detail */
.vacancy-page {
  width: min(100%, 460px);
  min-height: 100dvh;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  background: #fff;
  color: #000;
}

.vacancy-page-header {
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: 52px 1fr 52px;
  align-items: center;
  height: calc(53px + env(safe-area-inset-top, 0px));
  padding-top: env(safe-area-inset-top, 0px);
  background: #fff;
  border-bottom: 1px solid #ececec;
  box-shadow: 0 4px 12px rgba(20, 24, 30, 0.1);
}

.company-phone .topbar {
  position: relative;
  top: auto;
}

.company-phone .header-icon#routeBack {
  place-items: center;
  padding: 0;
  color: #25282b;
}

.header-back-arrow {
  display: block;
  font-size: 24px;
  line-height: 1;
  font-weight: 400;
}

.vacancy-page-header button {
  width: 52px;
  height: 52px;
  border: 0;
  background: transparent;
  color: #25282b;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
}

.vacancy-page-header #closeDetail {
  display: grid;
  place-items: center;
  padding: 0;
}

.restojob-android-app .header-back-arrow,
.restojob-android-app .auth-back-pill-icon {
  display: inline-grid;
  place-items: center;
  font-size: 0;
  line-height: 0;
}

.restojob-android-app .auth-back-pill-icon {
  width: 26px;
  height: 26px;
}

.restojob-android-app .header-back-arrow::before,
.restojob-android-app .auth-back-pill-icon::before {
  content: "";
  display: block;
  width: 26px;
  height: 26px;
  background: currentColor;
  -webkit-mask: url("/back-arrow-android.svg") center / contain no-repeat;
  mask: url("/back-arrow-android.svg") center / contain no-repeat;
}

.vacancy-page-header .vacancy-header-logo {
  justify-self: center;
  width: auto;
  min-width: 134px;
  height: 52px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.vacancy-page-header > img:first-of-type,
.vacancy-page-header .vacancy-header-logo img {
  justify-self: center;
  width: 134px;
  height: 26px;
  object-fit: contain;
}

.vacancy-page-header-actions {
  grid-column: 3;
  justify-self: end;
  display: flex;
  align-items: center;
  width: 88px;
  height: 52px;
}

.vacancy-header-location {
  justify-self: center;
  display: grid;
  place-items: center;
  width: 44px;
  height: 52px;
  color: #b9bdc3;
}

.vacancy-header-location svg {
  width: 23px;
  height: 23px;
}

.vacancy-page-header .vacancy-header-share,
.vacancy-page-header .vacancy-header-favorite {
  justify-self: center;
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border: 0;
  background: transparent;
  color: #a9b0b8;
  transition: color 0.16s ease, transform 0.12s ease;
}

.vacancy-header-share svg {
  width: 25px;
  height: 25px;
  display: block;
  stroke-width: 1.45;
}

.vacancy-header-favorite svg {
  width: 22px;
  height: 22px;
  display: block;
  fill: transparent;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translate(-2px, 1px);
  transition: fill 0.16s ease, stroke 0.16s ease, transform 0.16s ease;
}

.vacancy-header-share:active,
.vacancy-header-favorite:active {
  transform: scale(0.92);
}

.vacancy-header-favorite.is-active {
  color: var(--m-brand);
}

.vacancy-header-favorite.is-active svg {
  fill: currentColor;
  stroke: transparent;
  transform: translate(-2px, 1px) scale(1.04);
}

.vacancy-detail-page {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
  background: #fff;
}

.vacancy-detail-page.has-contact-actions {
  padding-bottom: calc(154px + env(safe-area-inset-bottom, 0px));
}

.restojob-ios-app .vacancy-detail-page.has-contact-actions,
.restojob-android-app .vacancy-detail-page.has-contact-actions {
  padding-bottom: calc(142px + env(safe-area-inset-bottom, 0px));
}

.restojob-ios-app .vacancy-detail-page.only-apply-actions,
.restojob-android-app .vacancy-detail-page.only-apply-actions {
  padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
}

.vacancy-detail-page.is-inactive {
  padding-bottom: 28px;
}

.telegram-app-hint {
  position: fixed;
  inset: auto 0 0;
  width: min(100%, 480px);
  max-width: 100%;
  max-height: calc(100dvh - 24px);
  box-sizing: border-box;
  overflow-y: auto;
  margin: 0 auto;
  padding: 30px 24px calc(24px + env(safe-area-inset-bottom, 0px));
  border: 0;
  border-radius: 20px 20px 0 0;
  background: #fff;
  color: #151b24;
  text-align: center;
  font-family: inherit;
  letter-spacing: 0;
}

.telegram-app-hint[open] { animation: telegram-app-hint-enter 220ms ease-out; }
.telegram-app-hint::backdrop { background: rgb(16 25 37 / 46%); }
.telegram-app-hint-handle {
  position: absolute;
  top: 9px;
  left: calc(50% - 18px);
  width: 36px;
  height: 4px;
  border-radius: 4px;
  background: #dce1e7;
}

.telegram-app-hint-logo {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: 12px;
}

.telegram-app-hint h2 {
  margin: 0;
  font-size: 22px;
  line-height: 28px;
  font-weight: 600;
  letter-spacing: 0;
}

.telegram-app-hint #telegramAppHintTitle:focus { outline: none; }

.telegram-app-hint p {
  margin: 12px auto 22px;
  max-width: 320px;
  color: #5d6878;
  font-size: 14px;
  line-height: 21px;
}

.telegram-app-hint-store {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  border-radius: 8px;
  background: #000;
}
.telegram-app-hint-store img { width: 156px; height: 46px; object-fit: contain; }
.telegram-app-hint-divider {
  display: block;
  margin: 12px 0;
  color: #7a8390;
  font-size: 12px;
  line-height: 18px;
}
.telegram-app-hint-web {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  min-height: 52px;
  padding: 12px;
  border: 0;
  border-radius: 8px;
  background: #1ab759;
  color: #f2f2f2;
  font: inherit;
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  cursor: pointer;
}
.telegram-app-hint-web svg { width: 21px; height: 21px; flex: 0 0 21px; fill: currentColor; }

.telegram-app-hint :is(a, button):focus-visible {
  outline: 2px solid #1878ed;
  outline-offset: 2px;
}

@keyframes telegram-app-hint-enter {
  from { transform: translateY(100%); }
  to { transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .telegram-app-hint[open] { animation: none; }
}

.vacancy-archive-alert {
  display: grid;
  gap: 4px;
  margin: 12px 14px;
  padding: 12px 14px;
  border: 1px solid #ffc9c9;
  border-radius: 12px;
  background: #fff1f1;
  color: #a92121;
}

.vacancy-archive-alert strong {
  font-size: 15px;
  line-height: 19px;
  font-weight: 700;
}

.vacancy-archive-alert span {
  font-size: 13px;
  line-height: 18px;
  font-weight: 500;
}

/* Keep the grid stable; reveal categories as the closing drawer moves away. */
.desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel) {
  opacity: 1;
  transition: opacity 160ms ease 180ms, visibility 0s;
}
#app:has(> .vacancy-drawer) .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel) {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 120ms ease, visibility 0s linear 120ms;
}
/* Search has explicit visibility, so hide descendants after the fade as well. */
#app:has(> .vacancy-drawer) .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel) * {
  visibility: hidden;
  pointer-events: none;
  transition: visibility 0s linear 120ms;
}
@media (prefers-reduced-motion: reduce) {
  #app:has(> .vacancy-drawer) .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel),
  #app:has(> .vacancy-drawer) .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel) *,
  #app .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel),
  #app .desktop-sections-layout > .desktop-sections-right-panel:is([aria-label="Разделы"], .desktop-recommendation-panel) * {
    transition: none;
  }
}

.vacancy-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 110;
  display: flex;
  flex-direction: column;
  width: min(500px, calc(100vw - 360px));
  height: 100dvh;
  background: #fff;
  border-left: 1px solid #cfd8e3;
  box-shadow: -12px 0 36px rgb(20 28 40 / 14%);
}

.vacancy-drawer.is-entering { animation: vacancy-drawer-in 220ms ease-out; }
/* Programmatic dialog focus should not draw a viewport-height focus ring. */
.vacancy-drawer:focus { outline: none; }
.vacancy-drawer.is-closing { animation: vacancy-drawer-out 220ms ease-in forwards; pointer-events: none; }
@keyframes vacancy-drawer-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes vacancy-drawer-out { to { transform: translateX(100%); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .vacancy-drawer.is-entering, .vacancy-drawer.is-closing { animation: none; }
}

.vacancy-drawer-toolbar {
  position: absolute;
  inset: 16px 16px auto;
  z-index: 3;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  pointer-events: none;
}
.vacancy-drawer-toolbar-actions,
.vacancy-drawer-toolbar-navigation {
  display: flex;
  align-items: center;
  gap: 8px;
}
.vacancy-drawer-toolbar :is(a, button) {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: rgb(255 255 255 / 84%);
  box-shadow: 0 1px 6px rgb(20 28 40 / 16%);
  color: #374151;
  cursor: pointer;
  pointer-events: auto;
}
.vacancy-drawer-toolbar :is(a, button):hover { background: rgb(255 255 255 / 96%); }
.vacancy-drawer-toolbar button.is-active { color: #ff3b30; }
.vacancy-drawer-toolbar button.is-active svg { fill: currentColor; }
.vacancy-drawer-toolbar button:disabled { opacity: 0.5; cursor: wait; }
.vacancy-drawer-toolbar a svg { transform: rotate(-45deg); }
.vacancy-drawer-toolbar svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.vacancy-drawer-scroll { position: relative; flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
.vacancy-drawer-loading {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 150px;
  z-index: 3;
  padding: 8px;
  border-radius: 6px;
  background: rgb(255 255 255 / 84%);
  color: #374151;
  font-size: 12px;
  line-height: 18px;
  text-align: center;
  pointer-events: none;
}
.vacancy-drawer-status { padding: 72px 24px 16px; color: #596579; font-size: 14px; background: #f4f7fa; }
.vacancy-drawer-status button { border: 0; background: transparent; color: #0066d9; cursor: pointer; }
.vacancy-drawer-switch-error {
  position: absolute;
  top: 62px;
  left: 16px;
  right: 16px;
  z-index: 3;
  padding: 12px;
  border-radius: 6px;
  background: #fff;
  color: #374151;
  font-size: 14px;
  box-shadow: 0 1px 6px rgb(20 28 40 / 16%);
}
.vacancy-drawer-switch-error button { border: 0; background: transparent; color: #0066d9; cursor: pointer; }
.vacancy-drawer-page { width: 100%; max-width: none; min-height: 0; }
.vacancy-drawer .vacancy-detail-layout { display: block; }
.vacancy-drawer .vacancy-detail-page { padding-bottom: 0; }
.vacancy-drawer .vacancy-detail-page.no-cover { padding-top: 72px; }
.vacancy-drawer .vacancy-detail-card { padding: 24px; border-radius: 8px 8px 0 0; margin-top: -8px; }
.vacancy-drawer .vacancy-detail-main h1 { font-size: 22px; line-height: 26px; font-weight: 600; overflow-wrap: anywhere; }
.vacancy-drawer .vacancy-detail-main strong { font-size: 22px; line-height: 26px; font-weight: 500; margin: 4px 0; }
.vacancy-drawer .vacancy-detail-main { grid-template-columns: minmax(0, 1fr) 96px; }
.vacancy-drawer .vacancy-detail-logo { width: 96px; height: 96px; }
.vacancy-drawer .vacancy-detail-logo-placeholder { font-size: 20px; color: #1f6feb; }
.vacancy-drawer .vacancy-detail-cover { height: 260px; }
.vacancy-drawer .vacancy-detail-brand { line-height: 18px; }
.vacancy-drawer .vacancy-location-section { padding: 24px; margin: 0; border-top: 0; }
.vacancy-drawer .vacancy-company-card { width: calc(100% - 48px); margin: 0 24px 24px; }
.vacancy-drawer .vacancy-detail-actions-panel {
  position: sticky;
  bottom: 0;
  z-index: 2;
  max-height: 50dvh;
  overflow-y: auto;
  padding: 16px 24px;
  background: #fff;
  border-top: 1px solid #e7ebf0;
}
.vacancy-drawer .vacancy-action-bar { position: static; width: 100%; max-width: none; margin: 0; padding: 0; box-shadow: none; border-radius: 0; }
.vacancy-drawer .vacancy-detail-actions-panel:has(.apply-inline-card) .vacancy-action-bar { display: none; }
.vacancy-drawer :is(.phone-inline-card, .apply-inline-card, .hidden-phone-card) { margin-top: 12px; }
.vacancy-drawer .vacancy-detail-secondary-actions { margin-top: 16px; }
.vacancy-drawer :is(a, button, textarea):focus-visible { outline: 2px solid #0066d9; outline-offset: 3px; }

.vacancy-detail-cover {
  display: block;
  width: 100%;
  height: 245px;
  object-fit: cover;
  object-position: center;
  background: #e8e8e8;
}

.vacancy-detail-card {
  position: relative;
  margin-top: -20px;
  padding: 17px 17px 16px;
  border-radius: 20px 20px 0 0;
  background: #fff;
}

.vacancy-detail-page.no-cover .vacancy-detail-card {
  margin-top: 0;
  border-radius: 0;
}

.vacancy-detail-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 96px;
  gap: 16px;
  align-items: start;
}

.vacancy-detail-main h1 {
  margin: 0;
  color: #000;
  font-size: 16px;
  line-height: 20px;
  font-weight: 700;
}

.vacancy-detail-main strong {
  display: block;
  margin-top: 0;
  color: #e93c3c;
  font-size: 20px;
  line-height: 36px;
  font-weight: 500;
}

.vacancy-detail-brand {
  color: #000;
  font-size: 14px;
  line-height: 14px;
}

.vacancy-detail-rows {
  display: grid;
  gap: 8px;
  margin-top: 17px;
}

.vacancy-detail-line {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  color: #25282b;
  font-size: 14px;
  line-height: 17px;
  font-weight: 400;
}

.vacancy-detail-line svg {
  width: 16px;
  height: 16px;
  color: #cacccf;
  stroke-width: 2;
}

.detail-metro-mark {
  width: 16px;
  height: 16px;
  min-height: 16px;
  color: #f2f2f2;
}

.detail-metro-mark::before {
  font-size: 11px;
}

.detail-metro-mark.transport-mcd,
.detail-metro-mark.transport-mcc {
  min-width: 22px;
}

.detail-metro-mark.transport-mcd::before,
.detail-metro-mark.transport-mcc::before {
  font-size: 9px;
  line-height: 16px;
}

.vacancy-detail-logo {
  width: 96px;
  height: 96px;
  border-radius: 999px;
  object-fit: contain;
  background: #fff;
  padding: 0;
  border: 0;
}

.vacancy-detail-logo-placeholder {
  display: grid;
  place-items: center;
  color: #888d94;
  font-weight: 800;
}

.vacancy-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 16px;
}

.vacancy-detail-description {
  margin-top: 14px;
}

.vacancy-detail-description p {
  margin: 0;
  color: #25282b;
  font-size: 15px;
  line-height: 24px;
  font-weight: 400;
  white-space: pre-line;
}

.vacancy-detail-description button {
  width: 100%;
  min-height: 46px;
  margin-top: 26px;
  border: 1px solid #dde1e7;
  border-radius: 12px;
  background: #f5f6f8;
  color: #5f6671;
  font-size: 14px;
  font-weight: 500;
}

.vacancy-location-section {
  padding: 17px 20px 0;
  background: #fff;
}

.vacancy-location-section h2 {
  margin: 0 0 10px;
  color: #000;
  font-size: 13px;
  line-height: 21px;
  font-weight: 700;
}

.vacancy-address-line {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  color: #000;
  font-size: 13px;
  line-height: 15px;
  font-weight: 400;
}

.vacancy-address-list {
  display: grid;
  gap: 12px;
}

.vacancy-address-item + .vacancy-address-item {
  padding-top: 4px;
}

.vacancy-address-count svg {
  width: 16px;
  height: 16px;
  color: #aeb3ba;
}

.vacancy-address-line.is-address {
  color: #828282;
}

.vacancy-address-line svg {
  width: 16px;
  height: 16px;
  color: #cacccf;
}

.vacancy-map {
  height: 260px;
  margin-top: 12px;
  border: 0;
  background-color: #e8e8e8;
  background-position: center;
  background-size: cover;
}

.vacancy-map-live {
  position: relative;
  overflow: hidden;
  background: #eef2f6;
  isolation: isolate;
  contain: paint;
}

.vacancy-map span {
  display: grid;
  height: 100%;
  place-items: center;
  color: #828282;
}

.vacancy-company-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 72px;
  gap: 16px;
  align-items: center;
  margin: 24px 20px 0;
  padding: 13px;
  border: 1px solid #ececec;
  border-radius: 16px;
  background: #fff;
  width: calc(100% - 40px);
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.vacancy-company-card h2 {
  margin: 0;
  color: #000;
  font-size: 20px;
  line-height: 20px;
  font-weight: 600;
}

.vacancy-company-card p {
  margin: 8px 0 0;
  color: #828282;
  font-size: 13px;
  line-height: 15px;
  font-weight: 300;
}

.vacancy-company-card p + p {
  margin-top: 4px;
}

.vacancy-company-card img,
.vacancy-company-card .vacancy-detail-logo-placeholder {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: contain;
  background: #fff;
}

.company-screen {
  min-height: calc(100dvh - 54px - 76px);
  padding: 0 0 calc(24px + env(safe-area-inset-bottom, 0px));
  background: #fff;
}

@media (max-width: 899px) {
  .company-phone .content {
    padding-bottom: 0;
  }
}

.company-hero-card {
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: #fff;
  box-shadow: none;
}

.company-hero-card .vacancy-card-cover {
  height: 245px;
  margin: 0;
  border-radius: 0;
}

.company-hero-card .company-hero-main {
  position: relative;
  z-index: 1;
  grid-template-columns: 96px minmax(0, 1fr);
  margin-top: -20px;
  padding: 17px 17px 16px;
  border: 0;
  border-radius: 20px 20px 0 0;
  background: #fff;
}

.company-hero-card:not(.has-cover) .company-hero-main {
  margin-top: 0;
  border-radius: 0;
}

.company-hero-card .company-hero-logo {
  justify-items: start;
}

.company-hero-card .company-vacancy-count {
  margin-top: 4px;
  color: #777;
}

.company-media-admin {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 17px 14px;
  background: #fff;
}

.company-media-label {
  color: #9a9ea5;
  font-size: 12px;
  line-height: 30px;
}

.company-media-actions {
  display: flex;
  gap: 4px;
}

.company-media-actions button {
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid #e2e4e8;
  border-radius: 6px;
  background: transparent;
  color: #747982;
  font: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
}

.company-media-actions button:active {
  background: #eceff3;
}

.company-media-actions button:disabled {
  color: #8a8f98;
  cursor: wait;
}

.company-media-status {
  flex-basis: 100%;
  margin: 0;
  color: #777d86;
  font-size: 12px;
  line-height: 17px;
}

.company-media-status {
  color: #18864b;
  font-weight: 500;
}

.company-media-status.is-error {
  color: #c83232;
}

.company-description-card {
  padding: 0 20px 14px;
  background: #fff;
}

.company-description-card p {
  margin: 0;
  color: #20242a;
  font-size: 13px;
  line-height: 20px;
  font-weight: 300;
}

.company-map-section {
  margin: 14px 20px 0;
}

.company-map-canvas,
.company-map-empty {
  display: grid;
  place-items: center;
  min-height: 260px;
  border: 1px solid #e8e7ed;
  border-radius: 18px;
  overflow: hidden;
  background: #eef1f5;
  color: #888d94;
  font-size: 14px;
}

.company-vacancy-title {
  display: flex;
  align-items: center;
  min-height: 34px;
  margin-top: 14px;
  padding: 0 20px;
  background: #fff;
}

.company-vacancy-title h2 {
  margin: 0;
  color: #15171b;
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.company-map-empty {
  padding: 20px;
  background: #fff;
  text-align: center;
}

.company-vacancy-list {
  margin-top: 12px;
}

.company-vacancy-list .company-vacancy-card {
  box-shadow: none;
}

.company-vacancy-list .company-vacancy-card .vacancy-card-main {
  background: #fff;
}

.company-vacancy-list .company-vacancy-card .vacancy-feature-tags {
  display: none;
}

@media (min-width: 900px) {
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-screen {
    width: min(100%, 1180px);
    min-height: 0;
    margin: 0 auto;
    padding: 0;
    background: transparent;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 760px) 320px;
    align-items: start;
    gap: 24px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel {
    position: relative;
    min-width: 0;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .vacancy-card-cover {
    height: 260px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .company-hero-main {
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 20px;
    margin-top: 0;
    padding: 24px;
    border-radius: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .company-hero-logo .vacancy-logo,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .company-hero-logo .venue-logo-placeholder {
    width: 112px;
    height: 112px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .item-title {
    font-size: 24px;
    line-height: 30px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .vacancy-venue,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-hero-card .company-vacancy-count {
    font-size: 15px;
    line-height: 20px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-description-card {
    padding: 0 24px 18px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-description-card p {
    font-size: 16px;
    line-height: 25px;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-map-section {
    margin: 6px 24px 24px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-map-canvas,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-map-empty {
    min-height: 320px;
    border-radius: 16px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel {
    position: sticky;
    top: 40px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel:empty {
    min-height: 1px;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-title {
    min-height: 0;
    margin: 0;
    padding: 0 24px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-title h2 {
    font-size: 20px;
    line-height: 25px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    margin: 14px 24px 24px;
    padding: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .company-vacancy-card {
    min-height: 0;
    margin: 0;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .company-vacancy-card.list-item-button:hover {
    border-color: #cfd5df;
    background: #fff;
    box-shadow: none;
    contain: layout paint;
    scrollbar-gutter: stable;
  }

  .desktop-app-download {
    position: fixed;
    left: 14px;
    bottom: 16px;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    width: calc(var(--desktop-sidebar) - 28px);
    padding: 14px 4px 0;
    border-top: 1px solid #eff1f4;
    background: #fff;
  }

  .desktop-app-download button {
    display: block;
    min-width: 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
  }

  .desktop-app-download button:focus-visible {
    outline: 2px solid #ff474f;
    outline-offset: 3px;
  }

  .desktop-app-download img {
    display: block;
    width: 100%;
    height: auto;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .company-vacancy-card > .vacancy-card-main-mobile {
    display: none;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .company-vacancy-card > .vacancy-card-main-desktop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: stretch;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-desktop-info {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: stretch;
    gap: 18px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-desktop-info > .grow {
    display: flex;
    min-height: 96px;
    flex-direction: column;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-desktop-logo {
    display: grid;
    place-items: start center;
    min-width: 0;
    padding: 0 10px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-card-main-desktop .vacancy-logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
    margin: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-desktop-side {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    min-width: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-card-main-desktop .vacancy-feature-tags {
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    justify-self: end;
    gap: 9px;
    margin-top: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-card-main-desktop .vacancy-card-details {
    margin-top: auto;
    padding-top: 13px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-main-panel > .company-vacancy-list .vacancy-card-main-desktop .vacancy-publication-date {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: auto;
    min-width: 0;
    margin-top: 2px;
    transform: none;
    text-align: right;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel:not(:empty) {
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-title {
    min-height: 0;
    margin: 0;
    padding: 0;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-title h2 {
    font-size: 18px;
    line-height: 23px;
    font-weight: 700;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-list {
    display: grid;
    gap: 12px;
    margin-top: 14px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card {
    margin: 0;
    border: 1px solid #e2e5eb;
    border-radius: 14px;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card .vacancy-card-main {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
    padding: 14px;
    border-radius: 14px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card .vacancy-card-side {
    display: none;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card .item-title {
    font-size: 16px;
    line-height: 20px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card .vacancy-card-salary strong {
    font-size: 20px;
    line-height: 24px;
  }

  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel .company-vacancy-card .vacancy-venue {
    display: none;
  }
}

.app-download-dialog {
  position: fixed;
  inset: 0;
  z-index: 320;
  display: grid;
  place-items: center;
  padding: 24px;
}

.app-download-dialog-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(18, 24, 34, 0.52);
  cursor: default;
}

.app-download-dialog-card {
  position: relative;
  z-index: 1;
  width: min(420px, calc(100vw - 32px));
  padding: 32px;
  border: 1px solid #e1e5eb;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 22px 70px rgba(22, 30, 43, 0.2);
  text-align: center;
}

.app-download-dialog-close {
  position: absolute;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f1f3f6;
  color: #818894;
  cursor: pointer;
}

.app-download-dialog-close svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
}

.app-download-dialog-card h2 {
  margin: 8px 28px 8px;
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: 0;
}

.app-download-dialog-card p {
  margin: 0 0 20px;
  color: #747b86;
  font-size: 16px;
  line-height: 1.4;
}

.app-download-dialog-qr {
  display: block;
  width: min(240px, 100%);
  aspect-ratio: 1;
  margin: 0 auto 20px;
}

.app-download-dialog-stores {
  display: flex;
  justify-content: center;
  gap: 10px;
}

.app-download-dialog-stores img {
  display: block;
  width: min(150px, calc(50% - 5px));
  height: auto;
}

@media (max-width: 480px) {
  .app-download-dialog-card {
    padding: 28px 20px 24px;
  }

  .app-download-dialog-card h2 {
    font-size: 21px;
  }
}

.company-empty {
  padding: 18px;
  border: 1px solid #e8e7ed;
  border-radius: 18px;
  background: #fff;
}

.company-empty h1 {
  margin: 0 0 8px;
  font-size: 20px;
  line-height: 24px;
  font-weight: 600;
}

.company-empty p {
  margin: 0;
  color: #888d94;
  font-size: 15px;
  line-height: 20px;
}

.vacancy-action-bar {
  position: fixed;
  left: max(12px, calc((100vw - 460px) / 2 + 12px));
  right: max(12px, calc((100vw - 460px) / 2 + 12px));
  bottom: calc(10px + env(safe-area-inset-bottom, 0px));
  z-index: 30;
  width: auto;
  max-width: 436px;
  margin: 0 auto;
  padding: 11px;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 -6px 24px rgba(24, 28, 34, 0.14);
}

.vacancy-action-bar.only-apply {
  padding: 9px;
}

.vacancy-action-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}

.vacancy-action-row.is-single-action {
  grid-template-columns: minmax(0, 1fr);
}

.vacancy-action-row.is-single-action .vacancy-action-telegram,
.vacancy-action-bar.only-apply .vacancy-action-apply {
  min-height: 48px;
}

.vacancy-action-bar.is-contact-only .vacancy-action-telegram {
  width: 100%;
}

.vacancy-detail-logo.admin-seed-logo-placeholder,
.vacancy-company-card .vacancy-detail-logo.admin-seed-logo-placeholder {
  background: #eef0f3;
}

.vacancy-action-bar a,
.vacancy-action-bar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  border: 0;
  border-radius: 9px;
  color: #f2f2f2;
  text-decoration: none;
  font-size: 15px;
  line-height: 19px;
  font-weight: 500;
  cursor: pointer;
  transition: background-color 0.16s ease;
}

.vacancy-action-bar svg {
  width: 21px;
  height: 21px;
  flex: 0 0 21px;
  fill: currentColor;
}

.vacancy-action-call,
.vacancy-action-telegram {
  background: #1ab759;
}

.vacancy-action-apply {
  width: 100%;
  margin-top: 8px;
  background: #1978e7;
}

.vacancy-action-bar.only-apply .vacancy-action-apply {
  margin-top: 0;
}

.vacancy-action-row.is-telegram-apply {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-action-error {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.4;
  color: #b42318;
  overflow-wrap: anywhere;
}

@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .callback-card > .contact-action-error {
    margin: 0 14px 18px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #fff4f2;
    font-size: 13px;
    line-height: 18px;
  }
}

.vacancy-action-row.is-telegram-apply > a,
.vacancy-action-row.is-telegram-apply > button {
  min-width: 0;
  min-height: 48px;
  margin-top: 0;
}

.restojob-ios-app .vacancy-action-bar {
  bottom: 18px !important;
  padding: 10px !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
}

.restojob-android-app .vacancy-action-bar {
  bottom: 4px !important;
  padding: 10px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: transparent !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.restojob-ios-app .vacancy-action-bar a,
.restojob-ios-app .vacancy-action-bar button,
.restojob-android-app .vacancy-action-bar a,
.restojob-android-app .vacancy-action-bar button {
  box-shadow: 0 6px 18px rgba(24, 28, 34, 0.18);
}

.restojob-ios-app .vacancy-action-bar.only-apply,
.restojob-android-app .vacancy-action-bar.only-apply {
  padding: 9px !important;
}

.vacancy-detail-secondary-actions {
  display: none;
}

.desktop-breadcrumbs {
  display: none;
}

@media (min-width: 900px) {
  .phone:not(.auth-phone) .content > .vacancy-page {
    width: min(100%, 1180px);
    max-width: 1180px;
    min-height: 0;
    margin: 0 auto;
    background: transparent;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs {
    display: block;
    color: #8b929c;
    font-size: 13px;
    line-height: 18px;
    font-weight: 430;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs li {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs li + li::before {
    content: "/";
    color: #c3c8d0;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs a {
    color: inherit;
    text-decoration: none;
    transition: color 160ms ease;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs a:hover {
    color: #161616;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs span[aria-current="page"] {
    color: #626a75;
  }

  .phone:not(.auth-phone) .desktop-breadcrumbs-spacer {
    visibility: hidden;
    pointer-events: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-page > .desktop-breadcrumbs,
  .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-screen > .desktop-breadcrumbs {
    width: min(100%, 1180px);
    max-width: 1180px;
    margin: 0 auto 12px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-breadcrumbs {
    width: min(100%, 1180px);
    max-width: 1180px;
    margin: 0 auto 8px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-results > .desktop-breadcrumbs {
    width: 100%;
    max-width: none;
    margin: 0 0 8px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-page-header {
    display: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-layout {
    display: grid;
    grid-template-columns: minmax(0, 760px) 320px;
    align-items: start;
    gap: 24px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-page {
    position: relative;
    min-width: 0;
    padding-bottom: 0;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    overflow: hidden;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-page.is-inactive {
    padding-bottom: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-cover {
    height: 260px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-card {
    margin-top: 0;
    padding: 24px;
    border-radius: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-main {
    grid-template-columns: minmax(0, 1fr) 112px;
    gap: 22px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-main h1 {
    font-size: 22px;
    line-height: 28px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-main strong {
    margin-top: 4px;
    font-size: 26px;
    line-height: 32px;
    font-weight: 600;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-brand {
    font-size: 16px;
    line-height: 20px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-logo {
    width: 112px;
    height: 112px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-description p {
    font-size: 16px;
    line-height: 25px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-description button {
    min-height: 46px;
    font-size: 14px;
    line-height: 18px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-location-section {
    padding: 22px 24px 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-map {
    height: 320px;
    border-radius: 16px;
    overflow: hidden;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-company-card {
    width: auto;
    margin: 24px;
    padding: 16px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-company-card .vacancy-detail-logo,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-company-card .vacancy-detail-logo-placeholder {
    width: 72px;
    height: 72px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-actions-panel {
    position: static !important;
    top: auto !important;
    align-self: start;
    display: grid;
    align-content: start;
    gap: 12px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-actions-panel:empty {
    display: none;
  }

  .vacancy-drawer .phone-inline-card,
  .phone:not(.auth-phone) .content > .vacancy-page .phone-inline-card {
    display: grid;
    gap: 6px;
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .vacancy-drawer .phone-inline-card strong,
  .phone:not(.auth-phone) .content > .vacancy-page .phone-inline-card strong {
    color: #111;
    font-size: 15px;
    line-height: 20px;
    font-weight: 700;
  }

  .vacancy-drawer .phone-inline-card a,
  .phone:not(.auth-phone) .content > .vacancy-page .phone-inline-card a {
    color: #111;
    text-decoration: none;
    font-size: 22px;
    line-height: 27px;
    font-weight: 750;
  }

  .vacancy-drawer .phone-inline-card p,
  .phone:not(.auth-phone) .content > .vacancy-page .phone-inline-card p {
    margin: 0;
    color: #626a75;
    font-size: 13px;
    line-height: 18px;
  }

  .vacancy-drawer .hidden-phone-card,
  .phone:not(.auth-phone) .content > .vacancy-page .hidden-phone-card {
    display: grid;
    justify-items: center;
    gap: 12px;
    padding: 18px 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    text-align: center;
  }

  .vacancy-drawer .hidden-phone-card-icon,
  .phone:not(.auth-phone) .content > .vacancy-page .hidden-phone-card-icon {
    width: 58px;
    height: 58px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: #f0f3f7;
    color: #8b95a1;
  }

  .vacancy-drawer .hidden-phone-card-icon svg,
  .phone:not(.auth-phone) .content > .vacancy-page .hidden-phone-card-icon svg {
    width: 31px;
    height: 31px;
  }

  .vacancy-drawer .hidden-phone-card p,
  .phone:not(.auth-phone) .content > .vacancy-page .hidden-phone-card p {
    margin: 0 auto;
    max-width: 230px;
    color: #626a75;
    font-size: 13px;
    line-height: 18px;
    font-weight: 430;
  }

  .vacancy-drawer .hidden-phone-card p + p,
  .phone:not(.auth-phone) .content > .vacancy-page .hidden-phone-card p + p {
    margin-top: 8px;
  }

  .vacancy-drawer .apply-inline-card,
  .phone:not(.auth-phone) .content > .vacancy-page .apply-inline-card {
    display: block;
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .vacancy-drawer .apply-inline-card h2,
  .phone:not(.auth-phone) .content > .vacancy-page .apply-inline-card h2 {
    margin: 0 0 12px;
    color: #111;
    font-size: 18px;
    line-height: 23px;
    font-weight: 700;
  }

  .vacancy-drawer .apply-inline-card .apply-message-field,
  .phone:not(.auth-phone) .content > .vacancy-page .apply-inline-card .apply-message-field {
    min-height: 116px;
    max-height: 220px;
    font-size: 14px;
    line-height: 19px;
  }

  .vacancy-drawer .apply-inline-card .apply-sheet-actions,
  .phone:not(.auth-phone) .content > .vacancy-page .apply-inline-card .apply-sheet-actions {
    gap: 8px;
    margin-top: 10px;
  }

  .vacancy-drawer .apply-inline-card .apply-sheet-actions button,
  .phone:not(.auth-phone) .content > .vacancy-page .apply-inline-card .apply-sheet-actions button {
    min-height: 42px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 18px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-bar {
    position: static !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    z-index: auto !important;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 16px;
    border: 1px solid #e2e5eb;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-bar a,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-bar button {
    min-height: 48px;
    border-radius: 12px;
  }

  @media (hover: hover) and (pointer: fine) {
    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-call:hover,
    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-telegram:hover {
      background: #149f4a;
    }

    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-apply:hover {
      background: #176cd0;
    }

    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-call:active,
    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-telegram:active {
      background: #118d41;
    }

    .phone:not(.auth-phone) .content > .vacancy-page .vacancy-action-apply:active {
      background: #145fba;
    }
  }

  .vacancy-drawer .vacancy-detail-secondary-actions,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-actions {
    display: grid;
    gap: 2px;
    padding: 2px 0;
  }

  .vacancy-drawer .vacancy-detail-secondary-action,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action {
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 0 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #626a75;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    line-height: 17px;
    font-weight: 430;
    box-shadow: none;
    transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
  }

  .vacancy-drawer .vacancy-detail-secondary-action:hover,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action:hover {
    background: #eef1f5;
    color: #25282b;
  }

  .vacancy-drawer .vacancy-detail-secondary-action svg,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
  }

  .vacancy-drawer .vacancy-detail-secondary-action [viewBox] path,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action [viewBox] path {
    stroke-width: 1.8;
  }

  .vacancy-drawer .vacancy-detail-secondary-action:first-child svg,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action:first-child svg {
    fill: transparent;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .vacancy-drawer .vacancy-detail-secondary-action.is-active,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action.is-active {
    color: var(--m-brand);
  }

  .vacancy-drawer .vacancy-detail-secondary-action.is-active:first-child svg,
  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-secondary-action.is-active:first-child svg {
    fill: currentColor;
  }

  html:has(.vacancy-page),
  html:has(.company-screen),
  html:has(.resume-screen),
  html:has(.resume-edit-screen),
  body:has(.vacancy-page),
  body:has(.company-screen),
  body:has(.resume-screen),
  body:has(.resume-edit-screen),
  .phone:not(.auth-phone):has(.vacancy-page),
  .phone:not(.auth-phone):has(.company-screen),
  .phone:not(.auth-phone):has(.resume-screen),
  .phone:not(.auth-phone):has(.resume-edit-screen) {
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  html:has(.vacancy-page)::-webkit-scrollbar,
  html:has(.company-screen)::-webkit-scrollbar,
  html:has(.resume-screen)::-webkit-scrollbar,
  html:has(.resume-edit-screen)::-webkit-scrollbar,
  body:has(.vacancy-page)::-webkit-scrollbar,
  body:has(.company-screen)::-webkit-scrollbar,
  body:has(.resume-screen)::-webkit-scrollbar,
  body:has(.resume-edit-screen)::-webkit-scrollbar,
  .phone:not(.auth-phone):has(.vacancy-page)::-webkit-scrollbar,
  .phone:not(.auth-phone):has(.company-screen)::-webkit-scrollbar,
  .phone:not(.auth-phone):has(.resume-screen)::-webkit-scrollbar,
  .phone:not(.auth-phone):has(.resume-edit-screen)::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
}

.callback-vacancy-card .vacancy-card,
.callback-vacancy-card .vacancy-card.has-cover {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.callback-vacancy-card .vacancy-card-main {
  padding: 14px;
}

.callback-vacancy-card .vacancy-card-cover,
.callback-vacancy-card .vacancy-feature-tags {
  display: none;
}

@media (min-width: 900px) {
  :root {
    --desktop-sidebar: 236px;
    --desktop-content-max: 1120px;
  }

  body {
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) {
    width: 100%;
    max-width: none;
    min-height: 100dvh;
    margin: 0;
    background: #f4f6fa;
  }

  .phone:not(.auth-phone) .topbar {
    display: none;
  }

  .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar));
    max-width: none;
    min-height: 100dvh;
    margin-left: var(--desktop-sidebar);
    padding: 40px 40px 64px;
  }

  .phone:not(.auth-phone) .content > .m-start {
    display: none;
  }

  .initial-vacancy-skeleton-mobile {
    display: none;
  }

  .initial-vacancy-skeleton-desktop {
    display: block;
  }

  .phone:not(.auth-phone) .content > .recommendation-head,
  .phone:not(.auth-phone) .content > .pills,
  .phone:not(.auth-phone) .content > .searchbar,
  .phone:not(.auth-phone) .content > .list-head,
  .phone:not(.auth-phone) .content > .recommendation-empty,
  .phone:not(.auth-phone) .content > .brand-month,
  .phone:not(.auth-phone) .content > .near-zone-summary,
  .phone:not(.auth-phone) .content > .recommendation-mark-viewed,
  .phone:not(.auth-phone) .content > .more {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    margin-left: auto;
    margin-right: auto;
  }

  .phone:not(.auth-phone) .content > .recommendation-head {
    padding: 0 0 16px;
    background: transparent;
  }

  .phone:not(.auth-phone) .content > .pills {
    padding-left: 0;
    padding-right: 0;
  }

  .phone:not(.auth-phone) .content > .category-pills {
    width: min(100%, 1168px);
    max-width: 1168px;
    justify-content: flex-start;
  }

  .phone:not(.auth-phone) .content > .searchbar {
    margin-bottom: 18px;
  }

  .phone:not(.auth-phone) .content > .vacancy-list {
    width: min(100%, var(--desktop-content-max));
    max-width: var(--desktop-content-max);
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    margin: 0 auto;
    padding: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list > .vacancy-maximum-group {
    grid-column: 1 / -1;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card {
    min-height: 100%;
    display: flex;
    flex-direction: column;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.07);
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card.list-item-button:hover {
    border-color: #9aa4b2;
    box-shadow: 0 10px 28px rgba(30, 40, 58, 0.12);
    background-color: #fff;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .desktop-row-spacer {
    display: block;
    min-height: 0;
    pointer-events: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card.has-cover {
    border: 1px solid #ffbc1f;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card.has-cover.list-item-button:hover {
    border-color: #f0a800;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card.has-cover .vacancy-card-cover {
    margin: 0 -14px 14px;
    border-radius: 16px 16px 0 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card > .vacancy-card-main-mobile,
  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-mobile {
    display: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card > .vacancy-card-main-desktop,
  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-maximum-group-item > .vacancy-card-main-desktop {
    display: grid;
    grid-template-columns: minmax(0, 1fr) max-content;
    align-items: stretch;
    flex: 1 1 auto;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card .item-title {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-desktop-info {
    display: grid;
    grid-template-columns: 116px minmax(0, 1fr);
    align-items: stretch;
    gap: 18px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-desktop-info > .grow {
    display: flex;
    min-height: 96px;
    flex-direction: column;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-desktop-logo {
    display: grid;
    place-items: start center;
    min-width: 0;
    padding: 0 10px;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-main-desktop .vacancy-logo,
  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-logo {
    width: 96px;
    height: 96px;
    flex-basis: 96px;
    margin: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-desktop-side {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 8px;
    min-width: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-main-desktop .vacancy-feature-tags {
    grid-column: auto;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: flex-end;
    justify-content: flex-start;
    justify-self: end;
    gap: 9px;
    margin-top: 0;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-main-desktop .vacancy-card-details {
    margin-top: auto;
    padding-top: 13px;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card:not(.is-paid) .vacancy-card-main-desktop .vacancy-publication-date {
    position: static;
    left: auto;
    right: auto;
    top: auto;
    width: auto;
    min-width: 0;
    margin-top: 2px;
    transform: none;
    text-align: right;
  }

  .phone:not(.auth-phone) .content > .vacancy-list .vacancy-card-cover {
    height: 168px;
  }

  .phone:not(.auth-phone) .tabbar {
    display: none;
  }

  .desktop-tabbar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 92;
    width: var(--desktop-sidebar);
    min-width: var(--desktop-sidebar);
    max-width: var(--desktop-sidebar);
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px 12px 20px 14px;
    border: 0;
    border-right: 1px solid #e7ebf1;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    contain: layout paint;
    scrollbar-gutter: stable;
    overflow-y: auto;
  }

  .desktop-tabbar.is-account {
    background: #fff;
    background-color: #fff;
  }

  .desktop-tabbar::before {
    content: none;
  }

  .desktop-sidebar-head {
    display: grid;
    gap: 4px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eff1f4;
  }

  .desktop-sidebar-head.is-guest {
    grid-template-rows: 45px 24px 330px 270px;
    height: auto;
    min-height: 688px;
  }

  .desktop-sidebar-logo {
    display: inline-flex;
    justify-self: center;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 45px;
    min-height: 45px;
  }

  .desktop-sidebar-logo img {
    width: 195px;
    height: auto;
    display: block;
  }

  .desktop-sidebar-login,
  .desktop-sidebar-city {
    min-height: 38px;
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: center;
    gap: 10px;
    padding: 0 12px;
    border: 1px solid #edf0f4;
    border-radius: 12px;
    background: #fff;
    color: #161616;
    font: inherit;
    font-size: 14px;
    line-height: 18px;
    font-weight: 600;
  }

  .desktop-sidebar-login {
    height: 330px;
    min-height: 330px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 84px minmax(0, 1fr) 38px;
    justify-items: center;
    gap: 8px;
    padding: 14px;
    cursor: pointer;
  }

  .desktop-sidebar-city {
    min-height: 24px;
    display: block;
    grid-template-columns: 16px minmax(0, 1fr);
    gap: 6px;
    padding: 0 7px;
    border: 0;
    margin-top: 0;
    margin-bottom: 8px;
    background: transparent;
    color: #626a75;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    position: relative;
  }

  .desktop-sidebar-login-icon,
  .desktop-sidebar-city-icon {
    width: 20px;
    height: 20px;
    display: grid;
    place-items: center;
    color: #161616;
  }

  .desktop-sidebar-city-icon {
    width: 16px;
    height: 16px;
    color: #8d9299;
  }

  .desktop-sidebar-city-icon svg {
    width: 16px;
    height: 16px;
  }

  .desktop-sidebar-city-icon svg {
    width: 20px;
    height: 20px;
  }

  .desktop-sidebar-login-icon,
  .desktop-sidebar-login-icon img {
    width: 84px;
    height: 84px;
  }

  .desktop-sidebar-login-icon img {
    display: block;
    contain: paint;
    object-fit: contain;
  }

  .desktop-sidebar-login-text {
    min-width: 0;
    justify-self: stretch;
    display: grid;
    gap: 4px;
    text-align: left;
  }

  .desktop-sidebar-city-icon svg {
    width: 16px;
    height: 16px;
  }

  .desktop-sidebar-city select {
    min-width: 0;
    width: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-weight: 500;
    appearance: none;
  }

  .desktop-sidebar-city-trigger {
    min-width: 0;
    width: 100%;
    display: flex;
    align-items: center;
    gap: 5px;
    justify-content: flex-start;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
  }

  .desktop-sidebar-city-current {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 0 1 auto;
    max-width: calc(100% - 24px);
  }

  .desktop-sidebar-city-chevron {
    color: #a5acb5;
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    display: grid;
    place-items: center;
    line-height: 1;
  }

  .desktop-sidebar-city-chevron svg {
    width: 18px;
    height: 18px;
    transform: translateY(1px);
  }

  .desktop-sidebar-city-menu {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 130;
    display: none;
    gap: 2px;
    padding: 6px;
    border: 1px solid #edf0f4;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 14px 34px rgba(20, 28, 40, 0.14);
  }

  .desktop-sidebar-city.is-open .desktop-sidebar-city-menu,
  .desktop-sidebar-city:focus-within .desktop-sidebar-city-menu {
    display: grid;
  }

  .desktop-sidebar-city-menu button {
    min-height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #161616;
    font: inherit;
    font-size: 13px;
    line-height: 17px;
    font-weight: 400;
    text-align: left;
    cursor: pointer;
  }

  .desktop-sidebar-city-menu button:hover {
    background: #fff1f1;
    color: var(--m-brand);
  }

  .desktop-sidebar-city-menu button.is-active {
    background: #fff1f1;
    color: var(--m-brand);
    font-weight: 600;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout {
    overflow: visible;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel {
    position: relative !important;
    top: auto !important;
    align-self: start;
    width: auto;
    z-index: 4;
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel.is-stuck {
    min-height: var(--desktop-vacancy-map-height, 224px);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout > .desktop-vacancy-map-panel.is-stuck .desktop-vacancy-map-card {
    position: fixed;
    left: var(--desktop-vacancy-map-left);
    top: 24px;
    width: var(--desktop-vacancy-map-width);
  }

  .phone:not(.auth-phone) .content > .desktop-catalog-layout.is-map-open > .desktop-vacancy-map-panel {
    position: static !important;
  }

  .desktop-tabbar-title {
    display: none;
  }

  .desktop-tabbar button[data-job-tab] {
    min-width: 0;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    text-align: left;
    cursor: pointer;
    font-size: 13px;
    line-height: 16px;
    font-weight: 500;
  }

  .desktop-tabbar button[data-job-tab].is-active {
    background: #f2f4f7;
    color: #161616;
    font-weight: 500;
  }

  .desktop-tabbar button[data-job-tab]:hover:not(.is-active) {
    background: rgba(242, 244, 247, 0.55);
  }

  .desktop-tabbar .tab-icon-slot {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: grid;
    place-items: center;
  }

  .desktop-tabbar .tab-icon {
    width: 24px;
    height: 24px;
    opacity: 1;
    filter: brightness(0) saturate(100%) invert(81%) sepia(6%) saturate(128%) hue-rotate(179deg) brightness(96%) contrast(86%);
  }

  .desktop-tabbar button[data-job-tab].is-active .tab-icon {
    filter: brightness(0) saturate(100%);
  }

  .desktop-tabbar .tab-label {
    min-width: 0;
    overflow: hidden;
    color: inherit;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .desktop-sidebar-login-text {
    justify-self: stretch;
    font-weight: 500;
    text-align: left;
  }

  .desktop-sidebar-login-text strong {
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
  }

  .desktop-sidebar-login-list {
    display: grid;
    gap: 4px;
    color: #626a75;
    font-size: 13px;
    line-height: 17px;
    font-weight: 400;
  }

  .desktop-sidebar-login-list span {
    min-width: 0;
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr);
    gap: 2px;
  }

  .desktop-sidebar-login-list span::before {
    content: "-";
    color: inherit;
  }

  .desktop-sidebar-role-cta {
    width: 100%;
    min-height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    justify-self: stretch;
    margin-top: 4px;
    padding: 0 12px;
    border-radius: 10px;
    background: #f2f4f7;
    color: #161616;
    font-size: 13px;
    line-height: 16px;
    font-weight: 500;
    text-align: center;
  }

  .desktop-sidebar-account {
    display: grid;
    gap: 2px;
    margin-top: 10px;
  }

  .desktop-sidebar-account-profile {
    width: 100%;
    min-height: 62px;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 13px;
    padding: 0 6px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    cursor: pointer;
    font: inherit;
    text-align: left;
  }

  .desktop-sidebar-account-profile:hover,
  .desktop-sidebar-account-item:hover {
    background: rgba(242, 244, 247, 0.65);
  }

  .desktop-sidebar-account-loading .desktop-sidebar-account-profile {
    cursor: default;
  }

  .desktop-sidebar-account-loading .desktop-sidebar-account-profile:hover {
    background: transparent;
  }

  .desktop-sidebar-account-avatar-skeleton {
    width: 58px;
    height: 58px;
    border-radius: 50%;
  }

  .desktop-sidebar-account-copy-skeleton {
    display: grid;
    gap: 8px;
    min-width: 0;
  }

  .desktop-sidebar-account-name-skeleton {
    width: min(118px, 100%);
    height: 16px;
    border-radius: 8px;
  }

  .desktop-sidebar-account-city-skeleton {
    width: min(92px, 82%);
    height: 12px;
    border-radius: 7px;
  }

  .desktop-sidebar-account-profile .side-menu-avatar {
    width: 58px;
    height: 58px;
  }

  .desktop-sidebar-account-profile strong {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: #161616;
    font-size: 14px;
    line-height: 17px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .desktop-sidebar-account-profile small {
    display: block;
    margin-top: 3px;
    overflow: hidden;
    color: #8b929c;
    font-size: 12px;
    line-height: 16px;
    font-weight: 430;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .desktop-sidebar-account-line {
    display: block;
    height: 1px;
    margin: 10px 0;
    background: #eff1f4;
  }

  .desktop-sidebar-account-item {
    width: 100%;
    min-height: 42px;
    display: grid;
    grid-template-columns: 26px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    padding: 0 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: #161616;
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    line-height: 17px;
    font-weight: 500;
    text-align: left;
  }

  .desktop-sidebar-account-item.is-active {
    background: #f2f4f7;
    font-weight: 500;
  }

  .desktop-sidebar-account-item > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .desktop-sidebar-account-item .side-menu-icon {
    width: 23px;
    height: 23px;
    color: #b5bcc6;
  }

  .desktop-sidebar-account-item .tab-icon,
  .desktop-sidebar-account-item .tab-icon.tab-icon-outline {
    width: 23px;
    height: 23px;
    color: #b5bcc6;
  }

  .desktop-sidebar-account-item.is-active .side-menu-icon,
  .desktop-sidebar-account-item.is-active .tab-icon {
    color: #161616;
  }

  .desktop-sidebar-account-item b {
    min-width: 24px;
    height: 24px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fb4e4e;
    color: #fff;
    font-size: 12px;
    line-height: 14px;
    font-weight: 700;
  }

  .desktop-sidebar-account-note {
    margin: 4px 8px 0 46px;
    color: #8b929c;
    font-size: 11px;
    line-height: 15px;
    font-weight: 430;
  }

  .desktop-sidebar-account .side-menu-switch {
    width: 42px;
    height: 24px;
    padding: 3px;
    border-radius: 12px;
  }

  .desktop-sidebar-account .side-menu-switch::before {
    width: 18px;
    height: 18px;
  }

  .desktop-sidebar-account .side-menu-switch.is-on::before {
    transform: translateX(18px);
  }

  .desktop-sidebar-login:hover .desktop-sidebar-role-cta,
  .desktop-sidebar-employer:hover .desktop-sidebar-role-cta {
    background: #e9edf3;
  }

  .desktop-sidebar-employer {
    height: 270px;
    min-height: 270px;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: 84px minmax(0, 1fr) 38px;
    justify-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 14px;
    border: 1px solid #edf0f4;
    border-radius: 14px;
    background: #fff;
    color: #161616;
    cursor: pointer;
    text-decoration: none;
    text-align: left;
    transition: border-color 160ms ease;
  }

  .desktop-sidebar-employer:hover {
    border-color: #9aa4b2;
  }

  .desktop-sidebar-employer-icon {
    width: 84px;
    height: 84px;
    display: grid;
    place-items: center;
    color: #161616;
  }

  .desktop-sidebar-employer-icon img {
    width: 84px;
    height: 84px;
    display: block;
    contain: paint;
    object-fit: contain;
  }

  .desktop-sidebar-employer-content {
    min-width: 0;
    display: grid;
    gap: 4px;
    justify-self: stretch;
  }

  .desktop-sidebar-employer strong {
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
  }

  .desktop-sidebar-employer ul {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    color: #626a75;
    font-size: 13px;
    line-height: 17px;
    font-weight: 400;
    list-style: none;
  }

  .desktop-sidebar-employer li {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr);
    gap: 2px;
    padding-left: 0;
  }

  .desktop-sidebar-employer li::before {
    content: "-";
    color: inherit;
  }

  .side-menu {
    display: none;
  }

  .floating-map-button {
    right: 48px;
    bottom: 38px;
  }
}

/* Local desktop experiment: centered content with sidebar at the window edge. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone)::after {
    content: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-sidebar-employer .vacancy-location-section {
    padding-bottom: 24px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-layout.has-employer-panel {
    grid-template-columns: minmax(0, 16fr) minmax(0, 11fr);
    max-width: 1104px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-employer-panel .vacancy-detail-actions-panel {
    padding: 16px;
    border: 1px solid #dbe7f5;
    border-radius: 18px;
    background: #fff;
  }

  .vacancy-detail-employer-column {
    min-width: 0;
    display: grid;
    align-self: start;
    gap: 10px;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-employer-column > .vacancy-detail-secondary-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    padding: 0;
  }

  .vacancy-detail-employer-column > .vacancy-detail-secondary-actions > :only-child {
    grid-column: 1 / -1;
  }

  .vacancy-drawer .vacancy-detail-secondary-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 10px;
  }

  .vacancy-drawer :is(.phone-inline-card, .apply-inline-card, .hidden-phone-card) {
    border: 0;
    border-top: 1px solid #e7ebf0;
    padding: 16px 0 0;
    border-radius: 0;
    box-shadow: none;
  }

  .vacancy-drawer .phone-inline-card {
    grid-template-columns: 22px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
  }

  .vacancy-drawer .phone-inline-copy { overflow-wrap: anywhere; }

  .vacancy-drawer .phone-inline-card a {
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-employer-panel :is(.vacancy-action-bar, .phone-inline-card, .apply-inline-card, .hidden-phone-card) {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-sidebar-employer .vacancy-detail-main {
    grid-template-columns: minmax(0, 1fr);
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-employer-panel .hidden-phone-card > div {
    width: 100%;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-employer-panel .hidden-phone-card-icon {
    display: none;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .has-employer-panel .hidden-phone-card p {
    display: inline;
    max-width: none;
    margin: 0;
  }

  .vacancy-detail-employer {
    display: grid;
    gap: 16px;
    min-width: 0;
  }

  .vacancy-detail-employer-cover {
    width: calc(100% + 32px);
    max-width: none;
    margin: -16px -16px 0;
    height: auto;
    aspect-ratio: 2 / 1;
    border-radius: 17px 17px 0 0;
    overflow: hidden;
  }

  .vacancy-detail-employer-identity {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    width: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: #161616;
    text-align: left;
    font: inherit;
    cursor: pointer;
  }

  .phone:not(.auth-phone) .content > .vacancy-page .vacancy-detail-employer-identity :is(.vacancy-detail-logo, .vacancy-detail-logo-placeholder) {
    flex: 0 0 80px;
    width: 80px;
    height: 80px;
  }

  .vacancy-detail-employer-identity > span {
    display: grid;
    gap: 4px;
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .vacancy-detail-employer-identity strong {
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
  }

  .vacancy-detail-employer-identity > span > span {
    color: #626a75;
    font-size: 13px;
    line-height: 18px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-sidebar-city {
    top: -6px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) {
    --desktop-shell-max: 1436px;
    width: min(100%, var(--desktop-shell-max));
    margin-inline: auto;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-sidebar: 283.2px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    left: 0;
  }
}

/* Local desktop experiment: near-white gray canvas behind white cards. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) #app,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) body,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .content,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer {
    background: #f9fafb;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    background: #ffffff;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(
    .vacancy-card:not(.has-cover),
    .desktop-sections-right-card,
    .desktop-sidebar-login,
    .desktop-sidebar-employer,
    .vacancy-detail-card,
    .vacancy-detail-side-panel,
    .company-detail-main-panel,
    .company-detail-side-panel,
    .desktop-resume-profile-card,
    .resume-sheet,
    .resume-edit-card,
    .callback-card,
    .searchbar,
    .pill:not(.is-active)
  ) {
    border-color: #dbe7f5;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    border-right-color: #dbe7f5;
  }

}

/* Local desktop experiment: narrower central vacancy column. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-layout {
    width: min(100%, 984px);
    max-width: 984px;
    grid-template-columns: minmax(0, 640px) 320px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-breadcrumbs,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-inner {
    width: min(100%, 984px);
    max-width: 984px;
  }
}

/* Local desktop experiment: home blocks align with the logo's upper edge. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content {
    padding-top: 28px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-breadcrumbs-spacer {
    display: none;
  }
}

/* One desktop top inset for cards, right panels and their pinned state. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) {
    --desktop-panel-top: 28px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel.is-stuck .desktop-sections-right-stack,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel {
    top: var(--desktop-panel-top);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content:has(> .desktop-breadcrumbs:not(.desktop-breadcrumbs-spacer)),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content:has(> .vacancy-page > .desktop-breadcrumbs:not(.desktop-breadcrumbs-spacer)),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .content:has(.company-screen > .desktop-breadcrumbs:not(.desktop-breadcrumbs-spacer)) {
    padding-top: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-breadcrumbs,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .vacancy-page > .desktop-breadcrumbs,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-screen > .desktop-breadcrumbs {
    margin-bottom: 10px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .vacancy-page > .desktop-breadcrumbs-spacer {
    display: none;
  }
}

/* Narrow desktop: do not reserve a column for the hidden right panel. */
@media (min-width: 900px) and (max-width: 1419px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-layout {
    width: min(100%, 640px);
    max-width: 640px;
    grid-template-columns: minmax(0, 1fr);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-breadcrumbs,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-site-footer-inner,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .vacancy-page,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-screen {
    width: min(100%, 640px);
    max-width: 640px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .vacancy-detail-layout,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-detail-side-panel {
    position: static;
  }
}

/* Desktop hidden-phone state: keep the apply button without explanatory copy. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .vacancy-detail-actions-panel > .hidden-phone-card {
    display: none;
  }
}

/* Desktop messages: compact heading gap and aligned callback filter. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .desktop-messages-screen h1 {
    margin-bottom: 16px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-panel {
    margin-top: 44px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-message-tabs-panel .desktop-message-tabs-card {
    margin-top: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 10px;
    padding: 8px 14px 18px;
    border-top: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions a {
    flex: 0 0 auto;
    width: auto;
    min-height: 38px;
    gap: 8px;
    padding: 9px 14px;
    border-radius: 10px;
    background: #18a957;
    color: #fff;
    font-size: 14px;
    line-height: 18px;
    font-weight: 500;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions a:hover {
    background: #15994e;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions a:active {
    background: #128a46;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions svg {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
  }
}

@media (min-width: 900px) and (pointer: coarse) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-messages-results .callback-actions a {
    min-height: 44px;
  }
}

/* Desktop message read action belongs to the right-side controls. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel .messages-read-footer {
    position: static;
    inset: auto;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    transform: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel .messages-read-footer button {
    min-height: 46px;
    padding: 10px 14px;
    border-radius: 10px;
    font-size: 14px;
    line-height: 18px;
  }
}

/* Keep message controls visible when desktop columns stack. */
@media (min-width: 900px) and (max-width: 1419px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) :is(.desktop-messages-results, .desktop-messages-screen) {
    display: contents;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) .desktop-messages-screen h1 {
    order: 0;
    margin-bottom: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout > .desktop-message-controls-panel {
    display: block;
    order: 1;
    width: 100%;
    min-height: 0;
    margin-top: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel .desktop-sections-right-stack {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 12px;
    width: 100%;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel :is(.desktop-message-tabs-card, .messages-read-footer) {
    flex: 1 1 220px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) :is(.callback-list, .messages-placeholder) {
    order: 2;
    width: 100%;
  }
}

/* Desktop recommendation modes: equal tiles in a two-by-two grid. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill {
    position: relative;
    min-width: 0;
    min-height: 76px;
    padding: 12px 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid #eceef1;
    border-radius: 12px;
    background: #f8f9fb;
    color: #4d535d;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill.is-active {
    background: var(--desktop-selection-bg);
    border-color: var(--desktop-selection-border);
    color: var(--desktop-selection-color);
    font-weight: 500;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill:hover:not(.is-active) {
    background: #f1f4f8;
    border-color: #dbe7f5;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill.has-unviewed::after {
    width: 6px;
    height: 6px;
    top: 10px;
    right: 10px;
    background: var(--desktop-selection-color);
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .recommendation-mode-icon {
    width: 18px;
    height: 18px;
    flex: none;
  }
}

/* Desktop category filters: always-visible search and a single-column list. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-filters .searchbar {
    margin: 18px 0 0;
    max-height: 44px;
    opacity: 1;
    visibility: visible;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-filter-label {
    display: block;
    margin-bottom: 8px;
    color: #70737a;
    font-size: 12px;
    line-height: 17px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-spec-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 4px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-spec {
    width: 100%;
    min-width: 0;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: #fff;
    color: #4d535d;
    font: inherit;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
    text-align: left;
    cursor: pointer;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-spec.is-active {
    background: var(--desktop-selection-bg);
    color: var(--desktop-selection-color);
    font-weight: 500;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-category-spec:hover:not(.is-active) {
    background: #f8f9fb;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-stack:has(.desktop-category-filters) {
    max-height: calc(100dvh - 56px);
    overflow-y: auto;
  }
}

/* Desktop map action: white row with context and a trailing arrow. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-row {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) 18px;
    gap: 12px;
    align-items: center;
    min-height: 76px;
    padding: 16px;
    border-color: #dbe7f5;
    border-radius: 16px;
    background: #fff;
    color: #171717;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-row:hover {
    border-color: #c5d6eb;
    background: #fff;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-row .desktop-sections-map-content {
    gap: 3px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-row .desktop-sections-map-content strong {
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-row .desktop-sections-map-content > span {
    color: #70737a;
    font-size: 13px;
    line-height: 18px;
    font-weight: 400;
    white-space: normal;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-icon {
    display: flex;
    color: #4d535d;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-map-link-icon svg, .desktop-map-link-arrow) {
    width: 18px;
    height: 18px;
    stroke-width: 1.6;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-map-link-arrow {
    color: var(--desktop-selection-color);
  }
}

/* Desktop resume follows the same column widths as vacancy catalogs. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-resume-screen {
    width: min(100%, 984px);
    max-width: 984px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-layout {
    grid-template-columns: minmax(0, 640px) 320px;
    gap: 24px;
  }
}

@media (min-width: 900px) and (max-width: 1419px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .desktop-resume-screen {
    width: min(100%, 640px);
    max-width: 640px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-profile-card {
    position: static;
  }
}

/* Desktop resume summary: separate cards with a clear position/salary hierarchy. */
@media (min-width: 900px) {
  .desktop-resume-card-screen .desktop-resume-page-title {
    margin: 0 0 18px;
    color: #171717;
    font-size: 22px;
    line-height: 28px;
    font-weight: 600;
  }

  .desktop-resume-card-screen .desktop-resume-cards {
    display: grid;
    gap: 16px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-card-screen .desktop-resume-cards .resume-section-card {
    padding: 22px;
    border: 1px solid #dbe7f5;
    border-radius: 18px;
    background: #fff;
    box-shadow: none;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-card-screen .resume-section-head {
    display: flex;
    min-height: 32px;
    padding-right: 120px;
    margin-bottom: 16px;
  }

  .desktop-resume-card-screen .resume-section-icon {
    display: none;
  }

  .desktop-resume-card-screen .resume-section-head h2 {
    color: #171717;
    font-size: 17px;
    line-height: 24px;
    font-weight: 600;
  }

  .desktop-resume-card-screen .resume-section-card:first-child .resume-section-head h2 {
    color: #70737a;
    font-size: 13px;
    line-height: 18px;
    font-weight: 400;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-card-screen .resume-section-action {
    top: 22px;
    right: 14px;
    min-height: 32px;
    padding: 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #70737a;
    font-size: 13px;
    line-height: 16px;
    font-weight: 400;
    box-shadow: none;
  }

  .desktop-resume-card-screen .desktop-resume-salary {
    margin: 0;
    color: #e93c3c;
    font-size: 20px;
    line-height: 26px;
    font-weight: 500;
  }

  .desktop-resume-card-screen .desktop-resume-specialties {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }

  .desktop-resume-card-screen .desktop-resume-specialties > span {
    padding: 8px 12px;
    border-radius: 20px;
    background: #f3f5f8;
    color: #4d535d;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
  }

  .desktop-resume-card-screen .resume-section-content .desktop-resume-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 24px;
  }

  .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-resume-card-screen .resume-section-content .desktop-resume-facts > div {
    display: block;
    min-width: 0;
  }

  .desktop-resume-card-screen .desktop-resume-facts dt {
    margin-bottom: 4px;
    color: #70737a;
    font-size: 12px;
    line-height: 17px;
  }

  .desktop-resume-card-screen .desktop-resume-facts dd {
    color: #171717;
    overflow-wrap: anywhere;
  }

  .desktop-resume-card-screen .desktop-resume-location {
    display: flex;
    align-items: center;
    gap: 12px;
  }

  .desktop-resume-card-screen .desktop-resume-location > svg {
    width: 18px;
    height: 18px;
    color: #70737a;
    flex: none;
    stroke-width: 1.6;
  }

  .desktop-resume-card-screen .desktop-resume-location > div {
    display: grid;
    gap: 4px;
    min-width: 0;
  }

  .desktop-resume-card-screen .desktop-resume-location strong {
    color: #171717;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
  }

  .desktop-resume-card-screen .desktop-resume-location span {
    color: #70737a;
    font-size: 13px;
    line-height: 18px;
  }

  .desktop-resume-card-screen .resume-section-content .desktop-resume-about.is-filled {
    color: #171717;
    white-space: pre-line;
  }

  .desktop-resume-card-screen .resume-work-preview > div {
    padding: 0 0 0 14px;
    border: 0;
    border-left: 2px solid #dbe7f5;
  }
}

/* Desktop surfaces: clearer neutral borders, with white fills unchanged. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-surface-border: #cfd8e3;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(
    .vacancy-card:not(.has-cover),
    .desktop-sections-right-card,
    .desktop-sidebar-login,
    .desktop-sidebar-employer,
    .desktop-sections-map-preview,
    .vacancy-detail-page,
    .vacancy-detail-actions-panel,
    .phone-inline-card,
    .apply-inline-card,
    .company-detail-main-panel,
    .company-detail-side-panel,
    .desktop-resume-profile-card,
    .resume-section-card,
    .resume-edit-card,
    .resume-work-item,
    .callback-card,
    .seo-vacancy-catalog
  ) {
    border-color: var(--desktop-surface-border);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.vacancy-card:not(.has-cover), .desktop-map-link-row):hover {
    border-color: #b6c4d5;
  }

  .desktop-resume-card-screen .desktop-resume-salary-block {
    margin-top: 20px;
  }

  .desktop-resume-card-screen .desktop-resume-salary-label {
    display: block;
    margin-bottom: 4px;
    color: #70737a;
    font-size: 12px;
    line-height: 17px;
  }
}

.desktop-sidebar-logo .desktop-sidebar-symbol {
  display: none;
}

/* Compact desktop navigation preserves the results and right column. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-compact-right: clamp(280px, calc(100vw - 820px), 320px);
    --desktop-sidebar-space: clamp(80px, calc(100vw - 1032px), 283.2px);
  }
}

@media (min-width: 900px) {
  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-sidebar: 80px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .content {
    padding-inline: 24px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    transition: width 180ms ease, min-width 180ms ease, max-width 180ms ease, box-shadow 180ms ease;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:is(:hover, :has(:focus-visible)) {
    width: 283.2px;
    min-width: 283.2px;
    max-width: 283.2px;
    box-shadow: 12px 0 36px rgba(26, 38, 54, 0.16);
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:is(:hover, :has(:focus-visible)) .desktop-app-download {
    width: 246.4px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) {
    padding-inline: 12px;
    scrollbar-gutter: auto;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.desktop-sidebar-head, .desktop-sidebar-account, .desktop-sidebar-city, .desktop-sidebar-logo) {
    width: 100%;
    min-width: 0;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-wordmark {
    display: none;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-symbol {
    display: block;
    width: 44px;
    height: 44px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-logo {
    justify-content: center;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-city {
    visibility: hidden;
    pointer-events: none;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(
    .desktop-sidebar-account-profile > span:not(.side-menu-avatar),
    .desktop-sidebar-account-copy-skeleton,
    .desktop-sidebar-account-item > span,
    .desktop-sidebar-account-item > b,
    .desktop-sidebar-account-item .side-menu-switch,
    .desktop-sidebar-account-note,
    .desktop-sidebar-feedback > span,
    .tab-label,
    .desktop-app-download,
    .desktop-sidebar-login-text,
    .desktop-sidebar-employer-content,
    .desktop-sidebar-role-cta
  ) {
    display: none;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-account-profile {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 0;
    padding-inline: 0;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.side-menu-avatar, .desktop-sidebar-account-avatar-skeleton) {
    width: 42px;
    height: 42px;
    flex-basis: 42px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.desktop-sidebar-account-item, .desktop-sidebar-feedback) {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    align-items: center;
    min-height: 44px;
    gap: 0;
    padding: 0;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.desktop-sidebar-login, .desktop-sidebar-employer) {
    width: 52px;
    height: 52px;
    min-height: 52px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 0;
    padding: 0;
    border: 0;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.desktop-sidebar-login-icon, .desktop-sidebar-employer-icon, .desktop-sidebar-login-icon img, .desktop-sidebar-employer-icon img) {
    width: 40px;
    height: 40px;
  }

}

@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-sections-layout, .desktop-messages-layout:has(.desktop-message-controls-panel), .desktop-resume-layout, .vacancy-detail-layout, .vacancy-detail-layout.has-employer-panel, .company-detail-layout) {
    display: grid;
    width: min(100%, calc(640px + 24px + var(--desktop-compact-right)));
    max-width: calc(640px + 24px + var(--desktop-compact-right));
    grid-template-columns: minmax(0, 1fr) var(--desktop-compact-right);
    gap: 24px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.content > .desktop-breadcrumbs, .desktop-site-footer-inner, .content > .vacancy-page, .content > .company-screen, .content > .desktop-resume-screen) {
    width: min(100%, calc(640px + 24px + var(--desktop-compact-right)));
    max-width: calc(640px + 24px + var(--desktop-compact-right));
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-panel {
    display: block;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) .desktop-messages-results {
    display: flex;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) .desktop-messages-screen {
    display: block;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout:has(.desktop-message-controls-panel) .desktop-messages-screen h1 {
    margin-bottom: 16px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-messages-layout > .desktop-message-controls-panel {
    width: auto;
    margin-top: 44px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel .desktop-sections-right-stack {
    display: grid;
    gap: 12px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-message-controls-panel.is-stuck .desktop-sections-right-stack {
    position: fixed;
    left: var(--desktop-sections-right-left);
    top: 28px;
    width: var(--desktop-sections-right-width);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-resume-profile-card, .company-detail-side-panel) {
    position: sticky;
    top: 28px;
  }
}

@media (min-width: 900px) and (max-width: 1100px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-compact-right: 280px;
  }
}

@media (min-width: 900px) {
  @container desktop-vacancy-results (max-width: 560px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-card-main-desktop {
    grid-template-columns: minmax(0, 1fr);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-desktop-info {
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-desktop-logo {
    padding: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-card-main-desktop .vacancy-logo {
    width: 64px;
    height: 64px;
    flex-basis: 64px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-desktop-side {
    grid-row: 2;
    justify-items: start;
    padding-left: 76px;
    margin-top: 10px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.catalog-vacancy-list, .callback-vacancy-card) .vacancy-card-main-desktop .vacancy-feature-tags {
    flex-direction: row;
    flex-wrap: wrap;
    justify-self: start;
  }
}
}

@media (prefers-reduced-motion: reduce) {
  .phone:not(.auth-phone) > .desktop-tabbar {
    transition: none;
  }
}

/* Shared blue selection palette across desktop right menus and filters. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .content > .near-zone-edit-screen {
    width: min(100%, 984px);
    margin: 0 auto;
    border-color: #cfd8e3;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.vacancy-map-phone:not(.auth-phone) .map-card-drawer {
    width: min(360px, calc(100% - 32px));
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) {
    --desktop-selection-bg: #eaf3ff;
    --desktop-selection-color: #1769c2;
    --desktop-selection-border: #c8ddfa;
    --desktop-selection-hover: #f1f6ff;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar :is(.desktop-sidebar-account-item.is-active, button[data-job-tab].is-active, .desktop-sidebar-feedback.is-active, .desktop-sidebar-city-menu button.is-active) {
    background: var(--desktop-selection-bg);
    color: var(--desktop-selection-color);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar .is-active :is(.side-menu-icon, .tab-icon) {
    color: var(--desktop-selection-color);
    filter: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar .desktop-sidebar-feedback.is-active {
    border-color: var(--desktop-selection-border);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar .desktop-sidebar-feedback.is-active strong {
    color: inherit;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-sections-right-nav, .desktop-message-tabs-card .message-tabs) button {
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-sections-right-nav, .desktop-message-tabs-card .message-tabs) button.is-active {
    background: var(--desktop-selection-bg);
    color: var(--desktop-selection-color);
    font-weight: 500;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-icon-slot {
    width: 20px;
    height: 20px;
    flex-basis: 20px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav .tab-icon {
    width: 18px;
    height: 18px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button.is-active .tab-icon,
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-favorites-filter-card .message-tabs button.is-active b {
    color: var(--desktop-selection-color);
  }
}

@media (min-width: 900px) and (hover: hover) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar :is(.desktop-sidebar-account-item, button[data-job-tab], .desktop-sidebar-feedback, .desktop-sidebar-city-menu button, button.desktop-sidebar-account-profile):hover:not(.is-active),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) :is(.desktop-sections-right-nav button, .desktop-message-tabs-card .message-tabs button, .desktop-category-spec, .desktop-recommendation-card .recommendation-pills .pill):hover:not(.is-active) {
    background: var(--desktop-selection-hover);
    color: var(--desktop-selection-color);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar :is(.desktop-sidebar-account-item, button[data-job-tab], .desktop-sidebar-feedback):hover :is(.side-menu-icon, .tab-icon, strong),
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-nav button:hover .tab-icon {
    color: var(--desktop-selection-color);
    filter: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-card .recommendation-pills .pill:hover:not(.is-active) {
    border-color: var(--desktop-selection-border);
  }
}

/* Desktop controls sit outside content cards. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .content-admin:has(> .content-admin-open) {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 80;
    margin: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .content-admin .content-admin-open {
    min-height: 38px;
    padding: 8px 12px;
    border-color: #cfd8e3;
    border-radius: 10px;
    box-shadow: 0 4px 14px rgba(26, 38, 54, 0.1);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .content {
    padding-top: 28px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-tabbar:has(.desktop-app-download .desktop-sidebar-feedback) {
    padding-bottom: 156px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-app-download .desktop-sidebar-feedback {
    grid-column: 1 / -1;
    display: grid;
    width: 208px;
    max-width: 100%;
    margin: 0 auto 6px;
    padding: 8px 10px;
    border: 1px solid #cfd8e3;
    border-radius: 10px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-recommendation-panel .recommendation-mark-viewed {
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 10px 12px;
    border-color: transparent;
    background: #222831;
    color: #fff;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
    cursor: pointer;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .phone-inline-card {
    display: grid;
    grid-template-columns: 22px minmax(0, 1fr);
    gap: 12px;
    margin-top: 4px;
    padding: 14px;
    border: 1px solid #dfe7f0;
    border-radius: 12px;
    background: #f4f7fb;
    box-shadow: none;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone-inline-icon {
    display: flex;
    margin-top: 2px;
    color: #8c9bad;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone-inline-icon svg {
    width: 22px;
    height: 22px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone-inline-copy {
    min-width: 0;
    display: grid;
    gap: 8px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .vacancy-page .phone-inline-card a {
    font-size: 18px;
    line-height: 24px;
    font-weight: 600;
  }
}

@media (min-width: 900px) {
  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-app-download:has(.desktop-sidebar-feedback) {
    display: grid;
    width: 52px;
    padding: 0;
    border: 0;
    grid-template-columns: minmax(0, 1fr);
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-app-download [data-open-app-download] {
    display: none;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-app-download .desktop-sidebar-feedback {
    width: 52px;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
  }
}

/* Sidebar footer divider separates feedback from store badges. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-app-download:has(.desktop-sidebar-feedback) {
    padding-top: 0;
    border-top: 0;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-app-download:has(.desktop-sidebar-feedback)::before {
    content: "";
    grid-column: 1 / -1;
    order: 1;
    height: 1px;
    margin: 3px -4px;
    background: #eff1f4;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-app-download [data-open-app-download] {
    order: 2;
  }
}

@media (min-width: 900px) {
  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-app-download::before {
    display: none;
  }
}

@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .content {
    padding-inline: 24px;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .vacancy-detail-admin-control {
    justify-self: end;
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .vacancy-detail-admin-control > .content-admin {
    position: static;
    margin: 8px 0 0;
  }
}

@media (min-width: 900px) {
  html.desktop-sidebar-resizing:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    transition: none;
  }
}

/* Only the collapsed guest rail uses icon-only role controls. */
@media (min-width: 900px) {
  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-head.is-guest {
    grid-template-rows: none;
    height: auto;
    min-height: 0;
    gap: 8px;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) .desktop-sidebar-head.is-guest .desktop-sidebar-city {
    display: none;
  }

  html.desktop-sidebar-compact:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar:not(:hover):not(:has(:focus-visible)) :is(.desktop-sidebar-login, .desktop-sidebar-employer, .desktop-sidebar-login-icon, .desktop-sidebar-employer-icon) {
    justify-self: center;
  }
}

/* Main content reserves sidebar space continuously, independently of menu mode. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) .content {
    width: calc(100% - var(--desktop-sidebar-space));
    margin-left: var(--desktop-sidebar-space);
  }

  html:not(.desktop-sidebar-compact):not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone:not(.auth-phone) > .desktop-tabbar {
    width: var(--desktop-sidebar-space);
    min-width: var(--desktop-sidebar-space);
    max-width: var(--desktop-sidebar-space);
  }

  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) :is(.catalog-vacancy-list, .callback-list) {
    container-type: inline-size;
    container-name: desktop-vacancy-results;
  }
}

/* Guest desktop homepage. The existing guest sidebar is deliberately untouched. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .guest-home {
    --guest-home-hero-height: 330px;
    width: min(100%, calc(640px + 24px + var(--desktop-compact-right)));
    max-width: calc(640px + 24px + var(--desktop-compact-right));
    margin-inline: auto;
    display: flex;
    flex-direction: column;
    gap: 28px;
    color: #171717;
  }
  .guest-home :is(h1, h2, h3, p, ul) { margin: 0; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .guest-home .guest-home-layout { width: 100%; max-width: none; margin: 0; align-items: start; grid-template-columns: minmax(0, 1fr) 240px; }
  .guest-home-category-picker { display: grid; gap: 10px; }
  .guest-home-category-picker > p { font-size: 16px; line-height: 20px; font-weight: 400; }
  .guest-home-category-picker > p small { display: block; margin-top: 0; color: inherit; font: inherit; }
  .guest-home-main { display: flex; flex-direction: column; gap: 28px; min-width: 0; }
  .guest-home-hero { position: relative; height: var(--guest-home-hero-height); overflow: hidden; border-radius: 20px; padding: 26px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; color: #fff; isolation: isolate; }
  .guest-home-hero > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 15%; z-index: -2; }
  .guest-home-hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 17, 25, .75), rgba(8, 17, 25, .10)); z-index: -1; }
  .guest-home-hero-copy { max-width: 100%; }
  .guest-home-hero-copy h1 { font-size: 28px; line-height: 32px; letter-spacing: 0; font-weight: 500; }
  .guest-home-hero-copy h1 > span { display: block; white-space: nowrap; }
  .guest-home-categories { display: flex; flex-wrap: wrap; gap: 8px; }
  .guest-home-categories a { display: flex; align-items: center; gap: 7px; min-height: 38px; padding: 8px 11px; border: 1px solid #1878ed; border-radius: 9px; background: #1878ed; color: #fff; font-size: 14px; white-space: nowrap; line-height: 20px; font-weight: 400; text-decoration: none; }
  .guest-home-categories a:hover { background: #1769c2; border-color: #1769c2; }
  .guest-home-categories svg { width: 18px; height: 18px; flex: none; color: #fff; stroke: #fff; stroke-width: 2.2; filter: none; }
  .guest-home-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
  .guest-home-section-heading h2 { font-size: 20px; line-height: 25px; font-weight: 700; letter-spacing: -.2px; }
  .guest-home-collection-toolbar > a, .guest-home-section-heading > a { color: #1769c2; font-size: 14px; line-height: 20px; text-decoration: none; white-space: nowrap; }
  .guest-home-collection-toolbar > a:hover, .guest-home-section-heading > a:hover { text-decoration: underline; }
  .guest-home-collection-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 16px; }
  .guest-home-collection-tabs { display: flex; flex-wrap: wrap; gap: 8px; }
  .guest-home-empty button { margin-left: 8px; padding: 5px 10px; border: 1px solid #c8ddfa; border-radius: 7px; background: #eaf3ff; color: #1769c2; }
  .guest-home-collection-tabs button { min-height: 38px; padding: 8px 12px; border: 1px solid #cfd8e3; border-radius: 9px; color: #697282; background: #fff; font-size: 14px; line-height: 20px; }
  .guest-home-collection-tabs button:hover { background: #f1f6ff; color: #1769c2; }
  .guest-home-collection-tabs .is-active { color: #1769c2; background: #eaf3ff; border-color: #c8ddfa; }
  .guest-home-jobs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .guest-home-jobs > .guest-home-empty { grid-column: 1 / -1; }
  .guest-home-job { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 18px; border: 1px solid #cfd8e3; border-radius: 16px; background: #fff; color: #171717; text-decoration: none; }
  .guest-home-job:hover { border-color: #b6c4d5; }
  .guest-home-job-heading { position: relative; padding-right: 68px; }
  .guest-home-job h3 { overflow: hidden; min-width: 0; font-size: 16px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }
  .guest-home-job .vacancy-logo { position: absolute; top: 0; right: 0; width: 56px; height: 56px; min-width: 56px; border-radius: 50%; object-fit: contain; margin: 0; font-size: 14px; }
  .guest-home-job-salary { padding-right: 68px; color: #ff3036; font-size: 20px; line-height: 24px; font-weight: 500; }
  .guest-home-job > p { font-size: 14px; line-height: 19px; overflow-wrap: anywhere; }
  .guest-home-job-meta { display: flex; gap: 6px; align-items: start; color: #697282; font-size: 13px; line-height: 18px; }
  .guest-home-job-meta svg { width: 14px; height: 14px; margin-top: 2px; color: #b3bcc8; flex: none; }
  .guest-home-job-meta > .metro-mark-stack { margin-top: 2px; flex: none; }
  .guest-home :is(.guest-home-loading, .guest-home-empty) { padding: 24px; border: 1px solid #cfd8e3; border-radius: 16px; background: #fff; color: #697282; font-size: 15px; line-height: 22px; }
  .guest-home-app-panel { min-width: 0; }
  .guest-home-app-card { display: grid; grid-template-rows: calc(var(--guest-home-hero-height) - 91px) auto; min-height: var(--guest-home-hero-height); gap: 8px; padding: 0 0 12px; overflow: hidden; border: 1px solid #cfd8e3; border-radius: 20px; background: #fff; }
  .guest-home-app-art { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; object-position: center; border-radius: 0; }
  .guest-home-app-qr { margin-inline: 18px; display: flex; align-items: center; gap: 12px; text-align: left; padding: 0; border: 0; background: transparent; color: #171717; }
  .guest-home-app-qr > img { width: 72px; height: 72px; flex: none; }
  .guest-home-app-qr > span { font-size: 13px; line-height: 16px; font-weight: 500; }
  .guest-home-app-qr small { display: block; margin-top: 2px; color: #697282; font-size: 11px; line-height: 14px; font-weight: 400; }
  .guest-home-employer-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
  .guest-home-employer { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; min-height: 166px; padding: 18px 12px; border: 1px solid #cfd8e3; border-radius: 16px; background: #fff; color: #171717; text-align: center; text-decoration: none; }
  .guest-home-employer:hover { border-color: #b6c4d5; }
  .guest-home-employer > img { width: 96px; height: 96px; border-radius: 50%; object-fit: contain; }
  .guest-home-employer strong { font-size: 14px; line-height: 20px; font-weight: 500; overflow-wrap: anywhere; }
  .guest-home-employer-count { font-size: 12px; line-height: 16px; color: #697282; }
  .guest-home-resume { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 22px; background: #fff; border: 1px solid #cfd8e3; border-radius: 16px; }
  .guest-home-resume h2 { font-size: 20px; line-height: 25px; font-weight: 600; }
  .guest-home-resume p { margin-top: 7px; color: #697282; font-size: 14px; line-height: 20px; }
  .guest-home-resume button { min-height: 42px; padding: 10px 16px; border: 0; border-radius: 10px; background: #1878ed; color: #fff; font-size: 14px; line-height: 20px; font-weight: 500; white-space: nowrap; }
  .guest-home-resume button:hover { background: #1769c2; }
  .guest-home-employer-promo { position: relative; min-height: 260px; overflow: hidden; border-radius: 20px; padding: 26px; display: flex; flex-direction: column; align-items: start; justify-content: space-between; gap: 22px; color: #fff; isolation: isolate; }
  .guest-home-employer-promo > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 20%; z-index: -2; }
  .guest-home-employer-promo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(8, 17, 25, .85), rgba(8, 17, 25, .3) 54%, rgba(8, 17, 25, .05)); z-index: -1; }
  .guest-home-employer-promo-copy { max-width: 360px; }
  .guest-home-employer-promo-copy > span { display: block; margin-bottom: 8px; font-size: 13px; line-height: 18px; color: #f0f4f8; }
  .guest-home-employer-promo h2 { font-size: 28px; line-height: 32px; letter-spacing: -.3px; font-weight: 700; }
  .guest-home-employer-promo p { margin-top: 12px; font-size: 14px; line-height: 20px; color: #f0f4f8; max-width: 320px; }
  .guest-home-employer-promo > a { display: flex; align-items: center; gap: 12px; min-height: 38px; padding: 8px 12px; border: 1px solid #1878ed; border-radius: 9px; background: #1878ed; color: #fff; font-size: 13px; line-height: 20px; font-weight: 500; text-decoration: none; }
  .guest-home-employer-promo > a:hover { background: #1769c2; border-color: #1769c2; }
}
@media (min-width: 900px) and (max-width: 1100px) {
  .guest-home { --guest-home-hero-height: 350px; }
  .guest-home-hero { padding: 22px; }
  .guest-home-hero-copy h1 { font-size: 25px; line-height: 29px; }
  .guest-home-categories a { padding: 10px; font-size: 14px; gap: 7px; }
  .guest-home-categories svg { width: 18px; height: 18px; }
  .guest-home-employer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guest-home-resume { flex-wrap: wrap; }
}

/* Employer promotion under guest desktop navigation/action panels. */
@media (min-width: 900px) {
  .guest-employer-side-promo { overflow: hidden; border: 1px solid #cfd8e3; border-radius: 18px; background: #fff; color: #171717; }
  .guest-employer-side-promo > img { display: block; width: 100%; height: 124px; object-fit: cover; object-position: center 20%; }
  .guest-employer-side-promo > div { display: grid; gap: 8px; padding: 16px; }
  .guest-employer-side-promo h2 { margin: 0; font-size: 16px; line-height: 20px; font-weight: 600; }
  .guest-employer-side-promo p { margin: 0; color: #697282; font-size: 13px; line-height: 18px; }
  .guest-employer-side-promo a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 38px; margin-top: 4px; padding: 8px 10px; border-radius: 9px; background: #1878ed; color: #fff; font-size: 13px; line-height: 20px; font-weight: 500; text-decoration: none; }
  .guest-employer-side-promo a:hover { background: #1769c2; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone:not(.auth-phone) .desktop-sections-right-stack:has(.guest-employer-side-promo) {
    max-height: none;
    overflow: visible;
    overscroll-behavior: auto;
  }
}

/* Desktop company pages use the same vacancy-list / employer-info column split. */
@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-detail-main-panel { display: flex; flex-direction: column; gap: 16px; border: 0; border-radius: 0; overflow: visible; background: transparent; box-shadow: none; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-detail-main-panel > .company-vacancy-title { margin: 0; padding: 0; min-height: 0; background: transparent; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-detail-main-panel > .company-vacancy-list { margin: 0; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-info-panel { display: grid; align-content: start; gap: 16px; padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; position: sticky; top: 28px; }
  .company-has-info-panel .company-info-card { display: grid; gap: 16px; padding: 16px; overflow: hidden; border: 1px solid #cfd8e3; border-radius: 18px; background: #fff; }
  .company-has-info-panel .company-info-identity { cursor: default; }
  .company-has-info-panel .company-info-identity :is(.vacancy-detail-logo, .vacancy-detail-logo-placeholder) { flex: 0 0 80px; width: 80px; height: 80px; margin: 0; object-fit: contain; }
  .company-has-info-panel .company-info-identity h1 { margin: 0; font-size: 18px; line-height: 24px; font-weight: 600; overflow-wrap: anywhere; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-description-card { padding: 0; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-description-card p { font-size: 14px; line-height: 20px; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel .company-map-section { margin: 0; }
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .phone.desktop-sections-right-phone.company-phone:not(.auth-phone) .company-has-info-panel :is(.company-map-canvas, .company-map-empty) { height: 240px; min-height: 240px; border-color: #cfd8e3; border-radius: 18px; }
}

@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .desktop-sidebar-head.is-guest .desktop-sidebar-employer { height: 290px; min-height: 290px; }
  .desktop-sidebar-head.is-guest .desktop-sidebar-role-caption { color: #697282; font-size: 12px; line-height: 16px; font-weight: 400; }
}

.auth-employer-prompt { display: none; }

@media (min-width: 900px) {
  html:not(.restojob-ios-app):not(.restojob-android-app):not(.restojob-native-app) .auth-employer-prompt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-top: 24px;
    padding: 18px 12px 8px;
    border-top: 1px solid #e2e5eb;
    text-align: center;
  }

  .auth-employer-prompt h2 {
    margin: 0;
    color: #737a85;
    font-size: 16px;
    line-height: 22px;
    font-weight: 400;
    letter-spacing: 0;
  }

  .auth-employer-prompt a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 36px;
    max-width: 100%;
    color: #1769b3;
    font-size: 16px;
    line-height: 22px;
    font-weight: 500;
    letter-spacing: 0;
    text-decoration: none;
    overflow-wrap: anywhere;
  }

  .auth-employer-prompt a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
  }

  .auth-employer-prompt a:focus-visible {
    outline: 2px solid #1769b3;
    outline-offset: 4px;
    border-radius: 4px;
  }
}
