.resume-edit-page {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  padding: 0 0 80px;
}

/* Тень для тостов на странице редактирования резюме (светлая тема) */
html:not(.dark-theme) .toast {
  box-shadow: 0px 4px 12px 6px #0000000F;
}

.resume-edit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

.resume-edit-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.resume-edit-header-actions .resume-preview-btn,
.resume-edit-header-actions .resume-publish-btn {
  display: none;
}

.resume-save-status {
  position: fixed;
  left: calc(50% + 400px + 24px);
  bottom: 32px;
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  font-weight: var(--fw-regular);
  color: var(--text-muted);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
  z-index: 100;
}

.resume-save-status.visible {
  opacity: 1;
  visibility: visible;
}

.resume-preview-btn.disabled {
  opacity: 0.6;
  pointer-events: none;
}

.resume-edit-main-title {
  font-size: var(--fs-32);
  line-height: var(--lh-32);
  font-weight: var(--fw-semibold);
  letter-spacing: var(--ls-32);
  color: var(--text-color);
  margin: 0;
}

.resume-edit-page .breadcrumbs-container {
  margin-bottom: 12px;
}

.resume-edit-container {
  background: none;
  border-radius: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 800px;
  margin: 0 auto;
}

.resume-section {
  background: var(--surface-primary);
  border-radius: 24px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.resume-section-title {
  font-size: var(--fs-20);
  line-height: var(--lh-20);
  letter-spacing: var(--ls-20);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}

.resume-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.resume-section-add {
  border: none;
  background: none;
  color: var(--accent-color);
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
}

.resume-intro-grid {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}

.resume-photo-block {
  background: var(--surface-primary);
  border-radius: 24px;
  padding: 0;
  text-align: center;
  width: 140px;
  flex: 0 0 140px;
}

.resume-photo-preview {
  width: 120px;
  height: 120px;
  border-radius: 999px;
  background: var(--surface-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 8px;
  overflow: hidden;
  cursor: pointer;
}

.resume-photo-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.resume-photo-placeholder {
  font-size: var(--fs-40);
  line-height: var(--lh-40);
  letter-spacing: var(--ls-40);
  color: var(--text-muted);
}

.resume-photo-actions p {
  margin-top: 8px;
  font-size: var(--fs-12);
  line-height: var(--lh-12);
  letter-spacing: var(--ls-12);
  color: var(--text-muted);
}

.resume-photo-actions p.resume-photo-delete {
  color: var(--text-muted);
  cursor: pointer;
}

.resume-input-column {
  width: 588px;
  flex: 0 0 588px;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.resume-input-between {
  display: flex;
  align-items: center;
  gap: 12px;
}

.resume-half-input {
  flex: 1;
}

.resume-name-row {
  display: flex;
  gap: 12px;
}

.resume-name-row .floating-field {
  flex: 1;
}

.resume-main-fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

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

.resume-input-row > * {
  min-width: 0;
}


.resume-contacts-title {
  margin-top: 20px;
  margin-bottom: 12px;
  font-size: var(--fs-18);
  line-height: var(--lh-18);
  letter-spacing: var(--ls-18);
  color: var(--text-primary);
}

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

.resume-contacts-grid .floating-field .input {
  margin-bottom: 0;
}

.resume-links-block {
  display: flex;
  flex-direction: column;
}

.resume-links-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.resume-links-list:empty {
  display: none;
}

.resume-links-list:not(:empty) {
  margin-top: 12px;
}

.resume-link-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 10px 8px;
  padding-left: 16px;
  border-radius: 16px;
  background: var(--surface-secondary);
}

.resume-link-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  align-items: flex-start;
}

.resume-link-title {
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  font-weight: var(--fw-regular);
  color: var(--text-color);
  word-break: break-word;
}

.resume-link-url {
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  color: var(--text-muted);
  text-decoration: none;
  word-break: break-word;
}

.resume-link-url:hover {
  text-decoration: underline;
}

.resume-link-actions {
  margin-left: 8px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.btn.secondary.resume-link-edit-btn {
  background-color: transparent;
}

.btn.secondary.resume-link-edit-btn:hover {
  background-color: transparent;
}

html.dark-theme .resume-link-edit-btn {
  background-color: transparent;
}

html.dark-theme .resume-link-edit-btn:hover {
  background-color: transparent;
}

.resume-link-button-full {
  width: 100%;
  margin-top: 12px;
}

.resume-location-select {
  position: relative;
  width: 288px;
  flex: 0 0 288px;
}

.resume-location-select .floating-field {
  width: 100%;
  margin-bottom: 0;
}

.resume-location-arrow {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: var(--placeholder-color);
}

.resume-edit-page textarea.text-area {
  margin-bottom: 12px;
}

.resume-select {
  position: relative;
  border-radius: 16px;
  background: var(--surface-secondary);
  cursor: pointer;
  padding: 10px 40px 10px 16px;
  height: 44px;
  box-sizing: border-box;
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
}

.resume-select .resume-select-value {
  position: absolute;
  left: 16px;
  right: 40px;
  top: 19px;
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.resume-select .floating-label {
  position: absolute;
  left: 16px;
  top: 12px;
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  color: var(--placeholder-color);
  pointer-events: none;
  transition: all 0.2s ease;
}

.resume-select .floating-label.active {
  top: 4px;
  font-size: var(--fs-12);
  line-height: var(--lh-12);
  letter-spacing: var(--ls-12);
  opacity: 0.9;
}

.resume-select::after {
  content: '';
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
  height: 24px;
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.18762 8.20419C5.30791 8.08405 5.47096 8.01657 5.64097 8.01657C5.81098 8.01657 5.97403 8.08405 6.09432 8.20419L11.8425 13.9523L17.5906 8.20419C17.6493 8.14116 17.7202 8.0906 17.7989 8.05554C17.8776 8.02047 17.9625 8.00162 18.0486 8.0001C18.1348 7.99858 18.2203 8.01443 18.3002 8.04669C18.3801 8.07896 18.4527 8.12698 18.5136 8.1879C18.5745 8.24882 18.6225 8.32139 18.6548 8.40127C18.6871 8.48115 18.7029 8.56671 18.7014 8.65285C18.6999 8.73899 18.681 8.82394 18.646 8.90264C18.6109 8.98133 18.5603 9.05216 18.4973 9.11089L12.2958 15.3124C12.1755 15.4325 12.0125 15.5 11.8425 15.5C11.6725 15.5 11.5094 15.4325 11.3891 15.3124L5.18762 9.11089C5.06748 8.9906 5 8.82754 5 8.65754C5 8.48753 5.06748 8.32447 5.18762 8.20419Z' fill='%23121212'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 24px 24px;
  pointer-events: none;
}

html.dark-theme .resume-select::after {
  background-image: url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5.18762 8.20419C5.30791 8.08405 5.47096 8.01657 5.64097 8.01657C5.81098 8.01657 5.97403 8.08405 6.09432 8.20419L11.8425 13.9523L17.5906 8.20419C17.6493 8.14116 17.7202 8.0906 17.7989 8.05554C17.8776 8.02047 17.9625 8.00162 18.0486 8.0001C18.1348 7.99858 18.2203 8.01443 18.3002 8.04669C18.3801 8.07896 18.4527 8.12698 18.5136 8.1879C18.5745 8.24882 18.6225 8.32139 18.6548 8.40127C18.6871 8.48115 18.7029 8.56671 18.7014 8.65285C18.6999 8.73899 18.681 8.82394 18.646 8.90264C18.6109 8.98133 18.5603 9.05216 18.4973 9.11089L12.2958 15.3124C12.1755 15.4325 12.0125 15.5 11.8425 15.5C11.6725 15.5 11.5094 15.4325 11.3891 15.3124L5.18762 9.11089C5.06748 8.9906 5 8.82754 5 8.65754C5 8.48753 5.06748 8.32447 5.18762 8.20419Z' fill='%23ffffff'/%3E%3C/svg%3E");
}

.resume-select.open::after {
  transform: translateY(-50%) rotate(180deg);
}

.resume-select.placeholder .resume-select-value {
  color: var(--placeholder-color);
}

.resume-select-dropdown {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  background: var(--surface-primary);
  border-radius: 16px;
  box-shadow: 0 10px 30px rgba(20, 20, 20, 0.08);
  display: none;
  flex-direction: column;
  max-height: 300px;
  overflow-y: auto;
  z-index: 20;
}

/* Внутри модалок выпадающий список должен быть поверх футера */
.filter-modal .resume-select-dropdown {
  z-index: 1100;
}

.resume-select.open .resume-select-dropdown {
  display: flex;
}

.resume-select-dropdown button {
  border: none;
  background: none;
  padding: 8px 16px;
  text-align: left;
  cursor: pointer;
  color: var(--text-color);
  font-size: var(--fs-16);
  font-weight: var(--fw-regular);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
}

.resume-select-dropdown button:hover {
  background: var(--hover-light);
}

/* Multi-select стили */
.resume-select[data-multi="true"] .resume-select-dropdown button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.resume-select[data-multi="true"] .resume-select-dropdown button .sort-check-icon {
  display: none;
  flex-shrink: 0;
}

.resume-select[data-multi="true"] .resume-select-dropdown button.selected .sort-check-icon {
  display: flex;
}

.resume-salary-field {
  position: relative;
  width: 100%;
}

.resume-salary-field .input {
  padding-right: 140px;
  max-width: none;
  width: 100%;
  margin-bottom: 0;
}

.resume-salary-field .resume-salary-currency {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
}

.resume-salary-currency {
  display: inline-flex;
  gap: 4px;
}

.resume-salary-currency button {
  border: none;
  background: var(--surface-primary);
  border-radius: 8px;
  padding: 0;
  width: 28px;
  height: 23px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  color: var(--text-color);
}

.resume-salary-currency button.active {
  background: var(--accent-color);
  color: white;
}

.resume-skills-block {
  padding: 0;
}

.resume-skills-field {
  position: relative;
  width: 100%;
  background: var(--surface-secondary);
  border-radius: 16px;
  padding: 0 16px;
  min-height: 44px;
}

.resume-skills-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 4px;
  row-gap: 2px;
  width: 100%;
}

.resume-skills-field.has-skills .resume-skills-inner {
  margin-top: 0;
  padding-top: 24px; /* Освобождаем место под лейбл */
  padding-bottom: 16px; /* Такой же отступ, как по бокам */
}

.resume-skills-field.has-skills .resume-skills-inner #resumeSkillInput.input {
  padding-top: 0;
  padding-bottom: 0; /* Убираем нижний отступ для центрирования */
  padding-left: 4px;
  height: 34px;
  line-height: 34px;
}

/* Фикс: оставляем лейбл наверху, если есть навыки (даже без фокуса) */
.resume-skills-field.has-skills .floating-label {
  top: 4px;
  font-size: var(--fs-12);
  line-height: var(--lh-12);
  letter-spacing: var(--ls-12);
  opacity: 0.9;
}

.resume-skills-inner #resumeSkillInput.input {
  flex: 0 1 130px;
  max-width: none;
  margin-bottom: 0;
  background-color: transparent;
  padding-left: 0;
  padding-right: 0;
}

