/* =========================================================================
   EYIS Press · article page (frontend/objects/article_details.tpl)
   Layout: wide main column (abstract, references) + a narrow right panel
   (downloads, cover, issue, publication facts, share).
   ========================================================================= */

.obj_article_details { color: var(--eyis-text-2); }
.obj_article_details > .page_title {
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.22;
  margin: 0 0 26px;
  max-width: 60rem;
}

.obj_article_details > .row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(260px, 26%, 330px);
  gap: 44px;
  align-items: start;
}
@media (max-width: 900px) {
  .obj_article_details > .row { grid-template-columns: 1fr; gap: 28px; }
}

/* Never nest two right rails: when the page-level block sidebar is already a
   right column, the article's own detail rail drops under the text as a row of
   compact cards instead of stealing another 300px from the reading column. */
@media (min-width: 901px) {
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details > .row {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
  }
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .item,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > section.item {
    min-width: 0;
    height: 100%;
    overflow-wrap: anywhere;
  }
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .cover_image img {
    max-width: 170px;
  }
}

.obj_article_details .main_entry { min-width: 0; }
.obj_article_details .main_entry > .item { margin: 0 0 26px; }
.obj_article_details .item > .label {
  display: block;
  font-family: var(--eyis-font-heading);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--eyis-accent);
  margin: 0 0 10px;
}
.obj_article_details .item.abstract .label,
.obj_article_details .item.references .label {
  font-size: 20px;
  letter-spacing: 0;
  text-transform: none;
  color: var(--eyis-text);
}
.obj_article_details .item.abstract { font-size: 15.5px; line-height: 1.85; color: var(--eyis-text-2); }
.obj_article_details .item.abstract p:last-child { margin-bottom: 0; }

