/* Unlayered, like Fizzy's tokens: a layered rule would lose to them. html:root outranks the dark theme blocks, so paper is always light. */
@media print {
  html:root {
    color-scheme: light;

    --font-sans: "Adwaita Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Hiragino Sans GB", "Hiragino Sans", "Apple SD Gothic Neo", "Microsoft YaHei", "Meiryo", "Malgun Gothic";
    --color-ink: black;
    --color-ink-darker: black;
    --color-ink-dark: black;
    --color-ink-medium: black;
    --color-ink-light: black;
    --color-ink-lighter: oklch(92% 0.003 254);
    --color-ink-lightest: oklch(96% 0.002 252);
    --color-ink-inverted: white;
    --color-canvas: white;
    --color-link: black;
    --color-success: black;
    --color-error: black;
    --color-success-text: black;
    --color-error-text: black;
    --border: 1px solid black;
    --shadow: 0 0 0 1px oklch(var(--lch-black) / 5%),
              0 0.2em 0.2em oklch(var(--lch-black) / 5%),
              0 0.4em 0.4em oklch(var(--lch-black) / 5%),
              0 0.8em 0.8em oklch(var(--lch-black) / 5%);
    --shadow-card: 0 0 0 1px var(--tint-ink-5),
                   0 1px 2px oklch(var(--lch-black) / 5%),
                   0 4px 12px oklch(var(--lch-black) / 5%);
  }
}

@layer platform {
  @media print {
    @page {
      margin: 0.5in;
    }

    html {
      font-size: 10pt;
    }

    body {
      background: white;
      color: black;
      display: block;
    }

    main {
      inline-size: unset;
      margin: 0;
      orphans: 3;
      padding: 0;
      widows: 2;
    }

    a {
      color: inherit;
      text-decoration: none;
    }

    .icon,
    .paper__options > .btn::before {
      -webkit-print-color-adjust: exact;
      color-adjust: exact;
      print-color-adjust: exact;
    }

    .site-header,
    .header__actions,
    .header__skip-navigation,
    .flash,
    .filter-bar,
    .filter__empty,
    #footer {
      display: none;
    }

    .header {
      padding: 0;
    }

    .header__title {
      margin-block-end: 1ch;
    }

    .page {
      inline-size: 100%;
      max-inline-size: none;
    }

    .panel {
      background: none;
      border: 0;
      box-shadow: none;
      padding: 0;
    }

    .status--filled {
      background: none;
      border: 1px solid black;
      color: black;
    }

    .paper__index,
    .paper__picker,
    .paper--sheet .paper__page > .btn,
    .page:has(> .paper) > .btn {
      display: none;
    }

    .paper--form {
      .paper__page,
      .paper__page:has(> .paper__body > .paper__index) {
        display: block;
        max-inline-size: none;
      }

      .paper__body {
        display: block;
      }

      .paper__page > * + *,
      .paper__sections > * + * {
        margin-block-start: 1rem;
      }

      .paper__header {
        border: 1px solid black;
        break-inside: avoid;
      }

      .paper__title,
      .paper__field,
      .paper__status {
        border-block-end: 1px solid black;
      }

      .paper__heading {
        position: static;
        background: none;
        border-block: 1px solid black;
        break-after: avoid;
      }

      .paper__sections,
      .paper__section,
      .paper__questions {
        display: block;
      }

      .paper__question,
      .paper__box {
        break-inside: avoid;
        page-break-inside: avoid;
      }

      .paper__question {
        & + & {
          border-block-start: 1px solid black;
        }
      }

      .paper__number {
        border-inline-end: 1px solid black;
      }

      .paper__options > .btn {
        background: none;
        border: 0;
        color: black;
        padding-inline: 0;

        &::before {
          border: 1px solid black;
          background: white;
          color: black;
        }
      }

      .paper__line {
        border-block-end: 1px solid black;
      }

      .paper__line::placeholder {
        color: transparent;
      }

      .paper__question:has(.paper__grid, .paper__rows),
      .paper__box:has(.paper__grid, .paper__rows) {
        break-inside: auto;
        page-break-inside: auto;
      }

      .paper__grid {
        overflow: visible;
      }

      .paper__table tr,
      .paper__row,
      .row {
        break-inside: avoid;
      }

      .paper__rows {
        --row-tracks: repeat(var(--columns), minmax(0, 1fr));

        .btn {
          display: none;
        }

        .paper__row-labels {
          display: grid;
        }

        .paper__row {
          grid-template-columns: var(--row-tracks);
        }

        .input {
          border: 1px solid black;
          border-radius: 0;
        }

        .input::placeholder {
          color: transparent;
        }
      }
    }

    .paper--sheet {
      .signature-pad__actions,
      .signature-pad__hint {
        display: none;
      }

      .paper__options--conformity > .btn:has(input:checked) {
        background: none;
        border: 0;
        color: black;
      }

      .paper__box textarea.input {
        border: 1px solid black;
        border-radius: 0;
        resize: none;
      }

      .paper__comments {
        min-block-size: 10lh;
        border: 1px solid black;
        border-radius: 0;
        resize: none;
        break-inside: avoid;
      }
    }

    .paper--filled {
      .paper__question--finding {
        box-shadow: inset 4px 0 0 black;
      }

      .paper__option {
        background: none;
        border: 0;
        color: black;

        > .checkbox-mark {
          display: none;
        }
      }

      .paper__option:is(.paper__option--chosen, .paper__option--right, .paper__option--wrong) {
        font-weight: 700;

        &::before {
          background: black;
          color: white;
        }
      }

      .paper__blank {
        color: black;
      }

      .paper__comments {
        border: 1px solid black;
        break-inside: avoid;
      }
    }

    .signature-mark__drawing {
      background-color: transparent;
      break-inside: avoid;
    }

    .credential {
      --credential-tone: black;

      border: 1px solid black;
      background: none;
      break-inside: avoid;
    }

    .credential__tab {
      background: none;
      border-block-end: 1px solid black;
      color: black;
    }
  }
}