.resume-skills-chips {
  display: contents;
}

.resume-skills-chips:empty {
  display: none;
}

.resume-skill-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 10px;
  font-size: var(--fs-14);
  font-weight: var(--fw-regular);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  background-color: var(--surface-primary);
  color: var(--text-color);
  cursor: grab;
}

.resume-skill-chip button {
  border: none;
  background: none;
  font-size: var(--fs-18);
  line-height: var(--lh-18);
  letter-spacing: var(--ls-18);
  padding: 0;
  cursor: pointer;
  color: #000000;
}

html.dark-theme .resume-skill-chip button {
  color: #ffffff;
}

.resume-skill-chip.dragging {
  opacity: 0.4;
  cursor: grabbing;
}

.resume-skill-chip.drag-over {
  position: relative;
}

.resume-skill-chip.drag-over::before {
  content: '';
  position: absolute;
  left: -4px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #4285f4;
  border-radius: 1px;
}

.resume-skill-suggestions {
  position: relative;
}

.resume-skill-suggestions-list {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 15px 40px rgba(18, 18, 18, 0.08);
  overflow: hidden;
  display: none;
  z-index: 10;
}

.resume-skill-suggestions-list.visible {
  display: block;
}

.resume-skill-suggestions-list button {
  width: 100%;
  padding: 10px 16px;
  border: none;
  background: none;
  text-align: left;
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  cursor: pointer;
}

