/*
 * Custom Doxygen CSS for Mach4 Documentation
 * Styled to match www.mach-labs.com branding
 * Generated: February 26, 2026
 */

/* ===== Color Palette (from Mach-labs.com) ===== */
:root {
    --primary-color: #0066cc;        /* Mach blue */
    --primary-dark: #004999;         /* Darker blue for hover */
    --primary-light: #3385d6;        /* Lighter blue */
    --accent-color: #00a3e0;         /* Bright accent */
    --text-dark: #1a1a1a;            /* Main text */
    --text-medium: #4a4a4a;          /* Secondary text */
    --text-light: #6b6b6b;           /* Tertiary text */
    --bg-white: #ffffff;             /* White background */
    --bg-light: #f8f9fa;             /* Light gray background */
    --bg-lighter: #f4f5f7;           /* Even lighter background */
    --border-color: #e1e4e8;         /* Border color */
    --code-bg: #f6f8fa;              /* Code background */
    --success-color: #28a745;        /* Success/green */
    --warning-color: #ffc107;        /* Warning/yellow */
    --danger-color: #dc3545;         /* Error/red */
    --shadow-sm: 0 1px 3px rgba(0,0,0,0.1);
    --shadow-md: 0 4px 6px rgba(0,0,0,0.1);
    --shadow-lg: 0 10px 20px rgba(0,0,0,0.15);
}

/* ===== Global Styles ===== */
body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 16px;
    line-height: 1.6;
    color: var(--text-dark);
    background-color: var(--bg-white);
    margin: 0;
    padding: 0;
}

/* ===== Header / Top Navigation ===== */
#top {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
    border-bottom: none;
    box-shadow: var(--shadow-md);
}

#titlearea {
    background: transparent;
    border-bottom: none;
    padding: 20px 0;
}

#projectname {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 32px;
    font-weight: 700;
    color: var(--bg-white);
    text-shadow: 0 2px 4px rgba(0,0,0,0.2);
    margin: 0;
}

#projectbrief {
    font-size: 16px;
    color: rgba(255, 255, 255, 0.9);
    margin-top: 8px;
}

#projectnumber {
    font-size: 14px;
    color: rgba(255, 255, 255, 0.8);
}

/* ===== Main Menu / Navigation Bar ===== */
.tabs, .tabs2, .tabs3 {
    background: var(--bg-white);
    border-bottom: 2px solid var(--border-color);
    box-shadow: var(--shadow-sm);
}

.tablist {
    margin: 0;
    padding: 0;
}

.tablist li {
    background: transparent;
    border: none;
    margin: 0 4px;
}

.tablist a {
    background: transparent;
    color: var(--text-medium);
    border: none;
    border-radius: 4px 4px 0 0;
    padding: 12px 20px;
    font-weight: 500;
    transition: all 0.3s ease;
}

.tablist a:hover {
    background: var(--bg-lighter);
    color: var(--primary-color);
    text-decoration: none;
}

.tablist li.current a {
    background: var(--primary-color);
    color: var(--bg-white);
    font-weight: 600;
}

/* ===== Sidebar / Tree View ===== */
#nav-tree {
    background: var(--bg-light);
    border-right: 1px solid var(--border-color);
}

#nav-tree .item {
    color: var(--text-dark);
    font-weight: 400;
}

#nav-tree .selected {
    background: var(--bg-lighter);
    color: var(--primary-color);
    border-radius: 4px;
    box-shadow: var(--shadow-sm);
}

#nav-tree .selected a {
    color: var(--primary-color) !important;
}

#nav-tree .selected:hover a {
    color: var(--primary-color) !important;
}

#nav-tree .selected .arrow:hover ~ a {
    color: var(--primary-color) !important;
}

#nav-tree a:not(.selected):hover {
    background: var(--bg-lighter);
    border-radius: 4px;
}

/* Nav tree arrows and expansion controls */
#nav-tree .arrow {
    color: var(--primary-color);
}

#nav-tree .item:hover .arrow {
    color: var(--primary-dark);
}

