/* Slide Mode Overlay Styles - Enhanced */
.slide-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    height: 100dvh;
    background: linear-gradient(135deg, #f5f1e8 0%, #f0ebe0 100%);
    z-index: 10000;
    display: flex;
    flex-direction: column;
    animation: fadeInOverlay 0.3s ease-out;
}

.slide-container {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    position: relative;
}

/* Hide pause markers in slide mode */
.slide-overlay .slide-pause-marker {
    display: none !important;
}

@keyframes fadeInOverlay {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Dark mode support */
[data-theme="dark"] .slide-overlay {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
}

.slide-content-wrapper {
    /* Full width fixed */
    width: 100%;
    max-width: 100%; 
    height: auto;
    margin: 0;
    background: rgba(252, 248, 242, 0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    padding: 50px;
    transform-origin: top center;
    box-sizing: border-box;
    border-radius: 0;
    box-shadow: 0 0 0 1px rgba(0, 168, 168, 0.1);
    
    /* Fixed font settings for slide mode */
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    font-size: 14pt !important;
    line-height: 1.6 !important;
}

/* Ensure all text elements use fixed font size */
.slide-content-wrapper p,
.slide-content-wrapper li,
.slide-content-wrapper td,
.slide-content-wrapper th,
.slide-content-wrapper span,
.slide-content-wrapper div:not(.MathJax):not(.MathJax_Display) {
    font-family: inherit !important;
    font-size: 14pt !important;
    line-height: 1.6 !important;
}

/* Headings - slightly larger but still proportional */
.slide-content-wrapper h1 {
    font-size: 22pt !important;
    font-family: inherit !important;
}

.slide-content-wrapper h2 {
    font-size: 20pt !important;
    font-family: inherit !important;
}

.slide-content-wrapper h3 {
    font-size: 18pt !important;
    font-family: inherit !important;
}

.slide-content-wrapper h4,
.slide-content-wrapper h5,
.slide-content-wrapper h6 {
    font-size: 16pt !important;
    font-family: inherit !important;
}

/* Custom block titles */
.slide-content-wrapper .custom-block-title {
    font-size: 15pt !important;
    font-family: inherit !important;
}

/* Dark mode support */
[data-theme="dark"] .slide-content-wrapper {
    background: rgba(30, 30, 46, 0.95);
    box-shadow: 0 0 0 1px rgba(0, 168, 168, 0.2);
}

/* Slide header + title */
.slide-header {
    padding: 20px 24px;
    background: linear-gradient(135deg, rgba(0, 168, 168, 0.08) 0%, rgba(0, 212, 212, 0.04) 100%), 
                linear-gradient(135deg, rgba(252, 248, 242, 0.95) 0%, rgba(245, 241, 232, 0.9) 100%);
    border-bottom: 1px solid rgba(0, 168, 168, 0.2);
    flex-shrink: 0;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

[data-theme="dark"] .slide-header {
    background: linear-gradient(135deg, rgba(0, 168, 168, 0.12) 0%, rgba(0, 212, 212, 0.08) 100%), 
                linear-gradient(135deg, rgba(30, 30, 46, 0.95) 0%, rgba(22, 33, 62, 0.9) 100%);
    border-bottom: 1px solid rgba(0, 168, 168, 0.35);
}

.slide-title {
    margin: 0;
    font-size: 1.5em;
    font-weight: 600;
    background: linear-gradient(135deg, #00a8a8, #00d4d4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.slide-title mjx-container {
    -webkit-text-fill-color: #00a8a8 !important;
    color: #00a8a8 !important;
}

[data-theme="dark"] .slide-title {
    background: linear-gradient(135deg, #7ae0ff, #42ffd1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

[data-theme="dark"] .slide-title mjx-container {
    -webkit-text-fill-color: #7ae0ff !important;
    color: #7ae0ff !important;
}

/* Hide navigation buttons in slide mode */
.slide-content-wrapper .page-navigation-controls,
.slide-content-wrapper .topic-completion-container {
    display: none !important;
}

/* Ensure list markers are visible in slide mode and respect animation timing */
.slide-content-wrapper ul,
.slide-content-wrapper ol {
    list-style-position: outside !important;
    padding-left: 2em !important;
}

.slide-content-wrapper ul {
    list-style-type: disc;
}

.slide-content-wrapper ol {
    list-style-type: decimal;
}

.slide-content-wrapper li {
    display: list-item !important;
    list-style-position: outside !important;
    margin-bottom: 0.9em; /* Match course-content list spacing */
}

/* Gizli li'ler: tamamen gizle (marker ve içerik) */
.slide-content-wrapper li.slide-item-hidden {
    display: none !important;
    list-style-type: none !important;
}

.slide-content-wrapper li.slide-item-hidden::marker {
    content: "" !important;
    display: none !important;
}

/* Görünür li'ler: markerları göster */
.slide-content-wrapper ul li.slide-item-visible {
    display: list-item !important;
    list-style-type: disc !important;
    list-style-position: outside !important;
}

.slide-content-wrapper ol li.slide-item-visible {
    display: list-item !important;
    list-style-type: decimal !important;
    list-style-position: outside !important;
}

/* Nested list spacing - slightly less for inner items */
.slide-content-wrapper ol ol > li,
.slide-content-wrapper ul ul > li,
.slide-content-wrapper ol ul > li,
.slide-content-wrapper ul ol > li {
    margin-bottom: 0.7em;
}

/* Harf marker'ları */
.slide-content-wrapper ol.list-lower-alpha {
    counter-reset: alpha-counter;
}
.slide-content-wrapper ol.list-lower-alpha li.slide-item-visible {
    list-style: none !important;
    counter-increment: alpha-counter;
}
.slide-content-wrapper ol.list-lower-alpha li.slide-item-visible::before {
    content: counter(alpha-counter, lower-alpha) ". ";
}

.slide-content-wrapper ol.list-lower-roman {
    counter-reset: roman-counter;
}
.slide-content-wrapper ol.list-lower-roman li.slide-item-visible {
    list-style: none !important;
    counter-increment: roman-counter;
}
.slide-content-wrapper ol.list-lower-roman li.slide-item-visible::before {
    content: counter(roman-counter, lower-roman) ". ";
}

.slide-content-wrapper ol.list-upper-alpha {
    counter-reset: alpha-counter-upper;
}
.slide-content-wrapper ol.list-upper-alpha li.slide-item-visible {
    list-style: none !important;
    counter-increment: alpha-counter-upper;
}
.slide-content-wrapper ol.list-upper-alpha li.slide-item-visible::before {
    content: counter(alpha-counter-upper, upper-alpha) ". ";
}

.slide-content-wrapper ol.list-upper-roman {
    counter-reset: roman-counter-upper;
}
.slide-content-wrapper ol.list-upper-roman li.slide-item-visible {
    list-style: none !important;
    counter-increment: roman-counter-upper;
}
.slide-content-wrapper ol.list-upper-roman li.slide-item-visible::before {
    content: counter(roman-counter-upper, upper-roman) ". ";
}

/* Parantezli harf marker'ları: (a), (b) ... */
.slide-content-wrapper ol.list-parenthesized-alpha {
    counter-reset: paren-alpha-counter;
    list-style: none !important;
    padding-left: 2em !important;
}
.slide-content-wrapper ol.list-parenthesized-alpha li.slide-item-visible {
    display: list-item !important;
    list-style: none !important;
    counter-increment: paren-alpha-counter;
    list-style-position: outside !important;
}
.slide-content-wrapper ol.list-parenthesized-alpha li.slide-item-visible::before {
    content: "(" counter(paren-alpha-counter, lower-alpha) ") ";
    font-weight: 600;
}

[data-theme="dark"] .slide-content-wrapper ul,
[data-theme="dark"] .slide-content-wrapper ol {
    color: #e0e0e0;
}

[data-theme="dark"] .slide-content-wrapper li {
    color: #e0e0e0;
}

/* In-place visibility classes - Enhanced with better animations */
.slide-item-hidden {
    opacity: 0 !important;
    transform: translateY(20px) scale(0.96); 
    filter: blur(4px);
    pointer-events: none;
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.slide-item-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1);
    filter: blur(0);
    pointer-events: auto;
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), 
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                filter 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Animation Types - Applied to elements with animation classes */
.slide-anim-fade.slide-item-hidden {
    opacity: 0 !important;
    transform: scale(1);
}

.slide-anim-fade.slide-item-visible {
    opacity: 1 !important;
    transform: scale(1);
}

.slide-anim-slide-up.slide-item-hidden {
    opacity: 0 !important;
    transform: translateY(50px) scale(0.95);
}

.slide-anim-slide-up.slide-item-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1);
}

.slide-anim-slide-down.slide-item-hidden {
    opacity: 0 !important;
    transform: translateY(-50px) scale(0.95);
}

.slide-anim-slide-down.slide-item-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1);
}

.slide-anim-slide-left.slide-item-hidden {
    opacity: 0 !important;
    transform: translateX(50px) scale(0.95);
}

.slide-anim-slide-left.slide-item-visible {
    opacity: 1 !important;
    transform: translateX(0) scale(1);
}

.slide-anim-slide-right.slide-item-hidden {
    opacity: 0 !important;
    transform: translateX(-50px) scale(0.95);
}

.slide-anim-slide-right.slide-item-visible {
    opacity: 1 !important;
    transform: translateX(0) scale(1);
}

.slide-anim-zoom-in.slide-item-hidden {
    opacity: 0 !important;
    transform: scale(0.5);
}

.slide-anim-zoom-in.slide-item-visible {
    opacity: 1 !important;
    transform: scale(1);
}

.slide-anim-zoom-out.slide-item-hidden {
    opacity: 0 !important;
    transform: scale(1.5);
}

.slide-anim-zoom-out.slide-item-visible {
    opacity: 1 !important;
    transform: scale(1);
}

.slide-anim-flip-x.slide-item-hidden {
    opacity: 0 !important;
    transform: rotateY(90deg) scale(0.9);
    perspective: 1000px;
}

.slide-anim-flip-x.slide-item-visible {
    opacity: 1 !important;
    transform: rotateY(0deg) scale(1);
    perspective: 1000px;
}

/* Controls - Modernized with Tailwind-inspired styles */
.slide-controls {
    position: sticky;
    bottom: 0;
    width: 100%;
    padding: 20px;
    background: linear-gradient(to top, rgba(252, 248, 242, 0.98) 0%, rgba(245, 241, 232, 0.95) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid rgba(0, 168, 168, 0.2);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    z-index: 10002;
    flex-shrink: 0;
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.12);
}

.slide-overlay.controls-fixed .slide-controls {
    position: fixed;
    left: 0;
    bottom: 0;
}

/* Dark mode support */
[data-theme="dark"] .slide-controls {
    background: linear-gradient(to top, rgba(30, 30, 46, 0.98) 0%, rgba(22, 33, 62, 0.95) 100%);
    border-top: 1px solid rgba(0, 168, 168, 0.3);
}

.slide-btn {
    background: linear-gradient(135deg, #00a8a8 0%, #00d4d4 100%);
    border: none;
    color: white;
    padding: 10px 20px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 1.1em;
    font-weight: 600;
    min-width: 50px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 4px 12px rgba(0, 168, 168, 0.3);
    position: relative;
    overflow: hidden;
}

.slide-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s;
}

.slide-btn:hover::before {
    left: 100%;
}

.slide-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #008080 0%, #00a8a8 100%);
    transform: translateY(-3px) scale(1.05);
    box-shadow: 0 6px 20px rgba(0, 168, 168, 0.4);
}

