/* ЕДИНЫЙ СТИЛЬ ПЕЧАТИ — один файл на все экраны и все документы.

   Зачем он вообще нужен. Продукт нарисован светлым по тёмному: фон почти чёрный,
   текст кремовый и золотой, поверх лежат звёздное поле и затемняющая пелена. При
   печати браузер по умолчанию НЕ печатает фоны — остаётся белый лист, а текст на
   нём как был кремовым, так и остаётся. Человек получает пустую страницу и
   считает, что «карта не печатается». Это не метафора: светлый текст на
   непечатаемом фоне физически исчезает.

   Поэтому здесь одно решение на все точки: на печати документ становится тёмным
   по белому, декоративные слои выключаются, а всё, что относится к управлению
   (кнопки, вкладки, шапки, полосы), уходит — на бумаге им нечего делать.

   Файл подключается ровно двумя способами и больше никак:
     • экранами приложения — обычным <link rel="stylesheet" media="print">;
     • подменёнными документами (Карта, прогнозы, бизнес-документ, Соляр) —
       через dzdoc.js, единственное место, где такой документ проходит перед
       записью в страницу.
   Отдельных правил печати по экранам заводить нельзя: разъедутся. */

@media print {
  /* 1. Печатаем то, что задумано: сохранённые фоны у блоков-подложек. */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* 2. Лист — белый, буквы — тёмные. Переопределяем сами переменные темы,
        иначе каждое правило продукта вернёт кремовый цвет обратно. */
  :root, html, html.cardlite, html.light, body {
    --bg: #ffffff !important;
    --bg2: #ffffff !important;
    --bg3: #ffffff !important;
    --text: #14110b !important;
    --text-dim: #3d372c !important;
    --dim: #3d372c !important;
    --muted: #3d372c !important;
    --quiet: #4a4437 !important;
    --cream: #14110b !important;
    --text-muted: #3d372c !important;
    --gold: #6d5312 !important;
    --gold-l: #6d5312 !important;
    --gold-d: #6d5312 !important;
    --gold-soft: #6d5312 !important;
    --gold-bright: #6d5312 !important;
    --teal: #2f4f6d !important;
    --teal-l: #2f4f6d !important;
    --violet: #4c2f6d !important;
    --purple: #4c2f6d !important;
    --border: rgba(0, 0, 0, .28) !important;
    --border-h: rgba(0, 0, 0, .38) !important;
    --glass-bg: #ffffff !important;
    --glass-border: rgba(0, 0, 0, .22) !important;
    background: #ffffff !important;
    background-image: none !important;
    color: #14110b !important;
  }

  html, body {
    margin: 0 !important;
    padding: 0 !important;
    /* Ничего не обрезаем: overflow:hidden на печати режет хвост документа. */
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
    min-height: 0 !important;
    filter: none !important;
  }

  /* 3. Ни один потомок не имеет права остаться светлым по белому.
        Золото и акценты ниже возвращаются точечно. */
  body, body * {
    color: #14110b !important;
    text-shadow: none !important;
    box-shadow: none !important;
    background-image: none !important;
    /* Прозрачные и почти прозрачные подложки на бумаге превращаются в грязь. */
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
  }

  /* 4. Всё, что скрыто ради анимации появления, обязано проявиться:
        иначе распечатается ровно то, до чего человек не долистал. */
  body *, body *::before, body *::after {
    animation: none !important;
    transition: none !important;
  }
  body *:not(script):not(style) {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
  }

  /* 5. Декоративные слои и всё управление — вон с бумаги. */
  .dzsky, .dzstars, .dzscrim, .dzskyscrim,
  .csky, .cstars, .cscrim, .cskyscrim, .stars, .starfield, .grain,
  #dzbar, .back-top, .ring, .ldem,
  nav, .nav-wrap, .tabbar, .bottombar, .sheet, .modal, .toast,
  button, .btn, .cta, .dz-print-help,
  [data-noprint], .noprint {
    display: none !important;
  }
  /* Кнопка «как сохранить» прячется вместе с прочим управлением, но её
     подсказка на бумаге не нужна тем более. */

  /* 6. Карточки и блоки — белые с тонкой рамкой, вместо «стекла». */
  .card, .pillar, .ctr, .mo, .col, .nutr-box, .bot-card, .glass,
  .day, .intro-block, .focus-block, .gold-block, .amber-block,
  .body-block, .affirm-block, .hl, .note, .contacts-section, .msg {
    background: #ffffff !important;
    border: 1px solid rgba(0, 0, 0, .18) !important;
    border-radius: 6px !important;
    /* Блок не разрывается посередине между листами. */
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* 7. Акценты остаются акцентами, но в печатной палитре. */
  b, strong, h1, h2, h3, h4,
  .hero-name, .tile-val, .mo-theme, .colb-title, .brand-tag, .hl-title,
  .focus-label, .special-label, .affirm-label {
    color: #5c440d !important;
  }
  a { color: #2f4f6d !important; text-decoration: underline !important; }
  /* Адрес ссылки на бумаге виден — иначе ссылка на листе бессмысленна. */
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .85em; color: #4a4437 !important; }

  h1, h2, h3 { break-after: avoid !important; page-break-after: avoid !important; }

  /* 8. Широкое содержимое на бумаге не прокручивается — оно переносится. */
  table, pre, code, .sched, .tb {
    max-width: 100% !important;
    overflow: visible !important;
    white-space: pre-wrap !important;
    word-break: break-word !important;
  }
  img { max-width: 100% !important; height: auto !important; }

  /* 9. Фиксированные слои на печати накрывают текст первой страницы. */
  [style*="position:fixed"], [style*="position: fixed"] { position: static !important; }

  @page { margin: 14mm 12mm; }
}