/* Навыки: инпут на всю ширину */
#resumeSkillInput.input {
  max-width: none;
}

.resume-items {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.resume-items:empty {
  display: none;
}

.resume-item-card {
  background: var(--surface-primary);
  border-radius: 24px;
  padding: 16px 20px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  border-bottom: 1px solid var(--filter-divider);
}

.resume-item-card:last-child {
  border-bottom: none;
}

.resume-item-content {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.resume-item-actions {
  display: flex;
  gap: 8px;
}

.resume-item-actions button {
  border: none;
  background: none;
  color: var(--accent-color);
  cursor: pointer;
}

/* Float панель предпросмотра/публикации */
.resume-edit-floating-wrapper {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 16px;
  background: var(--surface-primary);
  border-radius: 24px;
  padding: 8px;
  box-shadow: 0px 4px 12px 6px #0000000F;
  z-index: 1000;
  display: block;
}

html.dark-theme .resume-edit-floating-wrapper {
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.14),
    0 10px 30px rgba(0, 0, 0, 0.7);
}

.resume-edit-floating-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}

.resume-floating-link {
  width: 44px;
  height: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.resume-floating-link svg {
  flex-shrink: 0;
  display: block;
}

.resume-floating-publish {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  height: 44px;
}

@media (max-width: 1279px) {
  .resume-edit-page {
    max-width: 600px;
    width: 100%;
    padding: 0 0 80px;
  }

  .resume-edit-container {
    padding: 0;
    max-width: 100%;
  }

  .resume-main-grid {
    grid-template-columns: 1fr;
  }

  /* Скрываем панель действий в хедере, оставляем только заголовок */
  .resume-edit-header-actions {
    display: none !important;
  }

  .breadcrumbs-container {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  .resume-edit-header {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  .resume-section {
    max-width: 100%;
    padding: 16px;
    gap: 16px;
  }

  .resume-section-header {
    gap: 12px;
  }

  .resume-intro-grid {
    flex-direction: column;
    gap: 16px;
  }

  .resume-photo-block {
    width: 100%;
    flex: none;
  }

  .resume-input-column {
    width: 100%;
    flex: none;
  }

  .resume-entry-info {
    width: 100%;
  }

  .resume-entry-title,
  .resume-entry-period,
  .resume-entry-location,
  .resume-entry-desc {
    width: 100%;
    word-wrap: break-word;
  }

  .resume-input-between {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .resume-half-input {
    flex: none;
    width: 100%;
  }

  .resume-location-select {
    width: 100%;
    flex: none;
  }

  /* 1. Имя и фамилия друг под другом */
  .resume-name-row {
    flex-direction: column;
  }

  .resume-name-row input[data-field="first_name"] {
    margin-bottom: 0;
  }


  /* 3. Контакты друг под другом */
  .resume-contacts-grid {
    grid-template-columns: 1fr;
  }

  /* 4. Грейд, формат работы и т.д. друг под другом */
  .resume-input-row {
    grid-template-columns: 1fr;
    row-gap: 12px;
  }

  /* 5. Кнопки редактирования под записями */
  .resume-entry-item {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .resume-entry-actions {
    width: 100%;
  }

  .resume-entry-actions .btn {
    width: 100%;
    min-width: auto;
  }

  /* 6. Языки - кнопки вниз на всю ширину */
  .resume-language-item {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .resume-language-actions {
    width: 100%;
  }

  .resume-lang-edit-btn {
    width: 100%;
    min-width: auto;
  }

  /* Все кнопки редактирования и удаления на всю ширину */
  .resume-link-edit-btn,
  button.resume-entry-edit-btn,
  button.resume-lang-edit-btn {
    width: 100% !important;
    min-width: auto !important;
    max-width: none !important;
  }
}

/* Модальные окна резюме */
#experienceModal,
#projectModal,
#courseModal,
#educationModal,
#languageModal,
#achievementModal,
#linkModal,
#resumeDeleteModal {
  display: none;
  opacity: 0;
  visibility: hidden;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1000;
  align-items: center;
  justify-content: center;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
  transition: opacity 0.2s ease, visibility 0s linear 0.2s !important;
}

#experienceModal.visible,
#projectModal.visible,
#courseModal.visible,
#educationModal.visible,
#languageModal.visible,
#achievementModal.visible,
#linkModal.visible,
#resumeDeleteModal.visible {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.2s ease, visibility 0s linear 0s !important;
}

#experienceModal .filter-modal,
#projectModal .filter-modal,
#courseModal .filter-modal,
#educationModal .filter-modal,
#languageModal .filter-modal,
#achievementModal .filter-modal,
#linkModal .filter-modal,
#resumeDeleteModal .filter-modal {
  width: calc(100% - 32px);
  max-width: 600px;
  max-height: calc(100vh - 80px);
  background-color: var(--surface-primary);
  border-radius: 24px;
  margin: 0 auto;
  box-sizing: border-box;
  padding: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  transform: scale(0.95);
  transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1) !important;
}

#experienceModal.visible .filter-modal,
#projectModal.visible .filter-modal,
#courseModal.visible .filter-modal,
#educationModal.visible .filter-modal,
#languageModal.visible .filter-modal,
#achievementModal.visible .filter-modal,
#linkModal.visible .filter-modal,
#resumeDeleteModal.visible .filter-modal {
  transform: scale(1);
}

#experienceModal .filter-modal-header,
#projectModal .filter-modal-header,
#courseModal .filter-modal-header,
#educationModal .filter-modal-header,
#languageModal .filter-modal-header,
#achievementModal .filter-modal-header,
#linkModal .filter-modal-header,
#resumeDeleteModal .filter-modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  height: 56px;
  padding: 0 20px;
  flex-shrink: 0;
}

