/* ---------- global/base styles ---------- */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
    /* Системный стек шрифтов — быстро и без сетевых запросов */
  font-family:
    -apple-system, BlinkMacSystemFont,
    'Segoe UI', Roboto, 'Helvetica Neue', Arial,
    'Noto Sans', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
    sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background:#f5f5f5;
  color:#000;
  font-size:14px;
  line-height:1.5;
  min-width:360px;
}

/* страничный контейнер */
.container{
  max-width:1920px;
  margin:0 auto;
  padding:20px 16px;
  min-height:100vh;
  background:#fff;
}

/* большие заголовки */
.header {
  text-align: center;
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 24px;
  padding-top: 12px;
}

.page-title{
  font-size:24px;
  font-weight:700;
  text-align:center;
  margin:0 0 32px;
}

.section-title{
  font-size:28px;
  font-weight:700;
  margin:0 0 20px;
  text-align:center;
}

.btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:12px 24px;
  font-size:16px; font-weight:500; text-decoration:none;
  border-radius:8px; border:none; cursor:pointer;
  transition:opacity .2s;
}
.btn:hover{opacity:.85;}
.btn-primary{background:#3b82f6; color:#fff;}
.btn-secondary{background:#fff; color:#3b82f6; border:1px solid #3b82f6;}
.btn-black{
  background:#000; 
  color:#fff; 
  width:100%; 
  margin-bottom:32px; 
  font-size:18px; 
  padding:16px 24px;
  text-align: center;
}

.view-all-button {
  display: inline-block;
  background-color: #000000;
  color: #ffffff;
  padding: 16px 24px;
  text-decoration: none;
  border-radius: 8px;
  font-weight: 500;
  font-size: 18px;
  width: 100%;
  text-align: center;
  margin-bottom: 32px;
  transition: opacity 0.2s;
}

.view-all-button:hover {
  opacity: 0.8;
}

/* ---------- vacancy card layout ---------- */
.vacancy-card{
    border:1px solid #e4e4e4;
    border-radius:8px;
    padding:16px;
    display:flex;
    flex-direction:column;
    gap:16px;                        /* расстояние между info и extra */
    max-width:760px;                 /* «разумная» ширина, чтоб не растягивалось */
    margin:0 auto 16px auto;         /* выравниваем по центру, если контейнер шире */
}

/* верхняя строка */
.vacancy-info{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;                  /* просто отступы */
}

.vacancy-details{
    flex:1;
}

/* город справа, небольшой отступ от плюсика */
.vacancy-location{
    margin-right:8px;
}

/* зелёный плюс */
.green-plus{
    flex-shrink:0;
}

/* низ карточки: salary + кнопки */
.vacancy-extra{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
}

/* salary-badge – прежний вид */
.vacancy-salary{
    background:#3b82f6;
    color:#fff;
    border-radius:6px;
    font-weight:600;
    padding:8px 20px;
    white-space:nowrap;
}

/* плюсик */
.green-plus{
    display:inline-flex;
    width:32px;
    height:32px;
    border-radius:50%;
    background:#10b981;
    color:#fff;
    font-weight:700;
    font-size:20px;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.card-plus {
    font-size: 32px;
    color: #10b981;
    align-self: flex-start;
    cursor: pointer;
    flex-shrink: 0;
}

/* зеленый плюс для избранного */
.add-icon {
    width: 40px;
    height: 40px;
    background-color: #10b981;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 24px;
    font-weight: 300;
    flex-shrink: 0;
}

/* для своих карточек «Редактировать» */
.edit-btn{
    background:#fff;
    color:#666;
    border:1px solid #e0e0e0;
    padding:12px 24px;
    border-radius:8px;
    cursor:pointer;
}

/* чужая карточка – синяя кнопка "Откликнуться" */
.vacancy-button{
    background:#3b82f6;
    color:#fff;
    padding:12px 24px;
    border-radius:8px;
    text-decoration:none;
}

/* ---------- responsive fix: salary ↔ button ---------- */
.vacancy-extra{
    /* растягиваем блок на всю ширину */
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;   /* раздвигаем в разные концы */
    flex-wrap:wrap;                  /* на мобильном переносим */
    gap:12px;
}

/* оставляем бейдж зарплаты слева */
.vacancy-salary{
    margin-right:auto;               /* отталкиваем всё, что правее */
}

/* кнопке даём «опору» справа */
.vacancy-extra .vacancy-button,
.vacancy-extra .edit-btn{
    margin-left:auto;
}

/* ---------- cabinet vacancy card ---------- */
.cabinet-vacancy-card{
    border:1px solid #e4e4e4;
    border-radius:12px;
    padding:20px;
    margin-bottom:16px;
    display:flex;
    flex-direction:column;
    gap:16px;
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}

/* верхняя строка (иконка + текст слева  |  город + статус справа) */
.cabinet-vacancy-card .vacancy-info{
    display:flex;
    align-items:flex-start;
    gap:12px;
}
.cabinet-vacancy-card .vacancy-details{
    flex:1;
    margin-right:auto;          /* «толкает» правый столбец */
}

.cabinet-vacancy-card .vacancy-location{
    margin-left:auto;           /* уводим к правому краю */
    font-weight:500;
}
.cabinet-vacancy-card .status-icon{ flex-shrink:0; }

/* нижняя строка: зарплата слева – кнопка/бейдж справа */
.cabinet-vacancy-card .salary-and-edit{
    width:100%;
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:16px;
}
.cabinet-vacancy-card .salary-badge{ margin-right:auto; }  /* зарплата прижимается влево */
.cabinet-vacancy-card .btn-edit{ margin-left:auto; }        /* кнопка вправо */

/* ---------- styles for candidates page ---------- */
.cards-container {
  padding: 0 16px;
}

/* ---------- status icons (кабинет) ---------- */
.status-icon{
  font-size:24px;
  line-height:1;
  display:inline-block;
  vertical-align:middle;
}
.status-icon.green-check{color:#34c759;}   /* ✅  */
.status-icon.green-plus {color:#10b981;}   /* ➕  */
.status-icon.red-stop   {color:#ff3b30;}   /* ⛔  */

/* ---------- doc icon ---------- */
.doc-icon {
  width: 40px;
  height: 40px;
  background-color: #ffffff;
  border: 2px solid #3b82f6;
  border-radius: 8px;
  position: relative;
  flex-shrink: 0;
}

.doc-icon::before,
.doc-icon::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: 2px;
  background-color: #3b82f6;
  width: 16px;
}

.doc-icon::before {
  top: 12px;
}

.doc-icon::after {
  top: 20px;
  width: 12px;
}

.worker-icon::before {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 24px;
}

/* ---------- card base styles ---------- */
.card {
  background-color: #ffffff;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.card-header {
  display: flex;
  align-items: flex-start;
  margin-bottom: 12px;
  gap: 12px;
}

.card-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.card-info {
  flex: 1;
}

.card-title {
  font-size: 20px;
  font-weight: 600;
  margin-bottom: 4px;
}

.card-location {
  font-size: 16px;
  color: #666666;
  margin-bottom: 8px;
}

/* Специальные стили для локации в резюме карточках */
.resume-card .card-location {
  position: absolute;
  right: 40px; /* Оставляем место для галочки/плюса */
  top: 0;
  margin-bottom: 0;
  font-weight: 500;
}

.resume-card .card-info {
  max-width: calc(100% - 150px); /* Оставляем место для города и иконки статуса */
}

.card-description {
  font-size: 16px;
  color: #333333;
  margin-bottom: 8px;
}

.card-availability {
  font-size: 16px;
  color: #333333;
}

.card-experience {
  font-size: 14px;
  color: #666666;
  margin-top: 4px;
}

/* ---------- card buttons ---------- */
.card-buttons {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

.card-button {
  flex: 1;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  transition: opacity 0.2s;
}

.card-button:hover {
  opacity: 0.8;
}

.button-primary {
  background-color: #3b82f6;
  color: #ffffff;
}

.button-secondary {
  background-color: #ffffff;
  color: #3b82f6;
  border: 1px solid #3b82f6;
}

/* ---------- card actions ---------- */
.card-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

/* ---------- response info bar ---------- */
.response-info-bar {
  background-color: #f8f9fa;
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 12px 16px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #666;
}

.response-info-bar a {
  color: #3b82f6;
  text-decoration: none;
}

.response-info-bar a:hover {
  text-decoration: underline;
}

.response-icon {
  font-size: 16px;
}

/* ---------- response count info ---------- */
.response-count-info {
  padding: 8px 16px;
  background-color: #f8f9fa;
  border-radius: 8px;
  font-size: 14px;
  color: #666;
  margin-top: 12px;
}

/* ---------- additional styles ---------- */
.vacancy-experience {
  font-size: 14px;
  color: #666666;
  margin-bottom: 4px;
}

.vacancy-description {
  font-size: 14px;
  color: #666666;
  margin-bottom: 8px;
}

.salary-badge {
  background-color: #3b82f6;
  color: #ffffff;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  white-space: nowrap;
}

.btn-edit {
  background-color: #ffffff;
  color: #666666;
  border: 1px solid #e0e0e0;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  transition: opacity 0.2s;
}

.btn-edit:hover {
  opacity: 0.8;
}

/* ---------- button styles for actions ---------- */
.btn-respond {
  background-color: #ffffff;
  color: #3b82f6;
  border: 2px solid #3b82f6;
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: all 0.2s;
}

.btn-respond:hover {
  background-color: #3b82f6;
  color: #ffffff;
}

.btn-cancel {
  background-color: #ffffff;
  color: #666666;
  border: 2px solid #e0e0e0;
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
  white-space: nowrap;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  cursor: pointer;
  transition: opacity 0.2s;
}

.btn-cancel:hover {
  opacity: 0.8;
}

.btn-apply {
  flex: 1;
  background-color: #ffffff;
  color: #3b82f6;
  border: 1px solid #3b82f6;
  padding: 8px 20px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity 0.2s;
}

.btn-apply:hover {
  opacity: 0.8;
}

/* ---------- header navigation ---------- */
.header-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  margin-bottom: 32px;
  padding-top: 12px;
}

.back-button {
  position: absolute;
  left: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #000000;
  font-size: 24px;
  font-weight: 300;
}

/* ---------- resume card styles ---------- */
.resume-card {
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  background-color: #ffffff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.resume-card .card-header {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
}

.resume-card .status-icon {
  position: absolute;
  right: 0;
  top: 0;
}

/* ---------- cards container for candidates page ---------- */
.cards-container {
  padding: 0;
}

/* ---------- card content styles for candidates page ---------- */
.card-title-section {
  display: flex;
  align-items: center;
  flex: 1;
  gap: 12px;
}

.card-content {
  margin-left: 52px; /* 40px icon + 12px gap */
  margin-bottom: 12px;
}

/* ---------- salary and action styles ---------- */
.salary-and-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
}

.salary-and-action .salary-badge {
  margin-bottom: 0;
}

/* ---------- additional favorites page styles ---------- */
.vacancy-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.vacancy-details {
  flex: 1;
}

/* ---------- navigation icons (main page) ---------- */
.nav-icons {
  display: flex;
  justify-content: space-around;
  margin-bottom: 32px;
  gap: 20px;
}

.nav-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: #000000;
  flex: 1;
}

.nav-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}

.icon-create {
  border: 2px solid #000000;
  border-radius: 50%;
  font-size: 28px;
  font-weight: 300;
}

.icon-favorites {
  border: 2px solid #000000;
  border-radius: 12px;
  position: relative;
}

.icon-favorites::before,
.icon-favorites::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  height: 2px;
  background-color: #000000;
  width: 20px;
}

.icon-favorites::before {
  top: 14px;
}

.icon-favorites::after {
  top: 22px;
  width: 16px;
}

.icon-cabinet {
  border: 2px solid #000000;
  border-radius: 50%;
  position: relative;
}

/* Голова — тонкое кольцо, центрировано */
.icon-cabinet::before {
  content: '';
  position: absolute;
  /* диаметр головы как у вас: 16px */
  width: 16px;
  height: 16px;
  left: 50%;
  top: 9px;                  /* положение головы по вертикали (как в исходнике) */
  transform: translateX(-50%);
  border-radius: 50%;
  background: transparent;    /* без заливки */
  /* контур той же толщины, что и у других иконок */
  box-shadow: inset 0 0 0 2px #111;
}

/* Плечи — нижняя полудуга большего круга (контур) */
.icon-cabinet::after {
  content: '';
  position: absolute;
  /* базовый «большой круг», из которого показываем только нижнюю половину */
  width: 28px;                /* слегка шире исходных 24px чтобы дуга читалась */
  height: 28px;               /* делаем его круглым — дуга будет ровной */
  left: 50%;
  top: 40px;                  /* центр круга ниже головы, чтобы дуга ушла вниз */
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: transparent;    /* без заливки */
  box-shadow: inset 0 0 0 2px #111;  /* контур той же толщины */
  /* показываем только НИЖНЮЮ половину круга — получаются «плечи» */
  clip-path: inset(0 0 50% 0);
}

.nav-label {
  font-size: 14px;
  font-weight: 400;
}

/* ---------- responsive styles ---------- */
@media (max-width: 768px) {
  .container {
    padding: 16px 12px;
  }
  
  .page-title {
    font-size: 20px;
  }
  
  .section-title {
    font-size: 24px;
  }
  
  .card {
    padding: 16px;
  }
  
  .card-title {
    font-size: 18px;
  }
  
  .vacancy-extra {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  
  .vacancy-salary {
    width: 100%;
    text-align: center;
  }
  
  .vacancy-button,
  .edit-btn {
    width: 100%;
    margin-left: 0;
  }
  
  .card-buttons {
    flex-direction: column;
  }
  
  .card-button {
    width: 100%;
  }
  
  .cabinet-vacancy-card .salary-and-edit {
    flex-direction: column;
    align-items: stretch;
  }
  
  .cabinet-vacancy-card .salary-badge {
    width: 100%;
    text-align: center;
  }
}

@media (min-width: 769px) {
  .container {
    padding: 32px 24px;
  }
  
  .card,
  .vacancy-card,
  .cabinet-vacancy-card {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
  }
  
  .btn-black,
  .view-all-button {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    display: block;
  }
}

/* ========== НОВАЯ ЕДИНАЯ СИСТЕМА КНОПОК ОТКЛИКОВ ========== */
.response-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
  min-height: 48px;
  white-space: nowrap;
}

.response-btn--respond {
  background-color: #3b82f6;
  color: #ffffff;
  border: 1px solid #3b82f6;
}

.response-btn--respond:hover {
  opacity: 0.8;
}

.response-btn--withdraw {
  background-color: #ffffff;
  color: #666666;
  border: 1px solid #e0e0e0;
}

.response-btn--withdraw:hover {
  opacity: 0.8;
}

.response-btn--disabled {
  background-color: #f5f5f5;
  color: #999999;
  border: 1px solid #e0e0e0;
  cursor: not-allowed;
  opacity: 0.6;
}

/* ========== КНОПКИ ИЗБРАННОГО ========== */
.button-favorite {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background-color: #ffffff;
  color: #666666;
  border: 1px solid #e0e0e0;
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
  min-height: 40px;
  white-space: nowrap;
  text-decoration: none;
}

.button-favorite--add:hover {
  background-color: #3b82f6;
  color: #ffffff;
  border-color: #3b82f6;
}

.button-favorite--remove {
  background-color: #3b82f6;
  color: #ffffff;
  border-color: #3b82f6;
}

.button-favorite--remove:hover {
  opacity: 0.8;
}

/* Стили для карточек избранного */
.favorite-card {
  position: relative;
  border-color: #3b82f6;
  background-color: #fffbf0;
}

.favorite-card::before {
  content: '⭐';
  position: absolute;
  top: 15px;
  right: 15px;
  background: #ffc107;
  color: white;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  z-index: 1;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Адаптивность для кнопок избранного */
@media (max-width: 768px) {
  .button-favorite {
    font-size: 12px;
    padding: 6px 12px;
    min-height: 36px;
  }

  /* ---------- archived cards styles ---------- */
.archived-card {
  opacity: 0.7;
  position: relative;
  background-color: #f8f9fa;
}

.archive-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: #6c757d;
  color: white;
  padding: 4px 12px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 500;
  z-index: 10;
}

.btn-restore {
  background-color: #28a745;
  color: white;
  padding: 12px 24px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
  transition: opacity 0.2s;
  border: none;
  text-decoration: none;
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-restore:hover {
  opacity: 0.8;
}

#archiveSection {
  margin-top: 40px;
  padding-top: 20px;
  border-top: 2px solid #e0e0e0;
}

.archive-empty {
  text-align: center;
  padding: 40px 20px;
  color: #999;
  font-style: italic;
}
  
  .favorite-card::before {
    width: 20px;
    height: 20px;
    font-size: 10px;
    top: 10px;
    right: 10px;
  }
}

.empty-card{
  max-width:760px;             /* ширина как у обычных карточек */
  margin:0 auto 24px;          /* отцентровать и сделать нижний отступ */
  padding:40px 24px;
  border:2px dashed #d0d0d0;   /* «серая линия по краям» */
  border-radius:12px;
  text-align:center;
  color:#777;
  font-size:16px;
}

/* ---------- modal styles ---------- */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    padding: 20px;
}

