/* ============================================================
   DSQ Print – Centralized print stylesheet
   ============================================================
   Overrides THREE destructive sources:
   1. lite-purple.css (vendor theme):  body * { visibility: hidden }
   2. Bootstrap (vendor):              @page { size: a3 } + body { min-width: 992px !important }
   3. site.css (app chrome hiding):    targeted .mud-*/footer rules

   Strategy:
   - Force the ENTIRE ancestor chain (html > body > #app > .dsq-print-layout) visible
   - Force .dsq-print-root and ALL its children visible with correct display
   - Use only explicit, non-fragile selectors (no :has, no * { display:none })
   - Override vendor rules with !important where necessary
   ============================================================ */

/* ---- Screen: wrapper ---- */
.dsq-print-layout {
    min-height: 100vh;
    background: #fff;
}

/* ---- Screen: toolbar ---- */
.dsq-print-toolbar {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    padding: 12px 24px 0;
}

.dsq-print-toolbar__button {
    padding: 8px 18px;
    border: none;
    border-radius: 4px;
    background: #1f6fa8;
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}

.dsq-print-toolbar__button:hover {
    background: #17567e;
}

.dsq-print-toolbar__button--outline {
    background: transparent;
    color: #1f6fa8;
    border: 1px solid #1f6fa8;
}

.dsq-print-toolbar__button--outline:hover {
    background: #e8f0f7;
}

/* ---- Page setup (overrides Bootstrap's @page { size: a3 }) ---- */
@page {
    size: A4 portrait;
    margin: 14mm 12mm 16mm;
}

/* ============================================================
   @media print – BULLETPROOF overrides
   ============================================================ */
@media print {

    /* --------------------------------------------------------
       A. ANCESTOR CHAIN: force html > body > #app visible
       -------------------------------------------------------- */
    html {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        overflow: visible !important;
        background: #fff !important;
    }

    body {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        overflow: visible !important;
        position: static !important;
        min-width: 0 !important;
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
        color: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    #app {
        display: block !important;
        visibility: visible !important;
        height: auto !important;
        overflow: visible !important;
        position: static !important;
    }

    /* --------------------------------------------------------
       B. DSQ PRINT LAYOUT + ROOT wrappers
       -------------------------------------------------------- */
    .dsq-print-layout {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        overflow: visible !important;
        width: 100% !important;
        height: auto !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .dsq-print-root {
        display: block !important;
        visibility: visible !important;
        position: static !important;
        overflow: visible !important;
        width: 100% !important;
        height: auto !important;
    }

    /* --------------------------------------------------------
       C. ALL children: visibility + color + display defaults
          for standard HTML elements. This defeats the vendor
          theme's body * { visibility: hidden }.
       -------------------------------------------------------- */
    .dsq-print-root *,
    .dsq-print-root *::before,
    .dsq-print-root *::after {
        visibility: visible !important;
        color: inherit;
    }

    .dsq-print-root div,
    .dsq-print-root article,
    .dsq-print-root section,
    .dsq-print-root header,
    .dsq-print-root footer,
    .dsq-print-root p,
    .dsq-print-root h1,
    .dsq-print-root h2,
    .dsq-print-root h3,
    .dsq-print-root h4,
    .dsq-print-root nav,
    .dsq-print-root main,
    .dsq-print-root aside {
        display: block !important;
    }

    .dsq-print-root span,
    .dsq-print-root strong,
    .dsq-print-root em,
    .dsq-print-root b,
    .dsq-print-root i,
    .dsq-print-root a,
    .dsq-print-root small {
        display: inline !important;
    }

    .dsq-print-root img {
        display: inline-block !important;
        max-width: 100%;
    }

    .dsq-print-root br {
        display: block !important;
    }

    .dsq-print-root dl,
    .dsq-print-root dt,
    .dsq-print-root dd {
        display: block !important;
    }

    /* --------------------------------------------------------
       D. HIDE non-printable elements (specificity must beat
          .dsq-print-root div from section C above)
       -------------------------------------------------------- */
    .dsq-print-root .dsq-print-toolbar,
    .dsq-print-root .dsq-print-hide {
        display: none !important;
    }

    /* --------------------------------------------------------
       E. DSQ print shell
       -------------------------------------------------------- */
    .dsq-print-shell {
        display: block !important;
        max-width: none !important;
        padding: 0 !important;
        font-size: 10.5pt;
        color: #000 !important;
    }

    /* --------------------------------------------------------
       F. Medication document header (2-column: logo | identity)
       -------------------------------------------------------- */
    .dsq-print-document-header {
        display: grid !important;
        grid-template-columns: minmax(250px, 1fr) minmax(420px, 1.15fr) !important;
        gap: 24px !important;
        align-items: start !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .dsq-print-document-header__brand {
        display: flex !important;
        align-items: center !important;
    }

    .dsq-print-document-header__logo {
        display: inline-block !important;
        width: 220px;
        height: auto;
    }

    .dsq-print-document-header__identity {
        display: grid !important;
        justify-items: end !important;
        gap: 14px !important;
    }

    .dsq-print-page-header {
        display: flex !important;
        align-items: baseline !important;
        gap: 18px !important;
    }

    .dsq-print-page-header__title {
        display: inline !important;
    }

    .dsq-print-page-number {
        display: inline !important;
    }

    .dsq-print-identity-card {
        display: grid !important;
        gap: 4px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    /* --------------------------------------------------------
       G. Print meta (Imprimé par / Date)
       -------------------------------------------------------- */
    .dsq-print-meta {
        display: block !important;
    }

    /* --------------------------------------------------------
       H. Clinical blocks (Ordonnance, Delivrance, etc.)
       -------------------------------------------------------- */
    .dsq-print-clinical-block {
        display: block !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .dsq-print-clinical-block__title {
        display: block !important;
    }

    .dsq-print-clinical-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px 36px !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .dsq-print-clinical-grid__column {
        display: grid !important;
        gap: 6px !important;
    }

    .dsq-print-clinical-grid__column > div {
        display: grid !important;
        grid-template-columns: minmax(150px, 180px) minmax(0, 1fr) !important;
        gap: 10px !important;
        align-items: start !important;
    }

    .dsq-print-clinical-grid dt {
        display: block !important;
        font-weight: 700;
    }

    .dsq-print-clinical-grid dd {
        display: block !important;
        margin: 0;
    }

    /* --------------------------------------------------------
       I. Medication records: each on its own page
       -------------------------------------------------------- */
    .dsq-print-record {
        display: block !important;
        page-break-after: always;
        break-after: page;
    }

    .dsq-print-record:last-child {
        page-break-after: auto;
        break-after: auto;
    }

    .dsq-print-record__footer {
        display: block !important;
    }

    /* --------------------------------------------------------
       J. Summary section (table view)
       -------------------------------------------------------- */
    .dsq-print-summary {
        display: block !important;
    }

    .dsq-print-empty {
        display: block !important;
    }

    .dsq-print-summary-table,
    .dsq-print-history-table,
    .dsq-print-table {
        display: table !important;
        width: 100% !important;
        border-collapse: collapse !important;
    }

    .dsq-print-summary-table thead,
    .dsq-print-history-table thead,
    .dsq-print-table thead {
        display: table-header-group !important;
    }

    .dsq-print-summary-table tbody,
    .dsq-print-history-table tbody,
    .dsq-print-table tbody {
        display: table-row-group !important;
    }

    .dsq-print-summary-table tr,
    .dsq-print-history-table tr,
    .dsq-print-table tr {
        display: table-row !important;
    }

    .dsq-print-summary-table th,
    .dsq-print-summary-table td,
    .dsq-print-history-table th,
    .dsq-print-history-table td,
    .dsq-print-table th,
    .dsq-print-table td {
        display: table-cell !important;
    }

    /* --------------------------------------------------------
       K. Lab report
       -------------------------------------------------------- */
    .dsq-print-header {
        display: grid !important;
        grid-template-columns: auto 1fr !important;
        gap: 22px !important;
        align-items: center !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .dsq-print-header__brand {
        display: flex !important;
        align-items: center !important;
    }

    .dsq-print-header__content {
        display: block !important;
    }

    .dsq-print-header__logo {
        display: inline-block !important;
        width: 220px;
        height: auto;
    }

    .dsq-print-subtitle {
        display: block !important;
    }

    .dsq-print-block {
        display: block !important;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .dsq-print-block__header {
        display: flex !important;
        justify-content: space-between !important;
    }

    /* --------------------------------------------------------
       L. Note list
       -------------------------------------------------------- */
    .dsq-print-note-list {
        display: grid !important;
    }

    .dsq-print-note-list__item {
        display: grid !important;
    }
}
