.tabs { display: flex; gap: 4px; flex-wrap: wrap; }
.tabs button { min-height: 32px; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: .84rem; }
.tabs button.on { background: var(--accent); color: #fff; border-color: transparent; }

.pagegrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(136px, 1fr)); gap: 12px; }
.pagecard { display: grid; gap: 6px; align-content: start; }

.pagebox {
  position: relative;
  display: grid;
  place-items: center;
  height: 156px;
  overflow: hidden;
  border: 1px solid var(--line-2);
  border-radius: 6px;
  background: #fff;
  color: var(--text-2);
  transition: transform .15s;
}
.pagebox img { max-width: 100%; max-height: 100%; object-fit: contain; opacity: 0; transition: opacity .15s; }
.pagebox img.ready { opacity: 1; }
.pagebox .pagenum {
  position: absolute;
  left: 4px;
  bottom: 4px;
  padding: 0 6px;
  border-radius: 999px;
  background: rgba(15, 20, 28, .62);
  color: #fff;
  font-size: .72rem;
  line-height: 1.5;
}
.thumb-fail { font-size: .75rem; color: var(--text-2); }

.mini { width: 28px; height: 28px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); font-size: .8rem; }

.mergelist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.mergelist li { display: grid; grid-template-columns: 64px 1fr; gap: 12px; align-items: center; }
.mergelist strong { display: block; font-size: .9rem; }
.merge-thumb { height: 84px; }

.splitgrid .splitcell {
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.splitgrid .pagebox { transition: border-color .12s, box-shadow .12s; }
.splitcell.on .pagebox { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-bg); }
.splitcell:not(.on) .pagebox { opacity: .55; }

@media (max-width: 560px) { .pagegrid { grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); } }
