﻿/* =========================
   Disclaimer PAGE styled like the old modal overlay
   ========================= */

.pd-disclaimer-overlay-page {
    min-height: 100vh;
    padding: 24px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    /* dark overlay look */
    background: rgba(0,0,0,0.60);
}

.pd-disclaimer-card-modal {
    background: #fff;
    width: min(760px, 96vw);
    max-height: 88vh;
    overflow: auto;
    border-radius: 12px;
    padding: 0 22px 22px;
    box-shadow: 0 20px 45px rgba(0,0,0,.35);
}

/* prevent page scrolling when open */
/* ✅ Updated: targets BODY specifically (your JS should add class on body) */
body.pd-disclaimer-open {
    overflow: hidden !important;
}

/* ✅ Added: map UI stacking safety (prevents any map toolbar from appearing above modal) */
.ev-wrap,
.ev-host,
.pd-pictometry-wrap,
#ev-map,
.mapboxgl-map,
.esri-view,
.esri-view-root,
.esri-ui,
.esri-view-surface {
    position: relative;
    z-index: 0;
}



/* Base */
html, body {
    height: 100%;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

/* Sticky footer layout shell (MainLayout.razor uses .app-shell + .app-main) */
.app-shell {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

.app-main {
    flex: 1;
}

/* Links + buttons */
a, .btn-link {
    color: #006bb7;
}

.btn-primary {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

/* Default template content spacing (if you still use .content somewhere) */
.content {
    padding-top: 1.1rem;
}

h1:focus {
    outline: none;
}

/* Validation */
.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

/* Error boundary */
.blazor-error-boundary {
    background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvY2xpcD48L2c+PC9zdmc+) no-repeat 1rem/1.8rem, #b32121;
    padding: 1rem 1rem 1rem 3.7rem;
    color: white;
}

    .blazor-error-boundary::after {
        content: "An error has occurred.";
    }

.darker-border-checkbox.form-check-input {
    border-color: #929292;
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* --- ParcelSearch page tweaks --- */
/* NOTE: with the map removed, sidebar scrolling is no longer needed,
   but keeping these rules won't hurt if the class remains in markup. */
.sidebar {
    max-height: 90vh;
    overflow-y: auto;
    padding-right: 10px;
}

#resultContainer .table td,
#resultContainer .table th {
    vertical-align: middle;
}

/* --- Default.aspx look & feel --- */
body {
    background-color: #e6f2ff; /* light blue */
}

/*    body::before {
        content: "";
        background-size: cover;
        background-color: lightskyblue;
        background-image: url('/images/bkgphoto.jpeg');
        background-position: center;
        background-repeat: no-repeat;
        opacity: 0.3;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: -1;
    }
*/
.fade-edges {
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}

@media (max-width: 768px) {
    body {
        background-position: top;
    }
}
/* ==================== End Home Page CSS ======================= */


/* Sales page Record Search button */
.sales-record-search-btn {
    margin-top: -2.25rem; /* pulls it up into the banner space */
    margin-bottom: 1rem;
    position: relative;
    z-index: 5;
}

@media (max-width: 576px) {
    .sales-record-search-btn {
        margin-top: -1.5rem;
    }
}


/* ==================== Sales Search Layout ======================= */

.sales-search-container {
    max-width: 1100px;
    margin: -3rem auto 3rem;
    padding: 0 1rem;
}

.sales-card {
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 8px 25px rgba(0,0,0,.12);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

    .sales-card h5 {
        font-weight: 600;
        margin-bottom: 1rem;
        border-bottom: 1px solid #e5e7eb;
        padding-bottom: 0.5rem;
    }

/* ============================
   Grid Helpers
   ============================ */
.sales-grid {
    display: grid;
    gap: 1rem;
}

.sales-grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.sales-grid-3 {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}

/* ============================
   Form Elements
   ============================ */
.sales-search-container label {
    font-weight: 500;
    font-size: 0.9rem;
}

.sales-search-container input,
.sales-search-container select {
    font-size: 0.95rem;
}

/* Darker, more visible radio buttons (unchecked) */
.form-check-input[type="radio"] {
    border: 2px solid #6c757d; /* darker gray */
    background-color: #fff;
}

    .form-check-input[type="radio"]:checked {
        background-color: #0d6efd; /* Bootstrap primary */
        border-color: #0d6efd;
    }

    .form-check-input[type="radio"]:focus {
        box-shadow: 0 0 0 0.15rem rgba(13,110,253,.25);
    }

/* ============================
   Footer Buttons
   ============================ */
.sales-actions {
    display: flex;
    justify-content: center;
    gap: 1rem;
    margin-top: 1rem;
    flex-wrap: wrap;
}

/* ============================
   Mobile polish
   ============================ */
@media (max-width: 576px) {
    .sales-card {
        padding: 1.25rem;
    }
}
/* =============== End Sales Search CSS ================= */



/* =============== START PARCEL DETAILS CSS ================= */
/* Banner link */
.pd-banner-link {
    color: #fff;
    text-decoration: underline;
    font-size: 16px;
}

/* Matches the old “fade-edges” banner look */
.fade-edges {
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 5%, black 95%, transparent 100%);
}

/* “2026 Preliminary Tax Roll” pill */
.pd-roll-pill {
    color: #000;
    font-size: 13px;
    font-weight: 700;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    text-shadow: 2px 2px 4px rgba(0,0,0,0.5);
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 10px 20px;
    background: #fff;
    border-radius: 999px;
}

/* Card */
.pd-card {
    background-color: #fff;
    border: 1px solid #dee2e6;
    border-radius: 0.75rem;
    padding: 2rem;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
}

/* Label/value pairs */
.pd-pair {
    margin-bottom: 0.75rem;
}

.pd-label {
    font-weight: 600;
    color: #555;
}

.pd-value {
    color: #333;
}

/* Section titles */
.pd-section-title {
    border-bottom: 2px solid #004080;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    font-size: 1.25rem;
    color: #004080;
    font-weight: 600;
}

/* Sinkhole warning */
.pd-sinkhole {
    font-weight: 700;
    margin-top: 0.5rem;
}

.pd-sinkhole-red {
    color: red;
}

.pd-sinkhole-blue {
    color: blue;
}

/* Tabs */
.pd-tabbar {
    display: flex;
    border-bottom: 2px solid #ccc;
    margin-top: 1rem;
}

.pd-tabbtn {
    background-color: #f1f1f1;
    border: none;
    outline: none;
    padding: 10px 20px;
    cursor: pointer;
    transition: 0.3s;
    border-right: 1px solid #ccc;
}

    .pd-tabbtn:last-child {
        border-right: none;
    }

    .pd-tabbtn:hover {
        background-color: #ddd;
    }

    .pd-tabbtn.active {
        background-color: #ccc;
    }

.pd-tabcontent {
    background-color: #fff;
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-top: none;
}

/* Tables */
.pd-table {
    width: 100%;
    border-collapse: collapse;
}

    .pd-table th,
    .pd-table td {
        padding: 8px;
        text-align: left;
        border-bottom: 1px solid #ddd;
    }

    .pd-table th {
        background-color: #f2f2f2;
    }



/* =================================================================================
   Parcel Details – Right Column
   ================================================================================= */

/* Right column wrapper */
.pd-right-col {
    margin-top: -18px; /* pulls everything up */
}

/* Red warning text */
.pd-red-note {
    color: red;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 4px; /* tighter */
}

/* Street level iframe */
.pd-iframe-wrap {
    width: 100%;
    margin-bottom: 6px; /* tighter gap */
}

    .pd-iframe-wrap iframe {
        width: 100%;
        height: 260px;
        border: 0;
    }

/* =================================================================================
   Pictometry / EagleView Aerial
   ================================================================================= */

.pd-pictometry-wrap {
    width: 100%;
    height: 340px; /* matches old site */
    margin-top: -265px; /* key: move aerial UP */
    margin-bottom: 7px; /* small gap before photo */
    overflow: hidden;
    border: none; /* 🔥 removes red border */
    background: #000; /* prevents white flash */
}

    .pd-pictometry-wrap iframe {
        width: 100%;
        height: 100%;
        border: 0;
    }

/* ==============================================================================
   Structure Photo
   ============================================================================== */

.pd-structure-photo-wrap {
    width: 100%;
    margin-top: 0; /* snug under aerial */
}

.pd-photo {
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: contain;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
}

.clickable-photo {
    cursor: zoom-in;
    transition: transform .15s ease;
}

    .clickable-photo:hover {
        transform: scale(1.03);
    }

/* ==============================================================================
   END Structure Photo
   ============================================================================== */


/* ============================================================================
   PRINT FIX FOR TABS
   ============================================================================ */
/* Tab panels: only show active on screen */
.pd-tabpanel {
    display: none;
}

    .pd-tabpanel.active {
        display: block;
    }

/* Small section header that only appears when printing */
.pd-print-title {
    display: none;
    margin: 12px 0 6px;
    font-weight: 700;
    color: #000;
}

/* Print: show everything (all tab panels), hide tab buttons */
@media print {
    .pd-tabbar {
        display: none !important;
    }

    .pd-tabpanel {
        display: block !important;
        page-break-inside: avoid;
        break-inside: avoid;
        margin-bottom: 14px;
    }

    .pd-print-title {
        display: block !important;
    }

    /* optional: make tables a bit tighter for print */
    .pd-table th, .pd-table td {
        padding: 6px !important;
    }
}

/* ============================================================================
   END PRINT FIX FOR TABS
   ============================================================================ */

/* ============================================================================
   ADVANCED SALES SEARCH CSS
   ============================================================================ */

/* SALES: use full screen width (no max-width cap) */
.sales-search-container {
    width: 100%;
    max-width: none; /* <-- key */
    margin: 0 auto;
    padding-left: clamp(10px, 2vw, 24px);
    padding-right: clamp(10px, 2vw, 24px);
}

/* Make cards feel less "thin" */
.sales-card {
    padding: 1.25rem 1.25rem;
}

/* RESULTS: constrain height to viewport so user doesn't scroll the whole page */
.results-table-wrap {
    /* This makes the table area scroll inside the card */
    max-height: calc(100vh - 520px); /* tweak if needed */
    overflow: auto;
    border: 1px solid rgba(0,0,0,.08);
    border-radius: 10px;
}

/* If screen is short (laptops), give a bit more room to results */
@media (max-height: 800px) {
    .results-table-wrap {
        max-height: calc(100vh - 460px);
    }
}

/* On mobile: let results take more height */
@media (max-width: 576px) {
    .results-table-wrap {
        max-height: calc(100vh - 430px);
    }
}

/* Toolbar: keep it thicker / nicer (you already started this) */
.results-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(0,0,0,.10);
    border-radius: 12px;
    background: rgba(255,255,255,.92);
}

    /* Prevent toolbar wrapping from looking messy on small widths */
    .results-toolbar .btn-group {
        flex-wrap: wrap;
    }
/* ============================================================================
   END ADVANCED SALES SEARCH CSS
   ============================================================================ */


/* ============================================================================
   EXPORT FOR ADVANCED SALES SEARCH CSS
   ============================================================================ */
/* Hide non-print parts when printing from the Sales page */
@media print {
    .sales-no-print {
        display: none !important;
    }

    /* let the results use full width when printing */
    .sales-search-container {
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .sales-card {
        box-shadow: none !important;
        border: none !important;
        padding: 0 !important;
    }

    .results-table-wrap {
        max-height: none !important;
        overflow: visible !important;
        border: none !important;
    }
}
/* ============================================================================
   END EXPORT FOR ADVANCED SALES SEARCH CSS
   ============================================================================ */

/* ============================================================================
   EXPORT FOR BASIC SEARCH CSS
   ============================================================================ */
/* Print only the results section on the Home page */
@media print {
    /* Hide everything by default when in print-results-only mode */
    body.print-results-only * {
        visibility: hidden !important;
    }

    /* Show only the results container */
    body.print-results-only #resultContainer,
    body.print-results-only #resultContainer * {
        visibility: visible !important;
    }

    /* Position results at top-left of the printed page */
    body.print-results-only #resultContainer {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 100% !important;
    }

    /* Optional: hide the download buttons themselves in print */
    body.print-results-only #downloadLinks {
        display: none !important;
    }

    /* Optional: make table print cleaner */
    body.print-results-only table {
        width: 100% !important;
    }
}
/* ============================================================================
   END EXPORT FOR BASIC SEARCH CSS
   ============================================================================ */