/* authors */
.obj_article_details ul.authors { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.obj_article_details ul.authors > li {
  padding: 12px 14px;
  border: 1px solid var(--eyis-border);
  border-radius: var(--eyis-radius-sm);
  background: var(--eyis-surface-2);
}
.obj_article_details .authors .name { display: block; font-weight: 600; color: var(--eyis-text); font-size: 14px; }
.obj_article_details .authors .affiliation,
.obj_article_details .authors .orcid { display: block; margin-top: 3px; color: var(--eyis-text-3); font-size: 12.5px; }
.obj_article_details .authors .orcid a { overflow-wrap: anywhere; }

/* keywords */
.obj_article_details .item.keywords .value { line-height: 1.9; color: var(--eyis-text-2); }

/* references */
.obj_article_details .references .value p,
.obj_article_details .references .value li {
  margin: 0; padding: 10px 0;
  border-bottom: 1px solid var(--eyis-border);
  font-size: 13px; line-height: 1.7;
}

/* downloads chart — contain Chart.js so its size-monitor cannot blow up */
.obj_article_details .downloads_chart .value {
  position: relative;
  width: 100%;
  max-width: 560px;
  height: 300px;
  overflow: hidden;
}
.obj_article_details .downloads_chart canvas { max-width: 100% !important; height: auto !important; }
.chartjs-size-monitor,
.chartjs-size-monitor * {
  position: absolute !important;
  inset: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: -1 !important;
}

/* ---- right panel ---- */
.obj_article_details .entry_details {
  position: sticky;
  top: calc(var(--eyis-nav-h) + 20px);
  display: grid;
  gap: 14px;
  align-content: start;
}
@media (max-width: 900px) {
  .obj_article_details .entry_details { position: static; }
}
.obj_article_details .entry_details > .item,
.obj_article_details .entry_details > section.item {
  margin: 0;
  padding: 16px;
  border: 1px solid var(--eyis-border);
  border-radius: var(--eyis-radius);
  background: var(--eyis-surface);
  box-shadow: var(--eyis-shadow-sm);
}
.obj_article_details .entry_details .item > .label,
.obj_article_details .entry_details .sub_item > .label {
  font-size: 11px;
  color: var(--eyis-text-3);
}
.obj_article_details .entry_details .value,
.obj_article_details .entry_details .sub_item .value { font-size: 13.5px; color: var(--eyis-text); }

/* cover image — the fix for the 1500px blow-up */
.obj_article_details .entry_details .cover_image { padding: 0; border: 0; background: none; box-shadow: none; }
.obj_article_details .entry_details .cover_image img {
  display: block;
  width: 100%;
  max-width: 240px;
  height: auto;
  margin: 0 auto;
  border-radius: var(--eyis-radius-sm);
  border: 1px solid var(--eyis-border);
}
.obj_article_details .entry_details .sub_item img { width: auto; max-width: 100%; height: auto; }

/* galley download links */
.obj_article_details .galleys_links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.obj_article_details .galleys_links a,
.obj_article_details .galley_link {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  height: 42px;
  border-radius: var(--eyis-radius-sm);
  background: var(--eyis-primary); color: var(--eyis-on-primary);
  font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase;
  text-decoration: none;
}
:root[data-theme="dark"] .obj_article_details .galleys_links a { background: var(--eyis-accent); color: var(--eyis-on-accent); }
.obj_article_details .galleys_links a:hover { filter: brightness(1.08); text-decoration: none; }
.obj_article_details .galleys_links a::before {
  content: "picture_as_pdf"; font-family: 'Material Symbols Outlined'; font-size: 18px;
}

/* publication facts + share */
.obj_article_details .pflPlugin { font-size: 13px; }
.obj_article_details .shariffblock ul,
.obj_article_details .shariff .shariff-buttons {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 8px;
}
.obj_article_details .shariff a,
.obj_article_details .shariff .shariff-button a {
  display: inline-grid; place-items: center;
  width: 38px; height: 38px;
  border: 1px solid var(--eyis-border); border-radius: 999px;
  color: var(--eyis-text-2); text-decoration: none; font-size: 0;
}
.obj_article_details .shariff a:hover { border-color: var(--eyis-accent); color: var(--eyis-accent); }

.obj_article_details .item.pflPlugin publication-facts-label { display: block; }

/* =========================================================================
   Share card — desktop: six services in a clean 3 x 2 grid.
   Shariff ships its own widths/floats, so reset those locally.
   ========================================================================= */
@media (min-width: 901px) {
  .obj_article_details .entry_details .shariff,
  .obj_article_details .entry_details .shariffblock {
    width: 100%;
    min-width: 0;
  }
  .obj_article_details .entry_details .shariff ul,
  .obj_article_details .entry_details .shariff .shariff-buttons,
  .obj_article_details .entry_details .shariffblock ul {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(42px, 1fr));
    gap: 10px !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .obj_article_details .entry_details .shariff li,
  .obj_article_details .entry_details .shariff .shariff-button,
  .obj_article_details .entry_details .shariffblock li {
    float: none !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .obj_article_details .entry_details .shariff a,
  .obj_article_details .entry_details .shariff .shariff-button a,
  .obj_article_details .entry_details .shariffblock a {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    overflow: hidden;
    border-radius: 999px !important;
  }
  .obj_article_details .entry_details .shariff a span,
  .obj_article_details .entry_details .shariffblock a span {
    max-width: 100%;
  }
}

/* =========================================================================
   OJS PDF.js galley viewer
   The PDF viewer is a standalone plugin page (.header_view + #pdfCanvasContainer),
   not the normal article-details layout. Give the embedded viewer the full
   viewport and restore visible return/download controls.
   ========================================================================= */
.header_view {
  min-height: 58px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 16px;
  background: var(--eyis-primary);
  color: var(--eyis-on-primary);
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.header_view .return,
.header_view .download {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 13px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  color: var(--eyis-on-primary);
  text-decoration: none;
}
.header_view .return::before {
  content: "arrow_back";
  font-family: 'Material Symbols Outlined';
  font-size: 20px;
}
.header_view .title {
  min-width: 0;
  flex: 1 1 auto;
  color: var(--eyis-on-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
  font-weight: 600;
}
.header_view .download { gap: 6px; }
.header_view .download::before {
  content: "download";
  font-family: 'Material Symbols Outlined';
  font-size: 20px;
}
#pdfCanvasContainer.galley_view,
#pdfCanvasContainer {
  width: 100% !important;
  max-width: none !important;
  height: calc(100vh - 58px) !important;
  min-height: 620px !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  background: #525659;
}
#pdfCanvasContainer > iframe {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: 100% !important;
  min-height: 620px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: #525659;
}

/* =========================================================================
   EYIS Press 0.1.11 — desktop article metadata consolidation
   Approved layout:
     row 1: cover | [PDF | Published] as one continuous panel
     row 2: [Issue | Publication Facts | Share] as one continuous panel
   Mobile rules are intentionally untouched.
   ========================================================================= */
@media (min-width: 901px) {
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details {
    display: grid;
    grid-template-columns: minmax(150px, .95fr) minmax(150px, 1.05fr) minmax(150px, 1.05fr);
    gap: 14px 0;
    align-items: stretch;
    position: static;
  }

  /* All direct children become clean building blocks.  Their borders are
     re-applied below so adjacent blocks read as a single card. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .item,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > section.item {
    margin: 0 !important;
    min-width: 0;
    height: auto;
    box-shadow: none !important;
  }

  /* 1. Cover remains an independent visual object. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .cover_image {
    grid-column: 1;
    grid-row: 1;
    margin-right: 14px !important;
    padding: 12px !important;
    border: 1px solid var(--eyis-border) !important;
    border-radius: var(--eyis-radius) !important;
    background: var(--eyis-surface) !important;
  }

  /* 2. PDF + Published form ONE top card. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .galleys,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .item.galleys {
    grid-column: 2;
    grid-row: 1;
    padding: 16px !important;
    border: 1px solid var(--eyis-border) !important;
    border-right: 0 !important;
    border-radius: var(--eyis-radius) 0 0 var(--eyis-radius) !important;
    background: var(--eyis-surface) !important;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .published {
    grid-column: 3;
    grid-row: 1;
    padding: 16px !important;
    border: 1px solid var(--eyis-border) !important;
    border-left: 0 !important;
    border-radius: 0 var(--eyis-radius) var(--eyis-radius) 0 !important;
    background: var(--eyis-surface) !important;
  }

  /* If the stock OJS template uses date instead of published as its class. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .date_published {
    grid-column: 3;
    grid-row: 1;
    padding: 16px !important;
    border: 1px solid var(--eyis-border) !important;
    border-left: 0 !important;
    border-radius: 0 var(--eyis-radius) var(--eyis-radius) 0 !important;
    background: var(--eyis-surface) !important;
  }

  /* 3. Issue + both plugin outputs become ONE bottom card. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .issue {
    grid-column: 1;
    grid-row: 2;
    padding: 16px !important;
    border: 1px solid var(--eyis-border) !important;
    border-right: 0 !important;
    border-radius: var(--eyis-radius) 0 0 var(--eyis-radius) !important;
    background: var(--eyis-surface) !important;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .pflPlugin {
    grid-column: 2;
    grid-row: 2;
    padding: 16px !important;
    border-top: 1px solid var(--eyis-border) !important;
    border-bottom: 1px solid var(--eyis-border) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    background: var(--eyis-surface) !important;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariffblock,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariff {
    grid-column: 3;
    grid-row: 2;
    padding: 16px !important;
    border: 1px solid var(--eyis-border) !important;
    border-left: 0 !important;
    border-radius: 0 var(--eyis-radius) var(--eyis-radius) 0 !important;
    background: var(--eyis-surface) !important;
  }

  /* A single subtle separator is enough; no boxed plugin cells. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .pflPlugin,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariffblock,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariff,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .published,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .date_published {
    position: relative;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .pflPlugin::before,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariffblock::before,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .shariff::before,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .published::before,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .date_published::before {
    content: "";
    position: absolute;
    left: 0;
    top: 16px;
    bottom: 16px;
    width: 1px;
    background: var(--eyis-border);
    opacity: .7;
  }

  /* Share services use the available width naturally; no fixed 3x2 cage. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff ul,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff .shariff-buttons,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariffblock ul {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center;
    justify-content: flex-start;
    gap: 10px !important;
    width: 100% !important;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff li,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff .shariff-button,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariffblock li {
    flex: 0 0 auto !important;
    width: auto !important;
  }

  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff a,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariff .shariff-button a,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details .shariffblock a {
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
  }

  /* Keep article-native information visually stronger than plugin chrome. */
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .pflPlugin select,
  :root[data-sidebar="right"] .pkp_structure_content.has_sidebar .obj_article_details .entry_details > .pflPlugin button {
    max-width: 100%;
  }
}