#experienceModal .filter-modal-title,
#projectModal .filter-modal-title,
#courseModal .filter-modal-title,
#educationModal .filter-modal-title,
#languageModal .filter-modal-title,
#achievementModal .filter-modal-title,
#linkModal .filter-modal-title,
#resumeDeleteModal .filter-modal-title {
  font-size: var(--fs-20);
  line-height: var(--lh-20);
  letter-spacing: var(--ls-20);
  font-weight: var(--fw-semibold);
  color: var(--text-color);
}

#experienceModal .filter-modal-close,
#projectModal .filter-modal-close,
#educationModal .filter-modal-close,
#languageModal .filter-modal-close,
#achievementModal .filter-modal-close,
#courseModal .filter-modal-close,
#linkModal .filter-modal-close,
#resumeDeleteModal .filter-modal-close {
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: none;
  background-color: var(--surface-secondary);
  padding: 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}

#experienceModal .filter-modal-content,
#projectModal .filter-modal-content,
#educationModal .filter-modal-content,
#languageModal .filter-modal-content,
#achievementModal .filter-modal-content,
#courseModal .filter-modal-content,
#linkModal .filter-modal-content,
#resumeDeleteModal .filter-modal-content {
  padding: 0px 20px 0;
  overflow-y: auto;
  box-sizing: border-box;
  flex-grow: 1;
}