/* PRC Year modal: smaller width */
.prc-year-modal {
    max-width: 420px !important; /* adjust: 360-480 feels good */
}

    /* If something else is forcing it wide, this helps */
    .prc-year-modal.modal-dialog {
        width: auto !important;
    }

/* Center the year buttons */
.prc-year-buttons {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 6px 0;
}

/*------------------------------- EAGLEVIEW CSS GOES HERE -------------------------------*/
.ev-wrap {
    height: 340px;
    width: 100%;
    position: relative;
    overflow: hidden;
}

.ev-host {
    height: 100%;
    width: 100%;
    position: relative;
}

    /* ensure map fills container */
    .ev-host .mapboxgl-map,
    .ev-host canvas {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
    }

/* =======================================================================================
   1) KILL the top-left "pill/menu bar" container WITHOUT removing it (prevents white-screen)
   ======================================================================================= */

/* This is the container you highlighted: evembeddedexplorer-evembeddedexplorer18 */
#ev-map .evembeddedexplorer-evembeddedexplorer18 {
    /* keep it alive but invisible */
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    padding: 0 !important;
    border-radius: 0 !important;
    /* remove any “dot/line” artifacts */
    border: 0 !important;
    outline: 0 !important;
    overflow: hidden !important;
    /* if something still draws, force it to 0px */
    min-width: 0 !important;
    min-height: 0 !important;
}

    /* hide everything inside (buttons/contents) but leave the wrapper present */
    #ev-map .evembeddedexplorer-evembeddedexplorer18 > * {
        display: none !important;
    }

    /* if a pseudo-element is leaving a tiny dot */
    #ev-map .evembeddedexplorer-evembeddedexplorer18::before,
    #ev-map .evembeddedexplorer-evembeddedexplorer18::after {
        content: none !important;
        display: none !important;
    }

