/* ============================================
   BlueVoyant Brand CSS - Complete Custom File
   PORTAL RESTORED + Round-2 safe subset (b,e,f,g,d)
   ============================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

:root {
    --bv-cobalt:     #0659FF;
    --bv-black:      #000000;
    --bv-azurite:    #676BFB;
    --bv-calcite:    #8DEDC7;
    --bv-white:      #FFFFFF;
    --bv-ux-green:   #2BBEA0;
    --bv-ux-amber:   #FDAD2A;
    --bv-ux-red:     #F9526A;
    --bv-obsidian:   #28292E;
    --bv-dark:       #231F20;
    --bv-gray-light: #F7F7F7;
    --bv-gray-mid:   #E5E5E5;
    --bv-gray-dark:  #CCCCCC;
}

/* ===== GLOBAL BODY & TYPOGRAPHY ===== */
body {
    font-family: 'Everett', 'Inter', sans-serif !important;
    background-color: var(--bv-white) !important;
    color: var(--bv-black) !important;
    font-weight: 300 !important;
}
h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6 {
    font-family: 'Everett', 'Inter', sans-serif !important;
    font-weight: 700 !important;
    color: var(--bv-black) !important;
}

/* ===== PORTAL HEADER BANNER (BOTTOM LEFT) ===== */
.portal-header {
    display: flex !important; flex-direction: column !important;
    justify-content: flex-end !important; align-items: flex-start !important;
    padding: 30px 50px !important; text-align: left !important; min-height: 350px !important;
}
@media (min-width: 768px){ .portal-header{ min-height:350px !important; padding:30px 50px !important; } }
.portal-header .inner {
    text-align: left !important; width: 100% !important; display: flex !important;
    flex-direction: column !important; align-items: flex-start !important; justify-content: flex-end !important;
}
.portal-header-navbar + .inner {
    text-align: left !important; justify-content: flex-end !important;
    align-items: flex-start !important; margin-top: 100px !important;
}
.portal-header h1, .portal-header .inner h1 {
    text-align: left !important; color: var(--bv-white) !important;
    font-family: 'Everett','Inter',sans-serif !important; font-weight: 700 !important;
    margin-bottom: 0.5em !important; margin-top: 0 !important;
}
.portal-header .logo-link { text-align: left !important; }

/* ===== SEARCH BAR ===== */
.portal-header .portal-search { text-align:left !important; width:100% !important; max-width:600px !important; }
.portal-header .portal-search .search-field,
.portal-header .portal-search input.search-field {
    background-color: rgba(255,255,255,0.15) !important;
    border: 1px solid rgba(255,255,255,0.4) !important;
    border-radius: 0 !important; color: var(--bv-white) !important;
    font-family: 'Everett','Inter',sans-serif !important; width: 70% !important;
}
.portal-header .portal-search .search-field::placeholder { color: rgba(255,255,255,0.65) !important; }
.portal-header .portal-search button {
    background-color: var(--bv-cobalt) !important; border-color: var(--bv-cobalt) !important;
    border-radius: 0 !important; color: var(--bv-white) !important;
}
.portal-header .portal-search button:hover {
    background-color: var(--bv-azurite) !important; border-color: var(--bv-azurite) !important;
}
.portal-header .search-page-link a { color: rgba(255,255,255,0.8) !important; text-align: left !important; }
@media (max-width: 768px){
    .portal-header{ padding:20px !important; justify-content:flex-end !important; align-items:flex-start !important; min-height:280px !important; }
    .portal-header h1{ font-size:22px !important; }
    .portal-header .portal-search{ max-width:100% !important; }
    .portal-header .portal-search .search-field{ width:65% !important; }
}

/* ===== NAVBAR / TOP BAR ===== */
.site-header-navbar { background-color: var(--bv-obsidian) !important; }
.portal-header-navbar { background-color: var(--bv-obsidian) !important; color: var(--bv-white) !important; }
.navbar-brand img, .portal-header .logo, .portal-header-navbar .logo { height: 32px !important; width: auto !important; }

/* ===== SIDEBAR (base; transparent on topic pages below) ===== */
.site-sidebar { background-color: var(--bv-obsidian) !important; }
.nav-site-sidebar li a {
    color: rgba(255,255,255,0.75) !important;
    font-family: 'Everett','Inter',sans-serif !important; font-weight: 300 !important;
}
.nav-site-sidebar li a:hover, .nav-site-sidebar .active > a {
    color: var(--bv-white) !important; background-color: rgba(6,89,255,0.2) !important;
}

