/* === BOOT TERMINAL // folder list: reclaim part of .terminal-body padding-right (#termBody only) === */
/* Aim: ~same inset as left (terminal-body padding-left ~22px) from inner right edge of .terminal. */
/* Wider list = meta/size/hover/divider share expanded row; names stay left (no margin-left shift). */
#termBody .folder-list {
  box-sizing: border-box !important;
  width: calc(100% + 300px) !important;
  max-width: none !important;
  margin-right: -300px !important;
  /* ~25% brighter than var(--line) rgba(255,255,255,0.18); keep dotted 1px from v6.3 */
  border-top-color: rgba(255, 255, 255, 0.23) !important;
}
#termBody .folder-row {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  /* Inter-row dividers (border under each row in v6.3): brighter than var(--line-soft) 0.07 */
  border-bottom: 1px dotted rgba(255, 255, 255, 0.16) !important;
}
@media (max-width: 1200px) {
  #termBody .folder-list {
    width: calc(100% + 200px) !important;
    margin-right: -200px !important;
  }
}
@media (max-width: 720px) {
  #termBody .folder-list {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
  }
}


/* === MOBILE HYBRID: old mobile-pass tail (line 5279+), 1024 leak block guarded === */
/* === ASTERRVN mobile overflow clamp (viewer-narrow + phone) === */
@media (max-width: 640px) {
  body.asterrvn-viewer-narrow html,
  body.asterrvn-phone html,
  body.asterrvn-tablet html {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }
  body.asterrvn-viewer-narrow,
  body.asterrvn-phone,
  body.asterrvn-tablet {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }
  body.asterrvn-phone .titlebar .version {
    display: none;
  }
}
body.asterrvn-viewer-narrow .os-window {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}
body.asterrvn-viewer-narrow .titlebar {
  min-width: 0;
  max-width: 100%;
}
body.asterrvn-viewer-narrow .menubar {
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  flex-wrap: nowrap;
  scrollbar-width: none;
}
body.asterrvn-viewer-narrow .menubar::-webkit-scrollbar {
  display: none;
}
body.asterrvn-viewer-narrow #content {
  min-width: 0;
  overflow-x: clip;
}
body.asterrvn-viewer-narrow .about-view {
  overflow-x: clip;
  max-width: 100%;
  box-sizing: border-box;
}
body.asterrvn-viewer-narrow .terminal {
  max-width: 100%;
  overflow-x: clip;
  box-sizing: border-box;
}
body.asterrvn-viewer-narrow .terminal-body {
  padding-left: max(12px, env(safe-area-inset-left, 0px));
  padding-right: max(14px, env(safe-area-inset-right, 0px));
  box-sizing: border-box;
  min-width: 0;
}
body.asterrvn-viewer-narrow #termBody .folder-list {
  width: 100% !important;
  max-width: 100% !important;
  margin-right: 0 !important;
}
body.asterrvn-viewer-narrow .folder-row {
  grid-template-columns: 16px minmax(0, 1.4fr) minmax(0, 1fr) auto !important;
  column-gap: 8px !important;
  padding-right: 4px !important;
}
body.asterrvn-viewer-narrow .folder-row .name,
body.asterrvn-viewer-narrow .folder-row .meta {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
body.asterrvn-viewer-narrow .folder-row .size {
  min-width: 0 !important;
  white-space: nowrap;
  justify-self: end;
}
body.asterrvn-viewer-narrow .logo-gif,
body.asterrvn-viewer-narrow video.logo-gif.logo-tag-video {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
}
body.asterrvn-viewer-narrow .hero {
  max-width: 100%;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
body.asterrvn-viewer-narrow .gallery-view {
  overflow-x: clip;
  max-width: 100%;
  box-sizing: border-box;
}

/* Mobile gallery density GRID 1–5: viewer-narrow + ≤1024 (matches device-viewport isViewerNarrow; desktop ≥1025 unchanged) */
.mobile-gallery-density {
  display: none;
}
@media (max-width: 1024px) {
  body.asterrvn-viewer-narrow.gallery-density-1 {
    --mobile-gallery-cols: 1;
    --mobile-gallery-gap: 12px;
  }
  body.asterrvn-viewer-narrow.gallery-density-2 {
    --mobile-gallery-cols: 2;
    --mobile-gallery-gap: 9px;
  }
  body.asterrvn-viewer-narrow.gallery-density-3 {
    --mobile-gallery-cols: 3;
    --mobile-gallery-gap: 6px;
  }
  body.asterrvn-viewer-narrow.gallery-density-4 {
    --mobile-gallery-cols: 4;
    --mobile-gallery-gap: 5px;
  }
  body.asterrvn-viewer-narrow.gallery-density-5 {
    --mobile-gallery-cols: 5;
    --mobile-gallery-gap: 4px;
  }

  /* From backup/mobile-pass-before-rollback: mobile gallery header + meta (≤1024 viewer-narrow) */
  body.asterrvn-viewer-narrow .gallery-view {
    padding: 18px 14px 40px;
    box-sizing: border-box;
  }
  body.asterrvn-viewer-narrow .gallery-view .gallery-header {
    padding-top: 12px;
    box-sizing: border-box;
  }
  body.asterrvn-viewer-narrow .gallery-header-title-block h2 {
    margin-top: 4px;
  }
  body.asterrvn-viewer-narrow .gallery-header .meta.gallery-meta {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
    text-align: left;
    gap: 4px;
    font-size: clamp(6.5px, 1.9vw, 8px);
    letter-spacing: 0.04em;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }
  body.asterrvn-viewer-narrow .gallery-header .meta.gallery-meta .gallery-meta-dot {
    display: inline;
    flex-shrink: 0;
    padding: 0 2px;
    color: var(--text-dim);
  }
  body.asterrvn-viewer-narrow .gallery-header .meta.gallery-meta .gallery-meta-tagline {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-weight: 400;
    color: var(--text);
  }
  body.asterrvn-viewer-narrow .gallery-header .meta.gallery-meta .gallery-meta-count {
    flex: 0 0 auto;
    white-space: nowrap;
    color: var(--text-dim);
  }

  body.asterrvn-viewer-narrow .gallery-controls {
    display: grid;
    gap: 7px;
    margin-bottom: 14px;
    max-width: 100%;
    overflow-x: hidden;
    box-sizing: border-box;
  }
  body.asterrvn-viewer-narrow .gallery-controls > .filters,
  body.asterrvn-viewer-narrow .gallery-controls > .mobile-gallery-density {
    display: grid !important;
    grid-template-columns: 92px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    margin: 0 !important;
    margin-bottom: 0 !important;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  body.asterrvn-viewer-narrow .gallery-controls .filters .label,
  body.asterrvn-viewer-narrow .gallery-controls .mobile-gallery-density__label {
    margin-right: 0;
    font-size: 9px;
    letter-spacing: 0.16em;
    color: var(--text-dim);
    white-space: nowrap;
    justify-self: start;
  }
  body.asterrvn-viewer-narrow .gallery-controls .filter-options,
  body.asterrvn-viewer-narrow .gallery-controls .mobile-gallery-density__options {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    min-width: 0;
    align-items: center;
  }
  body.asterrvn-viewer-narrow .gallery-controls .filter-btn,
  body.asterrvn-viewer-narrow .gallery-controls .mobile-gallery-density__btn {
    box-sizing: border-box;
    height: 26px;
    min-width: 38px;
    padding: 0 9px;
    font-size: 9px;
    letter-spacing: 0.06em;
    touch-action: manipulation;
  }
  body.asterrvn-viewer-narrow .mobile-gallery-density__btn[aria-pressed="true"] {
    color: var(--accent-bright);
    border-color: var(--accent-bright);
    box-shadow: 0 0 10px rgba(80, 140, 255, 0.25);
    background: rgba(42, 109, 255, 0.12);
  }

  body.asterrvn-viewer-narrow .gallery-view .gallery-grid {
    grid-template-columns: repeat(var(--mobile-gallery-cols, 3), minmax(0, 1fr)) !important;
    gap: var(--mobile-gallery-gap, 6px) !important;
  }

  body.asterrvn-viewer-narrow.gallery-density-4 .gallery-view .poster-card .label {
    font-size: 7px;
    padding: 5px 5px;
    letter-spacing: 0.03em;
  }
  body.asterrvn-viewer-narrow.gallery-density-5 .gallery-view .poster-card .label,
  body.asterrvn-phone.gallery-density-5 .gallery-view .poster-card .label,
  body.asterrvn-tablet.gallery-density-5 .gallery-view .poster-card .label {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .poster-card-media-stack {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 0;
    overflow: hidden;
  }
  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .poster-card-media-stack > .gallery-card-fallback-img {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
  }
  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .poster-card-media-stack > .gallery-card-video-preview {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    transition: opacity 0.18s linear;
    z-index: 2;
  }
  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .poster-card-media-stack > .gallery-card-video-preview.is-playing {
    opacity: 1;
  }
  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .gallery-card-video-preview {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    opacity: 0;
    transition: opacity 0.18s linear;
  }
  body.asterrvn-viewer-narrow.gallery-density-1 .gallery-view .poster-card > .gallery-card-video-preview.is-playing {
    opacity: 1;
  }
}

/* backup/mobile-pass-before-rollback: gallery-controls column gap on tablet (641–1024); phone stays grid block above */
@media (min-width: 641px) and (max-width: 1024px) {
  body.asterrvn-viewer-narrow .gallery-controls {
    display: flex;
    flex-direction: column;
    gap: 18px;
    margin-bottom: 24px;
  }
}

/* Viewer-narrow ≤1024: tag VP9/WebM slab → static WebP (tablet + phone; phone block below repeats for ≤640) */
@media (max-width: 1024px) {
  body.asterrvn-viewer-narrow .about-view .hero video.logo-gif.logo-tag-video,
  body.asterrvn-phone .about-view .hero video.logo-gif.logo-tag-video {
    display: none !important;
  }
  body.asterrvn-viewer-narrow .about-view .hero .logo-tag-mobile-webp,
  body.asterrvn-phone .about-view .hero .logo-tag-mobile-webp {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: min(26vh, 200px) !important;
    object-fit: contain !important;
    transform: none !important;
    margin: 0 auto !important;
    margin-bottom: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none;
  }
}