#nav-tree .selected .arrow {
    color: var(--bg-white) !important;
}

/* ===== Main Content Area ===== */
#doc-content {
    background: var(--bg-white);
    padding: 40px;
    max-width: 1200px;
}

.contents {
    margin: 0 auto;
}

/* ===== Headings ===== */
h1, h1.glow {
    font-size: 36px;
    font-weight: 700;
    color: var(--primary-dark);
    border-bottom: 3px solid var(--primary-color);
    padding-bottom: 12px;
    margin-top: 24px;
    margin-bottom: 20px;
}

h2, h2.groupheader {
    font-size: 28px;
    font-weight: 600;
    color: var(--primary-color);
    border-bottom: 2px solid var(--border-color);
    padding-bottom: 8px;
    margin-top: 32px;
    margin-bottom: 16px;
}

h3, h3.groupheader {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-dark);
    margin-top: 24px;
    margin-bottom: 12px;
}

h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-medium);
    margin-top: 20px;
    margin-bottom: 10px;
}

/* ===== Links ===== */
a {
    color: var(--primary-color);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--primary-dark);
    text-decoration: underline;
}

a:visited {
    color: var(--primary-dark);
}

/* ===== Code Blocks ===== */
div.fragment,
pre.fragment {
    background: var(--code-bg);
    border: 1px solid var(--border-color);
    border-left: 4px solid var(--primary-color);
    border-radius: 4px;
    padding: 16px;
    margin: 16px 0;
    overflow-x: auto;
    box-shadow: var(--shadow-sm);
}

code {
    background: var(--code-bg);
    color: var(--danger-color);
    padding: 2px 6px;
    border-radius: 3px;
    font-family: "Consolas", "Monaco", "Courier New", monospace;
    font-size: 14px;
}

/* ===== Tables ===== */
table.memberdecls,
table.fieldtable,
table.doxtable {
    border-collapse: collapse;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    overflow: hidden;
    width: 100%;
    margin: 20px 0;
    box-shadow: var(--shadow-sm);
}

table.memberdecls th,
table.fieldtable th,
table.doxtable th {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-light) 100%);
    color: var(--bg-white);
    font-weight: 600;
    padding: 12px;
    text-align: left;
}

table.memberdecls td,
table.fieldtable td,
table.doxtable td {
    padding: 10px 12px;
    border-bottom: 1px solid var(--border-color);
}

table.memberdecls tr:nth-child(even),
table.fieldtable tr:nth-child(even),
table.doxtable tr:nth-child(even) {
    background: var(--bg-lighter);
}

table.memberdecls tr:hover,
table.fieldtable tr:hover,
table.doxtable tr:hover {
    background: var(--bg-light);
}

/* ===== Function/Member Documentation ===== */
.memitem {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: 0 6px 6px 6px;
    margin: 20px 0;
    padding: 0;
    box-shadow: var(--shadow-sm);
    transition: box-shadow 0.3s ease;
    overflow: visible;
}

.memitem:hover {
    box-shadow: var(--shadow-md);
}

.memproto {
    background: var(--bg-white);
    border-bottom: 2px solid var(--primary-color);
    border-radius: 0 6px 0 0;
    padding: 16px 20px;
    font-weight: 600;
    position: relative;
    margin-top: -3px;
}

.memproto .memtemplate,
.memproto .memname {
    margin-left: 0;
}

/* Icon/glyph alignment */
.icona {
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(calc(-50%));
}

.icon {
    background: var(--primary-color);
    border: 2px solid var(--primary-color);
    border-radius: 4px;
}

.memdoc {
    padding: 20px;
}

.memname {
    color: var(--primary-dark);
    font-weight: 700;
}

.paramtype,
.paramname {
    color: var(--text-medium);
}

/* ===== Parameter/Return Documentation ===== */
dl.params,
dl.retval,
dl.exception {
    border: 1px solid var(--border-color);
    border-radius: 4px;
    padding: 12px;
    margin: 12px 0;
    background: var(--bg-lighter);
}