/* =======================================================================================
   2) HIDE the zoom + / - controls (you asked to remove them)
   ======================================================================================= */
#ev-map #zoomIn,
#ev-map #zoomOut,
#ev-map [data-testid="zoomIn"],
#ev-map [data-testid="zoomOut"] {
    display: none !important;
}

/* =======================================================================================
   3) OPTIONAL: Hide the compass/rotate widget too (if it’s still present)
   ======================================================================================= */
#ev-map [data-testid="Rotate"],
#ev-map .evembeddedexplorer-evembeddedexplorer627,
#ev-map .evembeddedexplorer-evembeddedexplorer987,
#ev-map .evembeddedexplorer-evembeddedexplorer988 {
    display: none !important;
}

/* =======================================================================================
   4) OPTIONAL: keep Mapbox attribution if you want; otherwise hide © EagleView footer
   ======================================================================================= */
/*
#ev-map .mapboxgl-ctrl-attrib {
    display: none !important;
}
*/


/* ============================================================================
   PARCEL DETAILS – PRINT UPGRADE (added)
   Paste at the VERY BOTTOM so it overrides earlier rules.
   ============================================================================ */

/* Print header (screen hidden; print shown) */
.pd-print-header {
    display: none;
}

/* Optional wrapper: does nothing on screen, helps if you later do “print only area” mode */
.pd-print-area {
}