#experienceModal .filter-modal-content .floating-field:last-child .input,
#experienceModal .filter-modal-content .floating-field:last-child .text-area,
#projectModal .filter-modal-content .floating-field:last-child .input,
#projectModal .filter-modal-content .floating-field:last-child .text-area,
#educationModal .filter-modal-content .floating-field:last-child .input,
#educationModal .filter-modal-content .floating-field:last-child .text-area,
#languageModal .filter-modal-content .floating-field:last-child .input,
#languageModal .filter-modal-content .floating-field:last-child .text-area,
#achievementModal .filter-modal-content .floating-field:last-child .input,
#achievementModal .filter-modal-content .floating-field:last-child .text-area,
#courseModal .filter-modal-content .floating-field:last-child .input,
#courseModal .filter-modal-content .floating-field:last-child .text-area,
#linkModal .filter-modal-content .floating-field:last-child .input,
#linkModal .filter-modal-content .floating-field:last-child .text-area,
#resumeDeleteModal .filter-modal-content .floating-field:last-child .input,
#resumeDeleteModal .filter-modal-content .floating-field:last-child .text-area {
  margin-bottom: 0;
}

#experienceModal .filter-modal-footer,
#projectModal .filter-modal-footer,
#courseModal .filter-modal-footer,
#educationModal .filter-modal-footer,
#languageModal .filter-modal-footer,
#achievementModal .filter-modal-footer,
#linkModal .filter-modal-footer,
#resumeDeleteModal .filter-modal-footer {
  padding: 16px 20px;
  flex-shrink: 0;
  display: flex;
  flex-direction: row;
  gap: 12px;
}