dl.params dt,
dl.retval dt,
dl.exception dt {
    color: var(--primary-color);
    font-weight: 600;
    padding: 4px 0;
}

/* ===== Notes, Warnings, Remarks ===== */
dl.note,
dl.warning,
dl.attention,
dl.remark {
    border-left: 4px solid;
    border-radius: 4px;
    padding: 12px 16px;
    margin: 16px 0;
    box-shadow: var(--shadow-sm);
}

dl.note {
    background: #e7f3ff;
    border-color: var(--primary-color);
}

dl.note dt {
    color: var(--primary-color);
    font-weight: 700;
}

dl.warning,
dl.attention {
    background: #fff3cd;
    border-color: var(--warning-color);
}

dl.warning dt,
dl.attention dt {
    color: #856404;
    font-weight: 700;
}

dl.remark {
    background: var(--bg-lighter);
    border-color: var(--text-medium);
}

/* ===== Search Box ===== */
#MSearchBox {
    background: var(--bg-white);
    border: 1px solid var(--border-color);
    border-radius: 20px;
    padding: 4px 12px;
}

#MSearchField {
    border: none;
    background: transparent;
    color: var(--text-dark);
}

#MSearchBox .left,
#MSearchBox .right {
    background: transparent;
}

/* ===== Buttons ===== */
.ui-button,
input[type="button"],
input[type="submit"] {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--primary-dark) 100%);
    color: var(--bg-white);
    border: none;
    border-radius: 4px;
    padding: 10px 20px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: var(--shadow-sm);
}

.ui-button:hover,
input[type="button"]:hover,
input[type="submit"]:hover {
    background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary-color) 100%);
    box-shadow: var(--shadow-md);
    transform: translateY(-1px);
}

/* ===== Footer ===== */
.footer {
    background: linear-gradient(135deg, var(--text-dark) 0%, var(--text-medium) 100%);
    color: var(--bg-white);
    padding: 20px 0;
    margin-top: 60px;
    border-top: 4px solid var(--primary-color);
}

#nav-path {
    background: transparent;
}

#nav-path ul {
    background: transparent;
}

.navpath li {
    color: rgba(255, 255, 255, 0.8);
}

.navpath a {
    color: var(--bg-white);
}

/* ===== Responsive Design ===== */
@media (max-width: 768px) {
    #doc-content {
        padding: 20px;
    }
    
    h1 {
        font-size: 28px;
    }
    
    h2 {
        font-size: 22px;
    }
    
    #projectname {
        font-size: 24px;
    }
}

/* ===== Class/Namespace Index ===== */
.classindex,
.namespaceindex {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 12px;
    margin: 20px 0;
}

.classindex dl,
.namespaceindex dl {
    margin: 0;
}

/* ===== File Documentation ===== */
.directory {
    border: 1px solid var(--border-color);
    border-radius: 4px;
    overflow: hidden;
    margin: 20px 0;
}

.directory .levels {
    background: var(--bg-lighter);
}

.directory tr.even {
    background: var(--bg-white);
}

/* ===== Breadcrumb Navigation ===== */
.breadcrumb {
    background: var(--bg-lighter);
    padding: 10px 16px;
    border-radius: 4px;
    margin-bottom: 20px;
}

/* ===== Tooltips ===== */
.ui-tooltip {
    background: var(--text-dark);
    color: var(--bg-white);
    border: none;
    border-radius: 4px;
    padding: 8px 12px;
    box-shadow: var(--shadow-md);
}

/* ===== Additional Professional Touches ===== */
hr {
    border: none;
    border-top: 2px solid var(--border-color);
    margin: 32px 0;
}

blockquote {
    border-left: 4px solid var(--primary-color);
    background: var(--bg-lighter);
    padding: 12px 20px;
    margin: 16px 0;
    font-style: italic;
}

.arrow {
    color: var(--primary-color);
}

/* ===== Print Styles ===== */
@media print {
    #top,
    #nav-tree,
    .tabs,
    #MSearchBox {
        display: none;
    }
    
    body {
        background: white;
    }
}