.slide-btn:active:not(:disabled) {
    transform: translateY(-1px) scale(1.02);
}

.slide-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

/* Button State Variants */
.slide-btn.btn-success {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%);
    box-shadow: 0 4px 12px rgba(40, 167, 69, 0.3);
}

.slide-btn.btn-success:hover:not(:disabled) {
    background: linear-gradient(135deg, #218838 0%, #1ea080 100%);
    box-shadow: 0 6px 20px rgba(40, 167, 69, 0.4);
}

.slide-btn.btn-primary {
    background: linear-gradient(135deg, #FF6B35 0%, #FF8C5A 100%);
    box-shadow: 0 4px 12px rgba(255, 107, 53, 0.3);
}

.slide-btn.btn-primary:hover:not(:disabled) {
    background: linear-gradient(135deg, #E85A2A 0%, #FF6B35 100%);
    box-shadow: 0 6px 20px rgba(255, 107, 53, 0.4);
}

.slide-btn.btn-warning {
    background: linear-gradient(135deg, #ffc107 0%, #ffca2c 100%);
    box-shadow: 0 4px 12px rgba(255, 193, 7, 0.3);
    color: #333;
}

.slide-btn.btn-warning:hover:not(:disabled) {
    background: linear-gradient(135deg, #e0a800 0%, #ffc107 100%);
    box-shadow: 0 6px 20px rgba(255, 193, 7, 0.4);
}

.slide-btn.close-btn {
    position: absolute;
    right: 20px;
    background: transparent;
    border: none;
    font-size: 1.5em;
    color: #666;
    box-shadow: none;
    min-width: auto;
    padding: 8px 12px;
}

.slide-btn.close-btn:hover {
    color: #e74c3c;
    background: rgba(231, 76, 60, 0.1);
    transform: rotate(90deg) scale(1.1);
}

.slide-btn.slide-mode-toggle-btn {
    min-width: 120px;
    padding: 10px 14px;
    font-size: 0.92em;
    background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3);
}

.slide-btn.slide-mode-toggle-btn:hover:not(:disabled) {
    background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
    box-shadow: 0 6px 18px rgba(37, 99, 235, 0.35);
}

.slide-info {
    font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Roboto Mono', monospace;
    font-size: 1.2em;
    font-weight: 600;
    color: #00a8a8;
    background: rgba(0, 168, 168, 0.1);
    padding: 8px 16px;
    border-radius: 8px;
    min-width: 80px;
    text-align: center;
    transition: all 0.3s ease;
}

/* Dark mode support */
[data-theme="dark"] .slide-info {
    color: #00d4d4;
    background: rgba(0, 168, 168, 0.2);
}

.slide-progress-bar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 5px;
    background: rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.slide-progress-bar .progress {
    height: 100%;
    background: linear-gradient(90deg, #00a8a8 0%, #00d4d4 50%, #4dd0e1 100%);
    width: 0%;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 0 0 10px rgba(0, 168, 168, 0.5);
    position: relative;
}

.slide-progress-bar .progress::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    animation: shimmer 2s infinite;
}

@keyframes shimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

/* Sidebar Toggle Button for Slide Mode - Modernized */
.slide-mode-sidebar-btn {
    width: 100%;
    background: linear-gradient(135deg, #00a8a8 0%, #00d4d4 50%, #4dd0e1 100%);
    color: white;
    border: none;
    padding: 10px 16px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.95em;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    box-shadow: 0 4px 16px rgba(0, 168, 168, 0.35);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.slide-mode-sidebar-btn:hover {
    transform: translateY(-2px) scale(1.02);
    box-shadow: 0 6px 24px rgba(0, 168, 168, 0.5);
    background: linear-gradient(135deg, #008080 0%, #00a8a8 50%, #00d4d4 100%);
}

.slide-mode-sidebar-btn:active {
    transform: translateY(0) scale(0.98);
    box-shadow: 0 2px 12px rgba(0, 168, 168, 0.3);
}

.slide-mode-sidebar-btn::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
    transition: left 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.slide-mode-sidebar-btn:hover::after {
    left: 100%;
}

/* Proof Modal Styles - Enhanced */
.proof-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 10010; /* Above slide overlay */
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.proof-modal-overlay.active {
    opacity: 1;
}

.proof-modal-content {
    background: rgba(0, 168, 168, 0.08);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    width: 90%;
    max-width: 850px;
    max-height: 88vh;
    border-radius: 16px;
    border: 3px solid rgba(0, 168, 168, 0.4);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(0, 168, 168, 0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.92) translateY(20px);
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    opacity: 0;
    padding: 16px;
    box-sizing: border-box;
}

.proof-modal-content > * {
    background: rgba(30, 30, 46, 0.98);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 12px;
    color: var(--text-primary, #e0e0e0);
}

.proof-modal-overlay.active .proof-modal-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}


/* Light mode text color override for dark modal */
html:not([data-theme="dark"]) .proof-modal-content > * {
    color: #00d4d4;
}



.proof-modal-header {
    padding: 20px 24px;
    background: linear-gradient(135deg, rgba(0, 168, 168, 0.2) 0%, rgba(0, 212, 212, 0.1) 100%);
    border-bottom: 1px solid rgba(0, 168, 168, 0.3);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 12px 12px 0 0;
}



.proof-modal-header h3 {
    margin: 0;
    font-size: 1.3rem;
    font-weight: 600;
    color: #008080;
    background: linear-gradient(135deg, #00a8a8, #00d4d4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.proof-modal-close {
    background: rgba(231, 76, 60, 0.1);
    border: none;
    font-size: 1.5rem;
    cursor: pointer;
    color: #666;
    padding: 6px 12px;
    border-radius: 8px;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    line-height: 1;
}

.proof-modal-close:hover {
    color: #e74c3c;
    background: rgba(231, 76, 60, 0.2);
    transform: rotate(90deg) scale(1.1);
}

.proof-modal-body {
    padding: 24px;
    margin: 0;
    background: rgba(0, 168, 168, 0.08);
    border-radius: 0 0 12px 12px;
    overflow-y: auto;
    flex: 1;
    font-size: 1.1rem;
    line-height: 1.6;
}



/* Ensure proof text is readable */
.proof-modal-body .proof-content {
    display: block !important; /* Force show */
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
}

/* Pagination inside modal */
.proof-modal-body .proof-pages-container {
    display: block;
}

.proof-modal-body .proof-page {
    display: none;
    animation: fadeIn 0.3s ease;
}

.proof-modal-body .proof-page.active {
    display: block;
}

@keyframes fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(10px) scale(0.98); 
        filter: blur(2px);
    }
    to { 
        opacity: 1; 
        transform: translateY(0) scale(1); 
        filter: blur(0);
    }
}

/* Override proof nav buttons for modal */
.proof-modal-body .proof-navigation {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid var(--glass-border);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

/* Ensure tooltips are above the slide overlay (z-index: 10000) */
body .ref-tooltip-content {
    z-index: 10001 !important;
}

/* =====================================================
   Enum List Styles for Slide Mode
   ===================================================== */

.slide-content-wrapper .enum-list,
.slide-content-wrapper ul.enum-list,
.slide-content-wrapper ol.enum-list {
    margin: 1em 0;
    padding-left: 3em;
    list-style: none !important;
    list-style-type: none !important;
    counter-reset: enum-counter;
}

.slide-content-wrapper .enum-list li {
    margin-bottom: 0.9em;
    position: relative;
    list-style: none !important;
    list-style-type: none !important;
    counter-increment: enum-counter;
}

/* Override slide-item-visible default markers for enum-list */
.slide-content-wrapper .enum-list li.slide-item-visible {
    list-style: none !important;
    list-style-type: none !important;
}

.slide-content-wrapper ul.enum-list li.slide-item-visible {
    list-style: none !important;
    list-style-type: none !important;
}

.slide-content-wrapper ol.enum-list li.slide-item-visible {
    list-style: none !important;
    list-style-type: none !important;
}

/* ===== Styled Badge Base for enum-list in Slide Mode ===== */
.slide-content-wrapper .enum-list > li::before {
    position: absolute;
    left: -2.5em;
    top: 0.1em;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 1.6em;
    height: 1.6em;
    padding: 0 0.3em;
    border-radius: 50%;
    font-size: 0.85em;
    font-weight: 700;
    color: white;
    box-shadow: 0 2px 8px rgba(0, 168, 168, 0.4);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Alternating colors for badges */
.slide-content-wrapper .enum-list > li:nth-child(odd)::before {
    background: linear-gradient(135deg, #00a8a8 0%, #00d4d4 100%);
}

.slide-content-wrapper .enum-list > li:nth-child(even)::before {
    background: linear-gradient(135deg, #FF6B35 0%, #FF8C5A 100%);
    box-shadow: 0 2px 8px rgba(255, 107, 53, 0.4);
}

/* ===== Decimal: 1, 2, 3 ===== */
.slide-content-wrapper .enum-decimal > li::before {
    content: counter(enum-counter);
}

/* ===== Lowercase Alpha: a, b, c ===== */
.slide-content-wrapper .enum-alpha > li::before {
    content: counter(enum-counter, lower-alpha);
}

/* ===== Uppercase Alpha: A, B, C ===== */
.slide-content-wrapper .enum-alpha-upper > li::before {
    content: counter(enum-counter, upper-alpha);
}

/* ===== Lowercase Roman: i, ii, iii ===== */
.slide-content-wrapper .enum-roman > li::before {
    content: counter(enum-counter, lower-roman);
    min-width: 1.8em;
    border-radius: 0.8em;
    font-size: 0.75em;
}

/* ===== Uppercase Roman: I, II, III ===== */
.slide-content-wrapper .enum-roman-upper > li::before {
    content: counter(enum-counter, upper-roman);
    min-width: 1.8em;
    border-radius: 0.8em;
    font-size: 0.75em;
}

/* ===== Disc (bullet) - solid colored circle ===== */
.slide-content-wrapper .enum-disc > li::before {
    content: '';
    width: 10px;
    height: 10px;
    min-width: 10px;
    padding: 0;
}

/* ===== Circle - hollow circle ===== */
.slide-content-wrapper .enum-circle > li::before {
    content: '';
    width: 10px;
    height: 10px;
    min-width: 10px;
    padding: 0;
    background: transparent !important;
    border: 2px solid #00a8a8;
}

.slide-content-wrapper .enum-circle > li:nth-child(even)::before {
    border-color: #FF6B35;
    background: transparent !important;
}

/* ===== Square - solid colored square ===== */
.slide-content-wrapper .enum-square > li::before {
    content: '';
    width: 10px;
    height: 10px;
    min-width: 10px;
    padding: 0;
    border-radius: 2px;
}

/* Sequential enum items - same styling but with animation support */
.slide-content-wrapper .enum-sequential {
    list-style: none !important;
    counter-reset: enum-counter;
    padding-left: 3em !important;
}

.slide-content-wrapper .enum-sequential li {
    position: relative;
    list-style: none !important;
    counter-increment: enum-counter;
}

/* Sequential alpha marker variants */
.slide-content-wrapper .enum-sequential.enum-alpha li::before {
    content: counter(enum-counter, lower-alpha);
}

.slide-content-wrapper .enum-sequential.enum-alpha-upper li::before {
    content: counter(enum-counter, upper-alpha);
}

/* Sequential roman marker variants */
.slide-content-wrapper .enum-sequential.enum-roman li::before {
    content: counter(enum-counter, lower-roman);
    min-width: 1.8em;
    border-radius: 0.8em;
    font-size: 0.75em;
}

.slide-content-wrapper .enum-sequential.enum-roman-upper li::before {
    content: counter(enum-counter, upper-roman);
    min-width: 1.8em;
    border-radius: 0.8em;
    font-size: 0.75em;
}

/* Sequential square - use badge style */
.slide-content-wrapper .enum-sequential.enum-square li::before {
    content: '■';
    font-size: 0.8em;
    line-height: 1.8em;
}

/* Sequential enum items - hidden state */
.slide-content-wrapper .enum-sequential li.slide-item-hidden {
    opacity: 0 !important;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

.slide-content-wrapper .enum-sequential li.slide-item-hidden::before {
    opacity: 0;
    transform: scale(0.5);
}

/* Sequential enum items - visible state */
.slide-content-wrapper .enum-sequential li.slide-item-visible {
    opacity: 1 !important;
    transform: translateY(0);
}

.slide-content-wrapper .enum-sequential li.slide-item-visible::before {
    opacity: 1;
    transform: scale(1);
    animation: badgePop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes badgePop {
    0% {
        transform: scale(0.5);
        opacity: 0;
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

/* Dark mode support */
[data-theme="dark"] .slide-content-wrapper .enum-list {
    color: #e0e0e0;
}

/* Tables in slide mode - improved spacing */
.slide-content-wrapper table {
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    margin: 20px 0;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0, 168, 168, 0.1);
}

.slide-content-wrapper table th,
.slide-content-wrapper table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid rgba(0, 168, 168, 0.15);
}

.slide-content-wrapper table th {
    background: linear-gradient(135deg, #00a8a8 0%, #00d4d4 100%);
    color: white;
    font-weight: 600;
    font-size: 0.95em;
}

.slide-content-wrapper table tr:last-child td {
    border-bottom: none;
}

.slide-content-wrapper table tbody tr:hover {
    background: rgba(0, 168, 168, 0.05);
}

/* Table row highlighting classes for slide mode */
/* Red highlight */
.slide-content-wrapper table tr.highlight-red {
    background-color: rgba(255, 0, 0, 0.2) !important;
}
.slide-content-wrapper table tr.highlight-red td {
    background-color: rgba(255, 0, 0, 0.2) !important;
}

/* Green highlight */
.slide-content-wrapper table tr.highlight-green {
    background-color: rgba(0, 255, 0, 0.2) !important;
}
.slide-content-wrapper table tr.highlight-green td {
    background-color: rgba(0, 255, 0, 0.2) !important;
}

/* Blue highlight */
.slide-content-wrapper table tr.highlight-blue {
    background-color: rgba(0, 123, 255, 0.2) !important;
}
.slide-content-wrapper table tr.highlight-blue td {
    background-color: rgba(0, 123, 255, 0.2) !important;
}

/* Yellow highlight */
.slide-content-wrapper table tr.highlight-yellow {
    background-color: rgba(255, 255, 0, 0.3) !important;
}
.slide-content-wrapper table tr.highlight-yellow td {
    background-color: rgba(255, 255, 0, 0.3) !important;
}

/* Orange highlight */
.slide-content-wrapper table tr.highlight-orange {
    background-color: rgba(255, 165, 0, 0.2) !important;
}
.slide-content-wrapper table tr.highlight-orange td {
    background-color: rgba(255, 165, 0, 0.2) !important;
}

/* Purple highlight */
.slide-content-wrapper table tr.highlight-purple {
    background-color: rgba(128, 0, 128, 0.2) !important;
}
.slide-content-wrapper table tr.highlight-purple td {
    background-color: rgba(128, 0, 128, 0.2) !important;
}

/* Hidden rows in slide mode should not show background color */
.slide-content-wrapper table tr.slide-item-hidden {
    opacity: 0 !important;
    transform: translateY(20px) scale(0.96);
    filter: blur(4px);
    pointer-events: none;
}

.slide-content-wrapper table tr.slide-item-visible {
    opacity: 1 !important;
    transform: translateY(0) scale(1);
    filter: blur(0);
    pointer-events: auto;
}

/* Dark mode support for tables in slide mode */
[data-theme="dark"] .slide-content-wrapper table {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .slide-content-wrapper table th,
[data-theme="dark"] .slide-content-wrapper table td {
    border-bottom-color: rgba(0, 168, 168, 0.2);
}

[data-theme="dark"] .slide-content-wrapper table tbody tr:hover {
    background: rgba(0, 168, 168, 0.1);
}

/* Dark mode highlight colors - slightly adjusted for better visibility */
[data-theme="dark"] .slide-content-wrapper table tr.highlight-red {
    background-color: rgba(255, 0, 0, 0.3) !important;
}
[data-theme="dark"] .slide-content-wrapper table tr.highlight-red td {
    background-color: rgba(255, 0, 0, 0.3) !important;
}

[data-theme="dark"] .slide-content-wrapper table tr.highlight-green {
    background-color: rgba(0, 255, 0, 0.25) !important;
}
[data-theme="dark"] .slide-content-wrapper table tr.highlight-green td {
    background-color: rgba(0, 255, 0, 0.25) !important;
}

[data-theme="dark"] .slide-content-wrapper table tr.highlight-blue {
    background-color: rgba(100, 180, 255, 0.25) !important;
}
[data-theme="dark"] .slide-content-wrapper table tr.highlight-blue td {
    background-color: rgba(100, 180, 255, 0.25) !important;
}

[data-theme="dark"] .slide-content-wrapper table tr.highlight-yellow {
    background-color: rgba(255, 255, 0, 0.35) !important;
}
[data-theme="dark"] .slide-content-wrapper table tr.highlight-yellow td {
    background-color: rgba(255, 255, 0, 0.35) !important;
}

/* Center images and videos in slide mode */
.slide-content-wrapper > img,
.slide-content-wrapper > p > img,
.slide-content-wrapper > video,
.slide-content-wrapper > p > video {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Center paragraphs containing only media */
.slide-content-wrapper > p:has(img:only-child),
.slide-content-wrapper > p:has(video:only-child),
.slide-content-wrapper > p.design-block:has(> img),
.slide-content-wrapper > p.design-block:has(> video),
.slide-content-wrapper > p.video-block,
.slide-content-wrapper > p[data-block-type="video"] {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Fallback for browsers without :has() support */
.slide-content-wrapper > p[data-block-type="paragraph"] img,
.slide-content-wrapper > p[data-block-type="video"] video,
.slide-content-wrapper > p.video-block video,
.slide-content-wrapper p.design-block img,
.slide-content-wrapper p.design-block video {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Center images and videos within custom blocks */
.slide-content-wrapper .custom-block img,
.slide-content-wrapper .custom-block video,
.slide-content-wrapper .custom-block-content img,
.slide-content-wrapper .custom-block-content video {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* Center paragraphs containing only media in custom blocks */
.slide-content-wrapper .custom-block p:has(img:only-child),
.slide-content-wrapper .custom-block p:has(video:only-child),
.slide-content-wrapper .custom-block-content p:has(img:only-child),
.slide-content-wrapper .custom-block-content p:has(video:only-child) {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* =====================================================
   Slidebreak Section Styles (for {slidebreak} feature)
   ===================================================== */

/* Slidebreak sections - visible in normal mode */
.slidebreak-section {
    margin-bottom: 1em;
}

/* In slide mode, slidebreak sections use standard visibility */
.slide-content-wrapper .slidebreak-section.slide-item-hidden {
    display: none !important;
}

.slide-content-wrapper .slidebreak-section.slide-item-visible {
    display: block;
    animation: slidebreakFadeIn 0.5s ease-out;
}

@keyframes slidebreakFadeIn {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Blocks with slidebreaks */
.has-slidebreaks .custom-block-content {
    position: relative;
}

/* =====================================================
   Overlay Area Styles (for {overlayarea} feature)
   ===================================================== */

/* Overlay area container - pages stack on top of each other */
.overlay-area {
    position: relative;
    min-height: 2em;
}

/* Overlay pages - in normal mode, show only the first (active) one */
.overlay-page {
    display: none;
}

.overlay-page.overlay-page-active {
    display: block;
}

/* In slide mode, visibility is controlled by slide-item classes */
.slide-content-wrapper .overlay-page {
    display: none !important;
}

.slide-content-wrapper .overlay-page.slide-item-visible {
    display: block !important;
    animation: overlayFadeIn 0.4s ease-out;
}

.slide-content-wrapper .overlay-page.slide-item-hidden {
    display: none !important;
}

/* Pagination-activated pages override slide-item-hidden (must come after it) */
.slide-content-wrapper .overlay-page.overlay-page-active-slide {
    display: block !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    pointer-events: auto !important;
    animation: overlayFadeIn 0.4s ease-out;
}

/* Hide normal mode pagination in slide mode (JS will force-show with inline styles) */
.slide-content-wrapper .overlay-pagination {
    display: none !important;
}

@keyframes overlayFadeIn {
    from {
        opacity: 0;
        transform: translateX(10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* =====================================================
   Image Scaling for Slide Mode
   Images are scaled to fit viewport while text stays fixed at 14pt
   ===================================================== */
.slide-content-wrapper img {
    max-width: 100%;
    max-height: 50vh; /* Max 50% of viewport height */
    width: auto;
    height: auto;
    display: block;
    margin: 0.5em auto;
    object-fit: contain;
}

/* Center images in slide mode */
.slide-content-wrapper p > img,
.slide-content-wrapper figure img {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

/* For slides with lots of text, allow smaller images */
.slide-content-wrapper .custom-block img {
    max-height: 40vh;
}

/* =====================================================
   Dark Mode SVG Inversion for Slide Mode
   ===================================================== */
[data-theme="dark"] .slide-content-wrapper img[src$=".svg"],
[data-theme="dark"] .slide-content-wrapper img[src$=".SVG"],
[data-theme="dark"] .slide-content-wrapper img[src*=".svg.png"],
[data-theme="dark"] .slide-content-wrapper img[src*=".svg_"],
[data-theme="dark"] .slide-content-wrapper img.dark-invert {
    filter: invert(1) hue-rotate(180deg);
}

/* Images with explicit no-invert class will not be inverted */
[data-theme="dark"] .slide-content-wrapper img[src$=".svg"].no-dark-invert,
[data-theme="dark"] .slide-content-wrapper img[src$=".SVG"].no-dark-invert,
[data-theme="dark"] .slide-content-wrapper img[src*=".svg.png"].no-dark-invert,
[data-theme="dark"] .slide-content-wrapper img[src*=".svg_"].no-dark-invert,
[data-theme="dark"] .slide-content-wrapper img.dark-invert.no-dark-invert {
    filter: none;
}


/* =====================================================
   Overlay Area Fixes (Height Stabilization ONLY)
   Visibility is handled by overlay-pagination.js + styles.css
   ===================================================== */

/* No visibility rules here - let original system handle it */
/* Only set min-height via JS to prevent layout jumping */
