/**
 * Navigation System Styles
 * HUD, modals, accordions, grids, search
 */

/* ── HUD ──────────────────────────────────────────────────── */

.hud {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  min-height: 48px;
  background: var(--hud-bg);
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  padding: 0 16px;
  z-index: 100;
}

.hud__left,
.hud__right {
  display: flex;
  gap: 8px;
  align-items: center;
}

.hud__button {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 6px 12px;
  min-height: 44px;
  border-radius: 4px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.2s;
  display: flex;
  align-items: center;
  gap: 6px;
}

.hud__button:hover {
  background: var(--border);
  border-color: var(--fg-faint);
}

.hud__button:active {
  transform: scale(0.95);
}

.hud__button--temp {
  opacity: 0.6;
  font-size: 1rem;
}

.hud__button-icon {
  display: inline;
}

.hud__button-text {
  display: none;  /* Hidden on mobile by default */
}

/* Show text on desktop or when space allows */
@media (min-width: 600px) {
  .hud__button-text {
    display: inline;
  }
}

/* Dark-mode nav buttons */
[data-theme="dark"] [data-ref="reference-button"] {
  background: linear-gradient(135deg, #3a5fcd 0%, #5a7fe8 100%);
  border-color: rgba(90, 127, 232, 0.3);
  color: #fff;
}

[data-theme="dark"] [data-ref="reference-button"]:hover {
  background: linear-gradient(135deg, #4a6fdd 0%, #6a8ff8 100%);
  border-color: rgba(106, 143, 248, 0.5);
}

[data-theme="dark"] [data-ref="translation-button"] {
  background: linear-gradient(135deg, #2563eb 0%, #14b8a6 100%);
  border-color: rgba(20, 184, 166, 0.3);
  color: #fff;
}

[data-theme="dark"] [data-ref="translation-button"]:hover {
  background: linear-gradient(135deg, #3b73fb 0%, #24c8b6 100%);
  border-color: rgba(36, 200, 182, 0.5);
}

/* Light-mode nav buttons — lighter gradients for contrast with dark label */
[data-theme="light"] [data-ref="reference-button"] {
  background: linear-gradient(135deg, #8ea8f4 0%, #b0c4ff 100%);
  border-color: rgba(142, 168, 244, 0.5);
  color: #1a1a3e;
}

[data-theme="light"] [data-ref="reference-button"]:hover {
  background: linear-gradient(135deg, #9db5f8 0%, #c0d0ff 100%);
  border-color: rgba(157, 181, 248, 0.7);
}

[data-theme="light"] [data-ref="translation-button"] {
  background: linear-gradient(135deg, #7daef4 0%, #6dd8c8 100%);
  border-color: rgba(109, 216, 200, 0.5);
  color: #1a1a3e;
}

[data-theme="light"] [data-ref="translation-button"]:hover {
  background: linear-gradient(135deg, #90bbf8 0%, #80e4d4 100%);
  border-color: rgba(128, 228, 212, 0.7);
}

/* ── Modal Overlay ────────────────────────────────────────── */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--overlay-bg);
  z-index: 200;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
}

.modal-overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* ── Modal Container ──────────────────────────────────────── */

.modal {
  position: fixed;
  top: -100%;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  max-width: 600px;
  max-height: 80vh;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 8px;
  z-index: 201;
  transition: top 0.3s ease-out;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.modal.active {
  top: 10vh;
}

.modal--small {
  max-width: 400px;
}

/* ── Narrow-screen info modal (one-time notice) ───────────── */

.narrow-info__body {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
  padding: 28px 24px 24px;
}

.narrow-info__icon {
  color: var(--accent);
}

.narrow-info__title {
  margin: 0;
  font-size: 1.25rem;
  color: var(--fg);
}

.narrow-info__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--fg-dim);
}

.narrow-info__ok {
  margin-top: 8px;
  width: 100%;
  padding: 14px 20px;
  font-size: 1.0625rem;
  font-weight: 650;
  color: #fff;
  background: var(--accent);
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: filter 0.15s ease;
}

.narrow-info__ok:hover {
  filter: brightness(1.08);
}

.narrow-info__ok:active {
  filter: brightness(0.95);
}

.narrow-info__ok:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}

.modal__header h2 {
  margin: 0;
  font-size: 1.125rem;
  color: var(--fg);
}

.modal__close {
  background: transparent;
  border: none;
  color: var(--fg-dim);
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  transition: all 0.2s;
}

.modal__close:hover {
  background: var(--border);
  color: var(--fg);
}

.modal__body {
  flex: 1;
  overflow-y: auto;
  padding: 20px;
}

/* ── Search Bar ───────────────────────────────────────────── */

.nav-search {
  position: relative;
  margin-bottom: 20px;
}

.nav-search__input {
  width: 100%;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  color: var(--fg);
  font-size: 0.875rem;
}

.nav-search__input:focus {
  border-color: var(--accent);
}

.nav-search__results {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--bg);
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 4px 4px;
  max-height: 200px;
  overflow-y: auto;
  z-index: 10;
  display: none;
}

.search-result-item {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  background: none;
  border: none;
  padding: 10px 12px;
  cursor: pointer;
  color: var(--fg);
  transition: background 0.2s;
}

.search-result-item:hover {
  background: var(--border);
}

.search-no-results {
  padding: 10px 12px;
  color: var(--fg-dim);
  font-style: italic;
}

/* ── Back Button ──────────────────────────────────────────── */

.nav-back {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 8px 16px;
  border-radius: 4px;
  cursor: pointer;
  margin-bottom: 16px;
  display: none;
  transition: all 0.2s;
}

.nav-back:hover {
  background: var(--border);
}

/* ── Accordion Mode ───────────────────────────────────────── */

.nav-accordion {
  display: block;
}

.testament-separator {
  color: var(--accent);
  font-size: 0.75rem;
  font-weight: bold;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 12px 0 8px;
  margin-top: 8px;
}

.testament-separator:first-child {
  margin-top: 0;
}

.accordion-book {
  margin-bottom: 4px;
}

.accordion-book-name {
  display: block;
  width: 100%;
  text-align: left;
  font: inherit;
  padding: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  color: var(--fg);
  transition: all 0.2s;
}

.accordion-book-name:hover {
  background: var(--border);
  border-color: var(--fg-faint);
}

.accordion-book.open .accordion-book-name {
  background: var(--accent);
  color: #000;
  border-color: var(--accent);
}

/* Current book highlight (not expanded) */
.accordion-book.current:not(.open) .accordion-book-name {
  border-color: var(--accent);
  color: var(--accent);
  font-weight: 600;
}

.accordion-chapters {
  display: none;
  grid-template-columns: repeat(auto-fill, minmax(48px, 1fr));
  gap: 8px;
  padding: 12px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-top: none;
  border-radius: 0 0 4px 4px;
}

.chapter-btn {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 10px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s;
}

.chapter-btn:hover {
  background: var(--border);
  border-color: var(--accent);
}

.chapter-btn:active {
  transform: scale(0.95);
}

.chapter-btn.info-btn {
  background: var(--bg);
  border-color: var(--border);
}

/* Active chapter (currently reading) */
.chapter-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #000;
}

[data-theme="light"] .chapter-btn.active {
  background: linear-gradient(135deg, #8ea8f4 0%, #a8c0ff 100%);
  border-color: rgba(142, 168, 244, 0.5);
  color: #1a1a3e;
}

/* ── Grid Mode ────────────────────────────────────────────── */

.nav-grid {
  display: none;
  grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
  gap: 8px;
  position: relative;
}

.grid-book-btn {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 16px 8px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.8125rem;
  transition: all 0.2s;
  font-weight: 500;
}

.grid-book-btn:hover {
  background: var(--border);
  border-color: var(--accent);
  transform: translateY(-2px);
}

.grid-book-btn:active {
  transform: translateY(0);
}

.chapters-header {
  grid-column: 1 / -1;
  font-size: 1.125rem;
  font-weight: bold;
  color: var(--fg);
  margin-bottom: 8px;
}

.grid-chapter-btn {
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--fg);
  padding: 12px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.875rem;
  transition: all 0.2s;
}

.grid-chapter-btn:hover {
  background: var(--border);
  border-color: var(--accent);
}

.grid-chapter-btn:active {
  transform: scale(0.95);
}

/* Active book (currently reading) — grid mode */
.grid-book-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #000;
}

[data-theme="light"] .grid-book-btn.active {
  background: linear-gradient(135deg, #8ea8f4 0%, #a8c0ff 100%);
  border-color: rgba(142, 168, 244, 0.5);
  color: #1a1a3e;
}

/* Active chapter (currently reading) — grid mode */
.grid-chapter-btn.active {
  background: var(--accent);
  border-color: var(--accent);
  color: #000;
}

[data-theme="light"] .grid-chapter-btn.active {
  background: linear-gradient(135deg, #8ea8f4 0%, #a8c0ff 100%);
  border-color: rgba(142, 168, 244, 0.5);
  color: #1a1a3e;
}

/* Slide animations for grid drill-down */
.slide-out-left {
  animation: slideOutLeft 0.3s ease-out;
}

.slide-in-right {
  animation: slideInRight 0.3s ease-out;
}

@keyframes slideOutLeft {
  from { transform: translateX(0); opacity: 1; }
  to { transform: translateX(-20px); opacity: 0; }
}

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

/* ── Translation Modal ────────────────────────────────────── */

.translation-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.translation-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 16px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 4px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  text-align: left;
  transition: all 0.2s;
}

.translation-item:hover:not(.disabled) {
  background: var(--border);
  border-color: var(--accent);
}

.translation-item.active {
  background: var(--accent);
  border-color: var(--accent);
}

.translation-item.active .translation-name,
.translation-item.active .translation-code {
  color: #000;
}

/* Light-mode active translation — lighter accent so dark text pops */
[data-theme="light"] .translation-item.active {
  background: linear-gradient(135deg, #8ea8f4 0%, #a8c0ff 100%);
  border-color: rgba(142, 168, 244, 0.5);
}

[data-theme="light"] .translation-item.active .translation-name,
[data-theme="light"] .translation-item.active .translation-code {
  color: #1a1a3e;
}

.translation-item.disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.translation-name {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--fg);
}

.translation-code {
  font-size: 0.75rem;
  color: var(--fg-dim);
  font-weight: bold;
  letter-spacing: 0.05em;
}

.translation-coming-soon {
  font-size: 0.6875rem;
  color: var(--fg-faint);
  font-style: italic;
}

/* ── Mobile Adjustments ───────────────────────────────────── */

@media (max-width: 768px) {
  .modal {
    width: 95%;
    max-height: 85vh;
  }

  .modal.active {
    top: 5vh;
  }

  .nav-grid {
    grid-template-columns: repeat(auto-fill, minmax(60px, 1fr));
    gap: 6px;
  }

  .grid-book-btn {
    padding: 12px 6px;
    font-size: 0.75rem;
  }

  .accordion-chapters {
    grid-template-columns: repeat(auto-fill, minmax(42px, 1fr));
    gap: 6px;
  }
}

/* ── Hamburger Menu Dropdown ─────────────────────────── */

.hud__hamburger-text {
  margin-left: 4px;
  font-size: 0.875rem;
}

.hamburger-menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 4px;
  min-width: 160px;
  z-index: 150;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity 0.15s ease, transform 0.15s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.hamburger-menu--visible {
  opacity: 1;
  pointer-events: all;
  transform: translateY(0);
}

.hamburger-menu__item {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 14px;
  background: transparent;
  border: none;
  border-radius: 4px;
  color: var(--fg);
  font-size: 0.9375rem;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s;
}

.hamburger-menu__item:hover {
  background: var(--border);
}

/* ── Help Modal ──────────────────────────────────────── */

.help-modal__body {
  padding: 0;
}

.help-nav {
  display: flex;
  border-bottom: 1px solid var(--border);
  padding: 0 16px;
  gap: 4px;
}

.help-nav__item {
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--fg-dim);
  font-size: 0.875rem;
  padding: 12px 10px;
  cursor: pointer;
  margin-bottom: -1px;
  transition: color 0.15s, border-color 0.15s;
}

.help-nav__item:hover {
  color: var(--fg);
}

.help-nav__item--active {
  color: var(--fg);
  border-bottom-color: var(--accent, #4a6cf7);
}

.help-panel {
  padding: 20px 20px;
}

.help-panel p + p {
  margin-top: 1em;
}

.help-panel h3 {
  font-size: 0.8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--fg-muted, var(--fg));
  margin-top: 1.5em;
  margin-bottom: 0.4em;
}

.help-panel ul {
  margin: 0;
  padding-left: 1.3em;
  list-style: disc;
}

.help-panel li {
  margin-bottom: 0.3em;
  line-height: 1.5;
}

.help-panel h3 + ul,
.help-panel h3 + p {
  margin-top: 0;
}

.help-panel a {
  color: var(--accent);
  text-decoration: none;
}

.help-panel a:hover {
  text-decoration: underline;
}

.help-panel--hidden {
  display: none;
}