/* Header typography */
.pd-print-titletext {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.1;
}

.pd-print-subtext {
    font-size: 12px;
    margin-top: 2px;
    font-weight: 600;
}

.pd-print-meta {
    font-size: 12px;
    text-align: right;
    line-height: 1.35;
}

.pd-print-meta-label {
    font-weight: 800;
}

.pd-print-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 10px;
}

.pd-print-box {
    border: 1px solid #bbb;
    padding: 8px;
}

.pd-print-box-title {
    font-weight: 800;
    margin-bottom: 4px;
    border-bottom: 1px solid #bbb;
    padding-bottom: 4px;
}

.pd-print-box-body {
    font-size: 12px;
}

/* Print rules */
@media print {

    /* Remove background photo for clean paper */
    body::before {
        display: none !important;
        content: none !important;
        background: none !important;
    }

    html, body {
        background: #fff !important;
        height: auto !important;
        min-height: auto !important;
    }

    /* Hide non-report UI + heavy embeds */
    .bg-dark,
    .pd-banner-link,
    .pd-roll-pill,
    .btn,
    .btn-primary,
    .btn-secondary,
    .modal,
    .modal-backdrop,
    .pd-right-col,
    iframe {
        display: none !important;
    }

    /* Full width */
    .container,
    .container-fluid {
        max-width: 100% !important;
        width: 100% !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* Report-like card */
    .pd-card {
        box-shadow: none !important;
        border: 1px solid #bbb !important;
        padding: 14px !important;
        margin: 0 0 10px 0 !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Section headers: black for print */
    .pd-section-title {
        color: #000 !important;
        border-bottom: 2px solid #000 !important;
        margin-top: 12px !important;
        margin-bottom: 8px !important;
        padding-bottom: 6px !important;
        break-after: avoid;
        page-break-after: avoid;
    }

    /* Show the print header (if present in Razor) */
    .pd-print-header {
        display: block !important;
        border: 2px solid #000 !important;
        padding: 12px !important;
        margin: 0 0 12px 0 !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Ensure tabs print as a report */
    .pd-tabbar {
        display: none !important;
    }

    .pd-tabpanel {
        display: block !important;
        opacity: 1 !important;
        visibility: visible !important;
        height: auto !important;
        margin-bottom: 14px !important;
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Optional: page break between sections (comment out if you want continuous) */
    .pd-tabpanel {
        page-break-before: always;
    }

        .pd-tabpanel:first-child {
            page-break-before: auto;
        }

    /* Tables: borders + header shading */
    .pd-table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 11px !important;
    }

        .pd-table th,
        .pd-table td {
            border: 1px solid #bbb !important;
            padding: 6px !important;
            vertical-align: top !important;
        }

        .pd-table th {
            background: #f1f1f1 !important;
            -webkit-print-color-adjust: exact;
            print-color-adjust: exact;
        }

    tr, td, th {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    /* Don’t print long URLs */
    a[href]::after {
        content: "" !important;
    }

    /* Tighten spacing */
    .pd-pair {
        margin-bottom: 6px !important;
    }

    /* Reinforce print titles */
    .pd-print-title {
        display: block !important;
        margin: 10px 0 6px !important;
        font-weight: 800 !important;
        color: #000 !important;
    }
}
