/* LEXA LEARNING PLATFORM - STANDALONE E-READER STYLES */
/* File: assets/css/reader.css */

body, html {
    font-family: 'Inter', sans-serif;
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    background-color: white;
    transition: background-color 0.3s;
}
.dark { color: #ffffff; min-height: 100vh; }
.dark body { background-color: #121212 !important; }
.jumbotron-third { height: 60vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; color: white; position: relative; padding: 0 15px; background-size: cover; background-position: center; }
.jumbotron-content { position: relative; margin: 0; z-index: 2; }
.jumbotron-content h1 { font-family: 'Playfair Display', serif; font-size: 2.5em; font-weight: bold; text-shadow: 2px 2px 4px rgba(0,0,0,0.5); }
.jumbotron-content p { font-family: 'Inter', sans-serif; color: lightgray; margin: 0; padding: 0; font-size: 1em; }
.btn-start-module { margin: 20px 5px 0 5px; background-color: transparent; color: white; border: 2px solid white; padding: 10px 20px; cursor: pointer; transition: background-color 0.3s, color 0.3s; }
.btn-start-module:hover { background-color: white; color: black; }
#author-byline { font-weight: bold; font-size: 1.1em; margin-bottom: 0.8rem; }
.dark #author-byline { color: #e0e0e0; }
#author-info { padding: 0; display: flex; align-items: center; justify-content: center; gap: 20px; max-width: 500px; margin-left: auto; margin-right: auto; }
#author-image { width: 100px; height: 100px; object-fit: cover; border: 4px solid #e9ecef; flex-shrink: 0; border-radius: 50%; }
.dark #author-image { border-color: #444; }
#author-details { text-align: left; }
#author-name { font-family: 'Playfair Display', serif; font-weight: 800; font-size: 1.2rem; margin-top: 0; margin-bottom: 0.25rem; }
.dark #author-name { color: #fff; }
#author-title { color: #6c757d; font-size: 0.8em; }
.dark #author-title { color: #adb5bd; }
#author-preface { font-weight: bold; margin-top: 1rem; margin-bottom: 1rem; font-size: 1.1em; }
.dark #author-preface { color: #e0e0e0; }
.dark #intro-description { color: #e0e0e0; }
.intro-container { padding: 20px 15px 60px 15px; max-width: 900px; margin: 0 auto; text-align: center; }
.module-outline { margin-top: 30px; text-align: left; list-style-type: none; padding: 0; }
.module-outline li { margin-bottom: 15px; cursor: pointer; }
.module-item-title { font-size: 1.2em; display: block; }
.module-item-title a { text-decoration: none; color: #000; display: block; border: 1px solid #ddd; padding: 15px; border-radius: 5px; }
.dark .module-item-title a { color: #ffffff; border-color: #444; }
.module-item-title a:hover { text-decoration: none; background-color: #f0f0f0; }
.dark .module-item-title a:hover { background-color: #3e3e3e; }
.sidebar { background-color: #f8f8f8; height: calc(100vh - 72px); position: fixed; top: 72px; left: 0; transition: transform 0.3s ease; overflow-y: hidden; overflow-x: hidden; z-index: 1031; box-shadow: 3px 0 5px rgba(0, 0, 0, 0.2); transform: translateX(-100%); display: flex; flex-direction: column; }
.dark .sidebar { background-color: #2a2a2a; color: #ffffff; border-color: #444; }
.sidebar.active { transform: translateX(0); }
.sidebar-header-sticky { flex-shrink: 0; position: relative; }
.sidebar .image-container { position: relative; width: 100%; background-position: center; background-size: cover; }
.sidebar .overlay-title { position: absolute; bottom: 0; left: 0; width: 100%; background: rgba(0, 0, 0, 0.5); color: white; padding: 10px 15px; font-family: 'Playfair Display', serif; font-size: 1.2em; display: flex; justify-content: space-between; align-items: center; box-sizing: border-box; }
.search-toggle-btn { background: none; border: none; font-size: 1.1em; color: white; cursor: pointer; padding: 5px; line-height: 1; opacity: 0.7; transition: opacity 0.2s; }
.search-toggle-btn:hover { opacity: 1; }
.sidebar-search-container { padding: 10px; border-bottom: 1px solid #ccc; background-color: #f8f8f8; position: relative; }
.dark .sidebar-search-container { border-bottom-color: #444; background-color: #2a2a2a; }
.sidebar-search-icon { position: absolute; top: 50%; left: 20px; transform: translateY(-50%); color: #6c757d; }
.dark .sidebar-search-icon { color: #adb5bd; }
.sidebar-search-input { width: 100%; padding: 8px 12px 8px 35px; border-radius: 5px; border: 1px solid #ccc; box-sizing: border-box; }
.dark .sidebar-search-input { background-color: #3e3e3e; border-color: #555; color: #fff; }
.module-item-not-found { padding: 15px; text-align: center; color: #6c757d; }
.dark .module-item-not-found { color: #adb5bd; }
.module-items { text-align: left; padding: 10px; margin-top: 0; padding-bottom: 70px; flex-grow: 1; overflow-y: auto; }
.module-item { cursor: pointer; padding: 15px; border-bottom: 1px solid #ccc; text-align: left; border-radius: 5px; margin-bottom: 5px; }
.dark .module-item { border-bottom-color: #444; }
.module-item:hover { background-color: #e0e0e0; }
.dark .module-item:hover { background-color: #3e3e3e; }
.module-item.active { background-color: #e0e0e0; font-weight: bold; }
.dark .module-item.active { background-color: #3e3e3e; font-weight: bold; }
.dark .module-item p { color: #adb5bd; }
#main-layout { width: 100%; overflow-x: hidden; }
#scroll-to-top, #scroll-to-bottom, #settings-button, #toggle-sidebar, #toggle-module-sidebar { background: rgba(0,0,0,0.5); border: none; color: white; font-size: 1.2em; position: fixed; z-index: 1020; cursor: pointer; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; transition: top 0.3s ease, bottom 0.3s ease; }
#scroll-to-top:hover, #scroll-to-bottom:hover, #settings-button:hover, #toggle-sidebar:hover, #toggle-module-sidebar:hover { background: rgba(0,0,0,0.7); }
#toggle-sidebar { top: calc(15px + 72px); left: 15px; z-index: 1030; }
#toggle-module-sidebar { top: calc(15px + 72px); right: 15px; }
#settings-button { display: none; }
#scroll-to-top { top: calc(65px + 72px); right: 15px; }
#scroll-to-bottom { top: calc(115px + 72px); right: 15px; }
.content-container { padding: 0; transition: margin-left 0.3s ease; width: 100%; height: calc(100vh - 72px); overflow-y: auto; overflow-x: hidden; scroll-behavior: smooth; position: relative; }
#content { position: relative; padding-bottom: 0px; }
.btn-close-sidebar { position: absolute; top: 10px; right: 10px; z-index: 1032; background-color: rgba(0,0,0,0.4); color: white; border: none; width: 35px; height: 35px; border-radius: 50%; display: none; align-items: center; justify-content: center; cursor: pointer; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); }
.btn-close-sidebar:hover { background-color: rgba(0,0,0,0.6); }

@media (max-width: 767px) {
    .sidebar { width: 250px; top: 72px; height: calc(100vh - 72px); z-index: 1035; }
    .sidebar .image-container { height: 188px; }
    .content-container { margin-left: 0px !important; scroll-padding-top: 50px; }
    .chapter-nav-wrapper { position: sticky; top: 0; z-index: 1010; }
    #toggle-sidebar { top: auto; bottom: 80px; left: 20px; width: 44px; height: 44px; z-index: 1025; }
    .btn-close-sidebar { display: flex; z-index: 1037; }
    #app.main-view-active #toggle-module-sidebar { top: calc(15px + 72px); }
    #app.main-view-active #scroll-to-top { top: calc(65px + 72px); }
    #app.main-view-active #scroll-to-bottom { top: calc(115px + 72px); }
}
@media (min-width: 768px) {
    #toggle-sidebar { display: none !important; }
    .sidebar { transform: translateX(0); top: 72px; height: calc(100vh - 72px); }
    .chapter-nav-wrapper { position: sticky; }
}
@media (min-width: 768px) and (max-width: 991px) {
    .sidebar { width: 250px; top: 72px; height: calc(100vh - 72px); }
    .sidebar .image-container { height: 188px; }
    .content-container { margin-left: 250px; width: calc(100% - 250px); }
}
@media (min-width: 992px) and (max-width: 1199px) {
    .sidebar { width: 300px; top: 72px; height: calc(100vh - 72px); }
    .sidebar .image-container { height: 225px; }
    .content-container { margin-left: 300px; width: calc(100% - 300px); }
}
@media (min-width: 1200px) {
    .sidebar { width: 350px; top: 72px; height: calc(100vh - 72px); }
    .sidebar .image-container { height: 263px; }
    .content-container { margin-left: 350px; width: calc(100% - 350px); }
}
.custom-jumbotron { color: white; padding: 30px; padding-right: 35px; margin: 0; background-size: cover; background-position: center; }
.custom-jumbotron h1 { color: white; font-family: 'Playfair Display', serif; margin: 0; text-shadow: 2px 2px 4px rgba(0,0,0,0.5); }
.section-position { font-size: 0.8em; color: lightgray; margin-bottom: 5px; }
.chapter-nav-wrapper { background-color: #343a40; padding: 0.5rem 0; transition: background-color 0.3s; }
.dark .chapter-nav-wrapper { background-color: #1a1a1a; }
.chapter-nav { display: flex; overflow-x: auto; -ms-overflow-style: none; scrollbar-width: none; white-space: nowrap; padding: 0 1rem; }
.chapter-nav::-webkit-scrollbar { display: none; }
.chapter-link { padding: 0.5rem 1rem; margin: 0 0.25rem; color: #adb5bd; border: 1px solid #495057; border-radius: 9999px; text-decoration: none; transition: background-color 0.2s, color 0.2s; font-size: 0.9rem; }
.dark .chapter-link { color: #adb5bd; border-color: #495057; }
.chapter-link:hover { background-color: #495057; color: #f8f9fa; text-decoration: none; }
.dark .chapter-link:hover { background-color: #495057; color: #f8f9fa; }
.chapter-link.active { background-color: #f8f9fa; color: #212529; font-weight: bold; }
.dark .chapter-link.active { background-color: #f8f9fa; color: #212529; }
.audio-box { background: linear-gradient(135deg, #2f0060 0%, #001332 100%); padding: 25px; padding-right: 35px; }
.audio-box audio { width: 100%; filter: invert(100%); -webkit-filter: invert(100%); }
.audio-box p { text-align: center; color: white; margin: 10px 0 0 0; font-size: 0.8em; }
.text-box { padding: 0 25px; padding-right: 35px; font-size: 0.9em; margin: 20px 0; }
.dark .text-box { color: #e0e0e0; }
.text-box p { font-size: 1.1rem; }
.muted-jumbotron { color: black; margin: 0; padding: 25px; padding-right: 35px; font-size: 0.9em; background-color: #f0f0f0; }
.dark .muted-jumbotron { background-color: #2c2c2c; color: #ffffff; }
.muted-jumbotron h2 { color: black; margin: 0 0 10px 0; font-size: 1.2em; }
.dark .muted-jumbotron h2 { color: #ffffff; }
.muted-jumbotron.highlight { padding: 40px; padding-right: 45px; }
.muted-jumbotron.highlight .list-item { display: flex; align-items: center; margin-bottom: 15px; }
.muted-jumbotron.highlight .list-item .icon { font-size: 1.5em; margin-right: 15px; }
.muted-jumbotron.highlight .list-item p { font-size: 1.2em; margin: 0; }
.muted-jumbotron.case-study { padding: 1.5rem 2rem 1.5rem 2.5rem; border-left: 20px solid #4D2D79; background-color: #f8f9fa; }
.dark .muted-jumbotron.case-study { border-left-color: #9B84C8; background-color: #343a40; }
.muted-jumbotron.list .list-item { display: flex; align-items: flex-start; margin-bottom: 15px; }
.muted-jumbotron.list .list-item .icon { font-size: 1.2em; margin-right: 15px; width: 25px; text-align: center; margin-top: 5px; color: #a435f0; }
.muted-jumbotron.list .list-item p { font-size: 1em; margin: 0; color: inherit; }
.muted-jumbotron.list .list-item strong { font-family: 'Inter', sans-serif; font-weight: 700; color: #1c1d1f; }
.dark .muted-jumbotron.list .list-item strong { color: #ffffff; }
.section { display: none; }
.section.active { display: block; position: relative; }
.section.animating { position: absolute; top: 0; left: 0; width: 100%; display: block; z-index: 10; }
.dark-box { margin: 0; font-size: 0.9em; padding: 35px 50px 35px 35px; background-color: #222; color: #fff; }
.dark-box h2 { margin-bottom: 10px; }
.user-input-container { text-align: right; margin-bottom: 20px; }
.user-input { display: inline-block; background-color: #007bff; color: #fff; padding: 10px 15px; border-radius: 15px; max-width: 70%; text-align: left; }
.user-choice { display: inline-block; background-color: white; color: black; padding: 10px 15px; border-radius: 15px; max-width: 70%; text-align: left; cursor: pointer; width: 100%; }
.dark .user-choice { background-color: #444; color: white; }
.user-choice p { margin: 0; font-size: 1rem; }
.hint-box { height: 0; overflow: hidden; font-size: 0.9em; transition: height 0.3s ease; }
.hint-box.active { display: block; }
.assistant-response { display: flex; align-items: flex-start; margin-bottom: 20px; }
.assistant-logo { width: 30px; height: 30px; flex-shrink: 0; border-radius: 50%; margin-right: 10px; }
.assistant-logo img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover;}
.assistant-message { background-color: #333; padding: 10px 15px; border-radius: 0 15px 15px 15px; max-width: 80%; }
.assistant-message p { font-size: 1rem; }
.floating-footer { position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(135deg, #2f0060 0%, #001332 100%); color: white; text-align: center; padding: 10px; font-size: 0.8em; z-index: 1031; display: flex; justify-content: center; align-items: center; }
.footer-content { display: flex; flex-direction: column; align-items: center; }
.footer-logo { height: 20px; width: auto; margin-bottom: 5px; filter: brightness(0) invert(1); }
.floating-footer p { margin: 0; font-family: 'Didact Gothic', sans-serif; line-height: 1.2; font-size: 0.8rem; }
.navigation-buttons { position: fixed; bottom: 80px; right: 20px; z-index: 1000; display: flex; flex-direction: column; gap: 10px; }
.navigation-buttons button { background-color: rgba(0,0,0,0.5); color: white; opacity: 0.8; border: none; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 1.2em; }
.navigation-buttons button:hover { background-color: rgba(0,0,0,0.7); }
.navigation-buttons button:disabled { opacity: 0.4; cursor: not-allowed; background-color: rgba(0,0,0,0.3); }
.conclusion-wrapper { background: none; padding: 0; text-align: center; color: #fff; }
.conclusion-wrapper p, .conclusion-wrapper label { color: #fff; font-size: 0.9rem; }
.conclusion-wrapper .d-flex { justify-content: center; }
.conclusion-wrapper .completion-checkbox { width: 25px; height: 25px; margin-right: 10px; cursor: pointer; border: 2px solid #fff; background-color: transparent; }
.conclusion-wrapper + h2 { border-top: 1px solid #444; padding-top: 2rem; margin-top: 2rem; }
.submitButtonContainer { opacity: 0; pointer-events: none; transition: opacity 0.5s ease; margin-top: 20px; }
.submitButtonContainer.show { opacity: 1; pointer-events: auto; }
.btn-conclusion { background-color: transparent; color: white; border: 2px solid white; padding: 10px 20px; cursor: pointer; transition: background-color 0.3s, color 0.3s; text-decoration: none !important; display: inline-block; margin: 5px; border-radius: 0.25rem; }
.btn-conclusion:hover { background-color: white; color: black; }
.module-sidebar-overlay { position: fixed; inset: 0; background-color: rgba(0,0,0,0.5); z-index: 1039; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
.module-sidebar-overlay.active { opacity: 1; pointer-events: auto; }
.module-sidebar { position: fixed; top: 0; right: 0; height: 100%; width: 100%; max-width: 320px; background-color: #f8f8f8; z-index: 1040; transform: translateX(100%); transition: transform 0.3s ease; display: flex; flex-direction: column; }
.dark .module-sidebar { background-color: #2a2a2a; color: #ffffff; }
.module-sidebar.active { transform: translateX(0); }
.module-sidebar-header { display: flex; justify-content: space-between; align-items: center; padding: 1rem; border-bottom: 1px solid #dee2e6; }
.dark .module-sidebar-header { border-bottom-color: #444; }
.module-sidebar * { box-sizing: border-box; }
.module-sidebar .login-section input, .module-sidebar .login-section button, .module-sidebar .module-sidebar-list-item { width: 100%; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.module-sidebar .module-sidebar-list-item { display: block; padding: 10px 15px; text-decoration: none; white-space: normal; overflow: hidden; }
.module-sidebar .footer-controls { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 10px; }
.module-sidebar .footer-controls > a, .module-sidebar .footer-controls > button { flex: 1 1 auto; min-width: 0; white-space: normal; text-align: center; }
.sidebar-controls { display: flex; align-items: center; gap: 10px; }
.sidebar-control-btn { background: none; border: none; color: #6c757d; font-size: 1.1rem; cursor: pointer; padding: 0; line-height: 1; width: 35px; height: 35px; display: flex; align-items: center; justify-content: center; border-radius: 50%; transition: background-color 0.2s, color 0.2s; }
.dark .sidebar-control-btn { color: #adb5bd; background-color: transparent; }
.sidebar-control-btn:hover { color: #212529; background-color: #d1d5db; }
.dark .sidebar-control-btn:hover { color: #f8f9fa; background-color: #555; }
.module-sidebar-header h3 { margin: 0; font-size: 1.2rem; font-family: 'Playfair Display', serif; font-weight: 700; }
.module-sidebar-content { flex-grow: 1; overflow-y: auto; }
.module-sidebar-footer { padding: 0.5rem; border-top: 1px solid #dee2e6; background-color: #f8f8f8; }
.dark .module-sidebar-footer { border-top-color: #444; background-color: #2a2a2a; }
.footer-controls { display: flex; align-items: center; gap: 10px; }
.footer-controls > * { border: none; background-color: #e9ecef; color: #6c757d; padding: 0.75rem; border-radius: 0.25rem; text-decoration: none; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background-color 0.2s, color 0.2s; font-size: 1rem; }
.dark .footer-controls > * { background-color: #3e3e3e; color: #adb5bd; }
.footer-controls > a { flex-grow: 1; }
.footer-controls > *:hover { background-color: #d1d5db; color: #212529; }
.dark .footer-controls > *:hover { background-color: #555; color: #f8f9fa; }
.sidebar-alert { padding: 1rem; background-color: #fff3cd; border-bottom: 1px solid #ffeeba; color: #856404; font-size: 0.9rem; display: none; }
.dark .sidebar-alert { background-color: #4d3c0a; border-bottom-color: #66510d; color: #ffeeba; }
.login-section { padding: 1rem; border-bottom: 1px solid #dee2e6;}
.dark .login-section { border-bottom-color: #444; }
.login-section h4 { font-weight: bold; margin-bottom: 0.5rem; }
.login-section input { width: 100%; padding: 0.5rem; margin-bottom: 0.5rem; border: 1px solid #ced4da; border-radius: 0.25rem; }
.dark .login-section input { background-color: #3e3e3e; border-color: #555; color: #fff; }
.login-section button { width: 100%; padding: 0.5rem; }
.login-error { color: #dc3545; font-size: 0.8rem; text-align: center; margin-top: 0.5rem; display: none; }
.dark .login-error { color: #ff7882; }
.dark .login-section button.btn-primary { background-color: #4D2D79; border-color: #4D2D79; color: #fff; }
.dark .login-section button.btn-primary:hover { background-color: #6a4a9a; border-color: #6a4a9a; }
.welcome-section { padding: 1rem; border-bottom: 1px solid #dee2e6; }
.dark .welcome-section { border-bottom-color: #444; }
.dark .welcome-section .btn-danger { background-color: #a13d46; border-color: #a13d46; color: #fff; }
.dark .welcome-section .btn-danger:hover { background-color: #8a333c; border-color: #8a333c; }
.module-list-header { padding: 0.75rem 1rem; background-color: #e9ecef; color: #495057; font-weight: bold; font-size: 0.9rem; text-transform: uppercase; display: flex; justify-content: space-between; align-items: center; }
.dark .module-list-header { background-color: #3e3e3e; color: #adb5bd; }
.module-sidebar-list-item { display: block; width: 100%; text-align: left; padding: 1rem; border-bottom: 1px solid #e9ecef; color: #212529; text-decoration: none; cursor: pointer; }
.dark .module-sidebar-list-item { border-bottom-color: #444; color: #ffffff; }
.module-sidebar-list-item:hover { background-color: #e9ecef; text-decoration: none; color: #212529;}
.dark .module-sidebar-list-item:hover { background-color: #3e3e3e; ; color: #ffffff}
.module-sidebar-list-item.active { background-color: #d1ecf1; font-weight: bold; }
.dark .module-sidebar-list-item.active { background-color: #1d3c41; }
.chapter-selection-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); z-index: 2000; display: none; justify-content: center; align-items: center; padding: 20px; }
.chapter-selection-content { background-color: #fff; padding: 0; border-radius: 8px; max-width: 800px; width: 100%; max-height: 90vh; display: flex; flex-direction: column; text-align: center; overflow: hidden; }
.dark .chapter-selection-content { background-color: #fff; color: #111827; }
.chapter-selection-header { padding: 20px 30px; border-bottom: 1px solid #dee2e6; background-color: #fff; position: sticky; top: 0; z-index: 1; display: flex; justify-content: space-between; align-items: center; }
.dark .chapter-selection-header { background-color: #fff; border-bottom-color: #dee2e6;}
.chapter-selection-header h2 { font-family: 'Manrope', sans-serif; margin: 0; color: #111827; }
.dark .chapter-selection-header h2 { color: #111827; }
.close-btn { background: none; border: none; font-size: 2.5rem; font-weight: bold; color: #888; cursor: pointer; padding: 0; line-height: 1; }
.dark .close-btn { color: #888; }
.dark .close-btn:hover { color: #111827; }
#modal-module-list { padding: 20px 30px 30px 30px; overflow-y: auto; }
.modal-module-item { display: flex; flex-direction: column; justify-content: center; padding: 15px; margin-bottom: 10px; color: #fff; text-decoration: none; border-radius: 5px; transition: background-color 0.2s; background-size: cover; background-position: center; background-repeat: no-repeat; position: relative; height: 120px; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.1); cursor: pointer; }
.dark .modal-module-item { background-color: #3e3e3e; color: #fff; }
.dark .modal-module-item:hover { background-color: #555; }
.modal-module-item:hover { box-shadow: 0 6px 8px rgba(0,0,0,0.2); opacity: 0.9; }
.modal-module-text-content { flex-grow: 1; text-align: left; z-index: 2; display: flex; flex-direction: column; justify-content: center; height: 100%; }
.modal-module-header { display: flex; justify-content: space-between; align-items: center; }
.modal-module-title { font-family: 'Playfair Display', serif; font-weight: bold; font-size: 1.1em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 70%; margin: 0; line-height: 1.2; color: #fff; }
.modal-module-lessons { font-size: 0.9em; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; line-height: 1.2; display: flex; align-items: center; gap: 5px; }
.dark .modal-module-lessons { color: #adb5bd; }
.modal-module-author { font-size: 0.9em; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; font-weight: bold; line-height: 1.2; }
.dark .modal-module-author { color: #adb5bd; }
.modal-module-author-title { font-size: 0.75em; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin: 0; line-height: 1.2; }
.dark .modal-module-author-title { color: #adb5bd; }
.modal-module-header p, .modal-module-text-content p { margin: 0; padding: 0; }
.intro-module-item a { position: relative; display: flex; flex-direction: column; justify-content: center; color: #fff; padding: 15px; border-radius: 5px; text-decoration: none; background-size: cover; background-position: center; min-height: 100px; transition: opacity 0.3s; }
.intro-module-item a:hover { opacity: 0.9; text-decoration: none; }
.intro-module-item .text-content { z-index: 2; }
.intro-module-item h4 { font-weight: bold; font-size: 1.1em; margin: 0 0 5px 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.intro-module-item .author-name { font-weight: bold; font-size: 0.9em; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.intro-module-item .author-title { font-size: 0.75em; margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dark #loading-spinner i, .dark #loading-spinner p { color: #adb5bd; }
.dark #logo-konsuli { filter: invert(1); }
.dark .search-highlight { background-color: #ffe066; color: #000000; }
@keyframes slideInFromRight { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes slideInFromLeft { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@keyframes slideOutToLeft { from { transform: translateX(0); } to { transform: translateX(-100%); } }
@keyframes slideOutToRight { from { transform: translateX(0); } to { transform: translateX(100%); } }
.slide-in-right { animation: slideInFromRight 0.4s ease-out forwards; }
.slide-in-left { animation: slideInFromLeft 0.4s ease-out forwards; }
.slide-out-left { animation: slideOutToLeft 0.4s ease-out forwards; }
.slide-out-right { animation: slideOutToRight 0.4s ease-out forwards; }
.slide-out-left, .slide-out-right { z-index: 1; }
.slide-in-right, .slide-in-left { z-index: 2; }
.sidebar-overlay { position: fixed; inset: 0; background-color: rgba(0,0,0,0.5); z-index: 1033; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; }
.sidebar-overlay.active { opacity: 1; pointer-events: auto; }
.fade-enter-active, .fade-leave-active { transition: opacity 0.3s ease; }
.fade-enter-from, .fade-leave-to { opacity: 0; }
.section.measuring { position: relative !important; visibility: hidden !important; height: auto !important; display: block !important; pointer-events: none; }
.search-highlight { background-color: #fffb85; color: black; border-radius: 3px; padding: 0 2px; }
