/* Additional realvirtual.io Doxygen Styles
   ================================================== */

/* Remove ALL bullet points globally */
ul, li {
    list-style: none !important;
    list-style-type: none !important;
}

ul {
    padding-left: 0 !important;
}

/* Main tab navigation specific fixes */
#main-menu ul,
.tablist,
.tabs,
.tabs2,
.tabs3 {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

#main-menu li,
.tablist li {
    list-style: none !important;
    display: inline-block !important;
    margin: 0 0.5rem 0 0 !important;
}

/* Main content improvements */
.contents {
    font-size: 15px;
    line-height: 1.7;
}

/* Improve header styling */
.header {
    background-color: transparent !important;
    background-image: none !important;
    border-bottom: 1px solid var(--border-light);
    padding: 0.5rem 0;
    margin-bottom: 0.75rem;
}

.headertitle {
    padding: 0;
    background: none !important;
    background-image: none !important;
}

.title {
    font-size: 2rem;
    font-weight: 400;
    color: var(--text-primary) !important;
    margin: 0;
    text-shadow: none !important;
    background: none !important;
    background-image: none !important;
    -webkit-text-fill-color: var(--text-primary) !important;
}

/* Class list specific styling */
.memberdecls {
    border: none;
    border-collapse: collapse;
}

.memberdecls table {
    width: 100%;
    border-collapse: collapse;
}

.memberdecls tr {
    border-bottom: 1px solid var(--border-light);
}

.memberdecls td {
    padding: 0.75rem 1rem;
    vertical-align: middle !important;
    border: none;
}

.memberdecls td.memItemLeft {
    font-weight: 500;
    color: var(--text-secondary);
    padding-right: 2rem;
    white-space: nowrap;
    text-align: right;
    vertical-align: middle !important;
}

.memberdecls td.memItemRight {
    width: 100%;
    vertical-align: middle !important;
}

/* Better spacing for class entries */
.memItemLeft, .memItemRight {
    padding: 0.75rem 1rem !important;
    vertical-align: middle !important;
}

.memTemplItemLeft, .memTemplItemRight {
    padding: 0.75rem 1rem !important;
    vertical-align: middle !important;
}

/* Make links in member tables visible */
.memItemRight a,
.memTemplItemRight a,
.memberdecls .memItemRight a,
.memberdecls .memTemplItemRight a,
td.memItemRight a,
td.memTemplItemRight a {
    color: #2c2c2c !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

.memItemRight a:hover,
.memTemplItemRight a:hover,
.memberdecls .memItemRight a:hover,
.memberdecls .memTemplItemRight a:hover,
td.memItemRight a:hover,
td.memTemplItemRight a:hover {
    color: #ff367a !important;
    text-decoration: underline !important;
}

.mdescLeft, .mdescRight {
    padding: 0.5rem 1rem !important;
    color: var(--text-secondary);
    font-size: 0.9rem;
    vertical-align: top !important;
}

/* Ensure description rows also have aligned borders */
.memberdecls tr.mdescr {
    border-bottom: 1px solid var(--border-light);
}

.memberdecls td.mdescLeft {
    text-align: right;
    padding-right: 2rem;
}

.memberdecls td.mdescRight {
    padding-left: 1rem;
}

/* Navigation improvements - Remove bullets and style tabs */
.sm-dox {
    background-color: transparent !important;
    list-style: none !important;
}

.sm-dox ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.sm-dox li {
    list-style: none !important;
    display: inline-block !important;
    margin-right: 1rem !important;
}

.sm-dox a {
    color: var(--text-primary) !important;
    font-weight: 400;
    text-decoration: none !important;
    padding: 0.5rem 1rem !important;
    display: inline-block !important;
    border-radius: 6px !important;
    transition: all 0.2s ease !important;
}

.sm-dox a:hover {
    background-color: #fde4ed !important;
    color: var(--text-primary) !important;
}

.sm-dox a.current {
    background-color: #fde4ed !important;
    color: var(--text-primary) !important;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1) !important;
}

/* Breadcrumb improvements */
.breadcrumb {
    background-color: transparent;
    padding: 0.25rem 0;
    margin-bottom: 0.5rem;
}

.breadcrumb-item a {
    color: #666666;
    text-decoration: none;
    font-weight: 400;
}

.breadcrumb-item a:hover {
    color: #2c2c2c;
}

.breadcrumb-item.active {
    color: #2c2c2c;
    font-weight: 500;
}

/* Hide "More..." links - we want to show full descriptions */
a.el[href*="_details"],
a[href*="#details"],
.morelink,
a:contains("More..."),
a[href*="classrealvirtual_1_1"][href*="_details"] {
    display: none !important;
}

/* Hide only "More..." links but not regular member links */
a:contains("More..."),
.mdescRight a[href$="_details"] {
    display: none !important;
}

/* Ensure full descriptions are shown as one combined block */
.briefdescription,
.detaileddescription,
.mdescRight,
.memItemRight {
    display: block !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Show full text in member descriptions */
.mdescRight,
.memItemRight {
    white-space: normal !important;
    text-overflow: inherit !important;
}

/* Combine brief and detailed descriptions visually */
.briefdescription {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.detaileddescription {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Remove separator between brief and detailed */
.briefdescription + .detaileddescription {
    border-top: none !important;
}

/* Show everything in the main description area */
.contents .textblock {
    display: block !important;
    visibility: visible !important;
    max-height: none !important;
}

/* Force member description cells to show all content */
td.mdescRight,
td.memItemRight {
    max-width: none !important;
    overflow: visible !important;
}

/* Improve other links */
a[href$="html"] {
    color: #2c2c2c;
    font-weight: 500;
}

.contents a {
    color: #2c2c2c;
    text-decoration: none;
    font-weight: 500;
}

.contents a:hover {
    color: var(--primary-color);
    text-decoration: none;
}

/* Class index improvements */
.classindex {
    margin: 0.75rem 0;
}

.classindex table {
    width: 100%;
}

.classindex td {
    padding: 0.5rem;
    vertical-align: top;
}

/* Namespace title */
.groupheader {
    font-size: 1.75rem;
    font-weight: 400;
    color: var(--text-primary);
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: 0.25rem;
    margin: 0.75rem 0 0.5rem 0;
}

/* Fix excessive margins */
.textblock {
    margin: 0.5rem 0;
}

/* Navigation row improvements */
#navrow1, #navrow2, #navrow3, #navrow4, #navrow5 {
    background-color: var(--bg-light);
    border-bottom: 1px solid var(--border-light);
    padding: 0.5rem 0;
}

#navrow1 .tablist {
    border-bottom: none;
    margin-bottom: 0;
}

/* Clean navpath styling */
.navpath {
    background: none !important;
    background-image: none !important;
    border: none !important;
    padding: 0.5rem 0 !important;
}

.navpath ul {
    background: none !important;
    background-image: none !important;
    border: none !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.navpath li {
    background: none !important;
    background-image: none !important;
    border: none !important;
    display: inline !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 1rem !important;
    visibility: visible !important;
}

/* Ensure all navpath items are visible */
.navpath li:nth-child(n) {
    display: inline !important;
    visibility: visible !important;
}

.navpath a {
    color: #666666 !important;
    text-decoration: none !important;
    font-weight: normal !important;
    font-size: 1rem !important;
}

.navpath a:hover {
    color: var(--primary-color) !important;
    text-decoration: none !important;
}

/* Directory tree improvements */
.directory .levels {
    white-space: nowrap;
}

.directory .levels span {
    cursor: pointer;
    padding: 0 0.25rem;
    color: var(--text-secondary);
}

.directory .levels span:hover {
    color: var(--primary-color);
}

/* Better code highlighting - monochrome */
.fragment .keyword {
    color: #2c2c2c;
    font-weight: 600;
}

.fragment .keywordtype {
    color: #404040;
    font-weight: 600;
}

.fragment .stringliteral {
    color: #666666;
    font-style: italic;
}

.fragment .comment {
    color: #999999;
    font-style: italic;
}

.fragment .preprocessor {
    color: #606060;
    font-weight: 500;
}

.fragment .keywordflow {
    color: #2c2c2c;
    font-weight: 600;
}

/* Improve member descriptions */
.memdoc {
    margin-left: 1rem;
    padding: 0.25rem 0.5rem;
    background-color: var(--bg-light);
    border-left: 3px solid var(--primary-light);
    border-radius: 0 4px 4px 0;
}

/* Page navigation pills */
.sm-dox span.scroll-button {
    background-color: var(--bg-secondary);
    border: 1px solid var(--border-color);
}

.sm-dox span.scroll-button:hover {
    background-color: var(--primary-light);
}

/* Fix list styling */
.contents dl {
    margin: 1rem 0;
}

.contents dl dt {
    font-weight: 600;
    color: var(--text-primary);
    margin-top: 0.5rem;
}

.contents dl dd {
    margin-left: 2rem;
    color: var(--text-secondary);
}

/* Improve table headers */
.contents table.doxtable th {
    background-color: var(--primary-light);
    color: var(--text-primary);
    font-weight: 600;
}

/* Member list in class view */
.memitem {
    margin: 1.5rem 0;
    padding: 0;
    background-color: transparent;
    border: none !important;
    border-left: none !important;
    box-shadow: none !important;
}

.memitem .memproto {
    background-color: #f8f9fa;
    border: none !important;
    border-radius: 8px;
    padding: 1rem 1.5rem;
    font-size: 1rem;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    box-shadow: none !important;
}

.memitem .memproto table {
    width: 100%;
    margin: 0;
    padding: 0;
}

.memitem .memproto td {
    padding: 0.2rem 0.4rem;
    vertical-align: middle;
}

.memitem .memdoc {
    background-color: #f8f9fa;
    border: none !important;
    border-left: none !important;
    border-radius: 8px;
    margin-left: 0;
    margin-top: 0.5rem;
    padding: 1rem 1.5rem;
    color: #4a4a4a;
    line-height: 1.6;
    box-shadow: none !important;
}

/* Search results */
#MSearchResultsWindow {
    background-color: var(--bg-primary);
    border: 1px solid var(--border-color);
    border-radius: 6px;
    box-shadow: var(--shadow-lg);
}

.SREntry {
    padding: 0.5rem;
}

.SREntry:hover {
    background-color: var(--primary-lighter);
}

/* Icons and images */
.iconfopen, .iconfclosed {
    font-family: monospace;
    font-weight: bold;
    color: var(--text-secondary);
}

/* Aggressive vertical spacing reduction */
p {
    margin: 0.25rem 0 !important;
}

.contents p {
    margin: 0.2rem 0 !important;
}

.memdoc p {
    margin: 0.15rem 0 !important;
}

/* Reduce line height globally */
body {
    line-height: 1.3 !important;
}

.contents {
    line-height: 1.3 !important;
}

/* Member list spacing */
.memberdecls {
    margin: 0.25rem 0 !important;
}

.memitem {
    margin-bottom: 0.5rem !important;
    margin-top: 0 !important;
}

/* Reduce spacing in descriptions */
.grouptext {
    margin: 0.25rem 0 !important;
}

dl {
    margin: 0.25rem 0 !important;
}

dl dt {
    margin-top: 0.25rem !important;
}

dl dd {
    margin-bottom: 0.25rem !important;
    margin-left: 1rem !important;
}

/* Member separators - hide them since we use table borders */
.memSeparator {
    display: none !important;
}

/* Ensure clean table structure */
.memberdecls tr.separator {
    display: none !important;
}

/* Make sure all rows in member tables have consistent spacing */
.memberdecls tr td {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
}

/* Section headers - including Public Methods and Public Properties */
h2.groupheader {
    margin-top: 1.5rem !important;
    margin-bottom: 1rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px solid #ff367a !important;
    color: #1a1a1a !important;
    font-weight: 400 !important;
    font-size: 1.75rem !important;
    background: none !important;
    background-color: transparent !important;
    letter-spacing: 0.02em !important;
    text-shadow: none !important;
    box-shadow: none !important;
}

/* Separate properties from methods visually */
tr.memitem:has(td.memItemRight a[href*="get"]),
tr.memitem:has(td.memItemRight a[href*="set"]) {
    background-color: #fafbfc !important;
}

/* Add visual separator between properties and methods */
h2.groupheader#pub-attribs::after {
    content: " (Properties)" !important;
    color: #666 !important;
    font-size: 0.9rem !important;
    font-weight: normal !important;
}

/* Member title headers (e.g., Forward()) */
h2.memtitle {
    background: none !important;
    background-image: none !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0.75rem 0 !important;
    margin: 1.5rem 0 0 0 !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
    color: #2c2c2c !important;
    box-shadow: none !important;
}

/* Hide the permalink icon */
h2.memtitle .permalink {
    display: none !important;
}



/* But keep the main detailed description content visible */
.contents > p,
.contents > ul,
.contents > ol,
.contents > dl,
.contents > .textblock {
    display: block !important;
}

/* Ensure all h2 headers in member documentation have consistent styling */
.memberdecls h2.groupheader,
.memitem h2.groupheader,
.contents h2.groupheader,
h2.groupheader[id*="pub"],
h2.groupheader[id*="pro"],
h2.groupheader[id*="pri"] {
    margin-top: 1.5rem !important;
    margin-bottom: 1rem !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px solid #ff367a !important;
    color: #1a1a1a !important;
    font-weight: 400 !important;
    font-size: 1.75rem !important;
    background: none !important;
    background-color: transparent !important;
    letter-spacing: 0.02em !important;
    text-shadow: none !important;
    box-shadow: none !important;
}


/* Member prototypes in listings */
.memproto table {
    margin: 0 !important;
}

/* Detailed description sections */
.memdoc {
    margin-bottom: 0.25rem !important;
}

/* Remove extra spacing around member items */
.memitem:last-child {
    margin-bottom: 0.25rem !important;
}

/* Compact the member table cells */
.memItemLeft,
.memTemplItemLeft {
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
}

.memItemRight,
.memTemplItemRight {
    padding-top: 0.15rem !important;
    padding-bottom: 0.15rem !important;
}

/* Light Pink Button Style - Matching realvirtual.io */
.btn-light-pink {
    background-color: #fde4ed !important;
    color: #1a1a1a !important;
    border: none !important;
    border-radius: 8px !important;
    padding: 0.6rem 1.2rem !important;
    font-size: 0.9rem !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    display: inline-block;
}

.btn-light-pink:hover {
    background-color: #fcd5e3 !important;
    color: #1a1a1a !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    text-decoration: none !important;
}

.btn-light-pink:active {
    transform: translateY(0) !important;
    box-shadow: none !important;
}

/* Small button variant */
.btn-light-pink.btn-sm {
    padding: 0.4rem 1rem !important;
    font-size: 0.875rem !important;
}

/* Hide Doxygen branding */
.footer img[src*="doxygen"],
img[alt="doxygen"],
a[href*="doxygen.org"],
.navpath li.footer {
    display: none !important;
}

/* Remove "Generated by" text */
.footer small:contains("Generated"),
.navpath .footer {
    display: none !important;
}

/* Inheritance and collaboration diagrams - Remove blue tones */
.inherit_header {
    font-weight: 600;
    color: #2c2c2c !important;
}

.inherit {
    border: 2px solid #999 !important;
}

.inherit td {
    border: 1px solid #999 !important;
}

/* Override inline styles for inheritance diagram boxes */
td[bgcolor="#A8B8D9"] {
    background-color: #f0f0f0 !important;
}

td[bgcolor="#a8b8d9"] {
    background-color: #f0f0f0 !important;
}

/* Target the specific blue color in breadcrumb bars */
td[bgcolor="#B8C7E2"] {
    background-color: #f0f0f0 !important;
}

td[bgcolor="#b8c7e2"] {
    background-color: #f0f0f0 !important;
}

/* Also target other potential blue shades */
td[bgcolor*="B8"],
td[bgcolor*="b8"],
td[bgcolor*="A8"],
td[bgcolor*="a8"],
td[bgcolor*="9C"],
td[bgcolor*="9c"] {
    background-color: #f0f0f0 !important;
}

table[cellspacing="0"] td {
    border-color: #999 !important;
}

table[border="1"] {
    border: 1px solid #999 !important;
}

/* Force override of blue backgrounds */
.inherit td[bgcolor] {
    background-color: #f0f0f0 !important;
}

center table td[bgcolor] {
    background-color: #f0f0f0 !important;
}

/* Navigation breadcrumb in diagrams */
.navpath td,
td.navpath {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
}

/* Style the navigation tabs in inheritance diagrams */
td[class*="nav"] {
    background-color: #f0f0f0 !important;
}

/* Inheritance diagram navigation cells */
td[align="center"][bgcolor] {
    background-color: #f0f0f0 !important;
    padding: 0.4rem 0.8rem !important;
    border-radius: 6px !important;
}

/* Target inheritance header bars specifically */
tr td[colspan] {
    background-color: #f0f0f0 !important;
}

/* Override any table cell with blue-ish bgcolor */
td[bgcolor]:not([bgcolor="#FFFFFF"]):not([bgcolor="#ffffff"]):not([bgcolor="white"]) {
    background-color: #f0f0f0 !important;
}

/* Center tag with inheritance lines */
center {
    color: #666 !important;
}

center table {
    border-color: #999 !important;
}

center .inherit {
    border: 2px solid #999 !important;
    background-color: #f9f9f9 !important;
}

/* Remove blue from inheritance/collaboration lines */
.directory tr.even,
.inherit tr {
    background-color: transparent !important;
}

/* SVG diagrams - remove blue colors */
svg text {
    fill: #2c2c2c !important;
}

svg rect,
svg path,
svg line,
svg polyline,
svg polygon {
    stroke: #666 !important;
}

svg .node rect,
svg .node polygon,
svg .node ellipse {
    fill: #f5f5f5 !important;
    stroke: #999 !important;
}

svg .edge path,
svg .edge polygon {
    stroke: #666 !important;
    fill: #666 !important;
}

/* Dotgraph inheritance diagrams */
.dotgraph iframe {
    border: 1px solid #d0d0d0 !important;
}

.center iframe {
    border: 1px solid #d0d0d0 !important;
}

/* Image maps for diagrams */
area {
    border-color: #999 !important;
}

/* Back to top button styling */
#backToTop {
    background-color: #fde4ed !important;
    color: #1a1a1a !important;
    border: none !important;
    border-radius: 50% !important;
    width: 48px !important;
    height: 48px !important;
    padding: 0 !important;
    font-size: 1.2rem !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}

