/* Full-screen archive slides and editor workspace. */
/* Aurebesh Droid by StormtrooperOnWeekends, sourced from dafont.com/aurebesh-droid.font. Decorative use only. */
@font-face {
  font-family:"Aurebesh Droid";
  src:url("../fonts/Aurebesh-Droid.ttf") format("truetype");
  font-display:swap
}

.topbar-actions {
  display:flex;
  align-items:center;
  flex:none;
  gap:8px
}

.cgt-clock {
  display:inline-flex;
  align-items:center;
  flex:none;
  height:34px;
  padding:7px 11px;
  border:1px solid #63877888;
  background:#122925;
  color:#d8c159;
  font:600 clamp(10px,.8vw,13px)/1.1 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.035em;
  white-space:nowrap;
  box-shadow:inset 0 0 14px #b6da7320
}

.discord-link {
  display:grid;
  place-items:center;
  flex:none;
  width:38px;
  height:34px;
  border:1px solid #63877888;
  background:#122925;
  color:#a5b6b5;
  box-shadow:inset 0 0 14px #75e4c420;
  transition:color .2s,border-color .2s,background .2s,box-shadow .2s
}

.discord-link svg {
  display:block;
  width:20px;
  height:20px
}

.discord-link:hover,.discord-link:focus-visible {
  color:#f2f5ef;
  border-color:var(--mint);
  background:#1d3934;
  box-shadow:0 0 16px #75e4c455
}

.archive-block-familyTree {
  min-width:0;
  padding:18px;
  border:1px solid #66817475;
  border-radius:12px;
  background:#091417d9
}

