@charset "utf-8";

/* ==========================================================================
   print_V3.css -- Shared print baseline for all V3 pages
   --------------------------------------------------------------------------
   Loaded via ucNavGlobalNew.ascx with media="print" so it applies ONLY
   during printing. Zero screen impact.

   Each page's own CSS can add page-specific @media print rules on top of this.
   ========================================================================== */

/* -- 1. Hide all non-content chrome ---------------------------------------- */

/* Global header (ucNavGlobalNew.ascx) */
header.global-header,
#ctl00_UcNavGlobal_toolbarNavNew,
.nav-flow-placeholder,
.toolbarNavNew,
.navMegaMenu,
.mega-menu-overlay,
.skip-to-main {
    display: none !important;
    height: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}

/* mega-menu-overlay: position:fixed + height:100vh from header-global-new_V3.css
   (no media guard). Chrome print engine keeps fixed elements in layout.
   Must also reset position to remove it from the fixed-position stacking context. */
#mega-menu-overlay,
.mega-menu-overlay {
    position: static !important;
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

/* sr-only live region — 1px absolute-positioned box still contributes to layout */
#menu-status,
.sr-only {
    display: none !important;
    height: 0 !important;
}

/* Audience banner (ucAudienceBannerNew.ascx) */
#ctl00_UcAudienceBanner_bnrImgHead,
.postlogin-div,
.prelogin-div,
.bannerImgHead {
    display: none !important;
    height: 0 !important;
}

/* Plan card (ucSponsorPlanInfo rendered by NewTPA.master outside content placeholder) */
.sep-plan-card {
    display: block !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
    margin-bottom: 12pt !important;
}

/* Hide the bare <div> that wraps the menuJson script block (ucNavGlobalNew.ascx) */
.toolbarNavNew + div {
    display: none !important;
}

/* Global footer (ucFooterNew.ascx) */
footer.global-footer {
    display: none !important;
}

/* Legacy nav elements (still present on master-paged pages) */
.navAud,
.navGlobal,
.navLeft,
.navTools,
.navPopUpTable,
.headerPopUp,
.bodyHeadBanner {
    display: none !important;
}

/* -- 2. Hide interactive-only elements ------------------------------------- */

/* Buttons (all trs-button instances are interactive actions) */
trs-button {
    display: none !important;
}

/* Banners: keep visible in print (internal Shadow DOM handles wrapping) */
trs-banner {
    display: flex !important;
    overflow: visible !important;
    height: auto !important;
    min-height: auto !important;
    max-width: 100% !important;
    page-break-inside: avoid;
}

trs-banner[variant="success"] {
    border-color: #2e7d32;
}

trs-banner[variant="danger"] {
    border-color: #cf0000;
}

trs-banner[variant="warning"] {
    border-color: #f57c00;
}

/* Loaders and skeletons */
.trs-loader,
#loadingOverlay,
.dc-skeleton {
    display: none !important;
}

/* Modal overlays and dialogs */
#divOverlay,
#divAlert,
.modal-backdrop,
.modalBackground,
.modalPopup {
    display: none !important;
}

/* Qualtrics survey widget */
[id^="ZN_"] {
    display: none !important;
}

/* Feedback tab */
.feedback-tab,
[class*="feedbackTab"] {
    display: none !important;
}

/* -- 3. Page geometry reset ------------------------------------------------ */

*,
*::before,
*::after {
    box-shadow: none !important;
    text-shadow: none !important;
}

body {
    margin: 0;
    padding: 0;
    background: white !important;
    color: #281805;
    font-family: 'Forever Forma Body Text', Arial, sans-serif;
    font-size: 11pt;
    line-height: 1.5;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Content wrappers -- full width, no fixed positioning */
.trsRetireContentNew,
main#main_content,
.forgotUserContent {
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0.4in 0.5in !important;
    position: static !important;
    /* Prevent Chrome's paginator from inserting a blank page before this block */
    break-before: avoid;
    page-break-before: avoid;
}

.bodyMain {
    position: static !important;
    margin: 0 !important;
    width: 100% !important;
}

.bodyTable {
    display: block !important;
    width: 100% !important;
}

/* Scope to direct children only — descendant td selector breaks nested tables
   (e.g. vst-table inside bodyTable collapses to a stacked single column) */
.bodyTable > tr,
.bodyTable > tbody > tr {
    display: block !important;
    width: 100% !important;
}

.bodyTable > tr > td,
.bodyTable > tbody > tr > td {
    display: block !important;
    width: 100% !important;
    vertical-align: top;
}

/* -- 4. Typography --------------------------------------------------------- */

/* Links: readable as text in print */
a {
    color: #281805 !important;
    text-decoration: underline;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    color: #281805 !important;
    page-break-after: avoid;
}

/* Definition lists: two-column key/value layout */
dl {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 2pt 12pt;
    margin: 8pt 0;
}

dt {
    font-weight: 700;
    font-size: 10pt;
    margin: 0;
}

dd {
    margin: 0;
    margin-left: 0 !important;
    font-size: 10pt;
}

/* -- 5. Table defaults ----------------------------------------------------- */

main#main_content table {
    border-collapse: collapse;
    width: 100%;
}

main#main_content th,
main#main_content td {
    border: 0.5pt solid #ccc;
    padding: 4pt 8pt;
    font-size: 9pt;
    vertical-align: top;
    text-align: left;
}

main#main_content th {
    background: #F2F2F2 !important;
    font-weight: 700;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* -- 6. Page break utilities ----------------------------------------------- */

tr,
fieldset,
.runner-step {
    page-break-inside: avoid;
}

/* Keep heading with following content */
h1, h2, h3, h4, h5, h6,
.dc-category__header,
.plan-admin-heading {
    page-break-after: avoid;
}

/* Allow page breaks between major sections */
section,
.dc-page .DCtitle,
trs-accordion-item {
    page-break-before: auto;
}

/* -- 7. Plan card ---------------------------------------------------------- */

/* sep-plan-card is hidden in the chrome-hide section above.
   These fallback rules apply if the card is ever made visible again. */
.sep-plan-card {
    border: 1px solid #E0E0E0;
    padding: 8pt;
    margin-bottom: 12pt !important;
}

/* Hide plan-change dropdowns inside plan card */
.sep-plan-card select,
.sep-plan-card .ucSponsorSelectPlan,
.sep-plan-card .ucSponsorSelectClient {
    display: none !important;
}

/* -- 8. Tabs -- show active panel, hide tab bar ---------------------------- */

trs-tabs,
trs-tab-list {
    display: none !important;
}

/* Ensure tab panels are visible even if [hidden] */
trs-tab-panel,
[role="tabpanel"],
.dc-page__panel {
    display: block !important;
}

/* -- 9. Print header stamp (optional, page-specific can override) ---------- */

@page {
    margin: 0.75in 0.5in;
    size: letter portrait;
}
