:root {
      --bg-color: #f5f5f5;
      --card-bg: #ffffff;
      --text-main: #333;
      --text-muted: #666;
      --border-color: #eee;
      --input-bg: #ffffff;
      --input-border: #ddd;
      --accent-color: #333;
      --placeholder-color: #aaa;
      --shadow-normal: 0 2px 5px rgba(0,0,0,0.05);
      --shadow-hover: 0 5px 15px rgba(0,0,0,0.15);
      --transition: 0.3s ease;
    }

    body.dark {
      --bg-color: #121212;
      --card-bg: #1e1e1e;
      --text-main: #eaeaea;
      --text-muted: #bbbbbb;
      --border-color: #404040;
      --input-bg: #2a2a2a;
      --input-border: #555;
      --accent-color: #4da6ff;
      --placeholder-color: #888;
      --shadow-normal: 0 4px 12px rgba(0,0,0,0.5);
      --shadow-hover: 0 10px 30px rgba(0,0,0,0.6);
    }

    @font-face {
      font-family: 'July';
      src: url('/files/July-Regular.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
    }

    body {
      margin: 0;
      font-family: "July", system-ui, sans-serif;
      background: var(--bg-color);
      color: var(--text-main);
      min-height: 100vh;
      transition: background var(--transition), color var(--transition);
    }

    header {
      background: var(--card-bg);
      padding: 1rem 1.5rem;
      box-shadow: var(--shadow-normal);
      display: flex;
      align-items: center;
      justify-content: space-between;
      flex-wrap: wrap;
      gap: 1rem;
    }

    .date-input {
      background: var(--input-bg);
      color: var(--text-main);
      border: 1px solid var(--input-border);
      padding: 0.6rem 1rem;
      border-radius: 9999px;
      font-size: 1rem;
      cursor: pointer;
      transition: border-color var(--transition);
    }

    .date-input:hover, .date-input:focus {
      border-color: var(--accent-color);
      outline: none;
    }

    .page-container {
      position: relative;
      max-width: 1100px;
      margin: 1.5rem auto;
      padding: 0 1rem;
    }

    #page-img {
      width: 100%;
      height: auto;
      border-radius: 12px;
      box-shadow: var(--shadow-hover);
      background: var(--card-bg);
    }

    .thumb-bg {
      background: var(--card-bg);
      border-radius: 12px;
      box-shadow: var(--shadow-normal);
      padding: 1.25rem;
      margin: 1.5rem auto;
      max-width: 1100px;
    }

    .nav-btn {
      background: var(--card-bg);
      color: var(--text-main);
      border: 1px solid var(--border-color);
      padding: 0.6rem 1.2rem;
      border-radius: 9999px;
      font-weight: 600;
      transition: all var(--transition);
    }

    .nav-btn:hover {
      background: var(--accent-color);
      color: white;
      border-color: var(--accent-color);
      transform: translateY(-1px);
    }

    .hd-toggle {
      position: absolute;
      top: -12px;
      right: -12px;
      width: 48px;
      height: 28px;
      background: #e5e5e5;
      border-radius: 9999px;
      cursor: pointer;
      transition: background 0.3s;
      box-shadow: inset 0 1px 3px rgba(0,0,0,0.2);
    }

    body.dark .hd-toggle { background: #444; }

    .hd-toggle span {
      position: absolute;
      top: 3px;
      left: 3px;
      width: 22px;
      height: 22px;
      background: white;
      border-radius: 50%;
      transition: transform 0.3s;
      box-shadow: 0 1px 3px rgba(0,0,0,0.3);
    }

    .hd-toggle.active {
      background: #4da6ff;
    }

    .hd-toggle.active span {
      transform: translateX(20px);
    }

    .hotspot {
      position: absolute;
      transition: background 0.2s;
    }

    .hotspot:hover {
      background: rgba(77,166,255,0.18);
    }

    footer {
      text-align: center;
      padding: 1.5rem;
      color: var(--text-muted);
      font-size: 0.95rem;
      border-top: 1px solid var(--border-color);
      margin-top: 2rem;
    }

    /* Modal open → custom scrollbar */
#modal:not(.hidden) #modal-content {
  scrollbar-width: thin;           /* Firefox */
  scrollbar-color: #888 #000;      /* Firefox: thumb + track */
}

/* WebKit browsers (Chrome, Safari, Edge) */
#modal:not(.hidden) #modal-content::-webkit-scrollbar {
  width: 8px;                      /* thickness */
}

#modal:not(.hidden) #modal-content::-webkit-scrollbar-track {
  background: #1e1e1e;             /* track color (dark mode friendly) */
  border-radius: 4px;
}

#modal:not(.hidden) #modal-content::-webkit-scrollbar-thumb {
  background: #666;                /* thumb color */
  border-radius: 4px;
  border: 2px solid #1e1e1e;      /* adds padding effect */
}

#modal:not(.hidden) #modal-content::-webkit-scrollbar-thumb:hover {
  background: #888;
}

    #theme-toggle {
      position: fixed;
      right: 20px;
      bottom: 20px;
      width: 48px;
      height: 48px;
      border-radius: 50%;
      background: var(--card-bg);
      color: var(--text-main);
      border: none;
      box-shadow: var(--shadow-normal);
      cursor: pointer;
      font-size: 1.6rem;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 999;
      transition: all var(--transition);
    }

    #theme-toggle:hover {
      box-shadow: var(--shadow-hover);
      transform: scale(1.1);
    }
/* Adaptive custom scrollbar for thumbnails */
.thumb-bg .flex.overflow-x-auto {
  scrollbar-width: thin;
  scrollbar-color: var(--text-muted) var(--border-color);
}

.thumb-bg .flex.overflow-x-auto::-webkit-scrollbar {
  height: 6px;
}

.thumb-bg .flex.overflow-x-auto::-webkit-scrollbar-track {
  background: var(--border-color);
  border-radius: 3px;
}

.thumb-bg .flex.overflow-x-auto::-webkit-scrollbar-thumb {
  background: var(--text-muted);
  border-radius: 3px;
  border: 2px solid var(--border-color);
}

.thumb-bg .flex.overflow-x-auto::-webkit-scrollbar-thumb:hover {
  background: var(--text-main);
}