#experienceModal .filter-modal-footer .btn,
#courseModal .filter-modal-footer .btn,
#projectModal .filter-modal-footer .btn,
#educationModal .filter-modal-footer .btn,
#languageModal .filter-modal-footer .btn,
#achievementModal .filter-modal-footer .btn,
#linkModal .filter-modal-footer .btn,
#resumeDeleteModal .filter-modal-footer .btn {
  width: 100%;
}

#experienceModal .resume-select.experience-location-select {
  margin-top: 12px;
  margin-bottom: 12px;
}

#experienceModal .experience-checkbox-row {
  margin-top: 0;
  margin-bottom: 12px;
}

#experienceModal .text-area,
#courseModal .text-area {
  margin-bottom: 12px;
  min-height: 100px;
}

#experienceModal .modal-skills-block {
  margin-bottom: 12px;
}

/* даты в модалке используют стандартные стили .input без доп. переопределений */

#projectModal .project-checkbox-row,
#educationModal .education-checkbox-row {
  margin-bottom: 12px;
}

#projectModal .text-area {
  margin-bottom: 12px;
  min-height: 100px;
}

#languageModal .language-modal-content > * {
  margin-bottom: 12px;
}

#languageModal .language-modal-content > *:last-child {
  margin-bottom: 0;
}

#languageModal .filter-modal-content,
#courseModal .filter-modal-content {
  overflow: visible;
}

#languageModal .filter-modal,
#courseModal .filter-modal {
  overflow: visible;
}

.achievement-description {
  margin-bottom: 12px;
}

.resume-language-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--filter-divider);
  padding-bottom: 16px;
}

.resume-language-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.resume-language-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.resume-language-title {
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}

.resume-language-desc {
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  color: var(--text-muted);
}

.resume-language-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.resume-entry-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 0;
  background: none;
  border: none;
  border-bottom: 1px solid var(--filter-divider);
  padding-bottom: 16px;
}

.resume-entry-item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.resume-entry-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 684px;
}

.resume-entry-title {
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  font-weight: var(--fw-medium);
  color: var(--text-primary);
}

.resume-entry-period {
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  color: var(--text-color);
}

.resume-entry-location {
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  color: var(--text-color);
}