.family-tree-heading .feature-icon { display:block; margin-bottom:8px }
.family-tree-heading h3 { margin:0; color:var(--text); font:600 17px Orbitron,Bahnschrift,Arial,sans-serif; text-transform:uppercase }
.family-tree-viewport { width:100%; height:350px; min-height:0; overflow:auto; border:1px solid #4f6d6970; background:linear-gradient(#0b1b1ecc,#0b1b1ecc),repeating-linear-gradient(0deg,transparent 0 39px,#75e4c40b 39px 40px),repeating-linear-gradient(90deg,transparent 0 39px,#75e4c40b 39px 40px); scrollbar-color:#638778 #0a1719; touch-action:pan-x pan-y }
.family-tree-viewport:focus-visible { outline:2px solid var(--yellow) }
.family-tree-surface { position:relative; margin-inline:auto; flex:none }
.family-tree-board { position:relative; transform-origin:top left }
.family-tree-lines { position:absolute; inset:0; overflow:visible; pointer-events:none }
.family-tree-line { fill:none; stroke:#75e4c4; stroke-width:2 }
.family-tree-line-partner { stroke:#79c9d7; stroke-dasharray:3 5 }
.family-tree-line-former { stroke:#89999a; stroke-dasharray:2 9 }
.family-tree-line-adoption { stroke:#d8c159; stroke-dasharray:8 5 }
.family-person-card { position:absolute; display:flex; flex-direction:column; align-items:stretch; width:128px; height:160px; padding:5px; border:1px solid #6e9391; background:#0c1b20; color:var(--text); cursor:pointer; box-shadow:0 7px 15px #0008; text-align:center }
.family-person-card:hover,.family-person-card[aria-pressed="true"] { border-color:var(--page-accent); box-shadow:0 0 0 2px #a5ef2b38,0 7px 15px #0008 }
.family-card-portrait,.family-detail-portrait { display:grid; place-items:center; overflow:hidden; background:radial-gradient(circle at 50% 28%,#42636b 0 18%,transparent 19%),radial-gradient(ellipse at 50% 98%,#314c55 0 36%,transparent 37%),#09171c }
.family-card-portrait { flex:1; min-height:0 }
.family-card-portrait img,.family-detail-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 30% }
.family-card-label { display:flex; align-items:center; justify-content:center; gap:3px; min-height:23px; white-space:nowrap; overflow:hidden; color:#d9e7e3; font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif }
.family-card-label>span:first-child { overflow:hidden; text-overflow:ellipsis }
.family-gender { color:var(--mint); font:700 16px/1 Arial,sans-serif }
.family-deceased { color:var(--red); font:700 15px/1 Orbitron,Arial,sans-serif }
.family-person-detail { display:grid; grid-template-columns:minmax(180px,220px) minmax(0,1fr); gap:20px; margin-top:16px; padding:16px; border:1px solid #66817475; background:#102326 }
.family-person-detail[hidden] { display:none }
.family-detail-portrait { width:100%; height:min(25vh,200px); min-height:180px; border:1px solid #668174 }
.family-detail-copy h4 { margin:7px 0 8px; font:600 clamp(20px,2vw,30px) Orbitron,Bahnschrift,Arial,sans-serif }
.archive-copy .family-detail-copy p { margin:0 0 10px; max-width:68ch; color:#c8d9d4; font:500 17px/1.35 Rajdhani,Bahnschrift,Arial,sans-serif; text-align:left }
.family-detail-eyebrow { color:var(--page-accent); font:600 10px Orbitron,Bahnschrift,Arial,sans-serif; letter-spacing:.12em }
.family-detail-copy .family-detail-meta { color:#a7bdb7 }
.family-detail-copy a { color:var(--mint) }

@media(max-width:700px) {
  .family-person-detail { grid-template-columns:1fr }
}

.left {
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#597d70 transparent;
  container-type:inline-size
}

.landmark-status-icon {
  display:inline-grid;
  place-items:center;
  flex:none;
  width:18px;
  height:18px
}

.landmark-status-icon svg {
  display:block;
  width:16px;
  height:16px
}

.detail h3 {
  gap:12px
}

.detail p {
  padding-left:30px
}

.weather-forecast {
  position:relative;
  isolation:isolate;
  margin-top:18px;
  padding:14px 17px;
  border:1px solid #57716f80;
  background:linear-gradient(120deg,#0c1a20ed,#0d1f23d9);
  box-shadow:0 10px 24px #010c1166
}

.weather-forecast:before,.hud-card:before {
  content:"";
  position:absolute;
  right:0;
  top:0;
  width:42%;
  height:20px;
  background:repeating-linear-gradient(120deg,#4ea69538 0 9px,transparent 9px 18px);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 58%);
  mask-image:linear-gradient(90deg,transparent,#000 58%);
  pointer-events:none
}

.weather-forecast:after,.hud-card:after {
  content:attr(data-aurebesh);
  position:absolute;
  right:12px;
  bottom:8px;
  max-width:45%;
  overflow:hidden;
  white-space:nowrap;
  color:#7ac7b3;
  opacity:.13;
  font:400 10px/1 "Aurebesh Droid",sans-serif;
  letter-spacing:.12em;
  pointer-events:none
}

.weather-heading {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:8px;
  margin:0 0 10px
}

.weather-heading h3 {
  margin:0;
  color:#ecf8ee;
  font:600 clamp(12px,1vw,16px) Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase
}

.weather-heading span {
  color:#92b8aa;
  font:600 8px Orbitron,Bahnschrift,Arial,sans-serif;
  white-space:nowrap
}

.weather-days {
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px;
  min-width:0
}

.weather-day {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:space-between;
  gap:5px;
  min-width:0;
  min-height:102px;
  padding:8px 3px;
  border:1px solid #45645e80;
  background:#1128248c;
  color:#cbded3;
  text-align:center
}

.weather-day:first-child {
  border-color:#9eaf717a;
  background:#2540397a
}

.weather-day-label {
  color:#d8c159;
  font:700 9px Orbitron,Bahnschrift,Arial,sans-serif;
  white-space:nowrap
}

.weather-icon {
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  color:#e8cc6a
}

.weather-icon svg {
  display:block;
  width:19px;
  height:19px
}

.weather-condition {
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:600 12px/1.05 Rajdhani,Bahnschrift,Arial,sans-serif
}

.weather-temperature {
  color:#f0f8f2;
  text-align:center;
  white-space:nowrap;
  font:700 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

@container(max-width:650px) {
  .weather-days {
    grid-template-columns:repeat(4,minmax(0,1fr))
  }
}

@container(max-width:270px) {
  .weather-days {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
}

.weather-cloud .weather-icon,.weather-fog .weather-icon {
  color:#a8cbd0
}

.weather-rain .weather-icon {
  color:#69c4e4
}

.weather-storm .weather-icon {
  color:#dcb9ee
}

.weather-wind .weather-icon {
  color:#8fddc3
}

.weather-snow .weather-icon {
  color:#cceaff
}

.weather-orbit .weather-icon {
  color:#85dccd
}

.weather-meteor .weather-icon,.weather-solar .weather-icon {
  color:#e4ae76
}

.weather-nebula .weather-icon {
  color:#b89de3
}

.weather-ion .weather-icon {
  color:#77c9ec
}

.weather-debris .weather-icon {
  color:#c1bca6
}

.weather-radiation .weather-icon {
  color:#d4d971
}

@media(max-width:1000px) {
  .topbar {
    justify-content:flex-start;
    overflow-x:auto;
    padding:0 16px;
    scrollbar-width:none
  }
  .topbar::-webkit-scrollbar {
    display:none
  }
  .topbar .tab,.cgt-clock,.discord-link {
    flex:none
  }
}

@media(max-width:700px) {
  .cgt-clock {
    font-size:10px;
    padding:7px
  }
  .left {
    overflow:visible
  }
}

.point-arrow {
  display:grid;
  place-items:center
}

.point-arrow:before {
  margin:0
}

.section-stage {
  top:68px;
  bottom:0;
  left:0;
  width:100%;
  border:0;
  box-shadow:none;
  overflow:auto;
  background:linear-gradient(100deg,#07161beF 0%,#0a1c23d9 58%,#07161bed 100%)
}

.section-stage:before {
  width:34%;
  height:18px;
  opacity:.8
}

.section-stage:after {
  inset:12px;
  border-color:#77978b24
}

.archive-grid {
  position:relative;
  z-index:1;
  min-height:calc(100dvh - 130px);
  display:grid;
  grid-template-columns:minmax(0,58%) minmax(350px,42%);
  align-items:center;
  gap:0;
  padding:clamp(24px,4vh,50px) clamp(30px,5vw,95px) 18px
}

.archive-visual {
  position:relative;
  min-width:0;
  height:min(68vh,710px);
  margin:0;
  display:grid;
  place-items:center;
  isolation:isolate
}

.archive-visual:before {
  content:"";
  position:absolute;
  inset:10% 7%;
  border:1px solid #7caaa244;
  clip-path:polygon(0 0,16% 0,16% 1px,84% 1px,84% 0,100% 0,100% 100%,0 100%);
  background:radial-gradient(ellipse at 48% 54%,#7cc7b51a,transparent 57%);
  z-index:-1
}

.archive-visual:after {
  content:"";
  position:absolute;
  inset:12%;
  border:1px dashed #779c9550;
  border-radius:50%;
  z-index:-1
}

.archive-index {
  position:absolute;
  left:0;
  top:3%;
  font:700 clamp(150px,26vw,460px)/.9 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:-.09em;
  color:#8ba69b17;
  user-select:none;
  z-index:-1
}

.archive-visual img {
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 20px 35px #000a)
}

.archive-visual figcaption {
  position:absolute;
  left:7%;
  bottom:7%;
  padding:6px 13px;
  border-left:2px solid var(--yellow);
  background:#07191dc9;
  color:#c3d8cf;
  text-transform:uppercase;
  font:600 12px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.06em
}

.archive-copy {
  max-width:640px;
  padding:30px 0 35px clamp(20px,3vw,60px)
}

.archive-copy .section-eyebrow {
  margin-bottom:18px;
  color:var(--mint);
  font-size:13px
}

.archive-copy h2 {
  font:600 clamp(46px,5vw,88px)/1.05 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:-.045em;
  margin:0 0 23px;
  overflow-wrap:anywhere
}

.archive-copy p {
  font:500 clamp(19px,1.55vw,25px)/1.38 Rajdhani,Bahnschrift,Arial,sans-serif;
  color:#d2e1d8;
  max-width:38ch
}

.archive-copy .section-rule {
  margin:30px 0 12px;
  width:100%;
  background:linear-gradient(90deg,var(--yellow),#6c9f8e80,transparent)
}

.archive-copy ul {
  display:grid;
  gap:8px;
  max-width:none
}

.archive-copy li {
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:12px;
  padding:14px 16px;
  border:1px solid #67887a75;
  background:linear-gradient(90deg,#19312dcb,#10292a88);
  font:600 13px Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase
}

.archive-copy li:before {
  content:"◇";
  color:var(--yellow);
  margin-right:2px
}

.archive-copy li {
  grid-template-columns:auto 1fr auto
}

.archive-copy li span:last-child {
  color:#a5c1b4;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif;
  text-transform:none
}

.archive-bottom {
  position:relative;
  z-index:1;
  display:flex;
  justify-content:space-between;
  padding:12px clamp(30px,5vw,95px) 20px;
  border-top:1px solid #55776b70;
  color:#98b6a8;
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.08em
}

.page-transition {
  position:fixed;
  z-index:120;
  inset:0;
  display:flex;
  pointer-events:none;
  visibility:hidden
}

.page-transition span {
  flex:1;
  background:linear-gradient(160deg,#10282b,#061319);
  border-right:1px solid #638578;
  box-shadow:inset 0 0 22px #4c95811f;
  transform:translateY(-105%)
}

.page-transition span:nth-child(even) {
  transform:translateY(105%)
}

.page-transition.enter,.page-transition.exit {
  visibility:visible
}

.page-transition.enter span {
  animation:stairs-in .55s cubic-bezier(.76,0,.24,1) forwards
}

.page-transition.exit span {
  animation:stairs-out .55s cubic-bezier(.76,0,.24,1) forwards
}

.page-transition span:nth-child(2) {
  animation-delay:.05s
}

.page-transition span:nth-child(3) {
  animation-delay:.10s
}

.page-transition span:nth-child(4) {
  animation-delay:.15s
}

.page-transition span:nth-child(5) {
  animation-delay:.20s
}

@keyframes stairs-in {
  to {
    transform:translateY(0)
  }
}

@keyframes stairs-out {
  from {
    transform:translateY(0)
  }
  to {
    transform:translateY(105%)
  }
}

.page-transition.exit span:nth-child(even) {
  animation-name:stairs-out-even
}

@keyframes stairs-out-even {
  from {
    transform:translateY(0)
  }
  to {
    transform:translateY(-105%)
  }
}

.admin-page {
  position:absolute;
  z-index:8;
  inset:68px 0 0;
  overflow:auto;
  background:linear-gradient(110deg,#07171bf2,#10262acc 50%,#07171bef),url("../images/background/nebula-map.png") center/cover no-repeat;
  border-top:1px solid #61796e
}

.admin-page:before {
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:32%;
  height:20px;
  background:repeating-linear-gradient(120deg,#60ab9440 0 10px,transparent 10px 20px)
}

.admin-page-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:30px clamp(24px,4vw,70px) 20px;
  border-bottom:1px solid #7392846e
}

.admin-page-header h2 {
  margin:7px 0 3px;
  font:600 clamp(28px,3vw,48px) Orbitron,Bahnschrift,Arial,sans-serif
}

.admin-page-header p {
  margin:0;
  color:#9fb9ac;
  font:600 17px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page-header button {
  border:1px solid #8baaa0;
  background:#17332f;
  color:#e3f3e9;
  padding:12px 18px;
  cursor:pointer;
  font:600 13px Orbitron,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-layout {
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:0;
  min-height:calc(100dvh - 220px);
  padding:0 clamp(24px,4vw,70px)
}

.admin-page .admin-nav {
  padding:28px 18px 30px 0;
  border-right:1px solid #6b887877;
  gap:8px
}

.admin-page .admin-nav button {
  font-size:14px;
  padding:15px 13px
}

.admin-page .admin-content {
  max-height:none;
  min-height:0;
  margin:0;
  border:0;
  background:transparent;
  padding:32px clamp(24px,4vw,70px);
  overflow:visible
}

.admin-page .admin-content h3 {
  font:600 clamp(26px,2.4vw,37px) Orbitron,Bahnschrift,Arial,sans-serif;
  margin:0 0 12px
}

.admin-page .admin-content p {
  max-width:75ch
}

.admin-page .admin-fields {
  max-width:none
}

.admin-page .admin-actions {
  margin:20px 0
}

.admin-page .admin-content .admin-module {
  width:100%;
  min-width:0
}

.admin-page .admin-content .admin-module-locations>form,.admin-page .admin-content .admin-module-locations>.admin-fields,.admin-page .admin-content .admin-module-locations>.point-image-editor,.admin-page .admin-content .admin-module-content>form,.admin-page .admin-content .admin-module-content>.admin-fields {
  box-sizing:border-box;
  width:100%;
  max-width:none;
  margin:20px 0;
  padding:22px;
  border:1px solid #66857988;
  background:#102320e8;
  box-shadow:0 12px 28px #0004
}

.admin-page .admin-content .admin-module-locations>.point-image-editor {
  padding-top:22px
}

.admin-page .admin-content .admin-module-locations>form>.admin-fields,.admin-page .admin-content .admin-module-content>form>.admin-fields {
  width:100%
}

.admin-page .admin-content .admin-module-content>.editor-blocks {
  width:100%;
  max-width:none
}

.admin-page .admin-content .admin-module-content>.editor-blocks .editor-block {
  width:100%;
  box-sizing:border-box
}

@media(max-width:900px) {
  .archive-grid {
    grid-template-columns:1fr;
    padding:25px 24px
  }
  .archive-visual {
    height:min(45vh,450px)
  }
  .archive-copy {
    max-width:none;
    padding:10px 0 25px
  }
  .archive-copy h2 {
    font-size:clamp(38px,7vw,65px)
  }
  .archive-copy p {
    max-width:70ch
  }
  .archive-bottom {
    padding:15px 24px 24px
  }
  .admin-page .admin-layout {
    grid-template-columns:1fr;
    padding:0 20px
  }
  .admin-page .admin-nav {
    display:flex;
    overflow-x:auto;
    border-right:0;
    border-bottom:1px solid #6b887877;
    padding:14px 0
  }
  .admin-page .admin-nav button {
    white-space:nowrap
  }
  .admin-page .admin-content {
    padding:22px 4px
  }
}

@media(max-width:700px) {
  .section-stage,.admin-page {
    top:56px
  }
  .archive-visual {
    height:38vh
  }
  .archive-visual figcaption {
    font-size:9px
  }
  .archive-copy li {
    font-size:10px
  }
  .archive-copy li span:last-child {
    font-size:11px
  }
  .admin-page-header {
    padding:25px 20px 15px
  }
  .admin-page-header button {
    font-size:10px;
    padding:9px
  }
  .admin-page-header h2 {
    font-size:24px
  }
}

@media(prefers-reduced-motion:reduce) {
  .page-transition {
    display:none!important
  }
}

.location-tabs {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:18px 0 26px;
  padding-bottom:16px;
  border-bottom:1px solid #63847777
}

.location-tabs button,.connection-grid button {
  padding:10px 13px;
  border:1px solid #638477;
  background:#142c2b;
  color:#cfe8da;
  cursor:pointer;
  font:600 13px Orbitron,Bahnschrift,Arial,sans-serif
}

.location-tabs button[aria-current="page"] {
  border-color:#d8c159;
  color:#fff;
  background:#315047
}

.connection-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:20px 0 30px
}

.connection-grid section,.avatar-editor {
  border:1px solid #63847777;
  background:#122623ab;
  padding:20px
}

.connection-grid h4,.avatar-editor h4 {
  margin:0 0 10px;
  color:#e5f4e8;
  font:600 17px Orbitron,Bahnschrift,Arial,sans-serif
}

.connection-grid button {
  margin:5px 8px 0 0
}

.connection-grid button:disabled,.admin-actions button:disabled {
  opacity:.45;
  cursor:not-allowed
}

.avatar-previews {
  display:flex;
  align-items:end;
  flex-wrap:wrap;
  gap:36px;
  margin:22px 0
}

.avatar-previews figure {
  margin:0;
  text-align:center
}

.avatar-previews canvas {
  display:block;
  max-width:100%;
  height:auto;
  background:#0a171b
}

.avatar-previews figcaption {
  padding-top:9px;
  color:#b7cec1;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif
}

@media(max-width:700px) {
  .connection-grid {
    grid-template-columns:1fr
  }
}

.avatar-upload {
  max-width:440px;
  margin-top:18px
}

.avatar-previews {
  display:grid;
  grid-template-columns:repeat(2,200px);
  align-items:start;
  gap:24px
}

.avatar-previews figure {
  display:grid;
  grid-template-rows:150px 52px 34px;
  width:200px
}

.avatar-previews canvas {
  width:150px;
  height:150px;
  margin:auto;
  touch-action:none;
  cursor:grab
}

.avatar-previews canvas:active {
  cursor:grabbing
}

.avatar-previews canvas:focus-visible {
  outline:2px solid var(--yellow);
  outline-offset:3px
}

.avatar-previews figcaption {
  display:grid;
  place-items:center;
  padding:6px 0 0;
  line-height:1.15
}

.avatar-controls {
  display:grid;
  grid-template-columns:28px minmax(0,1fr) 28px 54px;
  align-items:center;
  gap:6px;
  margin-top:0
}

.avatar-controls input {
  width:100%;
  min-width:0;
  accent-color:var(--yellow)
}

.avatar-controls button {
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:100%;
  height:30px;
  padding:0;
  border:1px solid #648c7f;
  background:#15312f;
  color:#e9f7ef;
  cursor:pointer;
  font:600 13px/1 Rajdhani,Bahnschrift,Arial,sans-serif
}

@media(max-width:520px) {
  .avatar-previews {
    grid-template-columns:200px
  }
}

.point-image-editor {
  max-width:900px;
  margin-top:30px;
  padding-top:18px;
  border-top:1px solid #63847777
}

.point-image-editor h4,.access-settings h4 {
  margin:0 0 12px;
  font:600 18px Orbitron,Bahnschrift,Arial,sans-serif
}

.access-table-wrap {
  max-width:1100px;
  overflow-x:auto;
  margin:20px 0 34px
}

.access-table {
  width:100%;
  border-collapse:collapse;
  color:#e6f1e9;
  font:600 15px Rajdhani,Bahnschrift,Arial,sans-serif
}

.access-table th,.access-table td {
  padding:12px 14px;
  text-align:left;
  border-bottom:1px solid #64847677;
  white-space:nowrap
}

.access-table th {
  color:#b9d5c8;
  text-transform:uppercase;
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif
}

.access-table select,.access-table button,.inline-form button,.custom-role button,.approved-factions button {
  padding:7px 9px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif;
  cursor:pointer
}

.access-table button.danger {
  border-color:#b66b62;
  background:#492d2e;
  color:#ffd0c7
}

.access-settings {
  max-width:1000px;
  padding:22px 0;
  border-top:1px solid #63847777
}

.approved-factions {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding:0;
  list-style:none
}

.approved-factions li {
  display:flex;
  align-items:center;
  gap:8px;
  padding:4px 6px 4px 12px;
  border:1px solid #64847677;
  background:#142b2a
}

.inline-form {
  display:flex;
  align-items:end;
  flex-wrap:wrap;
  gap:10px;
  margin-top:18px
}

.inline-form .admin-field {
  min-width:min(100%,270px)
}

.custom-role {
  padding:16px;
  margin:12px 0;
  border:1px solid #64847677;
  background:#102321
}

.custom-role-head {
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px
}

.permission-grid {
  display:flex;
  flex-wrap:wrap;
  gap:8px 16px
}

.permission-grid label {
  white-space:nowrap;
  color:#c8ddd1;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif
}

.permission-grid input {
  appearance:none;
  position:relative;
  vertical-align:middle;
  width:31px;
  height:17px;
  margin:0 5px 0 0;
  border:1px solid #779485;
  border-radius:20px;
  background:#263a39;
  cursor:pointer
}

.permission-grid input:before {
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:11px;
  height:11px;
  border-radius:50%;
  background:#b5c8be;
  transition:transform .15s
}

.permission-grid input:checked {
  background:#8b7f35;
  border-color:#d8c159
}

.permission-grid input:checked:before {
  transform:translateX(14px);
  background:#fff
}

.permission-grid input:focus-visible {
  outline:2px solid var(--yellow);
  outline-offset:2px
}

.destination-editor-row {
  padding:18px 0 20px;
  border-top:1px solid #64847677
}

.destination-editor>.admin-fields {
  margin-bottom:18px
}

.destination-editor-row+.destination-editor-row {
  margin-top:8px
}

.destination-editor-row:last-of-type {
  margin-bottom:16px
}

.destination-card-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px
}

.destination-card {
  min-width:0;
  border:1px solid #4d6662;
  background:#11171fe8;
  box-shadow:0 12px 20px #0006;
  color:#e9f4f2;
  text-align:left
}

.destination-card-header {
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:14px 17px;
  border-bottom:1px solid #596a6d55;
  text-transform:uppercase;
  font:700 12px Orbitron,Bahnschrift,Arial,sans-serif
}

.destination-card-header span {
  color:#8997a7
}

.destination-card-header strong {
  color:#f4f7f8
}

.destination-card-body {
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:124px;
  padding:14px
}

.destination-planet {
  width:58px;
  height:58px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#8aa7ad,#2c6670 52%,#071216 80%);
  filter:drop-shadow(5px 8px 5px #000b)
}

.destination-planet img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(4px 5px 3px #0009)
}

.destination-card-names {
  display:grid;
  gap:3px;
  min-width:0;
  text-transform:uppercase;
  font:700 12px/1.25 Orbitron,Bahnschrift,Arial,sans-serif;
  overflow-wrap:anywhere
}

.destination-card-names span {
  font-size:10px
}

.destination-card-coordinates {
  display:grid;
  gap:2px;
  color:#43cad5;
  text-align:right;
  white-space:nowrap;
  font:700 12px/1.25 Rajdhani,Bahnschrift,Arial,sans-serif
}

.destination-card-footer {
  display:flex;
  justify-content:space-between;
  gap:10px;
  padding:7px 14px;
  border-top:1px solid #596a6d55;
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif
}

.archive-copy .destination-card a {
  color:#61cdd6
}

@media(max-width:1250px) {
  .destination-card-grid {
    grid-template-columns:1fr
  }
}

@media(max-width:560px) {
  .destination-card-body {
    grid-template-columns:48px minmax(0,1fr) auto;
    gap:6px;
    padding:10px
  }
  .destination-planet {
    width:44px;
    height:44px
  }
  .destination-card-header {
    font-size:10px;
    padding:10px
  }
  .destination-card-names {
    font-size:10px
  }
  .destination-card-names span {
    font-size:9px
  }
  .destination-card-coordinates {
    font-size:10px
  }
}

/* Editorial profile panels: the large vertical word anchors the image, while copy owns the right side. */
.section-stage {
  overflow:hidden;
  --page-accent:#a5ef2b;
  background:linear-gradient(90deg,#060e12f2,#11191ded 62%,#080f13f4),url("../images/background/nebula-map.png") center/cover no-repeat
}

.archive-grid {
  height:calc(100dvh - 130px);
  min-height:0;
  grid-template-columns:minmax(0,1fr) minmax(0,2fr);
  padding:clamp(20px,3vh,36px) clamp(28px,4.5vw,84px) 10px;
  gap:clamp(14px,2.5vw,44px)
}

.archive-visual {
  height:100%;
  min-height:0;
  display:block;
  overflow:hidden;
  background:transparent;
  border:0
}

.archive-visual:before {
  inset:0;
  z-index:2;
  background:linear-gradient(90deg,#071417d9 0%,#071417a6 13%,#07141736 38%,transparent 66%),repeating-linear-gradient(0deg,transparent 0 39px,#b9d6ce08 40px);
  border:0;
  clip-path:none;
  pointer-events:none
}

.archive-visual:after {
  display:none
}

.archive-index {
  z-index:3;
  top:50%;
  left:5%;
  width:max-content;
  max-height:none;
  transform:translateY(-50%) rotate(180deg);
  writing-mode:vertical-rl;
  text-orientation:mixed;
  color:var(--page-accent);
  opacity:1;
  font:800 clamp(70px,9.5vw,160px)/.84 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:-.075em;
  text-shadow:0 2px 4px #011315,0 0 24px color-mix(in srgb,var(--page-accent) 48%,transparent);
  -webkit-text-stroke:1px #041519
}

.archive-visual img {
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  filter:none;
  mask-image:radial-gradient(ellipse 95% 92% at 50% 48%,#000 56%,transparent 100%)
}


.archive-visual.empty:after {
  display:block;
  position:absolute;
  inset:13% 16% 13% 30%;
  border:1px dashed #74a99570;
  border-radius:0;
  content:""
}

.archive-visual figcaption {
  z-index:5;
  left:4%;
  bottom:3%;
  max-width:85%;
  border-color:var(--page-accent);
  color:#d2e9de;
  background:#071214f2
}

.archive-copy {
  align-self:center;
  max-height:100%;
  max-width:none;
  overflow:auto;
  padding:12px clamp(6px,2vw,26px) 12px 0;
  scrollbar-color:#668777 #10191b
}

.archive-copy .section-eyebrow {
  color:var(--page-accent);
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.13em
}

.archive-copy h2 {
  font:600 clamp(34px,3.4vw,66px)/1.05 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:-.04em;
  margin:0 0 16px
}

.archive-copy>p {
  font:500 clamp(16px,1.25vw,21px)/1.42 Rajdhani,Bahnschrift,Arial,sans-serif;
  max-width:63ch;
  color:#d4ddd9
}

.archive-copy .section-rule {
  margin:23px 0 19px;
  background:linear-gradient(90deg,var(--page-accent),#5b796d66,transparent)
}

#section-blocks {
  display:grid;
  gap:17px
}

.archive-block-text h3,.feature-cell h3 {
  margin:0 0 7px;
  color:#e6f2ed;
  font:700 13px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.025em
}

.archive-block-text p,.feature-cell p {
  margin:0;
  color:#afbeb9;
  font:500 16px/1.38 Rajdhani,Bahnschrift,Arial,sans-serif;
  max-width:none
}

.archive-block-text {
  padding:0 0 14px
}

.feature-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:22px 26px;
  padding:20px 22px;
  border:1px solid #66817475;
  border-radius:12px;
  background:#091417a6
}

.feature-cell {
  min-width:0
}

.feature-icon {
  display:block;
  color:var(--page-accent);
  font:700 26px/1 Orbitron,Bahnschrift,Arial,sans-serif;
  margin:0 0 9px
}

.archive-block-image {
  position:relative;
  border:1px solid #75988973;
  background:#0b1a1b;
  overflow:hidden;
  min-height:115px
}

.archive-block-image.landscape {
  width:min(100%,590px);
  aspect-ratio:2.2
}

.archive-block-image.portrait {
  width:min(45%,270px);
  aspect-ratio:3/4
}

.archive-block-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.archive-block-image span {
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:7px 11px;
  background:#061013cf;
  color:#c8e4d4;
  font:600 10px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.08em
}

.archive-block-image:not(:has(img)) {
  display:grid;
  place-items:center;
  background:repeating-linear-gradient(120deg,#102324 0 12px,#0b191b 12px 24px)
}

.archive-bottom {
  height:62px;
  align-items:center;
  padding-top:0;
  padding-bottom:0;
  background:#071114cc;
  border-color:#667e7460
}

.panel-controls {
  display:flex;
  align-items:center;
  gap:12px;
  color:#d6e8da
}

.panel-controls button {
  display:grid;
  place-items:center;
  width:38px;
  height:36px;
  padding:0;
  border:1px solid #7d9e8e;
  background:#162a28;
  color:#f3f9f4;
  cursor:pointer;
  font:500 24px/1 Rajdhani,Bahnschrift,Arial,sans-serif
}

.panel-controls button:hover:not(:disabled) {
  border-color:var(--page-accent);
  color:var(--page-accent)
}

.panel-controls button:disabled {
  opacity:.32;
  cursor:default
}

.panel-controls span {
  min-width:62px;
  text-align:center
}

.panel-controls button svg {
  display:block;
  width:16px;
  height:16px
}

.panel-enter {
  animation:panel-shift .34s ease-out both
}

@keyframes panel-shift {
  from {
    opacity:.4;
    transform:translateX(18px)
  }
  to {
    opacity:1;
    transform:translateX(0)
  }
}

.editor-blocks {
  margin-top:30px;
  max-width:980px
}

.editor-blocks h4 {
  font:600 17px Orbitron,Bahnschrift,Arial,sans-serif;
  color:#e0f4e7
}

.editor-block {
  margin:13px 0;
  padding:18px;
  border:1px solid #647d71;
  background:#0b1b1dbb
}

.editor-block header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  color:var(--yellow);
  font:600 12px Orbitron,Bahnschrift,Arial,sans-serif
}

.admin-actions.compact {
  margin:0
}

.admin-actions button:disabled {
  opacity:.35;
  cursor:default
}

.editor-preview {
  display:block;
  max-width:min(100%,300px);
  max-height:180px;
  object-fit:contain;
  margin:14px 0
}

.feature-editor-row {
  padding:12px 0;
  border-top:1px solid #4e716c80
}

.feature-editor-row button {
  align-self:end;
  width:max-content
}

@media(max-width:900px) {
  .section-stage {
    overflow:auto
  }
  .archive-grid {
    height:auto;
    min-height:calc(100dvh - 120px);
    grid-template-columns:1fr;
    padding:15px 22px;
    gap:15px
  }
  .archive-visual {
    height:min(45vh,470px)
  }
  .archive-index {
    font-size:clamp(70px,16vw,130px)
  }
  .archive-copy {
    max-height:none;
    padding:10px 0 20px;
    overflow:visible
  }
  .archive-bottom {
    height:auto;
    min-height:62px;
    padding:10px 22px
  }
}

@media(max-width:560px) {
  .archive-visual {
    height:33vh
  }
  .archive-index {
    font-size:clamp(48px,14vw,85px)
  }
  .feature-grid {
    grid-template-columns:1fr;
    padding:16px
  }
  .archive-copy h2 {
    font-size:33px
  }
  .archive-bottom>span {
    font-size:8px
  }
  .panel-controls {
    gap:6px
  }
  .panel-controls button {
    width:32px;
    height:31px
  }
  .editor-block header {
    align-items:flex-start;
    flex-direction:column
  }
}

@media(prefers-reduced-motion:reduce) {
  .panel-enter {
    animation:none
  }
}

/* Keep every panel's heading at the same top edge, including short profiles. */
.archive-grid {
  align-items:start
}

.archive-copy {
  align-self:start;
  text-align:justify
}

.archive-copy #section-heading {
  text-align:left
}

.archive-copy>p,.archive-block-text p,.feature-cell p {
  text-align:justify;
  white-space:pre-line
}

.archive-copy a:where(:not(.auth-submit)) {
  color:var(--page-accent);
  text-underline-offset:3px
}

.archive-copy a:not(.destination-planet-link):not(.travel-icon):where(:not(.auth-submit)) {
  transition:color .18s
}

.archive-copy a:not(.destination-planet-link):not(.travel-icon):where(:not(.auth-submit)):is(:hover,:focus-visible) {
  color:#f4fff8
}

#section-blocks {
  display:block
}

#section-blocks::after {
  content:"";
  display:table;
  clear:both
}

.archive-block {
  margin-bottom:17px
}

.archive-block-image {
  box-sizing:border-box;
  min-height:0;
  aspect-ratio:auto!important;
  width:fit-content;
  max-width:min(100%,590px);
  overflow:visible
}

.archive-block-image.centered {
  clear:both;
  margin:0 auto 17px
}

.archive-block-image.wrap-left,.archive-block-image.wrap-right {
  width:min(45%,270px);
  margin-bottom:17px
}

.archive-block-image.wrap-left {
  float:left;
  margin-right:22px
}

.archive-block-image.wrap-right {
  float:right;
  margin-left:22px
}

/* Access workspace: compact, aligned tables with clear actions. */
.admin-page .admin-content .access-workspace {
  width:100%;
  margin:0
}

.admin-page .admin-content .access-section {
  margin:24px 0;
  padding:22px;
  border:1px solid #66857988;
  background:#102320e8;
  box-shadow:0 12px 28px #0004
}

.admin-page .admin-content .access-section h4 {
  margin:0 0 14px;
  color:#eaf6ee;
  font:600 18px Orbitron,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content .access-table-wrap {
  width:100%;
  max-width:none;
  margin:14px 0;
  overflow:auto;
  border:1px solid #4e716a99
}

.admin-page .admin-content .access-table {
  width:100%;
  min-width:900px;
  border-collapse:collapse;
  background:#0a1a1d;
  color:#e8f5ec
}

.admin-page .admin-content .access-table th,.admin-page .admin-content .access-table td {
  padding:14px 16px;
  border-bottom:1px solid #54776d88;
  text-align:left;
  vertical-align:middle;
  white-space:nowrap
}

.admin-page .admin-content .access-table thead th {
  background:#183532;
  color:#c9dfd2;
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:.04em
}

.admin-page .admin-content .access-table tbody tr:nth-child(even) {
  background:#102622
}

.admin-page .admin-content .access-table tbody tr:hover {
  background:#19362f
}

.admin-page .admin-content .access-table .empty-row {
  padding:28px;
  text-align:center;
  color:#a9c4b5
}

.admin-page .admin-content .roles-table th:not(:first-child),.admin-page .admin-content .roles-table td:not(:first-child) {
  text-align:center
}

.admin-page .admin-content .roles-table tbody th {
  font:600 14px Orbitron,Bahnschrift,Arial,sans-serif;
  color:#f1f8f2
}

.admin-page .admin-content .approved-factions {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  padding:0;
  margin:18px 0;
  list-style:none
}

.admin-page .admin-content .approved-factions li {
  display:grid;
  grid-template-columns:40px minmax(0,1fr) 32px;
  align-items:center;
  gap:16px;
  min-height:58px;
  padding:8px 12px;
  border:1px solid #54776d88;
  background:#0d2020;
  list-style:none
}

.faction-emblem {
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border:1px solid #6d9384;
  background:#193531;
  color:#d8c159;
  font:600 20px Orbitron,Bahnschrift,Arial,sans-serif
}

.faction-emblem svg {
  display:block;
  width:18px;
  height:18px
}

.faction-emblem img,.member-faction-logo {
  width:100%;
  height:100%;
  object-fit:contain
}

.faction-name {
  min-width:0;
  overflow-wrap:anywhere;
  font:600 15px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content .approved-factions button {
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid #8d6660;
  background:#342729;
  color:#ffd8ce;
  cursor:pointer
}

.admin-page .admin-content .approved-factions button svg {
  display:block;
  width:14px;
  height:14px
}

.admin-page .admin-content .inline-form {
  display:flex;
  align-items:end;
  gap:12px;
  max-width:none;
  margin-top:17px
}

.admin-page .admin-content .inline-form .admin-field {
  width:min(100%,390px);
  min-width:0
}

.admin-page .admin-content .inline-form button {
  height:40px;
  white-space:nowrap
}

.admin-page .admin-content .icon-button {
  position:relative;
  display:inline-grid;
  place-items:center;
  box-sizing:border-box;
  width:36px;
  height:34px;
  padding:0;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer
}

.admin-page .admin-content .icon-button .icon-count {
  position:absolute;
  top:-5px;
  right:-7px;
  display:grid;
  place-items:center;
  min-width:14px;
  height:14px;
  padding:0 2px;
  border:1px solid #729b89;
  border-radius:8px;
  background:#102622;
  font:700 10px/1 Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content .icon-button svg {
  display:block;
  width:18px;
  height:18px
}

.admin-page .admin-content .icon-button.danger {
  border-color:#9b6761;
  background:#452d2f;
  color:#ffd6ce
}

.admin-page .admin-content .icon-button:disabled {
  opacity:.35;
  cursor:default
}

.member-faction-logo {
  display:inline-block;
  width:26px;
  height:26px;
  margin-right:9px;
  vertical-align:middle
}

.role-toggle {
  appearance:none;
  position:relative;
  width:36px;
  height:20px;
  margin:0;
  border:1px solid #799789;
  border-radius:20px;
  background:#2a403e;
  cursor:pointer;
  vertical-align:middle
}

.role-toggle:before {
  content:"";
  position:absolute;
  top:2px;
  left:2px;
  width:14px;
  height:14px;
  border-radius:50%;
  background:#b1c9bb;
  transition:transform .15s
}

.role-toggle:checked {
  background:#8d8137;
  border-color:#e1cb63
}

.role-toggle:checked:before {
  transform:translateX(16px);
  background:#fff
}

.role-toggle:focus-visible {
  outline:2px solid #e1cb63;
  outline-offset:2px
}

.role-dialog {
  width:min(92vw,520px);
  padding:25px;
  border:1px solid #78998d;
  background:#112622;
  color:#e9f5ec;
  box-shadow:0 24px 70px #000b
}

.role-dialog::backdrop {
  background:#020d13bd
}

.role-dialog h4 {
  margin:0 0 10px;
  font:600 18px Orbitron,Bahnschrift,Arial,sans-serif
}

.role-dialog p {
  font:500 15px/1.35 Rajdhani,Bahnschrift,Arial,sans-serif;
  color:#b9d3c5
}

.role-dialog textarea {
  width:100%;
  padding:10px;
  border:1px solid #678879;
  background:#142d2a;
  color:#eaf7ef
}

.role-dialog select {
  width:100%;
  min-height:190px;
  padding:8px;
  border:1px solid #678879;
  background:#142d2a;
  color:#eaf7ef
}

.role-dialog option {
  padding:5px
}

@media(max-width:760px) {
  .admin-page .admin-content .approved-factions {
    grid-template-columns:1fr
  }
  .admin-page .admin-content .access-section {
    padding:15px
  }
  .admin-page .admin-content .inline-form {
    flex-wrap:wrap
  }
}

.content-save-bar {
  max-width:none;
  margin:34px 0 10px
}

.content-divider {
  height:1px;
  background:linear-gradient(90deg,#759686,#d8c159 65%,#759686)
}

.content-save-bar .admin-actions {
  justify-content:flex-end;
  gap:12px;
  margin:18px 0
}

.content-save-bar button {
  min-width:110px;
  padding:11px 18px
}

.content-save-bar button:last-child {
  border-color:#e3cc6a;
  background:#a78d37;
  color:#071716
}

.profile-block-editor {
  grid-column:1/-1;
  margin-top:22px
}

.profile-editor-intro {
  display:grid;
  gap:7px;
  margin-bottom:20px;
  padding:16px 18px;
  border:1px solid #66857988;
  background:#0b1c1ccc
}

.profile-editor-intro strong {
  color:#e0f4e7;
  font:600 17px Orbitron,Bahnschrift,Arial,sans-serif
}

.profile-editor-intro span {
  color:#afc9bb;
  font:600 16px Rajdhani,Bahnschrift,Arial,sans-serif
}

.profile-editor-intro>div {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:5px
}

.profile-editor-intro a {
  padding:9px 12px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  text-decoration:none;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.profile-editor-intro a:hover,.profile-editor-intro a:focus-visible {
  border-color:var(--yellow);
  background:#31564c;
  color:#fff
}

#profile-blocks,#planet-sync {
  scroll-margin-top:24px
}

.profile-block-editor>h4 {
  font:600 17px Orbitron,Bahnschrift,Arial,sans-serif;
  color:#e0f4e7
}

.profile-block-editor .editor-block {
  width:100%;
  box-sizing:border-box
}

.profile-block-editor .editor-block>.admin-fields {
  margin-top:14px
}

.profile-block-editor .profile-stat-rows {
  grid-column:1/-1;
  display:grid;
  gap:10px
}

.profile-block-editor .profile-stat-edit {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;
  align-items:end;
  gap:10px;
  padding:10px;
  border:1px solid #58776a80;
  background:#0a1919
}

.profile-block-editor .profile-stat-edit output {
  display:flex;
  align-items:center;
  min-height:40px;
  color:#dbece3
}

.profile-block-editor button {
  padding:9px 12px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.profile-block-editor button:hover:not(:disabled) {
  border-color:var(--yellow);
  background:#31564c
}

.profile-block-editor button:disabled {
  opacity:.4;
  cursor:default
}

.right .hud-card>p {
  margin:0;
  color:#c9ddd2;
  font:600 16px/1.25 Rajdhani,Bahnschrift,Arial,sans-serif
}

.right .hud-card.warning>p {
  color:var(--red)
}

@media(min-width:1101px) {
  .right {
    justify-content:flex-start;
    overflow-y:auto;
    scrollbar-width:thin;
    scrollbar-color:#5a8375 transparent
  }
}

@media(max-width:700px) {
  .profile-block-editor .profile-stat-edit {
    grid-template-columns:1fr
  }
}

.destination-card {
  position:relative;
  display:grid;
  grid-template-columns:76px minmax(0,1fr) 48px;
  align-items:center;
  gap:12px;
  min-height:112px;
  padding:12px 14px;
  border:1px solid #66817475;
  border-radius:12px;
  background:#091417a6;
  box-shadow:none;
  color:#d4e4dc;
  transition:border-color .18s,background .18s,box-shadow .18s
}

.destination-card:has(>.destination-planet-link):is(:hover,:focus-within) {
  border-color:var(--page-accent);
  background:#19312bc9;
  box-shadow:0 0 0 2px #6bd8b72a
}

.destination-planet-link {
  position:absolute;
  inset:0;
  z-index:1;
  border-radius:inherit
}

.destination-planet-link:focus-visible {
  outline:2px solid var(--page-accent);
  outline-offset:3px
}

.destination-card .destination-planet {
  width:70px;
  height:70px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 25%,#8aa9a0,#315b5b 52%,#091417 78%);
  filter:drop-shadow(4px 7px 5px #0009)
}

.destination-details {
  display:grid;
  gap:4px;
  min-width:0
}

.destination-line {
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  min-width:0;
  font:600 11px/1.3 Orbitron,Bahnschrift,Arial,sans-serif
}

.destination-line span:first-child {
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap
}

.destination-coordinate {
  flex:none;
  color:#d2e1d8;
  font:700 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.destination-action {
  position:relative;
  z-index:2;
  display:grid;
  place-items:center
}

.destination-action .travel-icon,.destination-action span {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border:1px solid #67867988;
  border-radius:50%;
  color:var(--page-accent);
  text-decoration:none
}

.destination-action svg {
  display:block;
  width:24px;
  height:24px;
  transition:transform .18s
}

.destination-action .travel-icon {
  transition:transform .18s,border-color .18s,background .18s,box-shadow .18s
}

.destination-action .travel-icon:is(:hover,:focus-visible) {
  transform:translateY(-2px);
  border-color:var(--page-accent);
  background:#214036;
  box-shadow:0 0 0 3px #6bd8b744,0 0 16px #6bd8b744
}

.destination-action .travel-icon:is(:hover,:focus-visible) svg {
  transform:translateY(2px)
}

.destination-action span {
  opacity:.3
}

@media(max-width:560px) {
  .destination-card {
    grid-template-columns:54px minmax(0,1fr) 34px;
    gap:7px;
    padding:10px;
    min-height:92px
  }
  .destination-card .destination-planet {
    width:48px;
    height:48px
  }
  .destination-line {
    font-size:9px
  }
  .destination-coordinate {
    font-size:10px
  }
  .destination-action .travel-icon,.destination-action span {
    width:32px;
    height:32px
  }
  .destination-action svg {
    width:19px;
    height:19px
  }
}

.archive-block-destinations {
  padding:20px 22px;
  border:1px solid #66817475;
  border-radius:12px;
  background:#091417a6
}

.destination-table-heading {
  display:grid;
  justify-items:start;
  gap:10px
}

.destination-table-heading .feature-icon {
  margin:0;
  color:var(--page-accent);
  font-size:26px
}

.destination-table-heading h3 {
  margin:0;
  color:#e6f2ed;
  font:700 13px Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase
}

.destination-table-divider {
  height:1px;
  margin:15px 0 17px;
  background:#66817475
}

.archive-block-destinations .destination-card {
  background:#10211faa
}

@media(max-width:560px) {
  .archive-block-destinations {
    padding:15px
  }
}

.archive-block-image img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  object-fit:contain;
  cursor:zoom-in
}

.archive-visual img:not([hidden]) {
  cursor:zoom-in
}

.archive-block-image span {
  position:static;
  display:block
}

.image-expand {
  position:absolute;
  z-index:4;
  top:8px;
  right:8px;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  width:30px;
  height:30px;
  padding:0;
  border:1px solid #9cbaaa;
  background:#071619dd;
  color:#f2fff6;
  cursor:pointer;
  font-size:20px;
  line-height:1
}

.image-expand svg {
  display:block;
  width:18px;
  height:18px
}

.image-expand[hidden] {
  display:none
}

.image-expand:hover,.image-expand:focus-visible {
  border-color:var(--page-accent,#a5ef2b);
  color:var(--page-accent,#a5ef2b)
}

#image-viewer {
  position:fixed;
  inset:0;
  margin:0;
  padding:5vh 5vw;
  width:100vw;
  height:100vh;
  max-width:none;
  max-height:none;
  box-sizing:border-box;
  overflow:auto;
  border:0;
  background:#061013f0;
  color:#d9e9df
}

#image-viewer::backdrop {
  background:#02090acc
}

#image-viewer figure {
  position:relative;
  box-sizing:border-box;
  width:fit-content;
  max-width:90vw;
  max-height:90vh;
  margin:auto;
  border:1px solid #75988973;
  background:#0b1a1b
}

#image-viewer img {
  display:block;
  width:auto;
  height:auto;
  max-width:calc(90vw - 2px);
  max-height:calc(90vh - 38px);
  object-fit:contain
}

#image-viewer figcaption {
  padding:7px 11px;
  background:#061013;
  color:#c8e4d4;
  font:600 10px Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.08em
}

#image-viewer.full-size figure,#image-viewer.full-size img {
  max-width:none;
  max-height:none
}

.format-toolbar {
  display:flex;
  gap:4px
}

.format-toolbar button {
  min-width:34px;
  padding:4px 8px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer
}

.panel-identity-fields {
  grid-template-columns:minmax(0,45fr) minmax(0,45fr) minmax(105px,10fr);
  margin-bottom:22px
}

.panel-content-grid {
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(240px,28%);
  align-items:stretch;
  gap:24px
}

.panel-content-fields {
  display:grid;
  grid-template-rows:minmax(300px,1fr) auto auto;
  gap:16px;
  min-width:0
}

.panel-content-fields>.admin-field:first-child {
  grid-template-rows:auto auto minmax(260px,1fr)
}

.panel-content-fields>.admin-field:first-child textarea {
  height:100%;
  min-height:260px
}

.hero-preview-box {
  min-height:270px;
  padding:16px;
  border:1px solid #66857988;
  background:#0b1b1dbb
}

.hero-preview-box h4 {
  margin:0 0 14px;
  color:#eaf6ee;
  font:600 15px Orbitron,Bahnschrift,Arial,sans-serif
}

.hero-preview-box figure {
  margin:0
}

.hero-preview-box img {
  display:block;
  max-width:100%;
  max-height:340px;
  width:auto;
  height:auto;
  object-fit:contain;
  margin:0 auto 12px
}

.hero-preview-box figcaption {
  color:#b9d7c9;
  text-align:center;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.hero-preview-box>button {
  margin-top:15px
}

.admin-page .admin-content input[type="file"]::file-selector-button,.admin-page .admin-content .destination-editor>button,.admin-page .admin-content .feature-editor>button,.admin-page .admin-content .editor-block>button,.admin-page .admin-content .hero-preview-box>button {
  padding:9px 12px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content input[type="file"]::file-selector-button {
  margin-right:12px
}

.admin-page .admin-content :is(.admin-actions,.destination-editor,.feature-editor,.hero-preview-box)>button:hover:not(:disabled),.admin-page .admin-content input[type="file"]::file-selector-button:hover {
  border-color:var(--yellow);
  background:#31564c;
  color:#fff
}

.point-status-section,.point-weather-editor {
  margin-top:24px;
  padding:18px;
  border:1px solid #587b7088;
  background:#0b1c1caa
}

.point-status-section h4,.point-weather-editor h4 {
  margin:0 0 14px;
  color:#eaf6ee;
  font:600 16px Orbitron,Bahnschrift,Arial,sans-serif
}

.point-status-section h4:not(:first-child) {
  margin-top:22px
}

.point-status-row {
  margin:12px 0;
  padding:15px;
  border:1px solid #587b7080;
  background:#132b28
}

.point-status-row .admin-fields {
  align-items:end
}

.point-status-row [type="color"] {
  height:40px;
  padding:3px
}

.point-status-row>button,.point-status-section>button,.weather-editor-row>button {
  margin-top:10px;
  padding:9px 12px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.point-status-row>button:hover,.point-status-section>button:hover,.weather-editor-row>button:hover {
  border-color:var(--yellow);
  background:#31564c
}

.point-weather-baseline {
  margin:16px 0 20px;
  max-width:440px!important
}

.weather-editor-list {
  overflow-x:auto;
  border:1px solid #587b7080
}

.weather-editor-head,.weather-editor-row {
  display:grid;
  grid-template-columns:95px 72px minmax(150px,1fr) 90px 90px 90px;
  align-items:center;
  gap:10px;
  min-width:640px;
  padding:9px 12px
}

.weather-editor-head {
  background:#193632;
  color:#c9dfd2;
  font:600 10px Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase
}

.weather-editor-row {
  border-top:1px solid #587b7080;
  background:#102622;
  color:#e8f5ec
}

.weather-editor-row:nth-child(odd) {
  background:#132b28
}

.weather-editor-row strong {
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif
}

.weather-editor-row .weather-mode {
  color:#a7c9ba;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.weather-editor-row[data-mode="manual"] .weather-mode {
  color:#e5cf70
}

.weather-editor-row select,.weather-editor-row input {
  box-sizing:border-box;
  width:100%;
  min-height:34px;
  padding:5px 7px;
  border:1px solid #68897b;
  background:#172d2b;
  color:#f2faf3;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.weather-editor-row>button {
  margin:0;
  padding:7px 4px
}

.admin-color-field {
  min-width:0;
  margin:0;
  padding:0;
  border:0
}

.admin-color-field legend {
  margin:0 0 7px;
  padding:0;
  color:#b9d7c9;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif
}

.color-swatches {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:4px;
  max-width:150px
}

.color-swatches button {
  display:block;
  box-sizing:border-box;
  width:100%;
  height:23px;
  padding:0;
  border:1px solid #95b5a8;
  background:var(--swatch);
  cursor:pointer
}

.color-swatches button[aria-pressed="true"] {
  outline:2px solid #f3f9ef;
  outline-offset:1px;
  box-shadow:0 0 0 3px #081817
}

.color-swatches button:hover,.color-swatches button:focus-visible {
  border-color:#fff;
  filter:brightness(1.2)
}

.color-presets {
  position:relative;
  width:min(100%,240px)
}

.color-presets summary {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:40px;
  box-sizing:border-box;
  padding:8px 11px;
  border:1px solid #68897b;
  background:#172d2b;
  color:#f2faf3;
  cursor:pointer;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif;
  list-style:none
}

.color-presets summary::-webkit-details-marker {
  display:none
}

.color-presets summary:after {
  content:"";
  width:7px;
  height:7px;
  margin-left:auto;
  border-right:1px solid currentColor;
  border-bottom:1px solid currentColor;
  transform:rotate(45deg) translateY(-2px)
}

.color-presets[open] summary {
  border-color:#d8c159
}

.color-presets-menu {
  position:absolute;
  z-index:20;
  top:calc(100% + 3px);
  left:0;
  box-sizing:border-box;
  width:240px;
  max-width:min(80vw,240px);
  padding:12px;
  border:1px solid #729b89;
  background:#102522;
  box-shadow:0 12px 22px #0008
}

.color-presets .color-swatches {
  max-width:none;
  grid-template-columns:repeat(4,1fr);
  gap:7px
}

.color-presets .color-swatches button {
  height:28px
}

.color-hex-label {
  display:block;
  margin-top:10px;
  color:#b9d7c9;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.color-hex-label>span:first-child {
  display:block;
  margin-bottom:4px
}

.color-hex-row {
  display:grid;
  grid-template-columns:20px minmax(0,1fr);
  align-items:center;
  gap:5px
}

.color-current {
  display:block;
  width:20px;
  height:20px;
  border:1px solid #95b5a8
}

.admin-page .admin-content .color-hex-row input {
  box-sizing:border-box;
  width:100%;
  min-width:0;
  min-height:34px;
  padding:5px 6px;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content .color-hex-row input {
  min-height:40px;
  padding:8px 10px;
  border:1px solid #68897b;
  border-radius:0;
  background:#172d2b;
  color:#f2faf3;
  font:500 16px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-page .admin-content .color-hex-row input:focus-visible,.color-presets summary:focus-visible {
  outline:2px solid #d8c159;
  outline-offset:2px
}

.admin-module-content .panel-identity-fields {
  overflow:visible
}

/* Commissary catalogue follows the destination and feature-table visual system. */
.archive-block-commissary {
  padding:20px 22px;
  border:1px solid #66817475;
  border-radius:12px;
  background:#091417a6
}

.archive-block-commissary .destination-table-heading .feature-icon {
  display:grid;
  place-items:center;
  width:30px;
  height:30px
}

.archive-block-commissary svg {
  display:block;
  width:24px;
  height:24px
}

.commissary-preview-note {
  margin:13px 0 18px!important;
  color:#acc7bd!important;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif!important;
  text-align:left!important;
  letter-spacing:.02em
}

.commissary-filters {
  display:grid;
  grid-template-columns:minmax(0,1.5fr) minmax(140px,1fr);
  gap:10px;
  margin:0 0 22px
}

.commissary-filters label {
  display:grid;
  gap:6px;
  color:#b9d7c9;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-filters input,.commissary-filters select {
  min-width:0;
  width:100%;
  height:40px;
  box-sizing:border-box;
  padding:7px 10px;
  border:1px solid #66877c;
  background:#142a29;
  color:#ecf8ee;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-filters :is(input,select):focus-visible {
  outline:2px solid var(--page-accent);
  outline-offset:2px
}

.commissary-category {
  margin-top:23px
}

.commissary-category>h4 {
  display:flex;
  align-items:center;
  gap:10px;
  margin:20px 0 11px;
  color:#d5e9df;
  font:600 12px Orbitron,Bahnschrift,Arial,sans-serif;
  text-transform:uppercase
}

.commissary-category>h4 svg {
  width:21px;
  height:21px
}

.commissary-product-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:11px
}

.commissary-product {
  display:grid;
  grid-template-columns:100px minmax(0,1fr);
  gap:11px;
  min-width:0;
  padding:13px;
  border:1px solid #68847880;
  border-radius:10px;
  background:#10211faa;
  text-align:left
}

.commissary-product-art {
  display:grid;
  place-items:center;
  width:100px;
  height:100px;
  outline:1px solid #5a807777;
  background:#132d2d;
  color:var(--page-accent)
}

.commissary-product-art svg {
  width:36px;
  height:36px
}

.commissary-product-art img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain
}

.commissary-product-copy {
  display:grid;
  align-content:start;
  gap:4px;
  min-width:0
}

.commissary-product-copy strong {
  color:#e6f2ed;
  font:700 13px/1.25 Orbitron,Bahnschrift,Arial,sans-serif;
  overflow-wrap:anywhere
}

.commissary-product-copy span,.commissary-product-copy small {
  color:#afbeb9;
  font:500 16px/1.3 Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-product-copy a {
  width:max-content;
  max-width:100%;
  font:600 12px Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-product-sale {
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:46px;
  padding-top:10px;
  border-top:1px solid #68847866
}

.commissary-product-sale strong {
  color:#d8eee4;
  font:700 15px/1 Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-product-sale strong,.commissary-admin-price {
  display:inline-flex;
  align-items:center;
  gap:5px
}

.commissary-product-sale .credit-glyph,.commissary-admin-price .credit-glyph {
  width:17px;
  height:17px;
  flex:none;
  color:#83dfc6
}

.commissary-product-heading {
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:start;
  gap:8px
}

.commissary-product-copy .commissary-stock {
  flex:none;
  padding:2px 6px;
  border:1px solid #5a807777;
  background:#132d2d;
  color:#b9e8d9;
  font:600 13px/1.25 Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-product-copy {
  overflow-wrap:anywhere;
  container-type:inline-size
}

@container (max-width:175px) {
  .commissary-product-heading {grid-template-columns:minmax(0,1fr);gap:5px}
  .commissary-stock {grid-row:1;justify-self:end}
}

.commissary-product-sale button {
  justify-self:end;
  display:grid;
  place-items:center;
  min-height:34px;
  padding:7px 9px;
  border:1px solid #718f7d;
  background:#1a3431;
  color:#aebfb4;
  opacity:.72;
  font:600 11px Orbitron,Bahnschrift,Arial,sans-serif;
  cursor:not-allowed
}

.commissary-empty {
  padding:20px;
  border:1px dashed #66817475;
  color:#b7cdc1
}

@media(max-width:1350px) {
  .commissary-product-grid {
    grid-template-columns:1fr
  }
}

@media(max-width:700px) {
  .commissary-filters {
    grid-template-columns:1fr
  }
  .archive-block-commissary {
    padding:15px
  }
}

.admin-module-commissary {
  display:grid;
  gap:20px
}

.commissary-admin-panel {
  padding:22px;
  border:1px solid #66857988;
  background:#102320e8;
  box-shadow:0 12px 28px #0004
}

.commissary-admin-panel h4 {
  margin:0 0 15px;
  color:#eaf6ee;
  font:600 17px Orbitron,Bahnschrift,Arial,sans-serif
}

.commissary-inventory-form,.commissary-listing-form {
  padding:15px;
  border:1px solid #587b7088;
  background:#0b1c1caa
}

.commissary-inventory-form {
  margin:20px 0
}

.commissary-admin-list {
  margin:24px 0
}

.commissary-admin-row {
  display:grid;
  grid-template-columns:42px minmax(140px,1fr) auto auto auto;
  align-items:center;
  gap:12px;
  padding:11px;
  border-top:1px solid #587b7088
}

.commissary-admin-row>div {
  display:grid;
  gap:3px
}

.commissary-admin-row strong {
  color:#f1f7ef;
  font:600 12px Orbitron,Bahnschrift,Arial,sans-serif
}

.commissary-admin-row small,.commissary-admin-row>span:nth-of-type(2) {
  color:#b7d2c4;
  font:600 13px Rajdhani,Bahnschrift,Arial,sans-serif
}

.commissary-admin-icon {
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid #628678;
  color:#83dfc6
}

.commissary-admin-icon svg {
  width:24px;
  height:24px
}

.commissary-admin-row button,.commissary-inventory-item {
  min-height:36px;
  padding:7px 10px;
  border:1px solid #729b89;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 12px Orbitron,Bahnschrift,Arial,sans-serif
}

.commissary-admin-row button:hover,.commissary-inventory-item:hover {
  border-color:#d8c159;
  background:#31564c
}

.commissary-admin-row button.danger {
  border-color:#b66b62;
  background:#492d2e;
  color:#ffd0c7
}

#commissary-inventory-results,.commissary-order-empty {
  padding:14px;
  border:1px dashed #587b7088;
  color:#b7d2c4;
  font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif
}

#commissary-inventory-results:has(button) {
  display:grid;
  gap:5px
}

.commissary-inventory-item {
  text-align:left
}

.commissary-alert-toggle {
  display:flex;
  align-items:center;
  gap:9px;
  margin-bottom:16px;
  color:#e9f3ed;
  font:600 15px Rajdhani,Bahnschrift,Arial,sans-serif
}

.admin-module-commissary .admin-field select[multiple] {
  min-height:120px
}

@media(max-width:800px) {
  .commissary-admin-row {
    grid-template-columns:42px minmax(0,1fr) auto auto
  }
  .commissary-admin-row>span:nth-of-type(2) {
    grid-column:2/-1;
    grid-row:2
  }
}

@media(max-width:560px) {
  .commissary-admin-panel {
    padding:15px
  }
  .commissary-admin-row {
    grid-template-columns:36px minmax(0,1fr) auto auto;
    gap:6px
  }
  .commissary-admin-row>span:nth-of-type(2) {
    grid-column:2/-1
  }
  .commissary-admin-row button {
    font-size:10px;
    padding:6px
  }
}

/* Aurebesh is a quiet secondary layer; readable copy retains Orbitron and Rajdhani. */
.archive-copy #section-heading {
  position:relative;
  margin-bottom:29px
}

.archive-copy #section-heading::after {
  content:attr(data-aurebesh);
  position:absolute;
  left:1px;
  bottom:-16px;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  color:var(--page-accent);
  opacity:.35;
  font:400 12px/1 "Aurebesh Droid",sans-serif;
  letter-spacing:.16em;
  pointer-events:none
}

.archive-block-text h3 {
  position:relative
}

.archive-block-text h3::after {
  content:attr(data-aurebesh);
  position:absolute;
  right:0;
  top:0;
  max-width:36%;
  overflow:hidden;
  white-space:nowrap;
  color:var(--page-accent);
  opacity:.18;
  font:400 11px/1 "Aurebesh Droid",sans-serif;
  pointer-events:none
}

.section-title {
  position:relative
}

.section-title::before {
  content:"ORD CANTRELL";
  position:absolute;
  right:0;
  bottom:-12px;
  color:#83dfc6;
  opacity:.25;
  font:400 10px/1 "Aurebesh Droid",sans-serif;
  letter-spacing:.12em;
  pointer-events:none
}

@media(max-width:700px) {
  .archive-block-text h3::after {
    display:none
  }
  .section-title::before {
    font-size:8px
  }
}

#admin-editor :where(button:not(.icon-button):not([data-zoom]):not([data-reset]):not([data-format]):not([data-location-tab]):not([data-remove-faction]):not([data-color-swatch])) {
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 13px;
  border:1px solid #729b89;
  border-radius:0;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 12px/1.2 Orbitron,Bahnschrift,Arial,sans-serif;
  letter-spacing:.015em;
  text-align:center
}

#admin-editor :where(button:not(.icon-button):not([data-zoom]):not([data-reset]):not([data-format]):not([data-location-tab]):not([data-remove-faction]):not([data-color-swatch])):hover:not(:disabled) {
  border-color:#d8c159;
  background:#31564c;
  color:#fff
}

#admin-editor :where(button.danger) {
  border-color:#b66b62;
  background:#492d2e;
  color:#ffd0c7
}

#admin-editor :where(button.danger):hover:not(:disabled) {
  border-color:#ef9b8c;
  background:#603235;
  color:#fff
}

#admin-editor :where(button:disabled) {
  opacity:.45;
  cursor:not-allowed
}

#admin-editor input[type="file"] {
  cursor:pointer
}

#admin-editor input[type="file"]::file-selector-button,#admin-editor input[type="file"]::-webkit-file-upload-button {
  appearance:none;
  margin-right:12px;
  min-height:34px;
  padding:7px 12px;
  border:1px solid #729b89;
  border-radius:0;
  background:#23463f;
  color:#e5f7eb;
  cursor:pointer;
  font:600 12px/1.2 Orbitron,Bahnschrift,Arial,sans-serif
}

#admin-editor input[type="file"]::file-selector-button:hover,#admin-editor input[type="file"]::-webkit-file-upload-button:hover {
  border-color:#d8c159;
  background:#31564c;
  color:#fff
}

@media(max-width:900px) {
  .panel-content-grid {
    grid-template-columns:minmax(0,1fr) minmax(200px,35%)
  }
}

@media(max-width:700px) {
  .panel-identity-fields,.panel-content-grid {
    grid-template-columns:1fr
  }
  .hero-preview-box {
    min-height:0
  }
}

@media(max-width:560px) {
  .archive-block-image.wrap-left,.archive-block-image.wrap-right {
    width:min(50%,200px)
  }
  .archive-block-image.wrap-left {
    margin-right:12px
  }
  .archive-block-image.wrap-right {
    margin-left:12px
  }
}

/* Clan archive uses the shared left hero; the original crest is layered intact. */
.archive-visual .archive-crest { position:absolute; z-index:3; inset:auto; top:19%; left:24%; width:62%; height:55%; object-fit:contain; mask-image:none; mix-blend-mode:screen; filter:drop-shadow(0 3px 18px #000b); pointer-events:none }
.archive-visual .archive-crest[hidden] { display:none }
.family-tree-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; padding-bottom:14px; border-bottom:1px solid #66817475 }
.family-tree-expand { display:grid; place-items:center; flex:none; width:38px; height:38px; padding:0; border:1px solid #6a8985; background:#1b3532; color:#e0eee8; cursor:pointer; font:600 28px/1 Rajdhani,Arial,sans-serif }
.family-tree-expand svg { display:block; width:19px; height:19px }
.family-tree-expand:hover,.family-tree-expand:focus-visible { color:var(--mint); border-color:var(--mint); background:#244641 }
.family-tree-heading+.family-tree-viewport { margin-top:16px }
.family-tree-overlay[open] { display:flex; flex-direction:column; box-sizing:border-box; width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; padding:18px; border:0; background:#071417; color:var(--text); overflow:hidden }
.family-tree-overlay::backdrop { background:#000d }
.family-tree-overlay-heading { display:flex; flex:none; align-items:center; justify-content:space-between; gap:20px; height:48px; margin-bottom:12px; color:var(--text); font:600 17px Orbitron,Bahnschrift,Arial,sans-serif; text-transform:uppercase }
.family-tree-overlay .family-tree-viewport { flex:none; min-height:0 }
.family-tree-overlay .family-person-detail { flex:none; box-sizing:border-box; min-height:0; max-height:max(180px,calc(100dvh - var(--family-tree-viewport-height,350px) - 120px)); overflow:auto; grid-template-columns:minmax(220px,360px) minmax(0,1fr) }
.family-tree-overlay .family-detail-portrait { height:min(28vh,240px) }
@media(max-width:700px) { .family-tree-overlay .family-person-detail { grid-template-columns:1fr } .family-tree-overlay .family-detail-portrait { height:150px } }
.family-tree-editor { display:grid; gap:20px; margin-top:16px }
.family-editor-heading h4,.family-editor-sidebar h5,.family-editor-main h5 { margin:0; color:var(--text); font:600 15px Orbitron,Bahnschrift,Arial,sans-serif; text-transform:uppercase }
.family-editor-heading p,.family-editor-relationships p,.family-editor-danger p { margin:7px 0 0; color:var(--muted); font:500 15px/1.35 Rajdhani,Bahnschrift,Arial,sans-serif }
.family-editor-layout { display:grid; grid-template-columns:minmax(240px,30%) minmax(0,1fr); gap:18px; align-items:start }
.family-editor-sidebar,.family-editor-main { min-width:0; padding:18px; border:1px solid #63877888; background:#0b201f }
.family-editor-sidebar { display:grid; gap:16px }
.family-editor-sidebar h5 { display:flex; justify-content:space-between; align-items:center }
.family-editor-sidebar h5 span { color:var(--mint) }
.family-editor-people { display:grid; gap:5px; max-height:500px; overflow:auto; scrollbar-color:#638778 #0a1719 }
.family-editor-person { display:flex; align-items:center; gap:10px; width:100%; min-height:52px; padding:5px; border:1px solid #4f6d6970; background:#0d191c; color:var(--text); text-align:left; cursor:pointer; font:600 15px Rajdhani,Bahnschrift,Arial,sans-serif }
.family-editor-person[hidden] { display:none }
.family-editor-person.selected,.family-editor-person:hover { border-color:var(--mint); background:#18332e }
.family-editor-person img { flex:none; width:40px; height:40px; object-fit:cover; background:#102629 }
.family-editor-person span { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
.family-editor-person small { display:block; color:var(--muted); font-size:12px }
.family-editor-main { display:grid; gap:18px }
.family-editor-person-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-bottom:14px; border-bottom:1px solid #66817475 }
.family-editor-person-heading span { color:var(--mint); font:600 10px Orbitron,Bahnschrift,Arial,sans-serif }
.family-editor-person-heading h5 { margin-top:6px }
.family-editor-identity { display:flex; align-items:end; gap:16px }
.family-editor-portrait { flex:none; width:110px; height:110px; border:1px solid #638778; background:#09171c }
.family-editor-portrait img { width:100%; height:100%; object-fit:cover }
.family-editor-portrait>span { display:grid; place-items:center; height:100%; color:var(--muted); font:600 10px Orbitron,Arial,sans-serif }
.family-editor-portrait-actions { display:grid; gap:9px; min-width:0; flex:1 }
.family-editor-placement,.family-editor-relationships,.family-editor-danger { padding-top:17px; border-top:1px solid #66817475 }
.family-editor-placement h5,.family-editor-relationships h5 { margin-bottom:13px }
.family-editor-add { display:flex; flex-wrap:wrap; align-items:end; gap:10px }
.family-editor-add .admin-field { flex:1 1 145px; min-width:0 }
.family-editor-add button,.family-editor-link button,.family-editor-portrait-actions button { flex:none }
.family-editor-links { display:grid; gap:7px; margin:13px 0 }
.family-editor-link { display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,220px) 38px; align-items:center; gap:10px; padding:7px 10px; border:1px solid #4f6d6970; background:#0d191c }
.family-editor-link span { color:var(--text); font:600 14px Rajdhani,Bahnschrift,Arial,sans-serif }
.family-editor-link b { color:var(--mint) }
.family-editor-link button { display:grid; place-items:center; width:36px; height:36px; padding:0 }
.family-editor-danger { display:flex; align-items:center; gap:12px; flex-wrap:wrap }
@media(max-width:900px) { .family-editor-layout { grid-template-columns:1fr } .family-editor-people { grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); max-height:260px } }
@media(max-width:600px) { .family-editor-link { grid-template-columns:1fr 38px } .family-editor-link select { grid-column:1 } .family-editor-link button { grid-column:2; grid-row:1 / 3 } .family-editor-person-heading { align-items:start; flex-direction:column } .family-tree-overlay { padding:10px } }
#admin-editor .family-editor-person { display:flex; justify-content:flex-start; min-height:52px; height:auto; padding:5px; border-color:#4f6d6970; background:#0d191c; text-align:left; font:600 15px Rajdhani,Bahnschrift,Arial,sans-serif }
#admin-editor .family-editor-person.selected,#admin-editor .family-editor-person:hover { border-color:var(--mint); background:#18332e }
#admin-editor .family-editor-person img { flex:none; width:40px; height:40px; object-fit:cover }
#admin-editor .family-editor-person.selected { border-color:#d8c159; background:#263329 }
#admin-editor .family-editor-person:hover:not(.selected) { border-color:var(--mint); background:#18332e }

/* Enterprise emblems and editable production gallery. */
.archive-index{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
.section-logo{float:right;width:92px;height:92px;object-fit:contain;margin:0 0 12px 18px;padding:8px;border:1px solid #6d928271;background:#0a1b1dbd}
.section-logo[hidden]{display:none}
.asset-gallery-heading{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:16px 18px 12px;border:1px solid #66817475;border-bottom:0;border-radius:12px 12px 0 0;background:#091417a6}
.asset-gallery-heading .feature-icon{margin:0}
.asset-gallery-heading h3{margin:0;color:#e6f2ed;font:700 14px Orbitron,Bahnschrift,Arial,sans-serif}
.asset-gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px;border:1px solid #66817475;border-radius:0 0 12px 12px;background:#091417a6}
.asset-card{min-width:0;border:1px solid #6a8b7d7d;background:#0b1d20;overflow:hidden}
.asset-media{display:grid;place-items:center;aspect-ratio:1.8;background:#10292c;color:#93b4ad;font:600 10px Orbitron,Bahnschrift,Arial,sans-serif;letter-spacing:.09em}
.asset-media img{width:100%;height:100%;object-fit:cover}
.asset-media-pending{background:repeating-linear-gradient(130deg,#10282b 0 14px,#102125 14px 28px)}
.asset-card-body{padding:13px 15px 15px}
.asset-category{color:var(--page-accent);font:600 10px Orbitron,Bahnschrift,Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.asset-card h4{margin:7px 0;color:#e6f2ed;font:700 14px Orbitron,Bahnschrift,Arial,sans-serif}
.asset-card p{margin:0 0 10px;color:#b5cbc2;font:500 15px/1.4 Rajdhani,Bahnschrift,Arial,sans-serif}
.asset-card a{color:var(--page-accent);font:600 11px Orbitron,Bahnschrift,Arial,sans-serif}
.asset-card a:hover,.asset-card a:focus-visible{color:#fff;text-shadow:0 0 10px var(--page-accent)}
.asset-editor-row{margin:14px 0;padding:16px;border:1px solid #54766d;background:#0a1e20}
.asset-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;color:#dfeee7;font:600 13px Orbitron,Bahnschrift,Arial,sans-serif}
.asset-editor-add{display:flex;align-items:end;gap:14px;flex-wrap:wrap;margin-top:16px}
.asset-editor-add .admin-field{min-width:min(100%,340px)}
.asset-visible{align-self:center}
@media(max-width:650px){.asset-gallery-grid{grid-template-columns:1fr}.section-logo{width:70px;height:70px}}

/* Keep production portraits at one readable size; spread incomplete rows evenly. */
.asset-gallery-grid{display:flex;flex-wrap:wrap;justify-content:space-evenly;align-items:stretch;gap:18px}
.asset-card{width:450px;max-width:100%;min-height:470px;display:flex;flex-direction:column}
.asset-media{aspect-ratio:auto;height:250px;flex:none}
.asset-card-body{display:flex;flex:1;flex-direction:column}
.asset-card-body a{margin-top:auto}
.asset-card-body a:not(.asset-rule-link){align-self:flex-start}

/* Production cards retain their editorial dimensions while the column count adapts. */
.archive-block-assets{container-type:inline-size}
.asset-gallery-grid{display:grid;grid-template-columns:repeat(4,450px);justify-content:space-evenly;gap:18px}
.asset-card{width:450px;max-width:100%}
.asset-media{position:relative}
.asset-media>.asset-cantrell-mark{position:absolute;z-index:2;right:9px;bottom:9px;width:54px;height:54px;object-fit:contain;opacity:.78;filter:drop-shadow(0 2px 5px #001a1dcc);pointer-events:none}
.asset-card-body .asset-rule-link{align-self:flex-end;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:58px;height:34px;padding:3px 7px;border:1px solid #5e928a;background:#102c2d;color:#80d9cd;text-decoration:none;font:700 9px Orbitron,Bahnschrift,Arial,sans-serif;letter-spacing:.04em}
.asset-rule-link svg{display:block;width:21px;height:21px;flex:none}
.asset-rule-link:hover,.asset-rule-link:focus-visible{background:#1b4947;border-color:#8fe6d9;box-shadow:0 0 14px #5bd8c850}
@container (max-width:1889px){.asset-gallery-grid{grid-template-columns:repeat(3,450px)}}
@container (max-width:1421px){.asset-gallery-grid{grid-template-columns:repeat(2,450px)}}
@container (max-width:953px){.asset-gallery-grid{grid-template-columns:minmax(0,450px)}}

/* Keep enterprise emblems clear of content and in the same position on every panel. */
.archive-copy:has(.section-logo:not([hidden])){display:grid;grid-template-columns:minmax(0,1fr) 132px;column-gap:22px;align-content:start}
.archive-copy:has(.section-logo:not([hidden])) .section-eyebrow{grid-column:1/-1}
.archive-copy:has(.section-logo:not([hidden])) h2{grid-column:1;grid-row:2}
.archive-copy:has(.section-logo:not([hidden])) .section-logo{grid-column:2;grid-row:2/4;float:none;width:132px;height:132px;margin:0;padding:10px;align-self:start}
.archive-copy:has(.section-logo:not([hidden])) #section-description{grid-column:1;grid-row:3}
.archive-copy:has(.section-logo:not([hidden])) .section-rule{grid-column:1/-1;grid-row:4}
.archive-copy:has(.section-logo:not([hidden])) #section-blocks{grid-column:1/-1;grid-row:5}
.family-tree-heading .feature-icon{font:700 26px/1 Orbitron,Bahnschrift,Arial,sans-serif;margin:0 0 9px}
.family-tree-heading h3{color:#e6f2ed;font:700 13px Orbitron,Bahnschrift,Arial,sans-serif;letter-spacing:.025em}
@media(max-width:700px){.archive-copy:has(.section-logo:not([hidden])){grid-template-columns:minmax(0,1fr) 82px;column-gap:12px}.archive-copy:has(.section-logo:not([hidden])) .section-logo{width:82px;height:82px;padding:5px}}

.long-hero-word .archive-index{font-size:clamp(40px,4.2vw,58px)}
.extra-long-hero-word .archive-index{font-size:clamp(34px,3.6vw,48px)}



/* Shared catalogue cards and editor controls. */
.asset-gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.asset-card{width:auto;min-height:0}
.asset-media{height:auto;aspect-ratio:1.8}
@container (max-width:1100px){.asset-gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container (max-width:800px){.asset-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:520px){.asset-gallery-grid{grid-template-columns:minmax(0,1fr)}}
.commissary-product-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr))}
.asset-art-preview{display:flex;align-items:center;gap:14px;min-width:0;color:#b7cdc1}
.asset-art-preview img{width:112px;height:70px;object-fit:cover}
.asset-art-preview span{font:500 14px/1.4 Rajdhani,Bahnschrift,Arial,sans-serif}
.asset-visible{display:flex;align-items:center;justify-content:space-between;gap:14px}
.asset-toggle{appearance:none;width:44px!important;min-height:24px!important;height:24px;border-radius:20px!important;padding:2px!important;background:#27413d!important;border:1px solid #6c8c80!important;cursor:pointer}
.asset-toggle:before{content:"";display:block;width:18px;height:18px;border-radius:50%;background:#b8cbc2;transition:transform .15s}
.asset-toggle:checked{background:#8b8138!important;border-color:#d8c159!important}
.asset-toggle:checked:before{transform:translateX(19px);background:#fff}
.catalogue-editor{padding:22px;border:1px solid #66857988;background:#102320e8}
.catalogue-editor #catalogue-form{margin-top:18px}
.catalogue-editor .content-save-bar{margin-top:24px}
.format-toolbar{width:max-content}

.asset-editor-heading .asset-visible{margin-left:auto;display:inline-flex;align-items:center;gap:8px}
.asset-art-preview,.admin-field:has([data-asset-image]),.admin-field:has(#catalogue-upload){align-self:center}
.asset-art-preview{justify-content:center}
.asset-art-preview [data-preview-art]{padding:0;border:0;background:none;cursor:zoom-in}
.asset-art-preview [data-preview-art] img{display:block;margin:0}
#section-holocron img{width:100%;height:100%;object-fit:contain}
.family-detail-eyebrow a{color:inherit}

.admin-field:has(#catalogue-upload) input,.admin-field:has([data-asset-image]) input{display:flex;align-content:center}
.admin-field input[type=file]::file-selector-button{vertical-align:middle}
.asset-editor-heading .asset-visible{flex-direction:row}
.archive-block-assets > .auth-submit{display:flex;align-items:center;justify-content:center;text-decoration:none}
.archive-block-assets > .auth-submit:is(:hover,:focus-visible){background:#f5da68;border-color:#fff1b0}
