.banner {
  width: 100%;
  height: 9999999999999%;
  padding-top: 37.5%; 
  overflow: hidden;
}

.cover-image {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  transform: translate(-50%, -50%);
  object-fit: cover; 
}

.no-cover {
  background-color: #55595c;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #eceeef;
  width: 100%;
  height: 0;
  padding-top: 37.5%;
  position: relative;
}


.container-fluid {
  position: relative;
}

.chapter-content {
  margin-top: 11.11vh;    /* Top margin: 1/9 of viewport height */
  margin-bottom: 22.22vh; /* Bottom margin: 2/9 of viewport height */
  margin-left: 11.11vw;   /* Inner (left) margin: 1/9 of viewport width */
  margin-right: 11.11vw;  /* Outer (right) margin: 1/9 of viewport width */
  max-width: 75ch;        /* Limit line length to 75 characters */
  overflow: hidden;
  height: calc(100vh - (11.11vh + 22.22vh)); /* Adjust height based on margins */
  position: relative;
}

.title-page {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 2em; /* Adjust as necessary */
  height: 100%;
  text-align: center;
}

.header-title {
  text-align: center;
  margin-top: 0;
}

.content {
  margin-top: 1em;
}

.page-count {
  font-size: 0.9em;
  position: fixed;
  bottom: 1rem;
  right: 1rem;
}

.chapter-navigation {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  width: calc(100% - 22.22vw - 11.11vw); /* Adjust width based on margins */
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}

.chapter-navigation .btn {
  flex: 1;
  margin: 0 5px;
}

@media screen and (max-width: 768px) {
  .chapter-content {
    margin-left: 5vw;
    margin-right: 5vw;
    height: calc(100vh - (11.11vh + 22.22vh)); /* Recalculate height */
  }

  .chapter-navigation {
    width: calc(100% - 10vw); /* Adjust width based on margins */
  }
}
h1 {
  margin-bottom: 20px; /* Adjust the space below the title */
}


.event circle, .branch circle {
  cursor: pointer;
}

.event text, .branch text {
  font-size: 12px;
  fill: black;
}

.timeline-line {
  stroke: #000;
  stroke-width: 2px;
}

/* app/assets/stylesheets/ckeditor.css */
.rich-text-editor {
  margin-bottom: 1rem;
}

.cke_contents {
  min-height: 300px;
  max-height: 600px;
  overflow-y: auto !important;
}

.cke_editable {
  padding: 1rem; 
  background-color: #fafafa;
}

/* Dark theme support */
[data-bs-theme="dark"] .cke_contents {
  background-color: #2b2b2b;
  color: #fff;
}
[data-bs-theme="dark"] .cke_toolgroup,
[data-bs-theme="dark"] .cke_button {
  background-color: #1a1a1a;
  border: 1px solid #404040;
  color: #fff;
}
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
#editor-container {
  border: 1px solid #ccc; /* Add a border around the editor */
  padding: 10px; /* Add padding inside the editor */
  height: 400px; /* Set a fixed height */
  overflow-y: auto; /* Allow vertical scrolling when content exceeds height */
}

.ql-editor {
  white-space: pre-wrap; /* Ensure content wraps properly */
}

/* ===== Notification Styles ===== */

/* Notification Badge */
.notification-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #dc3545;
  color: white;
  border-radius: 10px;
  padding: 2px 6px;
  font-size: 9px;
  font-weight: bold;
  min-width: 18px;
  text-align: center;
  line-height: 1.4;
  border: 2px solid white;
}

/* Notification Dropdown */
.notifications-dropdown {
  width: 380px;
  max-width: 90vw;
  padding: 0;
  border: 1px solid rgba(0,0,0,0.1);
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

.notifications-scroll {
  max-height: 400px;
  overflow-y: auto;
}

.notifications-dropdown .dropdown-header {
  padding: 12px 16px;
  background: #f8f9fa;
  font-size: 0.9rem;
  border-bottom: 1px solid #dee2e6;
}

.notification-item {
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
  transition: background-color 0.2s;
  text-decoration: none;
  color: inherit;
  display: block;
}

.notification-item:hover {
  background-color: #f8f9fa !important;
  text-decoration: none;
}

.notification-item:last-child {
  border-bottom: none;
}

.notification-item.bg-light {
  background-color: #f0f7ff !important;
}

/* Unread indicator */
.notification-item.bg-light .fw-semibold {
  color: #0d6efd;
}

/* Border for unread notifications */
.notification-item.border-start {
  border-left-width: 3px !important;
}

.notification-item.border-primary {
  border-left-color: #0d6efd !important;
}

/* Icons in notifications */
.notification-item i {
  font-size: 1.25rem;
}

/* Scrollbar styling */
.notifications-scroll::-webkit-scrollbar {
  width: 6px;
}

.notifications-scroll::-webkit-scrollbar-track {
  background: #f1f1f1;
}

.notifications-scroll::-webkit-scrollbar-thumb {
  background: #888;
  border-radius: 3px;
}

.notifications-scroll::-webkit-scrollbar-thumb:hover {
  background: #555;
}

/* Empty state */
.dropdown-item .bi-inbox {
  color: #6c757d;
}

/* Ensure dropdown menu stays on top */
.dropdown-menu.notifications-dropdown {
  z-index: 1050;
}
  