#backToTop:hover {
    background-color: #fcd5e3 !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}

/* Additional inheritance diagram navigation styling */
td[align="center"][bgcolor] {
    background-color: #f0f0f0 !important;
    padding: 0.4rem 0.8rem !important;
    border-radius: 6px !important;
}

/* Navigation tabs text styling in diagrams */
td[bgcolor] a {
    color: #1a1a1a !important;
    font-weight: 500 !important;
    text-decoration: none !important;
}

td[bgcolor]:hover {
    background-color: #e0e0e0 !important;
}

/* Style anchors in navigation cells */
.navpath a,
td.navpath a {
    color: #1a1a1a !important;
    text-decoration: none !important;
}

/* Navigation elements (namespace/class path) */
.navelem,
li.navelem,
td.navelem {
    background: none !important;
    background-image: none !important;
    border: none !important;
    text-shadow: none !important;
    padding: 0 !important;
    margin: 0 0.2rem !important;
    display: inline !important;
    visibility: visible !important;
}

.navelem a,
li.navelem a,
td.navelem a {
    color: #ff367a !important;
    text-decoration: none !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    display: inline !important;
    visibility: visible !important;
}

.navelem a:hover,
li.navelem a:hover,
td.navelem a:hover {
    color: #e62e6b !important;
    text-decoration: underline !important;
}

