@use "sass:math" as math;
@use "../variables" as vars;
@use "../functions" as func;
@use "../mixins" as mixins;

@media print {
    html {
        font-family: Georgia, "Times New Roman", serif;
        font-size: 48%; // stylelint-disable-line declaration-property-value-allowed-list
    }

    body {
        display: block;
        min-height: 0;
    }

    .page-container {
        display: block;
    }

    fieldset {
        page-break-before: avoid;
        page-break-inside: auto;
        display: block;
        overflow: visible !important;
    }

    .form-group {
        page-break-inside: avoid;
    }

    .form-label {
        page-break-after: avoid;
    }

    // header
    .header {

        .logo,
        .portal-info .logo {
            height: auto;
            width: auto;
            background-image: none;

            span {
                display: block;
            }
        }

        .portal-info {
            overflow: hidden;

            .portal-info-inner {
                display: block;
            }

            .portal-info {
                display: block;
                float: right;
            }
        }

        .solution-info {
            .solution-info-inner {
                display: block;
                overflow: hidden;
            }

            .solution-heading {
                display: inline-block;
            }

            .additional-info {
                display: block;
                float: right;
                margin-left: 0;
                text-align: right;

                @include mixins.media-breakpoint-up(#{vars.$nav-responsive-breakpoint}) {
                    margin-left: 0;
                }
            }
        }
    }

    // footer
    footer {
        .footer {
            margin-top: func.units(6);
            padding-bottom: 0;

            .inline-list > li {
                display: inline-block;

                + li {
                    margin-left: func.units(4);
                }
            }
        }
    }

    // Buttons
    .button {
        &.button-primary, &.button-secondary, &.button-tertiary, &.button-warning, &.button-icon-only {
            border-color: func.color(vars.$button-print-border-color);
            color: func.color(vars.$button-print-color);
            background-color: func.color(vars.$button-print-background-color);
        
            &:hover,
            &.button-hover,
            &.focus,
            &:focus {
                border-color: func.color(vars.$button-print-border-color);
                color: func.color(vars.$button-print-color);
                background-color: func.color(vars.$button-print-background-color);
            }

            &:active,
            &.button-active {
                border-color: func.color(vars.$button-print-border-color);
                color: func.color(vars.$button-print-color);
                background-color: func.color(vars.$button-print-background-color);
            }
        
            &:disabled,
            &.disabled {
                text-decoration: none !important;
                border-color: func.color(vars.$button-print-border-color);
                color: func.color(vars.$button-print-color);
                background-color: func.color(vars.$button-print-background-color);
            }
        }
    }

    // modal
    .fds-modal-inert {
        display: none;
    }

    .fds-modal {
        position: static;
    }

    .modal-backdrop {
        display: none;
    }

    // table
    .table.table--responsive-headers:not(.d-print-table),
    .table.table-sm-responsive-headers:not(.d-print-table),
    .table.table-md-responsive-headers:not(.d-print-table),
    .table.table-lg-responsive-headers:not(.d-print-table),
    .table.table-xl-responsive-headers:not(.d-print-table) {
        @include mixins.media-breakpoint-down(sm) {
            display: block;

            thead {
                display: none;
            }

            tr {
                border-bottom: func.border('low-contrast');

                &:last-child {
                    border-bottom: 0;
                }
            }

            tr td,
            tr th {
                display: block;
                border: none !important;

                &[data-title]:not([data-title=""])::before {
                    content: attr(data-title);
                    text-align: left;
                    display: block;
                    font-weight: func.font-weight("semibold");
                }
            }

            &.table--borderless tbody tr {
                &:first-child {
                    border-top: func.border(vars.$table-row-border);
                }

                &:last-child {
                    border-bottom: func.border(vars.$table-row-border);
                }

                td:first-child,
                th:first-child {
                    padding-left: 16px;
                }
            }
        }
    }

    // tabs
    .tab-container ul.tab-list li .tab-button {
        background-color: func.color('transparent');
        border: func.border('high-contrast'); 

        &[aria-current="page"],
        &[aria-selected="true"] {
            color: func.color(vars.$tab-active-text-color-print);
            border-width: 2px;

            .icon-svg {
                fill: func.color(vars.$tab-active-text-color-print);
            }
        }
    }

    // Checkboxes

    // Checked checkbox
    .form-checkbox:checked+label::before,
    .form-checkbox[aria-checked="mixed"]+label::before,
    .form-checkbox.mixed+label::before {
        background-color: func.color(vars.$input-checkbox-checked-background-color-print);
        background-image: none;
        display: flex;
        justify-content: center;
        align-items: center;
        font-size: func.units(vars.$input-checkbox-radio-size, 'rem');
        line-height: func.units(vars.$input-checkbox-radio-size, 'rem');
        font-weight: func.font-weight("bold");
    }

    // 'Normal' checkbox checkmark
    .form-checkbox:checked+label::before {
        content: "\2713";
    }

    // 'Mixed' checkbox checkmark
    .form-checkbox[aria-checked="mixed"]+label::before,
    .form-checkbox.mixed+label::before {
        content: "\002d";
    }

    // Checked radio - radio button 'dot'
    .form-radio:checked + label::after {
        background-color: func.color('transparent');
        border: math.div(func.units(vars.$input-radio-dot-size), 2) solid func.color(vars.$input-radio-dot-color);
    }

    // Toggle switch
    .toggle-element .toggle-button[aria-checked='true'] {
        &::before {
            content: "\2713";
            font-size: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            background-image: none;
            line-height: 1;
            color: func.color('black');
            border-color: func.color('black');
        }

        &::after {
            border-color: func.color('black');
        }
    }

    // Tooltip
    .tooltip-wrapper {
        .tooltip, .tooltip-arrow {
            display: none;
        }
    }
}