.modal-container {
    background-color: #ffffff;
    border-radius: 12px;
    max-width: 600px;
    width: 100%;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-header {
    padding: 20px;
    border-bottom: 1px solid #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.modal-title {
    font-size: 20px;
    font-weight: 600;
    margin: 0;
}

.modal-close {
    background: none;
    border: none;
    font-size: 28px;
    line-height: 1;
    color: #666;
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modal-close:hover {
    color: #000;
}

.modal-body {
    padding: 20px;
    overflow-y: auto;
    flex: 1;
}

.modal-message {
    margin-bottom: 20px;
    color: #666;
    font-size: 16px;
}

.modal-cards-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.modal-card-item {
    border: 2px solid #e0e0e0;
    border-radius: 8px;
    padding: 16px;
    cursor: pointer;
    transition: all 0.2s;
    background-color: #ffffff;
}

.modal-card-item:hover {
    border-color: #3b82f6;
    background-color: #f0f7ff;
}

.modal-card-item.selected {
    border-color: #3b82f6;
    background-color: #e6f2ff;
}

.modal-card-title {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
}

.modal-card-details {
    font-size: 14px;
    color: #666;
}

.modal-footer {
    padding: 20px;
    border-top: 1px solid #e0e0e0;
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

@media (max-width: 640px) {
    .modal-container {
        max-height: 90vh;
    }
    
    .modal-header {
        padding: 16px;
    }
    
    .modal-body {
        padding: 16px;
    }
    
    .modal-footer {
        padding: 16px;
    }
}

/* ---------- validation styles ---------- */
.form-input.is-invalid,
.form-textarea.is-invalid,
.form-select.is-invalid {
    border-color: #dc3545;
}

.error-message {
    color: #dc3545;
    font-size: 14px;
    margin-top: 4px;
    display: block;
}

.form-select {
    width: 100%;
    padding: 16px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    background-color: #f8f8f8;
    transition: all 0.2s;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 20px;
    padding-right: 48px;
}

.form-select:focus {
    outline: none;
    border-color: #3b82f6;
    background-color: #ffffff;
}

.form-group {
    position: relative;
}

/* Счетчик символов */
.char-counter {
    position: absolute;
    right: 16px;
    bottom: 16px;
    font-size: 12px;
    color: #999;
}

.char-counter.warning {
    color: #dc3545;
}

/* ---------- region filter styles ---------- */
.filter-select {
    width: 100%;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    background-color: #f8f8f8;
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 20px;
    padding-right: 48px;
    transition: all 0.2s;
}

.filter-select:focus {
    outline: none;
    border-color: #3b82f6;
    background-color: #ffffff;
}

.hidden {
    display: none !important;
}

/* ========== ПЕРЕНОС СТИЛЕЙ ИЗ HTML (техдолг) ========== */
/* Дата переноса: 2025-01-07 */

/* ---------- favorites.html page styles ---------- */
.empty-favorites {
    text-align: center;
    padding: 80px 20px;
    color: #666;
}

.empty-favorites-icon {
    font-size: 64px;
    margin-bottom: 24px;
    opacity: 0.6;
}

.empty-favorites-title {
    font-size: 24px;
    font-weight: 600;
    margin-bottom: 12px;
    color: #333;
}

.empty-favorites-text {
    font-size: 16px;
    line-height: 1.6;
    max-width: 400px;
    margin: 0 auto;
}

/* ---------- create.html form styles ---------- */
.page-header {
    display: flex;
    align-items: center;
    padding: 20px 16px 16px;
    position: relative;
}

.back-arrow {
    font-size: 24px;
    line-height: 1;
}

.tabs-container {
    padding: 0 16px;
    margin-bottom: 24px;
}

.tabs {
    display: flex;
    background-color: #f0f0f0;
    border-radius: 12px;
    padding: 4px;
    gap: 4px;
}

.tab {
    flex: 1;
    padding: 12px 16px;
    border: none;
    background-color: transparent;
    font-size: 16px;
    font-weight: 500;
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.2s;
    text-align: center;
    color: #666666;
}

.tab.active {
    background-color: #ffffff;
    color: #000000;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.form-container {
    padding: 0 16px 24px;
}

.form-group {
    margin-bottom: 24px;
    position: relative; /* уже есть на строке 1213, но для изоляции добавим */
}

.form-label {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 12px;
    display: block;
}

.form-input {
    width: 100%;
    padding: 16px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    background-color: #f8f8f8;
    transition: all 0.2s;
}

.form-input:focus {
    outline: none;
    border-color: #3b82f6;
    background-color: #ffffff;
}

.form-input::placeholder {
    color: #999999;
}

.form-textarea {
    width: 100%;
    padding: 16px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    background-color: #f8f8f8;
    resize: vertical;
    min-height: 100px;
    transition: all 0.2s;
}

.form-textarea:focus {
    outline: none;
    border-color: #3b82f6;
    background-color: #ffffff;
}

.form-textarea::placeholder {
    color: #999999;
}

.submit-button {
    width: 100%;
    padding: 16px 24px;
    background-color: #3b82f6;
    color: #ffffff;
    border: none;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 8px;
    min-height: 56px;
    transition: opacity 0.2s;
}

.submit-button:hover {
    opacity: 0.9;
}

.submit-button:active {
    opacity: 0.8;
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

.archive-button {
    width: 100%;
    padding: 16px 24px;
    background-color: #dc3545;
    color: #ffffff;
    border: none;
    border-radius: 12px;
    font-size: 18px;
    font-weight: 600;
    cursor: pointer;
    margin-top: 16px;
    min-height: 56px;
    transition: opacity 0.2s;
    display: none;
}

.archive-button:hover {
    opacity: 0.9;
}

/* ---------- candidates.html filter styles ---------- */
.filters-container {
    padding: 0 16px;
    margin-bottom: 20px;
}

.filter-row {
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}

.filter-input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    font-size: 16px;
    font-family: inherit;
    background-color: #f8f8f8;
    color: #999999;
}

.filter-input:focus {
    outline: none;
    border-color: #3b82f6;
    background-color: #ffffff;
    color: #000000;
}

.filter-input.full-width {
    width: 100%;
}

/* ---------- user-switcher.html dev styles ---------- */
.user-switcher {
    position: fixed;
    top: 20px;
    right: 20px;
    background: white;
    border: 2px solid #007bff;
    border-radius: 8px;
    padding: 15px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
    z-index: 1000;
}

.user-switcher h3 {
    margin: 0 0 10px 0;
    color: #333;
}

.user-button {
    display: block;
    width: 100%;
    padding: 10px;
    margin: 5px 0;
    background: #007bff;
    color: white;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    font-size: 14px;
}

.user-button:hover {
    background: #0056b3;
}

.user-button.active {
    background: #28a745;
}

.current-user {
    margin-top: 10px;
    padding: 10px;
    background: #e9ecef;
    border-radius: 4px;
    font-size: 14px;
}

.navigation {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #ddd;
}

.navigation h4 {
    margin: 0 0 10px 0;
}

.nav-link {
    display: inline-block;
    margin: 5px;
    padding: 8px 15px;
    background: #6c757d;
    color: white;
    text-decoration: none;
    border-radius: 4px;
}

.nav-link:hover {
    background: #5a6268;
}

/* ---------- responsive updates for new elements ---------- */
@media (min-width: 768px) {
    /* Базовая ширина для форм и узких страниц */
    .page-header,
    .tabs-container,
    .filters-container,
    .form-container {
        max-width: 600px;
        margin-left: auto;
        margin-right: auto;
    }
    
    /* Широкий layout для candidates и подобных страниц */
    [data-layout-width="wide"] .page-header,
    [data-layout-width="wide"] .tabs-container,
    [data-layout-width="wide"] .filters-container {
        max-width: 800px;
    }
    
    /* Остальные стили остаются */
    .page-header {
        padding: 32px 0 24px;
    }
    
    .tabs-container,
    .filters-container {
        padding: 0;
    }
    
    .form-container {
        padding: 0 0 32px;
    }
}

@media (min-width: 1024px) {
    /* page-title уже определен выше, не дублируем */
}

/* ========== candidates.html fixes ========== */

/* Force center alignment */
.page-header .page-title {
    margin: 0 auto;
    text-align: center;
}

/* ========== NOTIFICATION BADGE STYLES ========== */
.notification-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #41c3ff;
    color: white;
    border-radius: 50%;
    min-width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: bold;
    padding: 0 4px;
    box-shadow: 0 2px 4px rgba(15, 70, 133, 0.3);
    z-index: 10;
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(65, 255, 48, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(255, 59, 48, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(255, 59, 48, 0);
    }
}

/* Убираем анимацию при наведении */
.notification-badge:hover {
    animation: none;
}

/* ========== SEARCHABLE DROPDOWN STYLES ========== */
.searchable-dropdown {
    position: relative;
    width: 100%;
}

.searchable-input {
    width: 100%;
    padding-right: 40px;
    cursor: pointer;
}

.dropdown-arrow {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 6px solid #999;
    pointer-events: none;
    transition: transform 0.2s;
}

.searchable-dropdown.active .dropdown-arrow {
    transform: translateY(-50%) rotate(180deg);
}

.dropdown-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #ffffff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    margin-top: 4px;
    max-height: 300px;
    overflow-y: auto;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.dropdown-list.hidden {
    display: none;
}

.dropdown-items {
    padding: 8px 0;
}

.dropdown-item {
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.2s;
    font-size: 16px;
}

.dropdown-item:hover,
.dropdown-item.highlighted {
    background-color: #f0f7ff;
}

.dropdown-item mark {
    background-color: #63ddfc;
    font-weight: 500;
    pointer-events: none; /* клики по подсветке проходят к .dropdown-item */
}

.dropdown-no-results {
    padding: 20px 16px;
    text-align: center;
    color: #999;
    font-style: italic;
}

/* Адаптация для мобильных устройств */
@media (max-width: 768px) {
    .dropdown-list {
        max-height: 250px;
    }
}

/* ========== КНОПКА-КОРЗИНА ДЛЯ УДАЛЕНИЯ УВЕДОМЛЕНИЙ ========== */
/* Добавлено: [11.08.2025] */

/* Дополняем позиционирование для vacancy-info */
.vacancy-info {
    position: relative;
}

/* Кнопка-корзина */
.trash-btn {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    min-width: 44px;
    border: none;
    background: transparent;
    cursor: pointer;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    z-index: 2;
    color: #6B7280;
}

.trash-btn::before {
    content: '';
    width: 22px;
    height: 22px;
    mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>') no-repeat center / contain;
    -webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"/></svg>') no-repeat center / contain;
    background: currentColor;
}

.trash-btn:hover {
    background: rgba(0, 0, 0, 0.06);
}

.trash-btn:active {
    background: rgba(0, 0, 0, 0.1);
}

.trash-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.trash-btn[aria-busy="true"]::before {
    animation: pulse 1s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* Адаптация под мобильные устройства */
@media (max-width: 768px) {
    .trash-btn {
        right: 8px;
    }
}

/* Улучшение тач-взаимодействия */
.trash-btn {
    touch-action: manipulation; /* Убирает задержку 300ms на мобильных */
    -webkit-tap-highlight-color: transparent; /* Убирает подсветку при тапе */
}

.trash-btn::before {
    pointer-events: none; /* Клик идет по кнопке, а не по псевдоэлементу */
}

/* Модификатор для корзины в полосках уведомлений */
.trash-btn-inline {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
}

/* Позиционирование для полосок уведомлений */
.response-info-bar,
.invite-info-bar {
    position: relative;
    padding-right: 60px; /* Отступ для корзины */
    min-height: 44px; /* Минимальная высота для размещения кнопки */
    display: flex;
    align-items: center;
}

/* Убираем лишний z-index для inline варианта */
.trash-btn-inline {
    z-index: 1;
}

/* Адаптация под мобильные для полосок */
@media (max-width: 768px) {
    .response-info-bar,
    .invite-info-bar {
        padding-right: 56px;
    }
    
    .trash-btn-inline {
        right: 8px;
    }
}

/* ========== PAGINATION STYLES ========== */

/* Loader с анимированными точками */
.pagination-loader {
    text-align: center;
    padding: 24px;
    margin: 16px 0;
}

.loader-dots {
    display: inline-flex;
    gap: 8px;
}

.loader-dots span {
    width: 8px;
    height: 8px;
    background-color: #3b82f6;
    border-radius: 50%;
    animation: pulse-dot 1.4s ease-in-out infinite both;
}

.loader-dots span:nth-child(1) {
    animation-delay: -0.32s;
}

.loader-dots span:nth-child(2) {
    animation-delay: -0.16s;
}

@keyframes pulse-dot {
    0%, 80%, 100% {
        transform: scale(0.8);
        opacity: 0.5;
    }
    40% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Сообщение о конце списка */
.pagination-end {
    text-align: center;
    padding: 32px 16px;
    color: #10b981;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.pagination-end span {
    display: inline-flex;
    width: 20px;
    height: 20px;
    background-color: #10b981;
    color: white;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    font-size: 12px;
}

/* Сообщение об ошибке */
.pagination-error {
    margin: 16px;
    padding: 16px;
    background-color: #fee;
    border: 1px solid #fcc;
    border-radius: 8px;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.pagination-error span {
    color: #dc3545;
    font-size: 14px;
    font-weight: 500;
}

.btn-retry {
    padding: 8px 20px;
    background-color: #dc3545;
    color: white;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: opacity 0.2s;
}

.btn-retry:hover {
    opacity: 0.8;
}

.btn-retry:active {
    transform: translateY(1px);
}

/* Sentinel (невидимый триггер) */
.pagination-sentinel {
    visibility: hidden;
    pointer-events: none;
}

/* Оптимизация для мобильных */
@media (max-width: 768px) {
    .pagination-loader {
        padding: 20px;
    }
    
    .pagination-end {
        padding: 24px 12px;
        font-size: 13px;
    }
    
    .pagination-error {
        margin: 12px;
        padding: 12px;
    }
}

/* Плавность появления карточек */
.card,
.vacancy-card,
.resume-card {
    animation: fadeInUp 0.3s ease-out;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Отключаем анимацию при reduced motion */
@media (prefers-reduced-motion: reduce) {
    .card,
    .vacancy-card,
    .resume-card {
        animation: none;
    }
    
    .loader-dots span {
        animation: none;
        opacity: 1;
    }
}

/* ========================================
   ИНФОРМАЦИОННОЕ СООБЩЕНИЕ (create.html)
   ======================================== */

.info-notice {
    margin: 16px 0;
    padding: 12px 16px;
    background-color: #f0fdf4; /* светло-зелёный фон */
    border: 1px solid #86efac; /* зелёная рамка */
    border-radius: 8px;
}

.info-notice__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: #166534; /* тёмно-зелёный текст */
}

.info-notice__link {
    color: #2563eb; /* синяя ссылка */
    text-decoration: none;
    font-weight: 500;
}

.info-notice__link:hover {
    text-decoration: underline;
}

.info-notice__link:active {
    color: #1d4ed8;
}

/* =======================================================================
   КАСТОМНЫЕ ЦВЕТА ФОНА КАРТОЧЕК
   ======================================================================= */

/* РЕЗЮМЕ — светло-бирюзовый (в стиле бренда Kuvalda+) */
.resume-card,
.card[data-type="resume"] {
  background-color: #f3fbff !important;  /* светло-бирюзовый */
}

/* ВАКАНСИИ — светло-янтарный */
.vacancy-card,
.card[data-type="vacancy"],
.card[data-type="task"],
.cabinet-vacancy-card {
  background-color: #fff8f3 !important;  /* светло-янтарный */
}

/* ==================================================================
   КАСТОМИЗАЦИЯ ИКОНОК НАВИГАЦИИ (главная страница)
   ================================================================== */

/* ---------- ЦВЕТ ЛИНИЙ (единый для всех иконок) ---------- */
:root {
    --nav-icon-stroke: #1e4886; /* цвет всех линий */
}

/* ---------- ЦВЕТА ФОНА ИКОНОК ---------- */

.nav-icons .icon-create {
    background-color: #feffdc !important;
    border-color: var(--nav-icon-stroke) !important;
    color: var(--nav-icon-stroke) !important;
}

.nav-icons .icon-calculators {
    background-color: #e3f2fd !important;
    border-color: var(--nav-icon-stroke) !important;
}

.nav-icons .icon-favorites {
    background-color: #fff3e0 !important;
    border-color: var(--nav-icon-stroke) !important;
}

.nav-icons .icon-cabinet {
    background-color: #dff8e5 !important;
    border-color: var(--nav-icon-stroke) !important;
}

/* ---------- ЦВЕТ ВНУТРЕННИХ ЛИНИЙ ---------- */

/* Расчёты (плюс внутри) */
.nav-icons .icon-calculators::before,
.nav-icons .icon-calculators::after {
    background-color: var(--nav-icon-stroke) !important;
}

/* Избранное (горизонтальные линии) */
.nav-icons .icon-favorites::before,
.nav-icons .icon-favorites::after {
    background-color: var(--nav-icon-stroke) !important;
}

/* Кабинет (голова и плечи) */
.nav-icons .icon-cabinet::before,
.nav-icons .icon-cabinet::after {
    box-shadow: inset 0 0 0 2px var(--nav-icon-stroke) !important;
}

/* ---------- АНИМАЦИЯ КНОПКИ "СОЗДАТЬ" ---------- */

@keyframes pulse-create {
    0%, 100% {
        box-shadow: 0 0 0 0 rgba(166, 255, 0, 0.4);
    }
    50% {
        box-shadow: 0 0 0 14px rgba(230, 255, 1, 0);
    }
}

.nav-icons .icon-create {
    animation: pulse-create 3s ease-in-out infinite;
}

.nav-item--create:hover .icon-create,
.nav-item--create:active .icon-create {
    animation: none;
    box-shadow: 0 0 0 6px rgba(250, 246, 1, 0.3);
}