/*
 * Fallout Skynet – Content Styles 1.0.13
 * Centralised presentation for page content.
 *
 * Principle: headings, paragraphs and normal links inherit typography and
 * colours from the active Skynet theme. This file defines only component
 * layout, spacing, borders, backgrounds and small UI/meta elements.
 */

:where(.sk-people, .sk-places, .sk-catalog, .sk-records, .sk-entries, .sk-project) {
  --sk-accent: var(--skynet-content-accent, #d8bc2c);
  --sk-panel: var(--skynet-content-panel, rgba(0, 0, 0, .28));
  --sk-panel-strong: var(--skynet-content-panel-strong, rgba(0, 0, 0, .42));
  --sk-line: var(--skynet-content-line, rgba(255, 255, 255, .13));
  --sk-line-soft: var(--skynet-content-line-soft, rgba(255, 255, 255, .08));
  --sk-good: var(--skynet-content-good, #9dbb7f);
  --sk-bad: var(--skynet-content-bad, #c87568);
}

:where(.sk-people, .sk-places, .sk-catalog, .sk-records, .sk-entries, .sk-project),
:where(.sk-people, .sk-places, .sk-catalog, .sk-records, .sk-entries, .sk-project) *,
.sk-table,
.sk-gallery,
.sk-gallery * {
  box-sizing: border-box;
}

/* -------------------------------------------------------------------------
   Global content utilities – no typography overrides for headings/paragraphs
   ------------------------------------------------------------------------- */

.sk-intro {
  margin: 0 0 1.75rem;
  padding-left: 1rem;
  border-left: 3px solid var(--sk-accent, #d8bc2c);
}

.sk-index {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem .9rem;
  margin: 0 0 1.5rem;
  padding: 0 0 .8rem;
  border-bottom: 1px solid var(--sk-line, rgba(255,255,255,.13));
}

.sk-index a {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: .3rem .65rem;
  border: 1px solid var(--sk-line, rgba(255,255,255,.13));
  border-radius: 999px;
  text-decoration: none;
}

.sk-note,
.sk-download {
  margin: 1rem 0 1.5rem;
  padding: .9rem 1rem;
  border: 1px solid var(--sk-line, rgba(255,255,255,.13));
  border-left: 3px solid var(--sk-accent, #d8bc2c);
  background: var(--sk-panel, rgba(0,0,0,.28));
}

.sk-note--warning { border-left-color: var(--sk-bad, #c87568); }
.sk-note--success { border-left-color: var(--sk-good, #9dbb7f); }

.sk-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.35rem;
  padding: .5rem .85rem;
  border: 1px solid var(--sk-accent, #d8bc2c);
  background: transparent;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.sk-button:hover,
.sk-button:focus-visible {
  background: color-mix(in srgb, var(--sk-accent, #d8bc2c) 10%, transparent);
}

.sk-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 1.65rem;
  padding: .18rem .5rem;
  border: 1px solid color-mix(in srgb, var(--sk-accent, #d8bc2c) 45%, transparent);
  border-radius: 999px;
  font-size: .78em;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: .035em;
}

.sk-badge.good,
.sk-text-good { color: var(--sk-good, #9dbb7f); }
.sk-badge.bad,
.sk-text-bad { color: var(--sk-bad, #c87568); }
.sk-text-accent { color: var(--sk-accent, #d8bc2c); }
.sk-text-strong { font-weight: 700; }

.has-text-align-left { text-align: left !important; }
.has-text-align-center { text-align: center !important; }
.has-text-align-right { text-align: right !important; }
.has-text-align-justify { text-align: justify !important; }

img.aligncenter {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
img.alignleft { float: left; margin-right: 1rem; margin-bottom: .6rem; }
img.alignright { float: right; margin-left: 1rem; margin-bottom: .6rem; }

.sk-layout-flex {
  display: flex;
  align-items: center;
  gap: 1.5rem;
}
.sk-layout-flex--wrap { flex-wrap: wrap; }
.sk-flex-300 { flex: 1 1 300px; }
.sk-flex-420 { flex: 1 1 420px; }
.sk-media-medium { display: inline-block; width: 100%; max-width: 430px; height: auto; }

/* -------------------------------------------------------------------------
   Shared metadata/stat blocks
   ------------------------------------------------------------------------- */

.sk-meta,
.sk-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(125px, 1fr));
  margin-top: .9rem;
  border: 1px solid var(--sk-line-soft, rgba(255,255,255,.08));
  background: var(--sk-panel-strong, rgba(0,0,0,.42));
}

.sk-meta > div,
.sk-stats > div,
.sk-meta > li,
.sk-stats > li {
  min-width: 0;
  padding: .65rem .75rem;
  border-right: 1px solid var(--sk-line-soft, rgba(255,255,255,.08));
  border-bottom: 1px solid var(--sk-line-soft, rgba(255,255,255,.08));
  list-style: none;
}

.sk-meta span,
.sk-stats span,
.sk-meta > div > strong:first-child,
.sk-stats > div > strong:first-child {
  display: block;
  margin-bottom: .15rem;
  font-size: .76em;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .7;
}

/* -------------------------------------------------------------------------
   1. PEOPLE – characters, companions, personalities
   ------------------------------------------------------------------------- */

.sk-people { max-width: 1040px; margin-inline: auto; }
.sk-people__list { display: grid; gap: 1.25rem; }

.sk-person {
  display: grid;
  grid-template-columns: minmax(145px, 190px) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
}

.sk-person__media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 165px;
  margin: 0;
  padding: 1rem;
  border-right: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

.sk-person__media img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 260px;
  height: auto;
  margin: 0 !important;
  object-fit: contain;
}

.sk-person__body { min-width: 0; padding: 1rem 1.1rem 1.1rem; }

.sk-person__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: start;
  margin-bottom: .8rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--sk-line-soft);
}

.sk-person__head :is(h2,h3,h4),
.sk-person__title { margin-top: 0; }
.sk-person__desc > :last-child,
.sk-person__body > :last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
   2. PLACES – locations and towns
   ------------------------------------------------------------------------- */

.sk-places { max-width: 1040px; margin-inline: auto; }
.sk-place-list { display: grid; gap: 1.25rem; }

.sk-place {
  display: grid;
  grid-template-columns: minmax(180px, 235px) minmax(0, 1fr);
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
}

.sk-place__media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  margin: 0;
  padding: 1rem;
  border-right: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

.sk-place__media img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0 !important;
  object-fit: contain;
}

.sk-place__media.dual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: .65rem;
}

.sk-place__body { min-width: 0; padding: 1rem 1.1rem 1.1rem; }
.sk-place__head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .75rem;
  align-items: start;
  margin-bottom: .8rem;
  padding-bottom: .7rem;
  border-bottom: 1px solid var(--sk-line-soft);
}
.sk-place__head :is(h2,h3,h4), .sk-place__title { margin-top: 0; }

/* -------------------------------------------------------------------------
   3. CATALOG – weapons, armour, ammunition, items and perks
   ------------------------------------------------------------------------- */

.sk-catalog { max-width: 1040px; margin-inline: auto; }
.sk-catalog__section { margin-bottom: 2rem; }
.sk-catalog__section-title { padding-bottom: .45rem; border-bottom: 1px solid var(--sk-line); }
.sk-catalog__grid { display: grid; gap: 1rem; }

.sk-catalog-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  min-height: 150px;
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
}

.sk-catalog-card__media {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  margin: 0;
  padding: .85rem;
  border-right: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

.sk-catalog-card__media img {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 125px;
  height: auto;
  margin: 0 !important;
  object-fit: contain;
}

.sk-catalog--armor .sk-catalog-card__media img { max-height: 190px; }
.sk-catalog--perks .sk-catalog-card__media img { max-height: 96px; }

.sk-catalog-card__body { min-width: 0; padding: .9rem 1rem 1rem; }
.sk-catalog-card__head {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .65rem;
  align-items: start;
  margin-bottom: .65rem;
}
.sk-catalog-card__head :is(h2,h3,h4), .sk-catalog-card__title { margin-top: 0; }
.sk-catalog-card__tags { display: flex; flex-wrap: wrap; gap: .35rem; justify-content: flex-end; }

.sk-filter {
  margin: 0 0 1.5rem;
  padding: .9rem;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

.sk-filter__row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
  gap: .65rem;
  align-items: end;
}

.sk-filter__field label {
  display: block;
  margin-bottom: .3rem;
  font-size: .76em;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  opacity: .72;
}

.sk-filter input:not([type="checkbox"]):not([type="radio"]),
.sk-filter select {
  width: 100%;
  min-height: 2.35rem;
  padding: .45rem .6rem;
  border: 1px solid var(--sk-line);
  border-radius: 0;
  background: var(--sk-panel-strong);
  color: inherit;
  font: inherit;
}

/* Checkboxes/radios are controls, not text fields. Keep them compact in every
   content filter even when the active theme has broad input rules. */
.sk-filter input[type="checkbox"],
.sk-filter input[type="radio"] {
  box-sizing: border-box;
  flex: 0 0 auto;
  width: 14px;
  min-width: 14px;
  max-width: 14px;
  height: 14px;
  min-height: 14px;
  padding: 0;
  margin: 0;
  accent-color: var(--sk-accent);
}

.sk-filter button {
  min-height: 2.35rem;
  padding: .45rem .7rem;
  border: 1px solid var(--sk-accent);
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}

.sk-filter__summary { margin-top: .55rem; }
.sk-filter .is-hidden, .sk-catalog .is-hidden { display: none !important; }

/* -------------------------------------------------------------------------
   4. RECORDS – holodisks, endings, episodes, easter eggs
   ------------------------------------------------------------------------- */

.sk-records { max-width: 1040px; margin-inline: auto; }
.sk-record-list { display: grid; gap: 1rem; }
.sk-record-section { margin-bottom: 2rem; }
.sk-record-section-title { padding-bottom: .45rem; border-bottom: 1px solid var(--sk-line); }

.sk-record {
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
}

.sk-record--with-media {
  display: grid;
  grid-template-columns: minmax(165px, 220px) minmax(0,1fr);
}

.sk-record__media {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 1rem;
  border-right: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}
.sk-record__media img { display:block; max-width:100%; height:auto; margin:0 !important; object-fit:contain; }
.sk-record__body { min-width:0; padding: 1rem; }
.sk-record__head {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: .65rem;
  align-items: start;
  margin-bottom: .7rem;
  padding-bottom: .65rem;
  border-bottom: 1px solid var(--sk-line-soft);
}
.sk-record__head :is(h2,h3,h4), .sk-record__title { margin-top: 0; }
.sk-record__content {
  margin-top: .9rem;
  padding: .85rem .9rem;
  border-left: 3px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

/* -------------------------------------------------------------------------
   5. ENCYCLOPEDIA ENTRIES – factions, bestiary, studios and other directories
   ------------------------------------------------------------------------- */

.sk-entries { max-width: 1080px; margin-inline: auto; }
.sk-entry-list { display: grid; gap: 1rem; }
.sk-entry-section { margin-bottom: 2rem; }

.sk-entry {
  overflow: hidden;
  margin-bottom: 1rem;
  padding: 1rem;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
}

.sk-entry--compact {
  display: grid;
  grid-template-columns: auto minmax(0,1fr) auto;
  gap: .8rem;
  align-items: center;
}

.sk-entry__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: .6rem;
  margin-bottom: .65rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--sk-line-soft);
}
.sk-entry__head :is(h2,h3,h4), .sk-entry__title { margin-top:0; }
.sk-entry__media { margin: 0; }
.sk-entry__media img { display:block; max-width:100%; height:auto; margin:0 !important; }
.sk-entry__actions { white-space: nowrap; }

/* -------------------------------------------------------------------------
   6. TABLES / REFERENCE
   ------------------------------------------------------------------------- */

.sk-table {
  width: 100%;
  margin: 1rem 0 1.5rem;
  border-collapse: collapse;
  border-spacing: 0;
  background: var(--skynet-content-panel, rgba(0,0,0,.28));
}

.sk-table th,
.sk-table td {
  padding: .6rem .7rem;
  border: 1px solid var(--skynet-content-line, rgba(255,255,255,.13));
  vertical-align: top;
}

.sk-table th { font-weight: 700; text-align: left; }
.sk-table img { max-width: 100%; height: auto; }
.sk-table--compact th, .sk-table--compact td { padding: .42rem .55rem; }

/* -------------------------------------------------------------------------
   7. MEDIA / GALLERIES
   ------------------------------------------------------------------------- */

.sk-media {
  margin: 1rem 0 1.5rem;
}
.sk-media img { display:block; max-width:100%; height:auto; margin-inline:auto; }
.sk-caption { margin-top:.4rem; text-align:center; opacity:.72; }

.sk-gallery,
.wp-block-gallery.sk-gallery,
.gallery {
  gap: .7rem;
}

.sk-gallery figure,
.sk-gallery .wp-block-image,
.gallery .gallery-item {
  margin: 0;
}

.sk-gallery img,
.gallery img {
  display: block;
  max-width: 100%;
  height: auto;
  border: 1px solid var(--skynet-content-line, rgba(255,255,255,.13));
}

/* -------------------------------------------------------------------------
   8. PROJECT / DEMO / SPECIAL DOCUMENT COMPONENTS
   ------------------------------------------------------------------------- */

.sk-project { max-width: 1040px; margin-inline: auto; }
.sk-project-grid { display:grid; grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); gap:1rem; }
.sk-project .sk-entry:last-child { margin-bottom: 0; }

/* -------------------------------------------------------------------------
   Responsive behaviour
   ------------------------------------------------------------------------- */

@media (max-width: 760px) {
  .sk-person,
  .sk-place,
  .sk-catalog-card,
  .sk-record--with-media {
    grid-template-columns: 1fr;
  }

  .sk-person__media,
  .sk-place__media,
  .sk-catalog-card__media,
  .sk-record__media {
    border-right: 0;
    border-bottom: 1px solid var(--sk-line);
  }

  .sk-person__head,
  .sk-place__head,
  .sk-catalog-card__head,
  .sk-record__head {
    grid-template-columns: 1fr;
  }

  .sk-catalog-card__tags { justify-content: flex-start; }
  .sk-entry--compact { grid-template-columns: 1fr; }
  .sk-layout-flex { align-items: stretch; }

  .sk-table {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

@media (max-width: 520px) {
  img.alignleft,
  img.alignright {
    float: none;
    display: block;
    margin-left: auto;
    margin-right: auto;
  }
}

/* Small semantic utilities produced by the DB normalizer. */
.sk-text-underline { text-decoration: underline; }
.sk-overflow-auto { overflow: auto; }
.sk-valign-top { vertical-align: top !important; }
.sk-valign-middle { vertical-align: middle !important; }
.sk-valign-bottom { vertical-align: bottom !important; }

/* =========================================================================
   Content Styles 1.1.1 – structural variants
   These are content-type layouts, not per-page typography. Headings and
   ordinary paragraphs continue to inherit their font, size and colour from
   the active Skynet theme.
   ========================================================================= */

/* -------------------------------------------------------------------------
   RECORDS / ENDINGS – Fallout 1, Fallout 2 and future ending-slide pages
   ------------------------------------------------------------------------- */

.sk-records--endings .sk-record--ending {
  display: block;
  margin: 0 0 2.1rem;
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .26);
}

.sk-records--endings .sk-record--ending .sk-record__media {
  display: block;
  margin: 0;
  padding: 0;
  border-right: 0;
  border-bottom: 1px solid var(--sk-line);
  background: #000;
}

.sk-records--endings .sk-record--ending .sk-record__media img {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0 !important;
}

.sk-records--endings .sk-record--ending .sk-record__body {
  padding: 1.35rem 1.5rem 1.5rem;
}

.sk-records--endings .sk-record--ending .sk-record__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: start;
  margin: 0 0 1rem;
  padding: 0 0 .9rem;
  border-bottom: 1px solid var(--sk-line-soft);
}

.sk-records--endings .sk-record--ending .sk-record__head > div {
  min-width: 0;
}

.sk-records--endings .sk-record--ending .sk-person__role,
.sk-records--endings .sk-record--ending .fo1-character-role,
.sk-records--endings .sk-record--ending .fo2-ending-role {
  margin: .25rem 0 0;
  opacity: .74;
}

.sk-records--endings .sk-record--ending .sk-badge {
  justify-self: end;
}

.sk-records--endings .sk-record--ending .sk-meta {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

/* -------------------------------------------------------------------------
   CATALOG / AMMUNITION – shared FO1 / FO2 ammo presentation
   ------------------------------------------------------------------------- */

.sk-catalog--ammo .sk-catalog__grid {
  gap: 1.1rem;
}

.sk-catalog--ammo .sk-catalog-card {
  grid-template-columns: 150px minmax(0, 1fr);
  min-height: 170px;
}

.sk-catalog--ammo .sk-catalog-card__media {
  min-height: 150px;
  background: var(--sk-panel-strong);
}

.sk-catalog--ammo .sk-catalog-card__media img {
  width: auto;
  max-width: 120px;
  max-height: 100px;
  height: auto;
  object-fit: contain;
}

.sk-catalog--ammo .sk-stats {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

/* -------------------------------------------------------------------------
   ENCYCLOPEDIA / BESTIARY – creature directory cards
   ------------------------------------------------------------------------- */

.sk-entries--bestiary .sk-index {
  gap: .5rem 1.1rem;
  margin-bottom: 2rem;
}

.sk-entries--bestiary .sk-index a {
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
}

.sk-entries--bestiary .sk-index a::before {
  content: "▪";
  margin-right: .4rem;
  color: var(--sk-accent);
}

.sk-entries--bestiary .sk-entry-section {
  margin: 0 0 2.4rem;
}

.sk-entries--bestiary .sk-entry {
  display: flow-root;
  margin: 0 0 1.1rem;
  padding: .95rem 1rem 1rem;
  overflow: hidden;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .22);
}

.sk-entries--bestiary .sk-entry > p:first-of-type > a:first-child:has(img) {
  float: left;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 148px;
  height: 146px;
  margin: 0 1rem .75rem 0;
  padding: .85rem;
  border: 1px solid var(--sk-line);
  background: #050505;
  text-decoration: none;
}

.sk-entries--bestiary .sk-entry > p:first-of-type > a:first-child:has(img):hover,
.sk-entries--bestiary .sk-entry > p:first-of-type > a:first-child:has(img):focus-visible {
  border-color: var(--sk-accent);
}

.sk-entries--bestiary .sk-entry > p:first-of-type > a:first-child img {
  float: none !important;
  display: block;
  width: 125px !important;
  height: 120px !important;
  max-width: none !important;
  margin: 0 !important;
  object-fit: contain;
  image-rendering: pixelated;
}

.sk-entries--bestiary .sk-entry > ul {
  clear: both;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: .8rem 0 0;
  padding: 0;
  border: 1px solid var(--sk-line-soft);
  background: var(--sk-panel-strong);
  list-style: none;
}

.sk-entries--bestiary .sk-entry > ul > li {
  min-width: 0;
  margin: 0;
  padding: .55rem .65rem;
  border-right: 1px solid var(--sk-line-soft);
  list-style: none;
}

.sk-entries--bestiary .sk-entry > ul > li:last-child {
  border-right: 0;
}

.sk-entries--bestiary .sk-entry > ul > li > strong:first-child {
  display: block;
  margin-bottom: .15rem;
  opacity: .62;
}

/* -------------------------------------------------------------------------
   TABLES / REFERENCE – scroll container without destroying table layout
   ------------------------------------------------------------------------- */

.sk-table-wrap {
  width: 100%;
  max-width: 100%;
  margin: 1rem 0 1.5rem;
  overflow-x: auto;
  border: 1px solid var(--skynet-content-line, rgba(255,255,255,.13));
  background: var(--skynet-content-panel, rgba(0,0,0,.28));
  -webkit-overflow-scrolling: touch;
}

.sk-table-wrap .sk-table {
  display: table;
  width: 100%;
  min-width: 640px;
  margin: 0;
  border: 0;
  background: transparent;
}

.sk-table-wrap .sk-table--wide {
  min-width: 940px;
}

.sk-table-wrap .sk-table th,
.sk-table-wrap .sk-table td {
  border-top: 0;
  border-left: 0;
}

.sk-table-wrap .sk-table th:last-child,
.sk-table-wrap .sk-table td:last-child {
  border-right: 0;
}

.sk-table-wrap .sk-table tbody tr:last-child td {
  border-bottom: 0;
}

.sk-table--reference thead th {
  background: rgba(0, 0, 0, .22);
}

.sk-table--reference tbody tr:hover td {
  background: rgba(255, 255, 255, .025);
}

@media (max-width: 760px) {
  .sk-records--endings .sk-record--ending .sk-record__head {
    grid-template-columns: 1fr;
  }

  .sk-records--endings .sk-record--ending .sk-badge {
    justify-self: start;
  }

  .sk-records--endings .sk-record--ending .sk-meta {
    grid-template-columns: 1fr;
  }

  .sk-catalog--ammo .sk-catalog-card {
    grid-template-columns: 1fr;
  }

  .sk-catalog--ammo .sk-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sk-table-wrap .sk-table {
    display: table;
  }
}

@media (max-width: 560px) {
  .sk-entries--bestiary .sk-index {
    display: block;
  }

  .sk-entries--bestiary .sk-index a {
    display: flex;
    margin-bottom: .45rem;
  }

  .sk-entries--bestiary .sk-entry > p:first-of-type > a:first-child:has(img) {
    float: none;
    width: 100%;
    margin: 0 0 .85rem;
  }

  .sk-entries--bestiary .sk-entry > ul {
    grid-template-columns: 1fr;
  }

  .sk-entries--bestiary .sk-entry > ul > li {
    border-right: 0;
    border-bottom: 1px solid var(--sk-line-soft);
  }

  .sk-entries--bestiary .sk-entry > ul > li:last-child {
    border-bottom: 0;
  }
}

/* =========================================================================
   Content Styles 1.0.2 – encounter images, table surfaces and image zoom
   ========================================================================= */

/* -------------------------------------------------------------------------
   RECORDS / RANDOM ENCOUNTERS
   The old pages used overflow:auto only as a float-clearing hack. It must not
   turn each encounter into its own scroll box after inline CSS normalization.
   ------------------------------------------------------------------------- */

.sk-records--encounters {
  --sk-encounter-image-width: 220px;
}

.sk-records--encounters > .sk-overflow-auto {
  display: flow-root;
  overflow: visible;
  min-height: 145px;
  margin: 0 0 1.2rem;
  padding: .9rem 1rem;
  border: 1px solid var(--sk-line, rgba(255,255,255,.13));
  background: var(--sk-panel, rgba(0,0,0,.28));
}

.sk-records--encounters > .sk-overflow-auto + hr {
  display: none;
}

.sk-records--encounters > .sk-overflow-auto img.alignleft {
  float: left;
  display: block;
  width: var(--sk-encounter-image-width);
  max-width: 40%;
  height: auto;
  margin: 0 1rem .65rem 0 !important;
  object-fit: contain;
}

.sk-records--encounters > .sk-overflow-auto img.alignright {
  float: right;
  display: block;
  width: 156px;
  max-width: 28%;
  height: auto;
  margin: 0 0 .65rem 1rem !important;
  object-fit: contain;
}

/* FO1 has older free-flow markup. Keep its declared image proportions, but
   prevent images from dominating the text column. */
.sk-records--encounters > img.alignleft,
.sk-records--encounters > img.alignright {
  max-width: min(42%, 310px);
  height: auto;
}

/* -------------------------------------------------------------------------
   TABLES – one Skynet default instead of page-specific black grids
   ------------------------------------------------------------------------- */

.sk-table {
  --sk-table-head-bg: var(--skynet-content-table-head-bg, #28251a);
  --sk-table-head-border: var(--skynet-content-table-head-border, rgba(216,188,44,.48));
  --sk-table-row-alt: var(--skynet-content-table-row-alt, rgba(255,255,255,.022));
}

.sk-table th,
.sk-table thead td {
  background: var(--sk-table-head-bg);
  border-color: var(--sk-table-head-border);
}

.sk-table th {
  color: var(--skynet-content-table-head-text, #d8bc2c);
}

.sk-table thead tr:last-child > :is(th,td) {
  border-bottom-color: var(--sk-table-head-border);
}

.sk-table tbody tr:nth-child(even) > td {
  background: var(--sk-table-row-alt);
}

/* A lot of legacy Skynet tables have no <thead>/<th>; their first row is a
   header made from bold cells. Treat only rows where every TD contains bold
   content as a header, so ordinary first rows remain untouched. */
.sk-table tbody > tr:first-child:not(:has(> td:not(:has(strong)))) > td {
  background: var(--sk-table-head-bg);
  border-color: var(--sk-table-head-border);
}

.sk-table tbody > tr:first-child:not(:has(> td:not(:has(strong)))) > td strong {
  color: var(--skynet-content-table-head-text, #d8bc2c);
}

.sk-table caption {
  padding: .55rem .7rem;
  border: 1px solid var(--sk-table-head-border);
  border-bottom: 0;
  background: var(--sk-table-head-bg);
  text-align: left;
  font-weight: 700;
}

/* Explicit escape hatch for rare tables that genuinely need a flat surface. */
.sk-table--plain th,
.sk-table--plain thead td,
.sk-table--plain tbody > tr:first-child > td {
  background: transparent;
  color: inherit;
  border-color: var(--skynet-content-line, rgba(255,255,255,.13));
}

/* -------------------------------------------------------------------------
   CONTENT IMAGE ZOOM / LIGHTBOX
   ------------------------------------------------------------------------- */

.sk-content-zoomable {
  cursor: zoom-in;
}

.sk-content-lightbox[hidden] {
  display: none !important;
}

.sk-content-lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: clamp(16px, 4vw, 56px);
  background: rgba(0,0,0,.88);
}

.sk-content-lightbox__figure {
  position: relative;
  max-width: min(96vw, 1600px);
  max-height: 92vh;
  margin: 0;
  text-align: center;
}

.sk-content-lightbox__image {
  display: block;
  width: auto;
  max-width: 100%;
  max-height: 86vh;
  height: auto;
  margin: 0 auto;
  border: 1px solid rgba(216,188,44,.42);
  background: #000;
  object-fit: contain;
}

.sk-content-lightbox__caption {
  margin-top: .55rem;
  opacity: .8;
}

.sk-content-lightbox__close {
  position: fixed;
  top: 14px;
  right: 18px;
  width: 42px;
  height: 42px;
  padding: 0;
  border: 1px solid rgba(216,188,44,.55);
  background: #111;
  color: #d8bc2c;
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

body.sk-content-lightbox-open {
  overflow: hidden;
}

@media (max-width: 620px) {
  .sk-records--encounters > .sk-overflow-auto {
    min-height: 0;
  }

  .sk-records--encounters > .sk-overflow-auto img.alignleft,
  .sk-records--encounters > .sk-overflow-auto img.alignright,
  .sk-records--encounters > img.alignleft,
  .sk-records--encounters > img.alignright {
    float: none;
    width: auto;
    max-width: min(100%, 320px);
    margin: 0 auto .85rem !important;
  }
}

/* -------------------------------------------------------------------------
   Content Styles 1.0.3 – long-form text alignment
   ------------------------------------------------------------------------- */

/*
 * Long-form page copy is justified consistently across Skynet. Short
 * one-line labels are visually unaffected, while explicit WordPress text
 * alignment classes above keep their requested alignment via !important.
 * Typography itself (font, size, colour, line-height) still belongs to the
 * active theme.
 */
:where(.entry-content, .page-content, .post-content, main article) p {
  text-align: justify;
  text-justify: inter-word;
}

/* =========================================================================
   Content Styles 1.0.5 – runtime/native content profiles
   ========================================================================= */

/*
 * IMPORTANT: profile presentation is detected from semantic classes that are
 * already part of the normalized content (fo1-roster, fs-fo1-companions,
 * fo-demo-page, ...). No extra profile classes have to be written into the DB.
 * The old sk-* profile classes remain supported only for backward compatibility
 * with sites that already applied an earlier migration patch.
 */

/* Classic isometric companions (FO1/FO2).
   Keep the original compact 170px media rail and enlarge the source sprite only
   about 1.5x. This preserves the intentionally chunky/pixelated look without
   turning a tiny game sprite into a poster. */
:is(.sk-people--companions-classic, .fs-fo1-companions, .fs-fo2-companions) .sk-person {
  grid-template-columns: 170px minmax(0, 1fr);
}

:is(.sk-people--companions-classic, .fs-fo1-companions, .fs-fo2-companions) .sk-person__media {
  min-height: 175px;
  padding: 1rem;
  overflow: hidden;
}

:is(.sk-people--companions-classic, .fs-fo1-companions, .fs-fo2-companions) .sk-person__media img {
  width: auto;
  max-width: none;
  max-height: none;
  height: auto;
  object-fit: contain;
  transform: scale(1.5);
  transform-origin: center center;
  image-rendering: pixelated;
}

/* Talking heads / portrait rosters.
   FO1/FO2 Postavy and FNV companions are detected from their existing semantic
   roster classes, so the large portrait works even without any DB profile tag. */
:is(.sk-people--portrait, .fo1-roster.sk-people, .fo2-roster.sk-people, .fnv-roster.sk-people) .sk-person {
  display: block;
}

:is(.sk-people--portrait, .fo1-roster.sk-people, .fo2-roster.sk-people, .fnv-roster.sk-people) .sk-person__media {
  min-height: 0;
  padding: .8rem;
  border-right: 0;
  border-bottom: 1px solid var(--sk-line);
  background: #050505;
}

:is(.sk-people--portrait, .fo1-roster.sk-people, .fo2-roster.sk-people, .fnv-roster.sk-people) .sk-person__media img {
  display: block;
  width: min(100%, 820px);
  max-width: 100%;
  max-height: 430px;
  height: auto;
  margin: 0 auto !important;
  object-fit: contain;
  image-rendering: auto;
}

/* Towns and major locations use the same visual hierarchy as characters:
   large location image first, then title/copy and structured metadata. */
:is(.sk-places--showcase, .fo1-roster.sk-places, .fo2-roster.sk-places) .sk-place {
  display: block;
}

:is(.sk-places--showcase, .fo1-roster.sk-places, .fo2-roster.sk-places) .sk-place__media {
  min-height: 0;
  padding: .8rem;
  border-right: 0;
  border-bottom: 1px solid var(--sk-line);
  background: #050505;
}

:is(.sk-places--showcase, .fo1-roster.sk-places, .fo2-roster.sk-places) .sk-place__media img {
  display: block;
  width: min(100%, 900px);
  max-width: 100%;
  max-height: 470px;
  height: auto;
  margin: 0 auto !important;
  object-fit: contain;
  image-rendering: auto;
}

/* Demo / technology-demo pages.
   Detect the three current page families from their native wrappers; no SQL
   profile class is required. Screenshots intentionally use the whole content
   width even if an old source has to be enlarged slightly. */
:is(.sk-project--demo, .fo-demo-page, .fallout-tactics-demo, .van-buren-tech-demo) :is(.sk-media, .sk-media > a, .sk-gallery, .sk-gallery > *, .sk-gallery figure, .sk-gallery a) {
  width: 100%;
  max-width: none;
}

:is(.sk-project--demo, .fo-demo-page, .fallout-tactics-demo, .van-buren-tech-demo) :is(.sk-media img, .sk-gallery img) {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  margin: 0 auto;
  object-fit: contain;
}

:is(.sk-project--demo, .fo-demo-page, .fallout-tactics-demo, .van-buren-tech-demo) .sk-gallery {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

:is(.sk-project--demo, .fo-demo-page, .fallout-tactics-demo, .van-buren-tech-demo) .sk-gallery > :is(a, div) {
  display: block;
  margin: 0;
}

@media (max-width: 760px) {
  :is(.sk-people--companions-classic, .fs-fo1-companions, .fs-fo2-companions) .sk-person {
    grid-template-columns: 1fr;
  }

  :is(.sk-people--companions-classic, .fs-fo1-companions, .fs-fo2-companions) .sk-person__media img {
    transform: scale(1.35);
  }

  :is(.sk-people--portrait, .fo1-roster.sk-people, .fo2-roster.sk-people, .fnv-roster.sk-people) .sk-person__media img,
  :is(.sk-places--showcase, .fo1-roster.sk-places, .fo2-roster.sk-places) .sk-place__media img {
    width: 100%;
    max-height: none;
  }
}

/* =========================================================================
   Content Styles 1.0.6 – filter control normalization
   ========================================================================= */

/* FNV weapons originally used a compact wrapping toolbar. The normalized
   generic grid is useful for labelled filters, but this filter has naked
   controls + one checkbox toggle, so restore the toolbar layout centrally. */
.fnv-weapon-filter .fnv-weapon-filter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem;
}

.fnv-weapon-filter .fnv-weapon-filter-row > input[type="search"] {
  flex: 1 1 220px;
  width: auto;
  min-width: 220px;
}

.fnv-weapon-filter .fnv-weapon-filter-row > select {
  flex: 1 1 145px;
  width: auto;
  min-width: 145px;
}

.fnv-weapon-filter .fnv-weapon-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .45rem;
  min-height: 2.35rem;
  margin: 0;
  padding: 0 .65rem;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
  white-space: nowrap;
  cursor: pointer;
}

.fnv-weapon-filter .fnv-weapon-toggle > input[type="checkbox"] {
  width: 14px;
  min-width: 14px;
  max-width: 14px;
  height: 14px;
  min-height: 14px;
}

.fnv-weapon-filter .fnv-weapon-filter-row > button {
  flex: 0 0 auto;
  width: auto;
  min-width: 110px;
}

@media (max-width: 520px) {
  .fnv-weapon-filter .fnv-weapon-filter-row {
    display: grid;
    grid-template-columns: 1fr;
  }

  .fnv-weapon-filter .fnv-weapon-filter-row > input[type="search"],
  .fnv-weapon-filter .fnv-weapon-filter-row > select,
  .fnv-weapon-filter .fnv-weapon-toggle,
  .fnv-weapon-filter .fnv-weapon-filter-row > button {
    width: 100%;
    min-width: 0;
  }
}

/* =========================================================================
   Content Styles 1.0.7 – Fallout 1 random encounters
   ========================================================================= */

/* Fallout 1 still uses the original free-flow structure:
   image + text + HR, without a wrapper around each encounter. The HR must
   terminate any floated image, otherwise one encounter bleeds into the next. */
.sk-records--encounters > hr {
  clear: both;
  display: block;
  width: 100%;
  height: 0;
  margin: 1.1rem 0;
  border: 0;
  border-top: 1px solid var(--sk-line, rgba(255,255,255,.13));
}

/* Fallout 2 has proper per-encounter wrappers; keep its separator hidden. */
.sk-records--encounters > .sk-overflow-auto + hr {
  display: none;
}

/* Restore the intended Fallout 1 layout explicitly instead of relying on
   whatever float rules the active WordPress theme happens to provide. */
.sk-records--encounters > img.alignleft {
  float: left;
  display: block;
  width: auto;
  max-width: min(42%, 310px);
  height: auto;
  margin: 0 1rem .65rem 0 !important;
  object-fit: contain;
}

.sk-records--encounters > img.alignright {
  float: right;
  display: block;
  width: auto;
  max-width: min(42%, 310px);
  height: auto;
  margin: 0 0 .65rem 1rem !important;
  object-fit: contain;
}

.sk-records--encounters > strong:first-child {
  display: block;
  margin-bottom: 1rem;
}

@media (max-width: 620px) {
  .sk-records--encounters > img.alignleft,
  .sk-records--encounters > img.alignright {
    float: none;
    width: auto;
    max-width: 100%;
    margin: .35rem auto .8rem !important;
  }
}

/* =========================================================================
   Content Styles 1.0.8 – Skynet History / historical themes
   Restores the purpose-built history timeline layout that used to live in
   page-local CSS. The page HTML remains clean; presentation lives here.
   ========================================================================= */

.skynet-history.sk-project {
  max-width: 1100px;
  margin-inline: auto;
}

/* The generic intro component is not appropriate on this long-form page. */
.skynet-history .skynet-history-intro.sk-intro,
.skynet-history .skynet-designs-intro.sk-intro {
  padding-left: 0;
  border-left: 0;
}

.skynet-history-intro {
  margin-bottom: 2.35rem;
}

.skynet-history-origin {
  margin: 1.75rem 0;
  padding: 1.1rem 1.25rem;
  border-left: 3px solid var(--sk-accent, #d8bc2c);
  background: color-mix(in srgb, var(--sk-accent, #d8bc2c) 4%, transparent);
}

.skynet-history-origin strong {
  color: var(--sk-accent, #d8bc2c);
}

.skynet-designs {
  margin-top: 2.6rem;
}

.skynet-designs > h2 {
  margin-bottom: .5rem;
}

.skynet-designs-intro {
  margin: 0 0 1.35rem;
}

/* Undo the generic encyclopedia-card presentation. */
.skynet-history .skynet-design-table.sk-entry-list {
  display: block;
  width: 100%;
  border-top: 1px solid var(--sk-line, rgba(255,255,255,.13));
}

.skynet-history .skynet-design-row.sk-entry.sk-entry--compact {
  display: grid;
  grid-template-columns: 150px 78px minmax(0, 1fr) 145px;
  gap: 20px;
  align-items: center;
  min-height: 124px;
  margin: 0;
  padding: 14px 10px;
  overflow: visible;
  border: 0;
  border-bottom: 1px solid var(--sk-line, rgba(255,255,255,.13));
  background: transparent;
}

.skynet-history .skynet-design-preview.sk-entry__media {
  display: block;
  width: 140px;
  height: 96px;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--sk-line, rgba(255,255,255,.16));
  background: #050505;
}

.skynet-history .skynet-design-preview img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  margin: 0 !important;
  object-fit: cover;
  transition: transform .2s ease, opacity .2s ease;
}

.skynet-history .skynet-design-preview:hover img,
.skynet-history .skynet-design-preview:focus-visible img {
  transform: scale(1.04);
  opacity: .9;
}

/* A year is a timeline label here, not a pill/badge. */
.skynet-history .skynet-design-year.sk-badge {
  display: block;
  width: auto;
  min-height: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: var(--sk-accent, #d8bc2c);
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 0;
}

.skynet-history .skynet-design-info {
  min-width: 0;
}

.skynet-history .skynet-design-title.sk-entry__title {
  display: block;
  margin: 0 0 .3rem;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
}

/* These are compact row summaries, not long-form copy. */
.skynet-history .skynet-design-desc {
  margin: 0;
  text-align: left;
  font-size: .92rem;
  line-height: 1.5;
  opacity: .78;
}

.skynet-history .skynet-design-action.sk-entry__actions {
  text-align: right;
  white-space: nowrap;
}

.skynet-history .skynet-design-action a {
  display: inline-block;
  padding: 7px 10px;
  border: 1px solid color-mix(in srgb, var(--sk-accent, #d8bc2c) 35%, transparent);
  color: var(--sk-accent, #d8bc2c);
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  text-decoration: none !important;
  white-space: nowrap;
}

.skynet-history .skynet-design-action a:hover,
.skynet-history .skynet-design-action a:focus-visible {
  background: color-mix(in srgb, var(--sk-accent, #d8bc2c) 8%, transparent);
  border-color: color-mix(in srgb, var(--sk-accent, #d8bc2c) 65%, transparent);
}

@media (max-width: 760px) {
  .skynet-history .skynet-design-row.sk-entry.sk-entry--compact {
    grid-template-columns: 105px minmax(0, 1fr);
    gap: 8px 14px;
    min-height: 0;
    padding: 16px 4px;
  }

  .skynet-history .skynet-design-preview.sk-entry__media {
    grid-column: 1;
    grid-row: 1 / 4;
    width: 105px;
    height: 105px;
  }

  .skynet-history .skynet-design-year.sk-badge,
  .skynet-history .skynet-design-info,
  .skynet-history .skynet-design-action.sk-entry__actions {
    grid-column: 2;
  }

  .skynet-history .skynet-design-year.sk-badge {
    font-size: .9rem;
  }

  .skynet-history .skynet-design-title.sk-entry__title {
    font-size: 1rem;
  }

  .skynet-history .skynet-design-desc {
    font-size: .86rem;
    line-height: 1.45;
  }

  .skynet-history .skynet-design-action.sk-entry__actions {
    text-align: left;
  }

  .skynet-history .skynet-design-action a {
    padding: 4px 0;
    border: 0;
  }
}

@media (max-width: 440px) {
  .skynet-history .skynet-design-row.sk-entry.sk-entry--compact {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 7px 12px;
  }

  .skynet-history .skynet-design-preview.sk-entry__media {
    width: 82px;
    height: 82px;
  }
}

/* =========================================================================
   Content Styles 1.0.10 – Fallout Tactics ranks
   ========================================================================= */

/* No custom visual theme here. The page intentionally uses the global
   Skynet table styles. These rules only reconstruct the 13 insignias from
   the original vertical sprite and keep the icon cells compact. */

.bos-rank-number {
  width: 2.4rem;
  text-align: right;
}

.bos-rank-symbol {
  width: 58px;
  text-align: center;
}

.bos-rank-icon {
  display: inline-block;
  width: 45px;
  height: 55px;
  background-image: url("https://fallout.czech-games.net/wp-content/uploads/skynet/bos/hodnosti/hodnosti.gif");
  background-repeat: no-repeat;
  background-size: 45px 714px;
  background-color: transparent;
  vertical-align: middle;
}

.bos-rank-1  { background-position: 0    0; }
.bos-rank-2  { background-position: 0  -55px; }
.bos-rank-3  { background-position: 0 -110px; }
.bos-rank-4  { background-position: 0 -165px; }
.bos-rank-5  { background-position: 0 -220px; }
.bos-rank-6  { background-position: 0 -275px; }
.bos-rank-7  { background-position: 0 -330px; }
.bos-rank-8  { background-position: 0 -385px; }
.bos-rank-9  { background-position: 0 -440px; }
.bos-rank-10 { background-position: 0 -495px; }
.bos-rank-11 { background-position: 0 -550px; }
.bos-rank-12 { background-position: 0 -605px; }
.bos-rank-13 { background-position: 0 -659px; }

.bos-rank-desc {
  text-align: justify;
}

/* =========================================================================
   Content Styles 1.0.11 – People filter state
   ========================================================================= */

/* Filtering is behavior, not page-specific presentation. Keep the hide state
   centralized so cards and whole empty sections disappear reliably. */
.skynet-person.is-hidden,
.skynet-people__section.is-hidden {
  display: none !important;
}

/* =========================================================================
   Content Styles 1.0.12 – Rasy: four-column reference tables
   ========================================================================= */

/*
 * The first overview table on /rasy/ has only three columns and already fits
 * correctly. The detailed race tables have four text-heavy columns; forcing
 * them into the generic 640px minimum makes the browser wrap every sentence
 * into narrow strips. Keep the overview untouched and give only the 4-column
 * tables enough intrinsic width. The existing .sk-table-wrap supplies
 * horizontal scrolling when the content column is narrower.
 */
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) {
  min-width: 900px;
  table-layout: fixed;
}

body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) th,
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) td {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: auto;
}

body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) th:nth-child(1),
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) td:nth-child(1) {
  width: 20%;
}

body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) th:nth-child(2),
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) td:nth-child(2) {
  width: 12%;
}

body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) th:nth-child(3),
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) td:nth-child(3) {
  width: 38%;
}

body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) th:nth-child(4),
body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) td:nth-child(4) {
  width: 30%;
}

@media (max-width: 760px) {
  body.page-id-6668 .sk-table--reference:has(thead th:nth-child(4)) {
    min-width: 820px;
  }
}

/* =========================================================================
   Content Styles 1.0.13 – Studio pages
   Restored from the original active Coral Dark Custom CSS.
   ========================================================================= */

/* =========================================================
   FALLOUT SKYNET – STRÁNKY STUDIÍ
   FINÁLNÍ VERZE
   ========================================================= */

.studio-wiki {
	--studio-accent: #d8bc2c;
	--studio-accent-light: #fff0a0;
	--studio-panel: rgba(15, 15, 15, 0.94);
	--studio-panel-soft: rgba(25, 25, 25, 0.9);
	--studio-border: #736628;
	--studio-border-soft: #403b25;
	--studio-text: #d5d5d5;
	--studio-muted: #a5a5a5;

	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	color: var(--studio-text);
	
	line-height: 1.7;
}

.studio-wiki,
.studio-wiki *,
.studio-wiki *::before,
.studio-wiki *::after {
	box-sizing: border-box;
}

.studio-wiki a {
	color: var(--studio-accent-light);
	text-decoration: underline;
	text-decoration-color: rgba(216, 188, 44, 0.45);
	text-underline-offset: 3px;
}

.studio-wiki a:hover,
.studio-wiki a:focus {
	color: #fff;
	text-decoration-color: var(--studio-accent);
}

/* =========================================================
   HLAVIČKA
   ========================================================= */

.studio-header {
	margin: 0 0 34px;
	padding: 16px 0 22px;
}

.studio-kicker {
	margin: 0 0 0px;
	padding: 0 0 0 0px;
	color: var(--studio-muted);
	
	font-weight: 700;
	line-height: 1.3;
	text-align: justify;
	/*  */
}

.studio-header h1 {
	margin: 0;
	padding: 0;
	color: #fff;
	
	font-weight: 500;
	letter-spacing: 0.01em;
	line-height: 1.12;
	text-align: justify;
}

.studio-lead {
	max-width: 1000px;
	margin: 18px 0 0;
	padding: 0;
	color: #ddd;
	
	line-height: 1.75;
	text-align: justify;
	text-indent: 0;
	word-spacing: normal;
}

/* =========================================================
   HORNÍ ČÁST – OBSAH A HISTORIE + INFOBOX
   ========================================================= */

.studio-top {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 330px;
	gap: 15px;
	align-items: start;
	margin-bottom: 15px;
}

.studio-top-main {
	min-width: 0;
}

/* =========================================================
   OBSAH
   ========================================================= */

.studio-toc {
	max-width: 420px;
	margin: 0 0 38px;
	padding: 0;
}

.studio-toc h2 {
	margin: 0 0 10px !important;
	padding: 0 !important;
	color: #fff !important;
	background: transparent !important;
	border: 0 !important;
	
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.3;
	text-align: justify;
	
}

.studio-toc ol {
	margin: 0;
	padding-left: 20px;
}

.studio-toc li {
	margin: 3px 0;
	padding: 0;
}

/* =========================================================
   SEKCE
   ========================================================= */

.studio-section {
	width: 100%;
	margin: 0 0 36px;
	padding: 0;
	scroll-margin-top: 90px;
}

.studio-section > h2 {
	margin: 0 0 20px;
	padding: 7px 0 8px 14px;
	color: #fff;
	background: linear-gradient(
		90deg,
		rgba(216, 188, 44, 0.08),
		transparent 70%
	);
	border-left: 4px solid var(--studio-accent);
	border-bottom: 1px solid var(--studio-border-soft);
	
	font-weight: 500;
	line-height: 1.3;
	text-align: justify;
}

.studio-section > h3 {
	margin: 25px 0 10px;
	padding: 0;
	color: var(--studio-accent-light);
	
	font-weight: 500;
	line-height: 1.35;
	text-align: justify;
}

.studio-section p {
	margin: 0 0 17px;
	padding: 0;
	text-align: justify;
	text-indent: 0;
	word-spacing: normal;
}

.studio-section ul,
.studio-section ol {
	margin-top: 8px;
	margin-bottom: 20px;
}

.studio-section li {
	margin-bottom: 7px;
}

/* =========================================================
   POZNÁMKA
   ========================================================= */

.studio-note {
	margin: 24px 0 0;
	padding: 16px 20px;
	color: var(--studio-text);
	background: rgba(216, 188, 44, 0.08);
	border: 1px solid var(--studio-border);
	border-left: 4px solid var(--studio-accent);
	text-align: justify;
}

.studio-note strong {
	color: var(--studio-accent-light);
}

/* =========================================================
   INFOBOX
   ========================================================= */

.studio-infobox {
	width: 100%;
	margin: 0;
	overflow: hidden;
	background: var(--studio-panel);
	border: 2px solid var(--studio-border);
}

.studio-infobox__title {
	margin: 0;
	padding: 11px 14px;
	color: #111;
	background: var(--studio-accent);
	
	font-weight: 800;
	letter-spacing: 0.04em;
	line-height: 1.3;
	text-align: center;
	
}

.studio-infobox__logo {
	margin: 0;
	padding: 22px 18px 18px;
	background: radial-gradient(
		circle at center,
		#252525 0,
		#0d0d0d 70%
	);
	border-bottom: 2px solid var(--studio-border);
	text-align: center;
}

.studio-infobox__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	max-height: 260px;
	margin: 0 auto;
	object-fit: contain;
}

.studio-infobox__logo figcaption {
	margin: 12px 0 0;
	color: var(--studio-muted);
	
	line-height: 1.4;
	text-align: center;
}

.studio-infobox table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
	
}

.studio-infobox th,
.studio-infobox td {
	margin: 0;
	padding: 10px 11px;
	border: 0;
	border-bottom: 1px solid var(--studio-border-soft);
	vertical-align: top;
	text-align: justify;
}

.studio-infobox th {
	width: 42%;
	color: var(--studio-accent-light);
	background: rgba(255, 255, 255, 0.025);
	border-right: 1px solid var(--studio-border-soft);
	font-weight: 700;
}

.studio-infobox td {
	color: var(--studio-text);
	background: rgba(0, 0, 0, 0.08);
}

.studio-infobox tr:last-child th,
.studio-infobox tr:last-child td {
	border-bottom: 0;
}

/* =========================================================
   TABULKA HER
   ========================================================= */

.studio-table-wrap {
	width: 100%;
	margin: 20px 0 26px;
	overflow-x: auto;
	border: 1px solid var(--studio-border);
}

.studio-games {
	width: 100%;
	min-width: 620px;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: var(--studio-panel);
}

.studio-games th,
.studio-games td {
	padding: 11px 13px;
	border: 0;
	border-right: 1px solid var(--studio-border-soft);
	border-bottom: 1px solid var(--studio-border-soft);
	vertical-align: top;
	text-align: justify;
}

.studio-games th:last-child,
.studio-games td:last-child {
	border-right: 0;
}

.studio-games th {
	color: #111;
	background: var(--studio-accent);
	font-weight: 800;
}

.studio-games tbody tr:nth-child(even) {
	background: rgba(255, 255, 255, 0.025);
}

.studio-games tbody tr:hover {
	background: rgba(216, 188, 44, 0.07);
}

.studio-games tr:last-child td {
	border-bottom: 0;
}

.studio-games td:first-child {
	color: #fff;
	font-weight: 700;
}

/* =========================================================
   ZDROJE
   ========================================================= */

.studio-sources {
	margin-bottom: 0;
	color: var(--studio-muted);
	
}

.studio-sources li {
	margin-bottom: 7px;
}

/* =========================================================
   MOBIL
   ========================================================= */

@media (max-width: 850px) {
	.studio-top {
		display: flex;
		flex-direction: column;
		gap: 28px;
	}

	.studio-top-main {
		display: contents;
	}

	.studio-toc {
		order: 1;
		margin-bottom: 0;
	}

	.studio-infobox {
		order: 2;
		max-width: 520px;
		margin: 0 auto;
	}

	.studio-top-main .studio-section {
		order: 3;
	}

	.studio-header h1 {
		;
	}

	.studio-lead {
		;
	}

	.studio-section > h2 {
		;
	}
}

/* =========================================================================
   Content Styles 1.0.13 – Osobnosti: compact filter toolbar
   ========================================================================= */

/*
 * The original people filter is a toolbar, not the generic stacked filter
 * form. Keep all four controls on one row on normal desktop widths.
 */
.skynet-people__tools.sk-filter {
  display: grid;
  grid-template-columns:
    minmax(220px, 1fr)
    minmax(180px, 230px)
    max-content
    max-content;
  gap: 10px;
  align-items: center;
  margin: 0 0 24px;
  padding: 14px;
  border: 1px solid var(--sk-line);
  background: var(--sk-panel-strong);
}

.skynet-people__tools > input,
.skynet-people__tools > select,
.skynet-people__tools > button,
.skynet-people__tools > .skynet-people__count {
  min-width: 0;
  margin: 0;
}

.skynet-people__tools > input,
.skynet-people__tools > select,
.skynet-people__tools > button {
  min-height: 40px;
}

.skynet-people__tools > button {
  white-space: nowrap;
}

.skynet-people__tools > .skynet-people__count {
  align-self: center;
  white-space: nowrap;
  color: var(--sk-muted);
  font-size: .86rem;
  line-height: 1.3;
}

/* Two tidy rows on medium widths instead of uncontrolled wrapping. */
@media (max-width: 780px) {
  .skynet-people__tools.sk-filter {
    grid-template-columns: minmax(0, 1fr) minmax(160px, .7fr);
  }

  .skynet-people__tools > button {
    justify-self: start;
  }

  .skynet-people__tools > .skynet-people__count {
    justify-self: end;
  }
}

@media (max-width: 520px) {
  .skynet-people__tools.sk-filter {
    grid-template-columns: 1fr;
  }

  .skynet-people__tools > button,
  .skynet-people__tools > .skynet-people__count {
    justify-self: stretch;
  }

  .skynet-people__tools > .skynet-people__count {
    white-space: normal;
  }
}

