@page dershane-a4-portrait {
    size: A4 portrait;
    margin: 12mm;
}

@page dershane-a4-landscape {
    size: A4 landscape;
    margin: 9mm;
}

.print-region {
    display: contents;
}

.print-only,
#dershane-print-root {
    display: none;
}

.print-button {
    min-height: 2.15rem;
    padding: .42rem .68rem;
    font-size: .8rem;
}

.print-heading-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: .45rem;
}

@media print {
    html,
    body {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        color: #111 !important;
        background: #fff !important;
        font-family: Arial, sans-serif;
        print-color-adjust: economy;
    }

    body.dershane-printing > *:not(#dershane-print-root) {
        display: none !important;
    }

    body.dershane-printing #dershane-print-root,
    body.dershane-printing #dershane-print-root [data-print-active] {
        display: block !important;
    }

    #dershane-print-root[data-print-preset="a4-portrait"] [data-print-active] {
        page: dershane-a4-portrait;
        --print-page-width: 186mm;
        --print-page-height: 273mm;
    }

    #dershane-print-root[data-print-preset="a4-landscape"] [data-print-active] {
        page: dershane-a4-landscape;
        --print-page-width: 279mm;
        --print-page-height: 192mm;
    }

    #dershane-print-root,
    #dershane-print-root [data-print-active] {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: visible !important;
    }

    #dershane-print-root .print-only {
        display: block !important;
    }

    #dershane-print-root .print-document {
        box-sizing: border-box;
        width: var(--print-page-width, 100%);
        max-width: 100%;
        margin: 0 auto;
        color: #111;
        background: #fff;
    }

    #dershane-print-root .print-fit-page {
        font-size: 7.8pt;
        line-height: 1.18;
    }

    #dershane-print-root .print-hide,
    #dershane-print-root [data-print-button],
    #dershane-print-root button,
    #dershane-print-root form,
    #dershane-print-root input,
    #dershane-print-root select,
    #dershane-print-root textarea,
    #dershane-print-root nav {
        display: none !important;
    }

    #dershane-print-root .panel,
    #dershane-print-root .stat-card,
    #dershane-print-root .student-weekly-plan-item,
    #dershane-print-root .student-weekly-plan-day {
        box-shadow: none !important;
    }

    #dershane-print-root .panel {
        margin: 0 0 4mm !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: #fff !important;
    }

    #dershane-print-root .long-list-scroll,
    #dershane-print-root .long-list-scroll-compact,
    #dershane-print-root .long-list-scroll-table {
        max-height: none !important;
        height: auto !important;
        padding: 0 !important;
        border: 0 !important;
        overflow: visible !important;
        overscroll-behavior: auto !important;
        scrollbar-width: none !important;
    }

    #dershane-print-root .print-grid-seven {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        align-items: start !important;
        gap: 2mm !important;
    }

    #dershane-print-root .print-grid-three {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 2mm !important;
    }

    #dershane-print-root .print-row-three > * {
        display: grid !important;
        grid-template-columns: minmax(28mm, 42mm) minmax(45mm, 1fr) minmax(48mm, auto) !important;
        align-items: center !important;
        gap: 2mm !important;
    }

    #dershane-print-root .print-document-header {
        margin: 0 0 3mm;
        padding: 0 0 2.5mm;
        border-bottom: 1px solid #555;
    }

    #dershane-print-root .print-document-header h1 {
        margin: 0 0 2.5mm;
        font-size: 15pt;
        line-height: 1.15;
    }

    #dershane-print-root .print-document-meta {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 1.2mm 4mm;
        margin: 0;
    }

    #dershane-print-root .print-document-meta div {
        min-width: 0;
    }

    #dershane-print-root .print-document-meta dt {
        color: #444;
        font-size: 7.5pt;
        font-weight: 700;
    }

    #dershane-print-root .print-document-meta dd {
        margin: .4mm 0 0;
        font-size: 9pt;
        font-weight: 700;
        overflow-wrap: anywhere;
    }

    #dershane-print-root .print-compact {
        font-size: 8pt;
        line-height: 1.25;
    }

    #dershane-print-root .print-weekly-grid {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr));
        align-items: stretch;
        gap: 1.4mm;
    }

    #dershane-print-root .print-weekly-day {
        min-width: 0;
        padding: 1.4mm;
        border: .2mm solid #777;
        border-radius: 1mm;
        break-inside: auto !important;
    }

    #dershane-print-root .print-weekly-day > header {
        display: flex;
        flex-direction: column;
        gap: .3mm;
        margin: -1.4mm -1.4mm 1mm;
        padding: 1mm 1.4mm;
        border-bottom: .2mm solid #777;
        background: #f2f2f2 !important;
    }

    #dershane-print-root .print-weekly-day > header strong {
        font-size: 8.5pt;
    }

    #dershane-print-root .print-weekly-day > header span {
        color: #333;
        font-size: 7pt;
    }

    #dershane-print-root .print-weekly-empty {
        margin: 2mm 0;
        color: #555;
        font-style: italic;
    }

    #dershane-print-root .print-monthly-table {
        width: 100%;
        border-collapse: collapse;
        table-layout: fixed;
        font-size: 7.5pt;
    }

    #dershane-print-root .print-monthly-document {
        break-inside: auto !important;
    }

    #dershane-print-root .print-monthly-table tbody tr {
        break-inside: avoid;
    }

    #dershane-print-root .print-monthly-table th,
    #dershane-print-root .print-monthly-table td {
        padding: 1.5mm;
        border: .2mm solid #777;
        vertical-align: top;
        text-align: left;
    }

    #dershane-print-root .print-monthly-table thead {
        display: table-header-group;
    }

    #dershane-print-root .print-monthly-table thead th {
        background: #eee !important;
    }

    #dershane-print-root .print-monthly-table thead th:first-child,
    #dershane-print-root .print-monthly-table tbody th {
        width: 25mm;
    }

    #dershane-print-root .print-monthly-table thead span,
    #dershane-print-root .print-monthly-resource,
    #dershane-print-root .print-monthly-items small {
        display: block;
        margin-top: .4mm;
        color: #333;
        font-size: 6.8pt;
        font-weight: 400;
    }

    #dershane-print-root .print-monthly-items {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    #dershane-print-root .print-monthly-items li {
        margin: 0;
        padding: 0 0 1.2mm;
        border-bottom: .15mm solid #bbb;
        break-inside: avoid;
    }

    #dershane-print-root .print-monthly-items li + li {
        padding-top: 1.2mm;
    }

    #dershane-print-root .print-monthly-items li:last-child {
        padding-bottom: 0;
        border-bottom: 0;
    }

    #dershane-print-root .print-monthly-items li > strong,
    #dershane-print-root .print-monthly-items li > span {
        display: block;
    }

    #dershane-print-root .print-monthly-empty,
    #dershane-print-root .print-monthly-empty-row td {
        color: #666;
        font-style: italic;
    }

    #dershane-print-root .print-plan-items,
    #dershane-print-root .print-plan-item-grid {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    #dershane-print-root .print-plan-items li {
        margin: 0;
        padding: 1.1mm 0;
        border-bottom: .15mm solid #bbb;
    }

    #dershane-print-root .print-plan-items li:last-child {
        border-bottom: 0;
    }

    #dershane-print-root .print-plan-assignment-title,
    #dershane-print-root .print-plan-curriculum,
    #dershane-print-root .print-plan-item-title,
    #dershane-print-root .print-plan-question-count {
        display: block;
        margin: 0 0 .35mm;
    }

    #dershane-print-root .print-plan-assignment-title {
        font-size: 7.5pt;
        line-height: 1.12;
    }

    #dershane-print-root .print-plan-curriculum {
        font-weight: 700;
    }

    #dershane-print-root .print-plan-item-title,
    #dershane-print-root .print-plan-question-count {
        color: #333;
    }

    #dershane-print-root .print-unplanned-document h2 {
        margin: 0 0 2.5mm;
        font-size: 12pt;
    }

    #dershane-print-root .print-plan-item-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 2mm;
    }

    #dershane-print-root .print-plan-item-grid > li {
        padding: 2mm;
        border: .2mm solid #888;
        break-inside: avoid;
    }

    #dershane-print-root .print-break-avoid,
    #dershane-print-root li,
    #dershane-print-root article {
        break-inside: avoid;
    }

    #dershane-print-root .status {
        border: 1px solid #666 !important;
        color: #111 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #dershane-print-root a,
    #dershane-print-root a:visited {
        color: #111 !important;
        text-decoration: none !important;
    }

    #dershane-print-root * {
        max-width: 100%;
        overflow-wrap: anywhere;
    }
}
