/* ============================================================
   Страница CV — печатный лист А4
   Значения только из tokens.css. Числа в мм — размер бумаги
   и поля печати, их в каноне нет и быть не может.

   Кегль документа 14/20. Это единственная пара канона, которая
   мельче основной: её уже держит кнопка (--text-btn). Взята
   потому, что резюме — одностраничный документ, а не экран,
   и на 16/24 текст уезжает на второй лист.
   ============================================================ */

.cv-page {
  max-width: calc(210mm + var(--page-pad) * 2);
  margin: 0 auto;
  padding: var(--s-7) var(--page-pad) var(--s-9);
}

/* Две колонки листа. Левая — сводка, правая — опыт: та же
   пропорция, что в PDF автора.                                */
.cv {
  --cv-side: 34%;
  --cv-gap:  var(--s-6);

  width: 210mm; max-width: 100%; min-height: 297mm;
  margin: var(--s-6) auto 0;
  padding: 14mm;
  background: var(--surface);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-card);
  font-size: var(--text-btn);
  line-height: var(--text-btn-lh);
  letter-spacing: var(--text-body-ls);
}
/* На тёмной теме тень не работает — работает внутренняя линия. */
:root[data-theme="dark"] .cv { box-shadow: var(--shadow-dark) }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .cv { box-shadow: var(--shadow-dark) }
}

.cv__head,
.cv__body {
  display: grid;
  grid-template-columns: var(--cv-side) 1fr;
  gap: var(--cv-gap);
  align-items: start;
}
.cv__head { margin-bottom: var(--s-6) }

.cv__name {
  margin: 0;
  font-size: var(--text-title);
  line-height: var(--text-title-lh);
  font-weight: var(--text-title-w);
  letter-spacing: var(--text-title-ls);
  color: var(--ink);
}
.cv__role { margin: var(--s-1) 0 0; color: var(--body-c) }

.cv__links {
  display: flex; flex-wrap: wrap;
  gap: var(--s-1) var(--s-5);
  margin-top: var(--s-5);
}
/* Поле по краям ссылки со стрелкой — как у ссылок с иконкой
   на главной, правило консистентности.                        */
.cv__links a { display: inline-flex; align-items: center; gap: var(--gap-icon) }
.cv__links svg { width: 10px; height: 10px; flex: none; color: var(--muted) }

.cv__pitch p { margin: 0 }
.cv__pitch .cv__mail { margin-top: var(--s-5) }

/* ---------- Разделы ---------- */
.cv__group + .cv__group { margin-top: var(--s-6) }
.cv__label {
  margin: 0 0 var(--s-3);
  font-size: var(--text-body);
  line-height: var(--text-body-lh);
  font-weight: var(--text-strong-w);
  color: var(--ink);
}

.cv__list { margin: 0; padding: 0; list-style: none }
.cv__list li { margin: 0 }
/* Пустая строка между смысловыми пачками навыков — так же,
   как в PDF: продукт, исследование, прочее.                    */
.cv__list li.gap { margin-top: var(--s-4) }

.cv__line { margin: 0 }
.cv__meta { margin: 0; color: var(--muted) }

/* ---------- Опыт ---------- */
.cv__job + .cv__job { margin-top: var(--s-4) }
.cv__job-head {
  margin: 0;
  font-size: var(--text-body);
  line-height: var(--text-body-lh);
  font-weight: var(--text-strong-w);
  color: var(--ink);
}
.cv__job-head .sep { color: var(--underline); margin: 0 var(--s-2) }
.cv__job-meta { margin: 0 0 var(--s-1); color: var(--muted) }

.cv__bullets { margin: 0; padding: 0; list-style: none }
.cv__bullets li { position: relative; padding-left: var(--s-4) }

.cv__bullets li::before {
  content: "";
  position: absolute; left: var(--s-1); top: 8px;
  width: 3px; height: 3px; border-radius: var(--r-full);
  background: var(--muted);
}

/* ---------- Панель над листом ----------
   На печать не идёт: это орган управления, а не документ.      */
.cv-bar { display: flex; align-items: center; gap: var(--gap-inline); flex-wrap: wrap }
.cv-hint { margin: var(--s-5) 0 0; color: var(--muted); text-align: center }

/* ---------- Телефон ---------- */
@media (max-width: 700px) {
  .cv { padding: var(--s-6); min-height: 0 }
  .cv__head,
  .cv__body { grid-template-columns: 1fr; gap: var(--s-7) }
  .cv__head { margin-bottom: var(--s-7) }
}

/* ---------- Печать ----------
   Лист теряет поля, тень и скругление: поля даёт @page.
   Цвета возвращаются к светлым принудительно — печатать
   тёмную тему на бумаге незачем.                               */
@page { size: A4; margin: 14mm }

@media print {
  :root {
    --canvas:   #FCFCFC;
    --surface:  #FFFFFF;
    --ink:      #202020;
    --body-c:   #424242;
    --muted:    #646464;
    --underline:#D9D9D9;
  }
  html, body { background: #FFFFFF }
  .noprint { display: none !important }
  .cv-page { max-width: none; margin: 0; padding: 0 }
  .cv {
    width: auto; max-width: none; min-height: 0;
    margin: 0; padding: 0;
    background: transparent;
    border-radius: 0; box-shadow: none;
  }
  .cv__job { break-inside: avoid }
  a { text-decoration: none }
}