/* ===== LINKS - Global ===== */
a, .text-primary, .btn-link { color: var(--bv-cobalt) !important; font-family: 'Everett','Inter',sans-serif !important; }
a:hover, a:focus { color: var(--bv-azurite) !important; }

/* ===== BREADCRUMB LINKS (base; toolbar overrides below) ===== */
.breadcrumb a, .breadcrumb > li > a, .topic-content .breadcrumb a, .breadcrumb-container .breadcrumb a {
    color: #000000 !important; text-decoration: underline !important;
}
.breadcrumb a:hover, .breadcrumb > li > a:hover,
.topic-content .breadcrumb a:hover, .breadcrumb-container .breadcrumb a:hover {
    color: var(--bv-cobalt) !important; text-decoration: underline !important;
}
.breadcrumb > .active, .breadcrumb > li.active { color: #000000 !important; }
.breadcrumb > li + li:before { color: #555555 !important; }

/* ===== BUTTONS - PRIMARY ===== */
.btn-primary,.bg-primary,
.pagination > .active > a,.pagination > .active > span,
.pagination > .active > a:hover,.pagination > .active > span:hover,
.pagination > .active > a:focus,.pagination > .active > span:focus {
    background-color: var(--bv-cobalt) !important; border-color: var(--bv-cobalt) !important;
    border-radius: 0 !important; color: var(--bv-white) !important;
}
.btn-primary:hover,.btn-primary:focus,a.bg-primary:hover,a.bg-primary:focus {
    background-color: var(--bv-azurite) !important; border-color: var(--bv-azurite) !important;
}

/* ===== PUBLICATION CARDS / PORTAL TILES ===== */
.portal-single-publication .publication-icon { display: none !important; }
.portal-single-publication .publication-icon .fa,
.portal-single-publication .publication-icon i { display: none !important; }
.portal-single-publication a {
    background: linear-gradient(to right, var(--bv-cobalt), var(--bv-obsidian)) !important;
    border: none !important; border-radius: 0 !important; box-shadow: none !important;
    padding: 30px 20px !important; display: flex !important; align-items: center !important;
    justify-content: center !important; min-height: 120px !important; transition: filter 0.2s ease !important;
}
.portal-single-publication a:hover {
    filter: brightness(1.15) !important; box-shadow: none !important;
    border-color: transparent !important; text-decoration: none !important;
}
.portal-single-publication h3, .portal-single-publication a h3,
.portal-single-publication .publication-title, .portal-single-publication a .publication-title {
    color: #ffffff !important; font-family: 'Everett','Inter',sans-serif !important;
    font-weight: 600 !important; margin: 0 !important; text-align: center !important;
}
.portal-single-publication a p, .portal-single-publication a span { color: rgba(255,255,255,0.85) !important; }

/* ===== PUBLICATION COUNT NUMBER ===== */
.publication-contents h4 span {
    background-color: var(--bv-cobalt) !important; color: #ffffff !important; border-radius: 50% !important;
}

/* ===== SECTION NAV (active state) ===== */
.theme1 .section-nav.nav li.active > a { color: var(--bv-cobalt) !important; }
.theme1 .section-nav.nav > li.active > a:before { background: var(--bv-cobalt) !important; }

/* ===== NOTE / WARNING / TIP BOXES ===== */
.note,.important { background-color: rgba(103,107,251,0.08) !important; border-left: 4px solid var(--bv-azurite) !important; }
.warning,.caution { border-left: 4px solid var(--bv-ux-amber) !important; background-color: rgba(253,173,42,0.08) !important; }
.warning.danger { border-left-color: var(--bv-ux-red) !important; background-color: rgba(249,82,106,0.05) !important; }
.tip { border-left: 4px solid var(--bv-ux-green) !important; background-color: rgba(43,190,160,0.08) !important; }

/* ===== PAGER ===== */
.pager li > a,.pager li > span { color: var(--bv-cobalt) !important; border-radius: 0 !important; }
.pager li > a:hover,.pager li > span:hover { background-color: var(--bv-cobalt) !important; color: var(--bv-white) !important; }

/* ===== PAGINATION ===== */
.pagination > li > a,.pagination > li > span { color: var(--bv-cobalt) !important; border-radius: 0 !important; }

/* ===== CODE BLOCKS ===== */
pre, code.code {
    background-color: var(--bv-dark) !important; color: var(--bv-calcite) !important;
    border: none !important; border-radius: 0 !important; font-size: 0.875em !important;
}

/* ===== HIDE LANGUAGE SELECTOR ===== */
.dropup.languages,.dropdown.languages,.languages-selector,.language-selector,
.portal-footer .dropup,.site-footer .dropup,.toolbar .dropup.languages,.toolbar .dropdown.languages {
    display: none !important; visibility: hidden !important;
}
[class*="language-selector"],[class*="lang-selector"],[id*="language-selector"],[id*="lang-selector"] { display: none !important; }

/* ============================================================
   SPEC CHANGES — override everything above (topic pages)
   ============================================================ */

/* ----- Body dark gradient, topic pages only (portal EXCLUDED) ----- */
body:not(#index-page) {
    background: #0B0C0E !important;
    background: linear-gradient(to top right, #0B0C0E 0%, #0B0C0E 75%, var(--bv-cobalt) 100%) !important;
    background-attachment: fixed !important;
    color: #ffffff !important;
}
body:not(#index-page) .site-content,
body:not(#index-page) main,
body:not(#index-page) main article,
body:not(#index-page) .topic-content,
body:not(#index-page) #topic-content,
body:not(#index-page) .content-container,
body:not(#index-page) .titlepage {
    background-color: transparent !important; color: #ffffff !important;
}
body:not(#index-page) h1,body:not(#index-page) h2,body:not(#index-page) h3,
body:not(#index-page) h4,body:not(#index-page) h5,body:not(#index-page) h6,
body:not(#index-page) p,body:not(#index-page) li,body:not(#index-page) dt,body:not(#index-page) dd {
    color: #ffffff !important;
}

/* guibutton bold */
span.guibutton { font-weight: bold !important; }

/* Formal table label/number removed */
div.table-title,div.figure-title,div.example-title,div.equation-title { display: none !important; }

/* ALL TABLES: frame + borders + padding */
table,table.table,.table,.table-bordered,.informaltable,.informaltable table {
    border: 1px solid var(--bv-gray-dark) !important; border-collapse: collapse !important;
}
table > thead > tr > th,table > tbody > tr > th,table > tfoot > tr > th,
table > thead > tr > td,table > tbody > tr > td,table > tfoot > tr > td,
.table > thead > tr > th,.table > tbody > tr > th,.table > tfoot > tr > th,
.table > thead > tr > td,.table > tbody > tr > td,.table > tfoot > tr > td,
th.th,td.td {
    border: 1px solid var(--bv-gray-dark) !important; padding: 6px !important;
}
body:not(#index-page) table.table,
body:not(#index-page) .table > thead > tr > th,
body:not(#index-page) .table > tbody > tr > td,
body:not(#index-page) .table-striped > tbody > tr:nth-child(odd) > td,
body:not(#index-page) .table-striped > tbody > tr:nth-child(odd) > th {
    background-color: var(--bv-obsidian) !important;
}
body:not(#index-page) .table > thead > tr > th,
body:not(#index-page) .table > thead > tr > th p { color: #ffffff !important; font-weight: 700 !important; }
body:not(#index-page) .table > tbody > tr > td,
body:not(#index-page) .table > tbody > tr > td p { color: #ffffff !important; }

/* (a) Right-side TOC rail = existing child-topic list */
@media (min-width: 992px){
    body:not(#index-page) main article { padding-right: 280px !important; }
}
body:not(#index-page) .footer-content .section-toc.section-toc-after {
    position: fixed !important; top: 90px !important; right: 0 !important;
    width: 250px !important; max-height: calc(100vh - 110px) !important;
    overflow-y: auto !important; margin: 0 !important; padding: 16px 18px !important;
    background-color: rgba(11,12,14,0.85) !important;
    border-left: 1px solid var(--bv-gray-dark) !important; z-index: 50 !important;
}
body:not(#index-page) .section-toc.section-toc-after .section-toc-title {
    color: #ffffff !important; font-weight: 700 !important; font-size: 1em !important; margin-bottom: 10px !important;
}
body:not(#index-page) .section-toc.section-toc-after .topic-link,
body:not(#index-page) .section-toc.section-toc-after a {
    color: var(--bv-calcite) !important; display: block !important; padding: 3px 0 !important; text-decoration: none !important;
}
body:not(#index-page) .section-toc.section-toc-after a:hover { color: #ffffff !important; text-decoration: underline !important; }
body:not(#index-page) .footer-content .relationship-toc {
    position: fixed !important; right: 0 !important; width: 250px !important;
    padding: 0 18px !important; color: #ffffff !important; z-index: 50 !important;
}
@media (max-width: 991px){
    body:not(#index-page) main article { padding-right: 15px !important; }
    body:not(#index-page) .footer-content .section-toc.section-toc-after,
    body:not(#index-page) .footer-content .relationship-toc {
        position: static !important; width: auto !important; max-height: none !important;
        background-color: transparent !important; border-left: none !important;
    }
}

/* Prev/Next button background */
#bottom-pager,#bottom-pager .pager,#bottom-pager .pager > li,
#bottom-pager .pager > li.previous,#bottom-pager .pager > li.next {
    background-color: transparent !important; background: transparent !important; border: none !important;
}
#bottom-pager .pager li > a,#bottom-pager .pager li > span {
    background-color: #444444 !important; background-image: none !important; border-color: #444444 !important;
}

/* ----- (e) TOOLBAR = OPAQUE OBSIDIAN (content scrolls under) ----- */
body:not(#index-page) .toolbar {
    background-color: var(--bv-obsidian) !important;
    background: var(--bv-obsidian) !important;
    -webkit-box-shadow: none !important; box-shadow: none !important; border: none !important;
}
body:not(#index-page) .toolbar .breadcrumb-container,
body:not(#index-page) .toolbar .breadcrumb {
    background-color: transparent !important; background: transparent !important;
}
body:not(#index-page) .toolbar .breadcrumb,
body:not(#index-page) .toolbar .breadcrumb a,
body:not(#index-page) .toolbar .breadcrumb > li > a,
body:not(#index-page) .toolbar .breadcrumb > li.active,
body:not(#index-page) .toolbar .breadcrumb-node { color: #ffffff !important; }
body:not(#index-page) .toolbar .breadcrumb a:hover { color: var(--bv-calcite) !important; }
body:not(#index-page) .toolbar .breadcrumb > li + li:before { color: rgba(255,255,255,0.6) !important; }

/* ----- (b) PRINT BUTTON white ----- */
body:not(#index-page) .tool-print.print-icon a,
body:not(#index-page) .tool-print.print-icon a i,
body:not(#index-page) .tool-print.print-icon .fa-print,
body:not(#index-page) .tool-print.print-icon .print-text { color: #ffffff !important; }
body:not(#index-page) .tool-print.print-icon a:hover,
body:not(#index-page) .tool-print.print-icon a:hover i { color: var(--bv-calcite) !important; }

/* ----- (f) In-body links = Calcite ----- */
body:not(#index-page) main article a,
body:not(#index-page) #topic-content a:not(.btn) { color: var(--bv-calcite) !important; }
body:not(#index-page) main article a:hover,
body:not(#index-page) #topic-content a:hover { color: #ffffff !important; text-decoration: underline !important; }

/* ----- Left sidebar transparent on topic pages ----- */
body:not(#index-page) .site-sidebar { background-color: transparent !important; background: transparent !important; }
body:not(#index-page) .nav-site-sidebar li a,
body:not(#index-page) .nav-site-sidebar .active > a { color: #ffffff !important; }
body:not(#index-page) .nav-site-sidebar li a:hover {
    color: var(--bv-calcite) !important; background-color: rgba(255,255,255,0.15) !important;
}

/* ----- Transparent top banner / footer ----- */
.portal-header, .portal-header::before { background-color: transparent !important; background: transparent !important; }
.portal-header::after { background: none !important; opacity: 0 !important; }
.site-footer,.portal-footer,.portal-footer .inner,.site-footer .inner,
.portal-footer > .navbar-collapse,.portal-footer > .navbar-header,
.theme2 .portal-footer,.theme2 .site-footer {
    background-color: transparent !important; background: transparent !important; border-top: none !important;
}
@media (max-width: 768px){ .site-footer,.portal-footer { background-color: transparent !important; } }
body:not(#index-page) .copyright,body:not(#index-page) .site-footer a,
body:not(#index-page) .date-modified,body:not(#index-page) .publication-date { color: #ffffff !important; }
body:not(#index-page) .site-footer a:hover { color: var(--bv-calcite) !important; }

/* ----- Glossary popovers dark ----- */
.popover { background-color: var(--bv-obsidian) !important; color: #ffffff !important; border-color: var(--bv-gray-dark) !important; }
.popover .popover-title,.popover .popover-content { background-color: var(--bv-obsidian) !important; color: #ffffff !important; }
.popover .popover-content a { color: var(--bv-calcite) !important; }

/* ----- (g) Table column-filter dropdown: BLACK text on WHITE bg ----- */
body:not(#index-page) .dropdown-menu {
    background-color: #ffffff !important; border: 1px solid var(--bv-gray-dark) !important;
}
body:not(#index-page) .dropdown-menu li.checkbox-row,
body:not(#index-page) .dropdown-menu li.checkbox-row label,
body:not(#index-page) .dropdown-menu > li > a { color: #000000 !important; }
body:not(#index-page) .dropdown-menu li.checkbox-row:hover,
body:not(#index-page) .dropdown-menu li.checkbox-row:hover label {
    background-color: #f5f5f5 !important; color: #000000 !important;
}
body:not(#index-page) .btn-toolbar .dropdown-toggle .filter-text,
body:not(#index-page) .btn-toolbar .dropdown-toggle .filter-icon { color: #ffffff !important; }

/* ----- (d) Collapse/expand toggle: arrows-angle-expand SVG ----- */
body:not(#index-page) .navbar-toggle .icon-bar { display: none !important; }
body:not(#index-page) .navbar-toggle {
    width: 10px !important; height: 10px !important;
    background-color: black !important; background-repeat: no-repeat !important;
    background-position: center center !important; background-size: 12px 12px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23808080' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M5.828 10.172a.5.5 0 0 0-.707 0l-4.096 4.096V11.5a.5.5 0 0 0-1 0v3.975a.5.5 0 0 0 .5.5H4.5a.5.5 0 0 0 0-1H1.732l4.096-4.096a.5.5 0 0 0 0-.707zm4.344-4.344a.5.5 0 0 0 .707 0l4.096-4.096V4.5a.5.5 0 1 0 1 0V.525a.5.5 0 0 0-.5-.5H11.5a.5.5 0 0 0 0 1h2.768l-4.096 4.096a.5.5 0 0 0 0 .707z'/%3E%3C/svg%3E") !important;
    Vertical-align: bottom !important;
}
/* ===== SIDE NAV LINK COLORS - HIGH CONTRAST (place at END) ===== */

/* Unvisited */
.nav-site-sidebar li a:link,
.nav-site-sidebar ul a:link,
.nav-site-sidebar .active > a:link {
    color: var(--bv-calcite)  !important;   
}

/* Visited */
.nav-site-sidebar li a:visited,
.nav-site-sidebar ul a:visited,
.nav-site-sidebar .active > a:visited {
    color: #ffd479 !important;   /* high-contrast light gold */
}

/* Fallback for non-link anchors (topic heads) */
.nav-site-sidebar li a {
    color: #8ec5ff !important;
}

/* Hover/focus last (LVHA order) */
.nav-site-sidebar li a:hover,
.nav-site-sidebar li a:focus {
    color: #ffffff !important;
    background-color: rgba(6,89,255,0.2) !important;
}
/* ===== SECTION NAV (in-page headings) - HIGH CONTRAST ===== */

/* Unvisited */
.section-nav.nav > li a:link,
.section-nav.nav > li ul > li a:link,
.theme1 .section-nav.nav > li a:link {
    color: var(--bv-calcite) !important;  
}

/* Visited */
.section-nav.nav > li a:visited,
.section-nav.nav > li ul > li a:visited,
.theme1 .section-nav.nav > li a:visited {
    color: #ffd479 !important;   /* high-contrast light gold */
}

/* Fallback for any non-:link anchors */
.section-nav.nav > li a,
.theme1 .section-nav.nav > li a {
    color: #8ec5ff !important;
}

/* Keep your active-item color distinct (already cobalt in your file) */
.theme1 .section-nav.nav li.active > a:link,
.theme1 .section-nav.nav li.active > a:visited,
.theme1 .section-nav.nav li.active > a {
    color: gold !important;
}

/* Hover/focus last (LVHA order) */
.section-nav.nav > li a:hover,
.section-nav.nav > li a:focus {
    color: #ffffff !important;
    background-color: transparent !important;
}
/* ===== VERTICALLY ALIGN LOGO TO TOP ===== */
.logo {
    vertical-align: top !important;
}
/* Filter button: remove white block, show white label on transparent */
body:not(#index-page) .btn-toolbar .btn,
body:not(#index-page) .btn-toolbar .dropdown-toggle {
    background-color: transparent !important;
    background-image: none !important;
    border-color: var(--bv-gray-dark) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-shadow: none !important;
}
body:not(#index-page) .btn-toolbar .dropdown-toggle .filter-text,
body:not(#index-page) .btn-toolbar .dropdown-toggle .filter-icon {
    color: #ffffff !important;
}