/* Fix function signatures - keep aligned */
.memname {
    white-space: nowrap !important;
    display: inline !important;
    color: #ff367a !important;
    font-weight: 600 !important;
    vertical-align: middle !important;
}

.memname a {
    display: inline !important;
    color: #ff367a !important;
    font-weight: 600 !important;
}

/* Keep function parameters aligned */
.paramname {
    white-space: nowrap !important;
    color: #666 !important;
    font-style: italic !important;
    vertical-align: middle !important;
}

.paramtype {
    color: #2c2c2c !important;
    vertical-align: middle !important;
}

.memproto {
    white-space: normal !important;
    word-wrap: break-word !important;
}

/* Ensure all elements in member prototype are aligned */
.memproto * {
    vertical-align: middle !important;
}

/* Style the return type */
.memproto .memname::before {
    color: #666 !important;
    font-weight: normal !important;
}

/* Remove any text shadows from navigation */
.navelem,
.navelem a,
.navelem span,
li.navelem,
li.navelem a {
    text-shadow: none !important;
}

/* Remove any gradient or shadow from page titles */
.title,
.header .title,
.headertitle .title,
h1.title,
div.title {
    background: none !important;
    background-image: none !important;
    background-clip: unset !important;
    -webkit-background-clip: unset !important;
    -webkit-text-fill-color: #1a1a1a !important;
    text-shadow: none !important;
    color: #1a1a1a !important;
    font-weight: 400 !important;
    font-size: 2rem !important;
    line-height: 1.3 !important;
}

/* Ensure consistent styling for all header elements */
.header,
.headertitle,
div.header,
div.headertitle {
    background: none !important;
    background-image: none !important;
    box-shadow: none !important;
}

/* Remove any decorative elements */
.title::before,
.title::after,
.header::before,
.header::after {
    display: none !important;
}

/* Style labels (abstract, static, etc.) with light pink */
.mlabel,
span.mlabel {
    background-color: #fde4ed !important;
    color: #1a1a1a !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.75rem !important;
    font-weight: 500 !important;
    text-shadow: none !important;
    margin-left: 0.5rem !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

/* Hover effect for labels */
.mlabel:hover,
span.mlabel:hover {
    background-color: #fcd5e3 !important;
}

/* Style specific label types */
.mlabels-left .mlabel,
.mlabels-right .mlabel {
    background-color: #fde4ed !important;
    color: #1a1a1a !important;
}

/* Ensure labels in member lists are styled */
.memItemLeft .mlabel,
.memItemRight .mlabel,
.memTemplItemLeft .mlabel,
.memTemplItemRight .mlabel {
    background-color: #fde4ed !important;
    color: #1a1a1a !important;
}