.resume-entry-desc {
  font-size: var(--fs-14);
  line-height: var(--lh-14);
  letter-spacing: var(--ls-14);
  color: var(--text-muted);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.resume-entry-actions {
  display: flex;
  align-items: center;
  justify-content: center;
}

.resume-entry-actions .btn,
.resume-link-edit-btn,
.resume-lang-edit-btn {
  width: 44px;
  height: 44px;
  min-width: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.resume-entry-actions .btn svg,
.resume-link-edit-btn svg,
.resume-lang-edit-btn svg {
  width: 24px;
  height: 24px;
  display: block;
  flex-shrink: 0;
}

/* Секция "Что сделано" в модальном окне опыта работы */
.experience-achievements-section {
  margin-top: 4px;
}

.section-subtitle {
  font-size: var(--fs-16);
  line-height: var(--lh-16);
  letter-spacing: var(--ls-16);
  font-weight: var(--fw-medium);
  margin-bottom: 12px;
  color: var(--text-primary);
}

.achievement-row {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 12px;
}

.achievement-row .input {
  flex: 1;
  margin-bottom: 0;
  padding-right: 36px;
}

.achievement-textarea {
  height: auto;
  min-height: 44px;
  resize: none;
  overflow: hidden;
  line-height: 1.4;
}

.achievement-drag-handle {
  position: absolute;
  top: 8px;
  right: 64px;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: grab;
  padding: 0;
  opacity: 0.7;
  transition: opacity 0.2s;
  z-index: 2;
}

.achievement-drag-handle:hover {
  opacity: 0.8;
}

.achievement-drag-handle:active {
  cursor: grabbing;
}

.achievement-drag-handle svg {
  width: 16px;
  height: 16px;
}

/* SortableJS стили */
.achievement-ghost {
  opacity: 0.3;
  background: #e8f0fe;
  border: 2px dashed #4285f4;
  border-radius: 8px;
}

.achievement-chosen {
  background: #fff;
}

.achievement-fallback {
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,0.2);
  border-radius: 8px;
}

.add-achievement-btn {
  width: 100%;
  margin-bottom: 12px;
}

/* Лоадер для загрузки данных резюме */
.resume-loading-spinner {
  display: block;
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
}

.resume-loading-spinner.hidden {
  display: none;
}

.spinner {
  width: 40px;
  height: 40px;
  border: 4px solid var(--surface-secondary);
  border-top-color: var(--accent-color);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

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

/* Мобильные модалки (bottom-sheet паттерн) */
@media (max-width: 1279px) {
  #experienceModal,
  #projectModal,
  #educationModal,
  #languageModal,
  #achievementModal,
  #courseModal,
  #linkModal,
  #resumeDeleteModal {
    align-items: center;
  }


  /* Модалки по высоте контента прижимаются к низу */
  #projectModal,
  #linkModal,
  #languageModal,
  #achievementModal,
  #courseModal,
  #resumeDeleteModal {
    align-items: flex-end;
  }

  #experienceModal .filter-modal,
  #projectModal .filter-modal,
  #educationModal .filter-modal,
  #languageModal .filter-modal,
  #achievementModal .filter-modal,
  #courseModal .filter-modal,
  #linkModal .filter-modal,
  #resumeDeleteModal .filter-modal {
    width: calc(100% - 32px);
    height: calc(100% - 32px);
    max-width: 600px;
    max-height: 100%;
    border-radius: 24px;
    margin: 0 auto;
    transform: translateY(100%);
    transition: transform 0.2s cubic-bezier(0.2, 0, 0, 1) !important;
  }

  /* Модалки по высоте контента (без лишнего пространства) */
  #projectModal .filter-modal,
  #linkModal .filter-modal,
  #languageModal .filter-modal,
  #achievementModal .filter-modal,
  #courseModal .filter-modal,
  #resumeDeleteModal .filter-modal {
    height: auto;
    max-height: calc(100% - 32px);
    margin-bottom: 16px;
  }

  /* В модалках, прижатых к низу, селекты открываются вверх */
  #linkModal .resume-select-dropdown,
  #languageModal .resume-select-dropdown,
  #achievementModal .resume-select-dropdown,
  #courseModal .resume-select-dropdown,
  #resumeDeleteModal .resume-select-dropdown {
    top: auto;
    bottom: calc(100% + 4px);
  }

  /* Модалки с dropdown вверх: убираем overflow чтобы dropdown не обрезался */
  #linkModal .filter-modal,
  #languageModal .filter-modal,
  #achievementModal .filter-modal,
  #courseModal .filter-modal,
  #resumeDeleteModal .filter-modal {
    overflow: visible;
  }

  #linkModal .filter-modal-content,
  #languageModal .filter-modal-content,
  #achievementModal .filter-modal-content,
  #courseModal .filter-modal-content,
  #resumeDeleteModal .filter-modal-content {
    overflow: visible;
  }


  #experienceModal.visible .filter-modal,
  #projectModal.visible .filter-modal,
  #educationModal.visible .filter-modal,
  #languageModal.visible .filter-modal,
  #achievementModal.visible .filter-modal,
  #courseModal.visible .filter-modal,
  #linkModal.visible .filter-modal,
  #resumeDeleteModal.visible .filter-modal {
    transform: translateY(0);
  }

  #experienceModal input[data-modal-field="company"],
  #experienceModal input[data-modal-field="start_date"] {
    margin-bottom: 0;
  }

  #experienceModal .filter-modal-content > .resume-input-row:first-child {
    margin-bottom: 12px;
  }

  #experienceModal .experience-checkbox-row {
    margin-top: 4px;
  }

  #experienceModal .achievement-row {
    flex-direction: column;
    align-items: stretch;
    border-bottom: 1px solid var(--filter-divider);
    padding-bottom: 12px;
    gap: 4px;
  }

  /* На мобилке запрещаем flex-grow у textarea, иначе она схлопывается по высоте */
  #experienceModal .achievement-row .input,
  #experienceModal .achievement-row .achievement-textarea {
    flex: none;
    width: 100%;
  }

  #experienceModal .achievement-row .resume-card-delete-btn {
    width: 100%;
    min-width: auto;
    min-height: 44px;
    flex-shrink: 0;
  }

  #experienceModal .achievement-drag-handle {
    right: 12px;
    top: 10px;
  }

  #projectModal .project-checkbox-row,
  #educationModal .education-checkbox-row {
    margin-top: 4px;
  }

  #projectModal input[data-modal-field="start_date"],
  #educationModal input[data-modal-field="start_date"] {
    margin-bottom: 0;
  }

  .resume-entry-item {
    gap: 12px;
  }
}
