/* Import AMBOSS primary font */
@import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700;900&display=swap');

/* Light Mode Core Variables */
.theme-light {
    --background-primary: #ffffff;
    --background-secondary: #f5f7f9;
    --text-normal: #1a1c1c;
    --text-muted: #40515e;
    --text-faint: #5a7183;
    --text-accent: #047a88;
    --text-accent-hover: #054f57;
    --interactive-accent: #047a88;
    --interactive-accent-hover: #054f57;
    --background-modifier-border: rgba(163, 178, 189, 0.3);
    
    /* Specific AMBOSS component colors */
    --text-selection: #f3eb75;
    --callout-info-border: #9ac1fc;
    --callout-info-bg: #e7effe;
    --callout-warning-border: #f4cb81;
    --callout-warning-bg: #fef3e1;
    --callout-error-border: #f7b1b1;
    --callout-error-bg: #fde8e8;
    --table-row-hover: rgba(10, 166, 184, 0.05);

    /* Highlight Colors */
    --highlight-green-bg: #a7ffa1;
    --highlight-green-text: #1a1c1c;
    --highlight-red-bg: #f07575;
    --highlight-red-text: #1a1c1c;
}

/* Dark Mode Core Variables */
.theme-dark {
    --background-primary: #1a1c1c;
    --background-secondary: #24282d;
    --text-normal: #ced1d6;
    --text-muted: #b9bcc3;
    --text-faint: #93979f;
    --text-accent: #2db5c6;
    --text-accent-hover: #80dfea;
    --interactive-accent: #2db5c6;
    --interactive-accent-hover: #80dfea;
    --background-modifier-border: rgba(147, 149, 159, 0.3);
    
    /* Specific AMBOSS component colors */
    --text-selection: rgba(178, 171, 57, 0.45);
    --callout-info-border: #4e76b1;
    --callout-info-bg: #29364c;
    --callout-warning-border: #aa7923;
    --callout-warning-bg: #4d412c;
    --callout-error-border: #b25d5e;
    --callout-error-bg: #4d3237;
    --table-row-hover: rgba(29, 102, 112, 0.2);

    /* Highlight Colors */
    --highlight-green-bg: #28816b;
    --highlight-green-text: #ffffff;
    --highlight-red-bg: #a45355;
    --highlight-red-text: #ffffff;
}

/* Global Typography & Body */
body {
    --font-default: 'Lato', -apple-system, BlinkMacSystemFont, 'segoe ui', 'avenir next', avenir, 'helvetica neue', helvetica, ubuntu, roboto, noto, arial, sans-serif;
    --font-text: var(--font-default);
    --font-headings: var(--font-default);
    --h1-color: var(--text-normal);
    --h2-color: var(--text-normal);
    --h3-color: var(--text-normal);
    --h4-color: var(--text-normal);
    --h5-color: var(--text-normal);
    --h6-color: var(--text-normal);
    
    font-family: var(--font-default);
    font-size: 16px;
    line-height: 1.6;
    font-weight: 400;
    color: var(--text-normal);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility, geometricPrecision;
}

/* Links */
a, 
.internal-link, 
.external-link {
    color: var(--text-accent);
    text-decoration: none;
}

a:hover, 
.internal-link:hover, 
.external-link:hover {
    color: var(--text-accent-hover);
    text-decoration: underline;
}

/* ========================================= */
/* Emphasis & Highlighting Enhancements      */
/* ========================================= */

/* Bold text uses the AMBOSS teal/blue accent color */
strong, 
.cm-strong, 
.markdown-rendered strong {
    font-weight: 700;
    color: var(--text-accent) !important;
}

/* Underlines use a heavy bottom border */
u, 
.markdown-rendered u {
    text-decoration: none !important;
    border-bottom: 2px solid var(--text-accent);
    padding-bottom: 1px;
}

/* Default Highlight (Syntax: ==text==) */
mark,
.markdown-rendered mark {
    background-color: var(--highlight-green-bg) !important;
    color: var(--highlight-green-text) !important;
    padding: 2px 4px;
    border-radius: 4px;
    font-weight: 600;
}

/* Secondary Highlight Hack (Syntax: ==**text**==) */
mark strong,
.markdown-rendered mark strong {
    background-color: var(--highlight-red-bg) !important;
    color: var(--highlight-red-text) !important;
    padding: 2px 4px;
    border-radius: 4px;
    font-weight: 600;
    -webkit-text-fill-color: var(--highlight-red-text) !important;
}

/* ========================================= */
/* Clinical Tables (AMBOSS Style)            */
/* ========================================= */
.markdown-rendered table {
    width: 100%;
    border-collapse: collapse;
    margin: 24px 0;
    font-size: 15px; 
    border: none !important;
}

.markdown-rendered th {
    background-color: var(--background-secondary) !important;
    color: var(--text-muted);
    font-weight: 700;
    text-align: left !important; 
    padding: 12px 16px;
    border-bottom: 2px solid var(--background-modifier-border) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
}

.markdown-rendered td {
    text-align: left !important;
    padding: 12px 16px;
    border-bottom: 1px solid var(--background-modifier-border) !important;
    border-top: none !important;
    border-left: none !important;
    border-right: none !important;
    color: var(--text-normal);
    transition: background-color 0.2s ease;
}

.markdown-rendered tbody tr:nth-child(even),
.markdown-rendered tbody tr:nth-child(odd),
.markdown-rendered tbody tr:nth-child(2n) {
    background-color: transparent !important;
}

.markdown-rendered tbody tr:hover td {
    background-color: var(--table-row-hover) !important;
}

/* ========================================= */
/* Clinical Callouts (Content Boxes)         */
/* ========================================= */
.callout {
    background-color: var(--background-secondary);
    border: 1px solid var(--background-modifier-border);
    border-radius: 4px;
    box-shadow: none;
    padding: 16px;
    margin: 16px 0;
}

.callout[data-callout="info"] {
    border-left: 4px solid var(--callout-info-border);
    background-color: var(--callout-info-bg);
}

.callout[data-callout="warning"],
.callout[data-callout="important"] {
    border-left: 4px solid var(--callout-warning-border);
    background-color: var(--callout-warning-bg);
}

.callout[data-callout="error"],
.callout[data-callout="danger"] {
    border-left: 4px solid var(--callout-error-border);
    background-color: var(--callout-error-bg);
}

.callout-title {
    font-weight: 700;
    color: var(--text-normal);
}

.callout-content {
    color: var(--text-normal);
}