/* ==========================================================================
 * NEON NULL v1.24.12 — Screenshot gallery console menu.
 * No-scroll rule: the whole gallery fits the panel viewport. 3x2 grid,
 * paginated. No overflow anywhere.
 * ========================================================================== */
.nn-gal-root {
  position: relative;
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
  gap: 8px;
  overflow: hidden;
}
.nn-gal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex: 0 0 auto;
}
.nn-gal-capture {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border-radius: 12px;
  border: 1px solid #00e5ff;
  background: rgba(0, 229, 255, .08);
  color: #00e5ff;
  font-family: Orbitron, sans-serif;
  font-size: 13px;
  letter-spacing: .12em;
  cursor: pointer;
}
.nn-gal-capture svg { width: 20px; height: 20px; display: block; }
.nn-gal-capture:disabled { opacity: .4; cursor: default; }
.nn-gal-count {
  margin: 0;
  font-family: Orbitron, sans-serif;
  font-size: 12px;
  letter-spacing: .12em;
  color: rgba(205, 238, 255, .65);
}
.nn-gal-grid {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 8px;
  overflow: hidden;
  align-content: center;
}
.nn-gal-msg {
  grid-column: 1 / -1;
  align-self: center;
  text-align: center;
  color: rgba(205, 238, 255, .6);
  font-family: Montserrat, sans-serif;
  font-size: 13px;
  letter-spacing: .1em;
  margin: 0;
}
.nn-gal-cell {
  position: relative;
  border: 1px solid rgba(0, 229, 255, .25);
  border-radius: 10px;
  overflow: hidden;
  background: #060a14;
  padding: 0;
  cursor: pointer;
  min-height: 0;
}
.nn-gal-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.nn-gal-cellbl {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 3px 6px;
  font-family: Montserrat, sans-serif;
  font-size: 10px;
  letter-spacing: .06em;
  color: #dff6ff;
  background: rgba(4, 8, 16, .72);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nn-gal-pager {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
}
.nn-gal-page {
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid rgba(0, 229, 255, .4);
  background: transparent;
  color: #00e5ff;
  font-family: Orbitron, sans-serif;
  font-size: 11px;
  letter-spacing: .1em;
  cursor: pointer;
}
.nn-gal-page:disabled { opacity: .3; cursor: default; }
.nn-gal-pagelbl {
  font-family: Orbitron, sans-serif;
  font-size: 11px;
  letter-spacing: .12em;
  color: rgba(205, 238, 255, .6);
}
/* In-panel lightbox viewer */
.nn-gal-viewer {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: rgba(3, 6, 12, .96);
  border-radius: 16px;
  padding: 12px;
  box-sizing: border-box;
}
.nn-gal-viewer[hidden] { display: none; }
.nn-gal-viewimg {
  flex: 1 1 auto;
  min-height: 0;
  width: 100%;
  object-fit: contain;
  border-radius: 8px;
  background: #000;
}
.nn-gal-viewbar {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.nn-gal-viewlbl {
  /* v1.24.65: own full-width row — the date can never be squeezed into
     an ellipsis by the buttons again. */
  flex: 1 1 100%;
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  letter-spacing: .06em;
  color: rgba(205, 238, 255, .75);
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  text-align: center;
}
.nn-gal-vdel, .nn-gal-vclose {
  /* v1.24.65: split the second row evenly under the full-width date. */
  flex: 1 1 0;
  min-width: fit-content; /* never crush the label — CONFIRM DELETE must stay whole */
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 40px;
  padding: 8px 14px;
  border-radius: 12px;
  border: 1px solid rgba(0, 229, 255, .5);
  background: transparent;
  color: #00e5ff;
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .08em;
  cursor: pointer;
  white-space: nowrap;
}
.nn-gal-vdel svg, .nn-gal-vclose svg { width: 16px; height: 16px; display: block; flex: 0 0 auto; }
.nn-gal-vdel { border-color: rgba(255, 90, 120, .6); color: #ff8ba0; }
/* v1.24.64: armed delete — filled red, unmistakable. */
.nn-gal-vdel.armed {
  background: #c81e3a;
  border-color: #ff5a78;
  color: #fff;
}

/* ==========================================================================
 * v1.24.63 — #galPanel viewer overlay (opened from pause menus only).
 * Fits the viewport, no scroll: the renderInto grid owns the middle,
 * the title and ← BACK stay pinned.
 * ========================================================================== */
#galPanel {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: #0d0214f2;
  text-align: center;
  padding: 20px;
  padding-bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  overflow: hidden;
  box-sizing: border-box;
}
#galPanel > * { flex-shrink: 0; }
.gal-title {
  margin: 0;
  font: italic 700 22px 'Orbitron', 'Arial Black', sans-serif;
  letter-spacing: .08em;
  color: #fff;
  text-shadow: 3px 3px 0 #9026bd;
}
#galBody {
  flex: 1 1 auto;
  min-height: 0;
  width: min(560px, 94vw);
  overflow: hidden;
}
#galBody .nn-gal-root { height: 100%; }
#galClose { width: min(320px, 80vw); }
