:root {
  --bg: #05080d;
  --panel: #0b1119;
  --panel-2: #111926;
  --panel-3: #161f30;
  --line: rgba(125, 249, 255, 0.14);
  --line-strong: rgba(125, 249, 255, 0.28);
  --text: #e8eef8;
  --muted: #8ba0b2;
  --accent: #7df9ff;
  --ok: #69f0ae;
  --warn: #ffd166;
  --err: #ff7b72;
  --shadow: 0 18px 38px rgba(0,0,0,0.32);
  --radius: 20px;
  --radius-sm: 14px;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; background: var(--bg); color: var(--text); font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body { min-height: 100vh; }
button, input, textarea, select { font: inherit; }
a { color: var(--accent); text-decoration: none; }
code { color: var(--accent); font-family: "SFMono-Regular", Consolas, monospace; }
.hidden { display: none !important; }
.muted { color: var(--muted); }
.monospace { font-family: "SFMono-Regular", Consolas, monospace; }
.stack-lg { display: grid; gap: 16px; }
.stack-md { display: grid; gap: 12px; }
.grid-2 { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.button-row { display: flex; gap: 10px; flex-wrap: wrap; }
.eyebrow { color: var(--accent); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; }
.boot-shell { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.boot-card, .card, .hero-card, .thread-card, .article-card, .planet-card, .combat-card, .profile-card {
  border: 1px solid var(--line);
  background: linear-gradient(180deg, rgba(10,16,24,0.98), rgba(15,22,34,0.98));
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.boot-card { width: min(720px, 100%); padding: 22px; }
.boot-card h1 { margin: 6px 0 10px; font-size: 28px; }
.form { display: grid; gap: 12px; }
.field { display: grid; gap: 8px; }
.field span { font-size: 12px; color: var(--muted); letter-spacing: 0.06em; text-transform: uppercase; }
.input, .textarea, select.input {
  width: 100%;
  border: 1px solid var(--line);
  background: rgba(255,255,255,0.03);
  color: var(--text);
  border-radius: 16px;
  padding: 13px 14px;
  outline: none;
}
.textarea { resize: vertical; min-height: 96px; }
.input:focus, .textarea:focus, select.input:focus {
  border-color: var(--line-strong);
  box-shadow: 0 0 0 3px rgba(125,249,255,0.12);
}
.primary, .secondary, .ghost-btn, .chip-btn, .nav-btn {
  border-radius: 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,0.03);
  color: var(--text);
}
.primary { background: rgba(125,249,255,0.16); border-color: rgba(125,249,255,0.3); }
.secondary, .ghost-btn, .chip-btn, .nav-btn { background: rgba(255,255,255,0.02); }
button:disabled { opacity: 0.45; }
.status-line { font-size: 14px; line-height: 1.45; }
.preview-card { min-height: 92px; border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: rgba(255,255,255,0.03); }
.details-card { border: 1px solid var(--line); border-radius: 18px; padding: 14px; background: rgba(255,255,255,0.02); }
.details-card summary { cursor: pointer; color: var(--text); }
.details-content { margin-top: 12px; }
.app-shell { min-height: 100vh; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding: 16px;
  background: rgba(5,8,13,0.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(18px);
}
.topbar h1 { margin: 4px 0 2px; font-size: 22px; }
.topbar-sub { color: var(--muted); font-size: 13px; }
.topbar-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.screens { padding: 16px 16px calc(172px + env(safe-area-inset-bottom)); }
.screen { display: none; padding-bottom: 40px; }
.screen.active { display: block; }
.bottom-nav {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 30;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line);
  background: rgba(5,8,13,0.98);
  backdrop-filter: blur(14px);
}
.nav-btn { min-height: 54px; font-size: 12px; }
.nav-btn.active { background: rgba(125,249,255,0.14); border-color: rgba(125,249,255,0.28); }
.section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.section-title { font-size: 18px; font-weight: 700; }
.hero-card { overflow: hidden; }
.hero-cover { position: relative; min-height: 240px; border-radius: calc(var(--radius) - 2px); overflow: hidden; }
.hero-cover img, .hero-cover .hero-map-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-map-bg { background: radial-gradient(circle at 30% 40%, rgba(125,249,255,0.18), transparent 22%), radial-gradient(circle at 60% 25%, rgba(255,209,102,0.15), transparent 18%), linear-gradient(180deg, rgba(10,16,24,0.5), rgba(10,16,24,0.78)), url('./assets/galaxy-bg.svg') center/cover no-repeat; }
.hero-overlay { position: relative; z-index: 2; display: grid; gap: 12px; min-height: 240px; align-content: end; padding: 18px; background: linear-gradient(180deg, transparent, rgba(6,10,16,0.86)); }
.hero-title { font-size: 28px; font-weight: 700; margin: 0; }
.hero-subtitle { color: #dce7f4; line-height: 1.5; margin: 0; }
.chip-row, .pill-row { display: flex; gap: 8px; flex-wrap: wrap; }
.info-chip, .pill { padding: 7px 10px; border-radius: 999px; border: 1px solid var(--line); background: rgba(255,255,255,0.04); font-size: 13px; }
.info-grid { display: grid; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 16px; }
.info-card, .compact-card { padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,0.03); }
.info-card .k, .data-label { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
.info-card .v, .data-value { margin-top: 6px; font-size: 16px; }
.card-list, .system-grid, .planet-grid, .article-list, .inventory-list, .thread-list, .message-list, .combat-scene-list { display: grid; gap: 12px; }
.system-grid, .planet-grid, .inventory-list { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.entity-card, .thread-card, .article-card, .planet-card, .combat-card, .profile-card { padding: 16px; }
.entity-card.active, .thread-card.active, .article-card.active, .planet-card.active, .combat-card.active { border-color: var(--line-strong); background: rgba(125,249,255,0.08); }
.entity-card h3, .article-card h3, .planet-card h3, .combat-card h3, .thread-card h3, .profile-card h3 { margin: 4px 0 10px; font-size: 18px; }
.entity-meta, .small-note { color: var(--muted); font-size: 13px; line-height: 1.45; }
.split-layout { display: grid; gap: 14px; }
.segmented { display: flex; gap: 8px; overflow: auto; padding-bottom: 2px; }
.segmented .chip-btn.active { background: rgba(125,249,255,0.14); border-color: rgba(125,249,255,0.28); }
.article-body {
  line-height: 1.65;
  color: #d9e4f0;
}
.article-body p:first-child { margin-top: 0; }
.article-body img { max-width: 100%; border-radius: 16px; display:block; }
.media-missing { padding: 12px 14px; border: 1px dashed var(--line); border-radius: 16px; color: var(--muted); text-align: center; background: rgba(255,255,255,0.02); }
.article-toolbar, .entity-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.market-disabled { border-left: 3px solid var(--warn); padding-left: 12px; }
.market-buy-row { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-top: 12px; }
.price { font-size: 18px; font-weight: 700; }
.message-list { max-height: 44vh; overflow: auto; padding-right: 4px; overscroll-behavior: contain; }
.chat-bubble {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255,255,255,0.03);
}
.chat-bubble.own { border-color: rgba(125,249,255,0.28); background: rgba(125,249,255,0.08); }
.chat-meta { color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.chat-compose { display: grid; gap: 10px; margin-top: 12px; }
.combat-board-wrap {
  position: relative;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: rgba(255,255,255,0.03);
  overflow: hidden;
}
.combat-board-viewport {
  position: relative;
  width: 100%;
  overflow: hidden;
  border-radius: inherit;
  background: rgba(6, 10, 18, 0.42);
}
.combat-board {
  position: relative;
  width: 100%;
  aspect-ratio: var(--board-ratio, 16 / 10);
  background: var(--board-color, #0b1420);
  overflow: hidden;
}
.combat-board-stage {
  position: absolute;
  inset: 0;
  transform-origin: center center;
  transform: translate(var(--cam-pan-x, 0px), var(--cam-pan-y, 0px)) scale(var(--cam-scale, 1));
  will-change: transform;
}
.combat-board-bg,
.combat-board-grid,
.combat-board-assets,
.combat-board-tokens {
  position: absolute;
  inset: 0;
}
.combat-board-bg.with-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
}
.combat-board-grid {
  background-image:
    linear-gradient(to right, rgba(125,249,255,0.12) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(125,249,255,0.12) 1px, transparent 1px);
  background-size: calc(100% / var(--board-cols)) calc(100% / var(--board-rows));
  pointer-events: none;
}
.board-asset, .board-token {
  position: absolute;
  transform-origin: center center;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.board-asset img, .board-token img { width: 100%; height: 100%; object-fit: cover; }
.board-token {
  border-radius: 14px;
  border: 2px solid rgba(255,255,255,0.24);
  box-shadow: 0 10px 22px rgba(0,0,0,0.28);
  background: rgba(10,16,24,0.72);
}
.board-token.player-owned { border-color: var(--accent); box-shadow: 0 0 0 4px rgba(125,249,255,0.12), 0 12px 22px rgba(0,0,0,0.28); }
.token-label {
  position: absolute;
  bottom: 4px;
  left: 4px;
  right: 4px;
  font-size: 11px;
  text-align: center;
  padding: 3px 6px;
  border-radius: 999px;
  background: rgba(5,8,13,0.72);
}
.token-glyph {
  font-weight: 700;
  font-size: 16px;
}
.log-list { display: grid; gap: 8px; margin-top: 12px; }
.log-entry { padding: 11px 12px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,0.03); }
.log-entry.dice { border-color: rgba(125,249,255,0.24); }
.profile-hero { display: flex; align-items: center; gap: 14px; }
.profile-toolbar { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
.mini-btn { padding: 8px 10px; border-radius: 12px; font-size: 12px; min-height: 0; }
.avatar-circle {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: linear-gradient(180deg, rgba(125,249,255,0.16), rgba(125,249,255,0.04));
  border: 1px solid rgba(125,249,255,0.28);
  font-size: 22px;
  font-weight: 700;
}
.avatar-circle img { width: 100%; height: 100%; object-fit: cover; }
.stat-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 14px; }
.stat { padding: 12px; border-radius: 16px; border: 1px solid var(--line); background: rgba(255,255,255,0.03); }
.toast-stack { position: fixed; right: 14px; bottom: calc(80px + env(safe-area-inset-bottom)); z-index: 60; display: grid; gap: 8px; width: min(92vw, 360px); }
.toast { padding: 12px 14px; border-radius: 16px; border: 1px solid var(--line); background: rgba(8,12,18,0.96); box-shadow: var(--shadow); }
.toast.ok { border-color: rgba(105,240,174,0.28); }
.toast.err { border-color: rgba(255,123,114,0.28); }
.toast.warn { border-color: rgba(255,209,102,0.28); }
.placeholder { padding: 18px; border: 1px dashed var(--line); border-radius: 18px; color: var(--muted); text-align: center; }
.meta-row { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.divider { height: 1px; background: var(--line); margin: 14px 0; }

@media (max-width: 760px) {
  .grid-2, .info-grid, .system-grid, .planet-grid, .inventory-list, .stat-grid { grid-template-columns: 1fr; }
  .topbar { flex-direction: column; }
  .bottom-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

.archive-search-row { position: sticky; top: 0; z-index: 3; background: linear-gradient(180deg, rgba(5,8,13,0.96), rgba(5,8,13,0.82)); padding-bottom: 8px; }
.archive-catalog { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); }
.archive-tile { border: 1px solid var(--line); border-radius: 20px; overflow: hidden; background: rgba(255,255,255,0.03); }
.archive-tile.active { border-color: var(--line-strong); box-shadow: 0 0 0 2px rgba(125,249,255,0.08); }
.archive-tile-btn { width: 100%; border: 0; background: transparent; color: var(--text); text-align: left; padding: 12px; font-weight: 600; min-height: 70px; }
.entity-thumb, .entity-hero-image { position: relative; overflow: hidden; background: linear-gradient(180deg, rgba(125,249,255,0.14), rgba(17,25,38,0.9)); }
.entity-thumb { aspect-ratio: 16 / 10; border-bottom: 1px solid var(--line); }
.entity-hero-image { width: calc(100% + 32px); margin: -16px -16px 14px; aspect-ratio: 16 / 8; border-bottom: 1px solid var(--line); }
.entity-thumb img, .entity-hero-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.placeholder-thumb { display: grid; place-items: center; color: rgba(232,238,248,0.86); font-size: 24px; font-weight: 700; }
.thread-row { display: flex; gap: 12px; align-items: center; }
.thread-row.compact { align-items: center; }
.thread-copy { min-width: 0; }
.thread-copy h3 { margin: 4px 0 6px; }
.avatar-circle.sm { width: 42px; height: 42px; font-size: 14px; }
.chat-row { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 10px; align-items: start; }
.chat-row.own { grid-template-columns: minmax(0, 1fr) 42px; }
.chat-row.own .avatar-circle { order: 2; }
.chat-row.own .chat-bubble { order: 1; }
.chat-bubble .article-body p:last-child { margin-bottom: 0; }
.message-list { gap: 12px; }
.combat-stage-shell { display: grid; gap: 12px; }
.combat-stage-shell.fullscreen { min-height: 100%; grid-template-rows: auto minmax(0, 1fr); }
.combat-stage-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.combat-head-actions { display: flex; gap: 8px; align-items: center; }
.mini-icon-btn { padding: 7px 10px; min-width: 40px; min-height: 36px; border-radius: 12px; font-size: 16px; line-height: 1; }
.combat-stage-grid { display: grid; gap: 12px; }
.combat-stage-grid.fullscreen { position: relative; min-height: 0; }
.combat-log-side { display: grid; gap: 8px; align-content: start; padding: 10px 12px; border-radius: 18px; border: 1px solid rgba(232,238,248,0.1); background: rgba(8, 12, 18, 0.42); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
.log-list.compact { max-height: 220px; overflow: auto; }
.combat-fullscreen { position: fixed; inset: 0; z-index: 55; background: rgba(5,8,13,0.985); padding: calc(8px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom)); display: grid; }
.combat-fullscreen .combat-stage-shell { min-height: 100%; }
.combat-fullscreen .combat-stage-grid { min-height: 0; }
.combat-board-wrap.fullscreen { min-height: 0; height: 100%; }
.combat-board-viewport.fullscreen { height: 100%; display: grid; place-items: center; }
.combat-fullscreen .combat-board { width: 100%; max-width: 100%; max-height: 100%; height: auto; margin: 0 auto; }
.combat-log-side.fullscreen { position: absolute; top: 10px; right: 10px; width: min(38vw, 250px); max-height: min(46vh, 320px); z-index: 4; background: rgba(5, 8, 13, 0.58); }
.combat-log-side.fullscreen .log-list.compact { max-height: calc(min(46vh, 320px) - 38px); }
body.combat-modal-open { overflow: hidden; }
@media (orientation: landscape) {
  .combat-fullscreen .combat-board { height: calc(100vh - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); width: auto; max-width: 100%; }
  .combat-log-side.fullscreen { width: min(32vw, 240px); max-height: min(54vh, 360px); }
}
@media (orientation: portrait) {
  .combat-log-side.fullscreen { width: min(58vw, 260px); max-height: min(34vh, 260px); }
}

/* v45 mobile layout refresh */
.archive-detail-top { display: grid; gap: 12px; }
.archive-list-title { margin: 16px 0 10px; display: grid; gap: 4px; }
.archive-catalog-bottom { margin-top: 0; }
.archive-tile.unread { border-color: rgba(125,249,255,0.34); background: rgba(125,249,255,0.055); }
.new-badge { display: inline-flex; align-items: center; padding: 2px 6px; margin-right: 5px; border-radius: 999px; border: 1px solid rgba(125,249,255,0.32); color: var(--accent); font-size: 10px; letter-spacing: .08em; }
.chat-mobile-layout { display: grid; gap: 14px; }
.chat-active-card { order: 1; }
.chat-contact-list { order: 2; }
.chat-active-card .message-list { max-height: 52vh; }

/* v1.0.21 mobile parity additions */
.skill-mobile-card.owned { border-color: rgba(105,240,174,0.26); }
.skill-mobile-card.available { border-color: rgba(125,249,255,0.30); }
.skill-mobile-card.locked { opacity: 0.72; }
.skill-sections { margin: -4px 0 12px; }
.reputation-mobile-list .entity-card { border-left: 3px solid rgba(125,249,255,0.24); }
.spec-grid-mobile .stat { min-height: 72px; }
@media (max-width: 520px) {
  .bottom-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .screens { padding-bottom: calc(240px + env(safe-area-inset-bottom)); }
  .topbar { align-items: stretch; }
  .profile-hero { align-items: flex-start; }
}

/* Web desktop-shell theme: player client with PC-app visual language */
:root {
  --bg: #04070d;
  --panel: rgba(8, 13, 20, 0.88);
  --panel-2: rgba(12, 20, 31, 0.92);
  --panel-3: rgba(17, 28, 42, 0.96);
  --line: rgba(125, 249, 255, 0.16);
  --line-strong: rgba(125, 249, 255, 0.38);
  --text: #e8eef8;
  --muted: #8ba0b2;
  --accent: #7df9ff;
  --ok: #69f0ae;
  --warn: #ffd166;
  --err: #ff7b72;
  --shadow: 0 26px 82px rgba(0,0,0,0.48);
  --radius: 18px;
  --radius-sm: 12px;
}

html, body {
  width: 100%;
  min-height: 100%;
  overflow-x: hidden;
  background: #03060b;
  color: var(--text);
}

body {
  min-height: 100vh;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.web-galaxy-bg {
  position: fixed;
  inset: 0;
  z-index: -3;
  overflow: hidden;
  background: radial-gradient(circle at 50% 40%, rgba(20, 33, 52, 0.86), #03060b 72%);
}
.web-galaxy-layer {
  position: absolute;
  inset: -5%;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  pointer-events: none;
}
.web-galaxy-layer.galaxy-one {
  background-image: linear-gradient(180deg, rgba(3,6,11,0.30), rgba(3,6,11,0.74)), url('./assets/images/galaxy1.png');
  filter: blur(1.2px) brightness(0.9) saturate(1.08) drop-shadow(0 0 34px rgba(125,249,255,0.22));
  transform: scale(1.015);
  opacity: 0.96;
}
.web-galaxy-layer.galaxy-two {
  background-image: url('./assets/images/galaxy2.png');
  background-size: 500% auto;
  filter: blur(9px) brightness(1.12) saturate(1.18);
  transform: scale(1.02);
  opacity: 0.55;
}
body::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(125,249,255,0.03) 1px, transparent 1px),
    linear-gradient(180deg, rgba(125,249,255,0.025) 1px, transparent 1px),
    radial-gradient(circle at 55% 50%, transparent 0, rgba(2,5,10,0.28) 50%, rgba(2,5,10,0.76) 100%);
  background-size: 48px 48px, 48px 48px, auto;
}

.hidden { display: none !important; }
.boot-shell {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 28px;
}
.boot-card,
.card,
.hero-card,
.thread-card,
.article-card,
.planet-card,
.profile-card,
.entity-card,
.compact-card,
.info-card,
.details-card,
.preview-card {
  border: 1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(10,16,24,0.94), rgba(9,14,22,0.90)),
    radial-gradient(circle at 20% 0%, rgba(125,249,255,0.07), transparent 34%);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}
.boot-card.desktop-login-card {
  width: min(820px, calc(100vw - 36px));
  padding: 28px;
  backdrop-filter: blur(10px);
}
.boot-card h1 {
  margin: 10px 0 12px;
  font-size: clamp(32px, 5vw, 52px);
  letter-spacing: -0.04em;
  line-height: 0.96;
}
.eyebrow {
  color: var(--accent);
  font-family: "SFMono-Regular", Consolas, monospace;
  font-size: 11px;
  letter-spacing: 0.20em;
  text-transform: uppercase;
}
.input, .textarea, select.input {
  border-radius: 12px;
  border: 1px solid rgba(125,249,255,0.18);
  background: rgba(3,7,12,0.72);
  color: var(--text);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.018);
}
.primary, .secondary, .ghost-btn, .chip-btn, .nav-btn, .link-btn {
  min-height: 42px;
  border-radius: 12px;
  border: 1px solid rgba(125,249,255,0.18);
  background: rgba(7,13,20,0.76);
  color: var(--text);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}
.primary {
  background: linear-gradient(180deg, rgba(125,249,255,0.26), rgba(125,249,255,0.10));
  border-color: rgba(125,249,255,0.46);
  color: #eaffff;
  box-shadow: 0 0 22px rgba(125,249,255,0.08);
}
.secondary:hover, .nav-btn:hover, .link-btn:hover,
.primary:hover { border-color: rgba(125,249,255,0.54); }

.app-shell { min-height: 100vh; padding-top: 76px; }
.topbar.title-bar {
  position: fixed;
  left: 14px;
  right: 14px;
  top: 12px;
  z-index: 35;
  min-height: 58px;
  padding: 10px 14px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 16px;
  background: rgba(5, 8, 13, 0.88);
  box-shadow: 0 12px 34px rgba(0,0,0,0.34);
  backdrop-filter: blur(12px);
}
.title-main { display: grid; gap: 2px; }
.topbar h1 {
  margin: 0;
  font-size: 18px;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-family: "SFMono-Regular", Consolas, monospace;
}
.topbar-sub { color: var(--muted); font-size: 12px; }
.topbar-actions { align-items: center; }

.screens.desktop-module-shell {
  width: min(1480px, calc(100vw - 32px));
  min-height: calc(100vh - 172px);
  margin: 0 auto;
  padding: 14px 0 112px;
}
.screen.active {
  display: block;
  animation: webModuleIn 180ms ease-out;
}
@keyframes webModuleIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.bottom-nav.desktop-dock {
  position: fixed;
  left: 50%;
  right: auto;
  bottom: 18px;
  transform: translateX(-50%);
  width: min(860px, calc(100vw - 24px));
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 10px;
  gap: 10px;
  border: 1px solid var(--line);
  border-radius: 24px;
  background: rgba(5,8,13,0.90);
  box-shadow: 0 18px 54px rgba(0,0,0,0.48);
  backdrop-filter: blur(14px);
}
.nav-btn {
  min-height: 58px;
  border-radius: 18px;
  font-size: 11px;
}
.nav-btn.active {
  background: radial-gradient(circle at 50% 0%, rgba(125,249,255,0.28), rgba(125,249,255,0.08));
  border-color: rgba(125,249,255,0.48);
  color: #ecffff;
}

.section-head { margin: 0 0 14px; }
.section-title { font-size: 20px; letter-spacing: -0.01em; }
.hero-card { border-radius: 22px; }
.hero-cover { min-height: 360px; }
.hero-overlay { min-height: 360px; padding: 28px; }
.hero-title { font-size: clamp(34px, 5vw, 62px); letter-spacing: -0.045em; }
.info-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.system-grid, .planet-grid, .inventory-list { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.article-list, .thread-list, .message-list, .card-list { gap: 14px; }
.split-layout { grid-template-columns: minmax(260px, 0.82fr) minmax(420px, 1.35fr); align-items: start; }
.entity-card, .thread-card, .article-card, .planet-card, .profile-card, .compact-card, .info-card { padding: 18px; }
.entity-card.active, .thread-card.active, .article-card.active, .planet-card.active {
  border-color: rgba(125,249,255,0.42);
  background: linear-gradient(180deg, rgba(125,249,255,0.10), rgba(10,16,24,0.90));
}
.message-list { max-height: min(58vh, 680px); }
.chat-compose { position: sticky; bottom: 94px; }
.article-body { font-size: 15px; }
.profile-card { max-width: 1160px; }
.stat-grid { grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); }
.toast-stack { z-index: 80; }

.combat-board-wrap, .combat-card, .combat-scene-list { display: none !important; }

@media (max-width: 900px) {
  .app-shell { padding-top: 84px; }
  .topbar.title-bar { left: 8px; right: 8px; top: 8px; }
  .topbar-actions { display: none; }
  .screens.desktop-module-shell { width: calc(100vw - 18px); padding-bottom: calc(112px + env(safe-area-inset-bottom)); }
  .bottom-nav.desktop-dock {
    bottom: 8px;
    width: calc(100vw - 12px);
    grid-template-columns: repeat(5, minmax(0, 1fr));
    padding: 8px;
    gap: 6px;
    border-radius: 20px;
  }
  .nav-btn { min-height: 50px; padding: 8px 6px; font-size: 10px; }
  .hero-cover, .hero-overlay { min-height: 270px; }
  .info-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .split-layout { grid-template-columns: 1fr; }
  .boot-shell { padding: 14px; }
  .boot-card.desktop-login-card { width: 100%; padding: 18px; }
}

@media (max-width: 520px) {
  .grid-2 { grid-template-columns: 1fr; }
  .info-grid { grid-template-columns: 1fr; }
  .bottom-nav.desktop-dock { gap: 4px; }
  .nav-btn span { font-size: 9px; }
  .hero-title { font-size: 34px; }
}

.consent-line { display: flex; gap: 10px; align-items: flex-start; color: var(--muted); line-height: 1.48; font-size: 13px; }
.consent-line input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--accent); }
.consent-line a { color: var(--accent); }
.archive-split { display: grid; grid-template-columns: minmax(260px, 360px) minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 14px; }
.archive-sidebar { position: sticky; top: 92px; max-height: calc(100vh - 170px); overflow: auto; padding-right: 4px; }
.archive-detail-pane { min-width: 0; margin-top: 0 !important; }
.archive-category-title { margin: 14px 0 8px; color: var(--accent); font-size: 11px; text-transform: uppercase; letter-spacing: .12em; border-top: 1px solid rgba(125,249,255,.16); padding-top: 10px; }
.archive-category-title:first-child { margin-top: 0; border-top: 0; padding-top: 0; }
.archive-catalog-side { display: grid; gap: 10px; }
@media (max-width: 860px) {
  .archive-split { grid-template-columns: 1fr; }
  .archive-sidebar { position: relative; top: auto; max-height: 38vh; border: 1px solid rgba(255,255,255,.12); border-radius: 18px; padding: 12px; background: rgba(0,0,0,.18); }
}

/* =====================================================================
   v1.0.38 web <-> Electron visual alignment
   Pulls the web (PC) player client to the desktop app's design language.
   DM mode / combat scenes / regional maps are intentionally excluded.
   ===================================================================== */
:root {
  --stroke: rgba(125,249,255,.14);
  --stroke2: rgba(125,249,255,.24);
  --text: #f2fbff;
  --muted: rgba(255,255,255,.58);
  --mono: Consolas, Monaco, monospace;
  --tr: all .32s cubic-bezier(.16,1,.3,1);
  --shadow: 0 24px 70px rgba(0,0,0,.6);
  --radius: 22px;
}
body { font-family: "Segoe UI", system-ui, sans-serif; }

/* Electron's subtle vignette + scanline overlay (replaces the grid lines) */
body::after {
  background:
    radial-gradient(circle at center, transparent 50%, rgba(0,0,0,.42) 100%),
    repeating-linear-gradient(180deg, rgba(255,255,255,0) 0px, rgba(255,255,255,0) 2px, rgba(255,255,255,.012) 3px) !important;
  background-size: auto !important;
}

/* Themed scrollbars */
* { scrollbar-color: rgba(125,249,255,.28) transparent; scrollbar-width: thin; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb { background: rgba(125,249,255,.18); border-radius: 999px; border: 2px solid transparent; background-clip: content-box; }
*::-webkit-scrollbar-thumb:hover { background: rgba(125,249,255,.34); border: 2px solid transparent; background-clip: content-box; }

/* Cards: match the Electron .card treatment (deep gradient, soft glow, blur) */
.boot-card, .card, .hero-card, .thread-card, .article-card, .planet-card,
.profile-card, .entity-card, .compact-card, .info-card, .details-card,
.preview-card, .archive-tile, .stat, .log-entry, .chat-bubble {
  border: 1px solid var(--stroke2);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  background:
    linear-gradient(180deg, rgba(13,18,28,.88), rgba(8,12,20,.94)),
    radial-gradient(circle at 20% 0%, rgba(125,249,255,.06), transparent 36%);
}
.stat, .log-entry, .chat-bubble, .info-card, .compact-card, .preview-card, .details-card { border-radius: 16px; }

/* Buttons: bright cyan primary in mono, like the Electron app (not uppercase) */
.primary, .secondary, .ghost-btn, .chip-btn, .link-btn {
  border-radius: 14px;
  padding: 12px 16px;
  font: 12px var(--mono);
  text-transform: none;
  letter-spacing: normal;
  cursor: pointer;
  transition: var(--tr);
}
.primary {
  border: none;
  background: linear-gradient(180deg, #7df9ff, #b7ebff);
  color: #00131a;
  font-weight: 700;
  box-shadow: 0 12px 28px rgba(125,249,255,.24);
}
.secondary, .link-btn { background: rgba(125,249,255,.06); color: var(--accent); border: 1px solid var(--stroke2); }
.ghost-btn, .chip-btn { background: rgba(255,255,255,.04); color: #d5edf9; border: 1px solid rgba(255,255,255,.08); }
.primary:hover, .secondary:hover, .ghost-btn:hover, .chip-btn:hover, .link-btn:hover { transform: translateY(-2px); }
.chip-btn.active, .segmented .chip-btn.active { background: rgba(125,249,255,.14); border-color: var(--stroke2); color: var(--accent); }
button:disabled { opacity: .45; transform: none !important; cursor: default; }

/* Inputs / selects / textareas: Electron padding, radius, focus glow + chevron */
.input, .textarea, select.input {
  border-radius: 14px;
  padding: 14px;
  background: rgba(255,255,255,.05);
  border: 1px solid var(--stroke2);
  color: #fff;
  transition: var(--tr);
}
.input:hover, .textarea:hover, select.input:hover { border-color: rgba(125,249,255,.3); }
.input:focus, .textarea:focus, select.input:focus { outline: none; border-color: rgba(125,249,255,.4); box-shadow: 0 0 0 4px rgba(125,249,255,.08); }
select.input {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23dffbff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 42px;
}
select.input option { background: #0a1220; color: #effcff; }

/* Pills / chips / tags */
.info-chip, .pill, .tag, .link-pill { padding: 6px 10px; border-radius: 999px; background: rgba(125,249,255,.08); border: 1px solid var(--stroke2); color: #dffbff; font-size: 11px; }

/* Eyebrows / section meta in accent mono, like Electron */
.eyebrow { font-family: var(--mono); color: var(--accent); letter-spacing: .2em; }
.info-card .k, .data-label { color: var(--muted); font-family: var(--mono); }
.data-value { font-family: var(--mono); }

/* Floating dock: lift + glow like the Electron #dock items */
.bottom-nav.desktop-dock {
  background: linear-gradient(180deg, rgba(15,22,35,.64), rgba(8,12,20,.88));
  border: 1px solid var(--stroke2);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
}
.nav-btn {
  border: 1px solid rgba(125,249,255,.18);
  background: linear-gradient(180deg, rgba(125,249,255,.16), rgba(125,249,255,.06));
  color: var(--accent);
  font: 11px var(--mono);
  text-transform: uppercase;
  letter-spacing: .08em;
  transition: var(--tr);
}
.nav-btn:hover { transform: translateY(-6px) scale(1.04); background: linear-gradient(180deg, #8efcff, #b8e9ff); color: #00131a; box-shadow: 0 14px 30px rgba(125,249,255,.3); }
.nav-btn.active { background: radial-gradient(circle at 50% 0%, rgba(125,249,255,.30), rgba(125,249,255,.08)); border-color: rgba(125,249,255,.5); color: #ecffff; }

/* Topbar accent + active archive/entity cards */
.topbar h1, #screen-title { color: var(--accent); }
.entity-card.active, .thread-card.active, .article-card.active, .planet-card.active, .archive-tile.active {
  border-color: rgba(125,249,255,.42);
  background: linear-gradient(180deg, rgba(125,249,255,.10), rgba(10,16,24,.92));
}

/* Belt-and-suspenders: keep DM / combat / region surfaces out of the web client */
.combat-board-wrap, .combat-card, .combat-scene-list, .combat-stage-shell,
[data-screen="combat"], [data-screen="regions"], [data-action^="combat-"],
.region-map-modal-v36, .dm-only { display: none !important; }

/* v1.0.38 web skill tree — desktop-app format (compact nodes, primary edges) */
.profile-tabs-web { margin-bottom: 14px; }
.web-skill-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.web-skill-zoom { display: flex; gap: 8px; align-items: center; }
.web-skill-tree-scroll {
  overflow: auto;
  border: 1px solid var(--stroke2);
  border-radius: 18px;
  background:
    radial-gradient(circle at 30% 10%, rgba(125,249,255,.05), transparent 40%),
    rgba(4, 8, 14, .78);
  min-height: 420px;
  max-height: calc(100vh - 300px);
}
.web-skill-tree-canvas { position: relative; }
.web-skill-tree-inner { position: relative; transform-origin: 0 0; }
.web-skill-lines { position: absolute; inset: 0; pointer-events: none; }
.web-skill-edge { stroke: rgba(125,249,255,.62); stroke-width: 1.6; }
.web-skill-edge.ability { stroke: rgba(125,249,255,.38); stroke-width: 2; }
.web-skill-node {
  position: absolute;
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 68px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(125,249,255,.22);
  background: linear-gradient(180deg, rgba(13,18,28,.92), rgba(8,12,20,.96));
  box-shadow: 0 10px 26px rgba(0,0,0,.34);
}
.web-skill-node .web-skill-thumb {
  width: 34px;
  height: 34px;
  flex: none;
  border-radius: 10px;
  overflow: hidden;
  display: grid;
  place-items: center;
  background: rgba(125,249,255,.1);
  border: 1px solid rgba(125,249,255,.22);
  color: var(--accent);
  font: 700 12px var(--mono);
}
.web-skill-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.web-skill-thumb.ability { border-radius: 50%; font-size: 11px; }
.web-skill-main { min-width: 0; display: grid; gap: 3px; }
.web-skill-main b { font-size: 11px; line-height: 1.25; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.web-skill-main i { font-style: normal; font-size: 10px; color: var(--muted); }
.web-skill-learn {
  justify-self: start;
  min-height: 0;
  padding: 4px 10px;
  border-radius: 999px;
  border: none;
  background: linear-gradient(180deg, #7df9ff, #b7ebff);
  color: #00131a;
  font: 700 10px var(--mono);
  letter-spacing: .04em;
  cursor: pointer;
}
.web-skill-learn:hover { transform: translateY(-1px); }
.web-skill-state {
  justify-self: start;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid rgba(125,249,255,.2);
  color: var(--muted);
  font: 10px var(--mono);
  letter-spacing: .05em;
}
.web-skill-node.owned { border-color: rgba(105,240,174,.4); }
.web-skill-node.owned .web-skill-state { border-color: rgba(105,240,174,.36); color: #9df5c8; }
.web-skill-node.available { border-color: rgba(125,249,255,.46); box-shadow: 0 0 18px rgba(125,249,255,.12), 0 10px 26px rgba(0,0,0,.34); }
.web-skill-node.locked { opacity: .55; }
.web-skill-node.spec { border-style: dashed; }
.web-skill-node.web-ability-node {
  min-height: 76px;
  border-color: rgba(125,249,255,.4);
  background: linear-gradient(180deg, rgba(19,31,46,.96), rgba(9,14,22,.96));
}
.web-skill-tree-scroll { cursor: grab; }
.web-skill-tree-scroll.is-panning { cursor: grabbing; user-select: none; }
.web-skill-tree-scroll.is-panning .web-skill-node { pointer-events: none; }
.web-skill-tip {
  position: fixed;
  z-index: 90;
  width: min(340px, calc(100vw - 24px));
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(125,249,255,.34);
  background: linear-gradient(180deg, rgba(13,20,31,.98), rgba(7,11,18,.98));
  box-shadow: 0 18px 48px rgba(0,0,0,.55);
  pointer-events: none;
  animation: webModuleIn 120ms ease-out;
}
.web-skill-tip-head { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; }
.web-skill-tip-head b { font-size: 13px; }
.web-skill-tip-head span { font: 10px var(--mono); color: var(--accent); letter-spacing: .06em; white-space: nowrap; }
.web-skill-tip-cat { margin-top: 2px; font: 10px var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.web-skill-tip-desc { margin-top: 8px; font-size: 12px; line-height: 1.5; color: #d9e4f0; }
.web-skill-tip-meta { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.web-skill-tip-meta .pill { font-size: 11px; padding: 4px 8px; }
.web-skill-tip-meta .pill.ok { border-color: rgba(105,240,174,.36); color: #9df5c8; }
.web-skill-tip-meta .pill.warn { border-color: rgba(255,209,102,.4); color: #ffe3a1; }
@media (max-width: 900px) {
  .web-skill-tree-scroll { max-height: calc(100vh - 250px); }
}

/* v1.0.40 — explicit persistent-login controls */
.remember-login-line { border: 1px solid rgba(125,249,255,0.18); border-radius: 12px; padding: 12px; background: rgba(7,13,22,0.52); }
.remember-login-line b { color: var(--text); }
.privacy-inline-note { margin: -4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.privacy-inline-note a { color: var(--accent); }
.ghost-btn.danger { border-color: rgba(255,105,105,0.38); color: #ffb2b2; }

/* v1.0.45 — persistent camera + event-driven galaxy realtime; mobile keeps the lightweight card navigator */
.web-galaxy-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 14px;
  min-height: calc(100vh - 190px);
}
.web-galaxy-stage {
  position: relative;
  overflow: hidden;
  min-height: 620px;
  border: 1px solid rgba(125,249,255,.22);
  border-radius: 20px;
  background:
    radial-gradient(circle at 22% 35%, rgba(255,126,58,.12), transparent 34%),
    radial-gradient(circle at 78% 34%, rgba(74,180,255,.12), transparent 38%),
    #02050a;
  box-shadow: inset 0 0 70px rgba(0,0,0,.62), var(--shadow);
}
#web-galaxy-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; cursor: grab; touch-action: none; }
#web-galaxy-canvas:active { cursor: grabbing; }
.web-galaxy-controls { position: absolute; top: 14px; left: 14px; z-index: 3; display: flex; gap: 8px; }
.web-galaxy-controls .secondary { padding: 9px 12px; background: rgba(5,12,20,.78); backdrop-filter: blur(10px); }
.web-galaxy-hint { position: absolute; left: 16px; bottom: 13px; z-index: 3; color: rgba(220,244,255,.58); font: 10px var(--mono); letter-spacing: .08em; pointer-events: none; }
.web-galaxy-inspector {
  overflow: auto;
  padding: 18px;
  border: 1px solid rgba(125,249,255,.22);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(9,16,27,.94), rgba(5,10,17,.98));
  box-shadow: var(--shadow);
}
.web-galaxy-inspector h2 { margin: 7px 0 12px; color: #effcff; }
.web-galaxy-inspector .entity-hero-image { height: 180px; margin: 10px 0 14px; border-radius: 15px; overflow: hidden; }
.web-galaxy-inspector .entity-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.galaxy-inspector-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.galaxy-inspector-grid > div { padding: 10px; border: 1px solid rgba(125,249,255,.12); border-radius: 12px; background: rgba(255,255,255,.025); }
.galaxy-inspector-grid span { display: block; color: var(--muted); font: 9px var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.galaxy-inspector-grid b { display: block; margin-top: 5px; color: #e9fbff; font-size: 12px; }
.galaxy-planet-list { display: grid; gap: 7px; margin-top: 12px; }
.galaxy-planet-row { width: 100%; display: grid; grid-template-columns: 14px 1fr auto; align-items: center; gap: 9px; padding: 10px 11px; border: 1px solid rgba(125,249,255,.13); border-radius: 12px; background: rgba(255,255,255,.025); color: #e9fbff; text-align: left; cursor: pointer; }
.galaxy-planet-row:hover { border-color: rgba(125,249,255,.38); background: rgba(125,249,255,.07); }
.galaxy-planet-row > span:last-child { color: var(--muted); font-size: 10px; }
.galaxy-planet-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--planet); box-shadow: 0 0 10px var(--planet); }
.web-galaxy-tooltip { position: fixed; z-index: 120; width: 230px; padding: 10px 12px; border: 1px solid rgba(125,249,255,.34); border-radius: 12px; background: rgba(5,11,18,.96); box-shadow: 0 14px 36px rgba(0,0,0,.48); pointer-events: none; }
.web-galaxy-tooltip b, .web-galaxy-tooltip span { display: block; }
.web-galaxy-tooltip span { margin-top: 4px; color: var(--muted); font: 10px var(--mono); }
.technical-setup-modal .boot-card { max-width: 860px; }

@media (max-width: 900px) {
  .web-galaxy-layout, .web-galaxy-tooltip { display: none !important; }
  .technical-access-btn { opacity: .72; }
}


/* v1.0.49 campaign era themes */
.campaign-login-hint-v1049{display:block;color:var(--muted);font-size:12px;line-height:1.45;margin-top:-2px}
html[data-era-theme] body{transition:background .28s ease,color .28s ease}

html[data-era-theme="technological"]{
  --bg:#070706;--panel:#11100d;--panel-2:#181610;--panel-3:#211e16;--line:rgba(198,164,104,.18);--line-strong:rgba(198,164,104,.42);--text:#eee6d7;--muted:#9d8e74;--accent:#c6a468;--ok:#8da36d;--warn:#d3a357;--err:#c36d61;--shadow:0 22px 52px rgba(0,0,0,.54);--radius:3px;--radius-sm:2px
}
html[data-era-theme="technological"] body{font-family:"Arial Narrow","Segoe UI Condensed","Segoe UI",sans-serif;background:radial-gradient(circle at 18% 10%,rgba(165,120,61,.10),transparent 28%),radial-gradient(circle at 82% 4%,rgba(115,84,49,.08),transparent 25%),repeating-linear-gradient(0deg,rgba(255,228,178,.012) 0 1px,transparent 1px 4px),linear-gradient(180deg,#0c0b09,#060605 72%,#020202)}
html[data-era-theme="technological"] .boot-card,html[data-era-theme="technological"] .card,html[data-era-theme="technological"] .hero-card,html[data-era-theme="technological"] .thread-card,html[data-era-theme="technological"] .article-card,html[data-era-theme="technological"] .planet-card,html[data-era-theme="technological"] .combat-card,html[data-era-theme="technological"] .profile-card{background:linear-gradient(180deg,rgba(20,18,14,.98),rgba(10,10,8,.98));box-shadow:inset 0 0 0 1px rgba(255,226,172,.025),var(--shadow)}
html[data-era-theme="technological"] .primary{background:linear-gradient(180deg,#c5a26a,#866532);border-color:#9b7742;color:#15100a}
html[data-era-theme="technological"] .secondary,html[data-era-theme="technological"] .ghost-btn,html[data-era-theme="technological"] .chip-btn,html[data-era-theme="technological"] .nav-btn{background:linear-gradient(180deg,rgba(47,42,32,.58),rgba(17,16,13,.86));color:#d8c092}
html[data-era-theme="technological"] .input,html[data-era-theme="technological"] .textarea,html[data-era-theme="technological"] select.input{border-radius:2px;background:rgba(5,5,4,.76);color:#eee6d7}
html[data-era-theme="technological"] .topbar,html[data-era-theme="technological"] .bottom-nav{background:rgba(8,8,6,.96)}

html[data-era-theme="industrial"]{
  --bg:#080909;--panel:#171818;--panel-2:#202121;--panel-3:#292a29;--line:rgba(176,162,138,.17);--line-strong:rgba(194,139,54,.46);--text:#ded8cd;--muted:#8f897e;--accent:#c58a35;--ok:#899f68;--warn:#d39a43;--err:#b85f55;--shadow:0 24px 58px rgba(0,0,0,.62);--radius:3px;--radius-sm:2px
}
html[data-era-theme="industrial"] body{font-family:"Arial Narrow","Segoe UI Condensed","Segoe UI",sans-serif;background:radial-gradient(circle at 50% -10%,rgba(188,126,40,.09),transparent 30%),repeating-linear-gradient(90deg,rgba(255,255,255,.012) 0 1px,transparent 1px 6px),linear-gradient(180deg,#171818,#090a0a 72%,#030404)}
html[data-era-theme="industrial"] .boot-card,html[data-era-theme="industrial"] .card,html[data-era-theme="industrial"] .hero-card,html[data-era-theme="industrial"] .thread-card,html[data-era-theme="industrial"] .article-card,html[data-era-theme="industrial"] .planet-card,html[data-era-theme="industrial"] .combat-card,html[data-era-theme="industrial"] .profile-card{background:linear-gradient(145deg,#2b2c2b,#111212);border-color:#49433b;box-shadow:inset 0 0 0 2px #161717,var(--shadow)}
html[data-era-theme="industrial"] .primary{background:linear-gradient(180deg,#bf8738,#75501f);border-color:#815e2d;color:#140f08}
html[data-era-theme="industrial"] .secondary,html[data-era-theme="industrial"] .ghost-btn,html[data-era-theme="industrial"] .chip-btn,html[data-era-theme="industrial"] .nav-btn{background:linear-gradient(180deg,#292a29,#141515);border-color:#4d473e;color:#d1b27c}
html[data-era-theme="industrial"] .input,html[data-era-theme="industrial"] .textarea,html[data-era-theme="industrial"] select.input{border-radius:2px;background:#0c0d0d;border-color:#49433b;color:#ded8cd;box-shadow:inset 0 2px 5px rgba(0,0,0,.62)}
html[data-era-theme="industrial"] .topbar,html[data-era-theme="industrial"] .bottom-nav{background:rgba(12,13,13,.97);box-shadow:inset 0 -1px #2c2924}

html[data-era-theme="medieval"]{
  --bg:#27190e;--panel:#ddc18d;--panel-2:#cfaa6c;--panel-3:#bea064;--line:rgba(92,56,27,.30);--line-strong:rgba(100,59,27,.65);--text:#2c1c10;--muted:#6d5135;--accent:#7b431c;--ok:#596f3a;--warn:#9d651e;--err:#87362d;--shadow:0 24px 60px rgba(29,12,4,.55);--radius:3px;--radius-sm:2px
}
html[data-era-theme="medieval"] body{font-family:Georgia,"Times New Roman",serif;background:radial-gradient(circle at 20% 8%,rgba(217,159,78,.14),transparent 28%),repeating-linear-gradient(90deg,rgba(77,41,17,.06) 0 2px,transparent 2px 54px),linear-gradient(180deg,#432a17,#1d120a 75%,#0e0905)}
html[data-era-theme="medieval"] .boot-card,html[data-era-theme="medieval"] .card,html[data-era-theme="medieval"] .hero-card,html[data-era-theme="medieval"] .thread-card,html[data-era-theme="medieval"] .article-card,html[data-era-theme="medieval"] .planet-card,html[data-era-theme="medieval"] .combat-card,html[data-era-theme="medieval"] .profile-card{background:linear-gradient(180deg,#ead3a4,#cfad70);border:2px solid #6d421f;color:#2c1c10;box-shadow:inset 0 0 0 3px rgba(111,66,30,.11),var(--shadow)}
html[data-era-theme="medieval"] .muted,html[data-era-theme="medieval"] .entity-meta,html[data-era-theme="medieval"] .small-note,html[data-era-theme="medieval"] .topbar-sub,html[data-era-theme="medieval"] .data-label{color:#725638}
html[data-era-theme="medieval"] .primary{background:linear-gradient(180deg,#9d4d2a,#672719);border-color:#562817;color:#f3dfb6}
html[data-era-theme="medieval"] .secondary,html[data-era-theme="medieval"] .ghost-btn,html[data-era-theme="medieval"] .chip-btn,html[data-era-theme="medieval"] .nav-btn{background:linear-gradient(180deg,#694823,#3d2814);border-color:#8d6536;color:#f0d5a0}
html[data-era-theme="medieval"] .input,html[data-era-theme="medieval"] .textarea,html[data-era-theme="medieval"] select.input{border-radius:2px;background:rgba(248,229,187,.80);border-color:#8d6232;color:#2b1c11}
html[data-era-theme="medieval"] select.input option{background:#dfc58f;color:#2b1c11}
html[data-era-theme="medieval"] .topbar,html[data-era-theme="medieval"] .bottom-nav{background:linear-gradient(180deg,#432b17,#25170d);border-color:#8c6334;color:#efd4a0}
html[data-era-theme="medieval"] .screen{color:#2c1c10}
html[data-era-theme="medieval"] .article-body{color:#3a2717}
html[data-era-theme="medieval"] .preview-card,html[data-era-theme="medieval"] .details-card,html[data-era-theme="medieval"] .info-card,html[data-era-theme="medieval"] .compact-card{background:rgba(248,229,187,.45);border-color:#9b713e;color:#2c1c10}
html[data-era-theme="medieval"] .web-galaxy-bg{filter:sepia(.72) saturate(.65) brightness(.55)}

@media(max-width:900px){html[data-era-theme="medieval"] .boot-card,html[data-era-theme="medieval"] .card{border-width:1px}}

/* =====================================================================
   v1.0.50 — tactile era materials, stable dock and blue technological UI
   ===================================================================== */
html[data-era-theme] {
  --material-radius:16px;
  --material-radius-sm:11px;
  --surface-highlight:rgba(255,255,255,.055);
  --surface-shadow:rgba(0,0,0,.44);
  --map-marker:#60c9ff;
  --map-route:#328dff;
  --map-text:#e8f8ff;
}

/* Keep the navigation anchored to the viewport in every theme. */
html[data-era-theme] .bottom-nav.desktop-dock {
  position:fixed !important;
  left:50% !important;
  right:auto !important;
  top:auto !important;
  bottom:18px !important;
  transform:translateX(-50%) !important;
  margin:0 !important;
}

html[data-era-theme] .boot-card,
html[data-era-theme] .card,
html[data-era-theme] .hero-card,
html[data-era-theme] .thread-card,
html[data-era-theme] .article-card,
html[data-era-theme] .planet-card,
html[data-era-theme] .profile-card,
html[data-era-theme] .entity-card,
html[data-era-theme] .compact-card,
html[data-era-theme] .info-card,
html[data-era-theme] .details-card,
html[data-era-theme] .preview-card,
html[data-era-theme] .archive-tile,
html[data-era-theme] .stat,
html[data-era-theme] .chat-bubble {
  border-radius:var(--material-radius);
  box-shadow:
    inset 0 1px 0 var(--surface-highlight),
    inset 0 -2px 8px rgba(0,0,0,.16),
    0 1px 0 rgba(255,255,255,.025),
    0 18px 54px var(--surface-shadow);
  backdrop-filter:blur(18px) saturate(1.08);
  -webkit-backdrop-filter:blur(18px) saturate(1.08);
}
html[data-era-theme] .stat,
html[data-era-theme] .compact-card,
html[data-era-theme] .info-card,
html[data-era-theme] .details-card,
html[data-era-theme] .preview-card,
html[data-era-theme] .archive-tile { border-radius:var(--material-radius-sm); }
html[data-era-theme] .primary,
html[data-era-theme] .secondary,
html[data-era-theme] .ghost-btn,
html[data-era-theme] .chip-btn,
html[data-era-theme] .nav-btn,
html[data-era-theme] .link-btn,
html[data-era-theme] .input,
html[data-era-theme] .textarea,
html[data-era-theme] select.input { border-radius:var(--material-radius-sm); }
html[data-era-theme] .primary,
html[data-era-theme] .secondary,
html[data-era-theme] .ghost-btn,
html[data-era-theme] .chip-btn,
html[data-era-theme] .nav-btn,
html[data-era-theme] .link-btn {
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -2px 4px rgba(0,0,0,.22),0 7px 18px rgba(0,0,0,.20);
}
html[data-era-theme] .primary:active,
html[data-era-theme] .secondary:active,
html[data-era-theme] .ghost-btn:active,
html[data-era-theme] .chip-btn:active,
html[data-era-theme] .nav-btn:active,
html[data-era-theme] .link-btn:active { transform:translateY(1px) scale(.99);box-shadow:inset 0 2px 5px rgba(0,0,0,.23),0 2px 7px rgba(0,0,0,.18); }
html[data-era-theme] .input,
html[data-era-theme] .textarea,
html[data-era-theme] select.input { box-shadow:inset 0 2px 7px rgba(0,0,0,.25),0 1px 0 rgba(255,255,255,.025); }

/* TECHNOLOGICAL — original blue/cyan language with rounded glass-like forms. */
html[data-era-theme="technological"] {
  --bg:#050a12;--panel:#0b1825;--panel-2:#10202f;--panel-3:#162a3d;
  --line:rgba(91,137,170,.15);--line-strong:rgba(101,157,194,.31);
  --text:#dfedf4;--muted:#91aaba;--accent:#719bb8;--ok:#69b294;--warn:#c9a567;--err:#d97883;
  --shadow:0 26px 70px rgba(0,4,13,.60);--radius:24px;--radius-sm:16px;
  --material-radius:24px;--material-radius-sm:16px;
  --surface-highlight:rgba(205,225,238,.075);--surface-shadow:rgba(0,5,15,.54);
  --map-marker:#719bb8;--map-route:#527fa3;--map-text:#dceaf2;
}
html[data-era-theme="technological"] body {
  font-family:"Segoe UI",system-ui,sans-serif;
  background:
    radial-gradient(circle at 18% 8%,rgba(71,111,145,.105),transparent 30%),
    radial-gradient(circle at 82% 2%,rgba(74,125,154,.055),transparent 28%),
    linear-gradient(180deg,#09131e,#050b13 68%,#02050a);
}
html[data-era-theme="technological"] body::after {
  background:radial-gradient(circle at center,transparent 44%,rgba(0,3,10,.42) 100%),repeating-linear-gradient(118deg,rgba(150,190,214,.010) 0 1px,transparent 1px 7px) !important;
}
html[data-era-theme="technological"] .boot-card,
html[data-era-theme="technological"] .card,
html[data-era-theme="technological"] .hero-card,
html[data-era-theme="technological"] .thread-card,
html[data-era-theme="technological"] .article-card,
html[data-era-theme="technological"] .planet-card,
html[data-era-theme="technological"] .profile-card,
html[data-era-theme="technological"] .entity-card,
html[data-era-theme="technological"] .compact-card,
html[data-era-theme="technological"] .info-card,
html[data-era-theme="technological"] .details-card,
html[data-era-theme="technological"] .preview-card,
html[data-era-theme="technological"] .archive-tile,
html[data-era-theme="technological"] .stat,
html[data-era-theme="technological"] .chat-bubble {
  background:
    radial-gradient(circle at 22% 0,rgba(104,157,190,.060),transparent 34%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.012) 0 1px,transparent 1px 5px),
    linear-gradient(180deg,rgba(12,27,45,.88),rgba(5,13,25,.92));
  border-color:rgba(103,158,194,.22);
}
html[data-era-theme="technological"] .primary { border:1px solid rgba(127,177,207,.42);background:linear-gradient(180deg,#7aa2bb,#4e7595);color:#06111a;box-shadow:inset 0 1px rgba(255,255,255,.30),0 10px 26px rgba(24,65,94,.20); }
html[data-era-theme="technological"] .secondary,
html[data-era-theme="technological"] .ghost-btn,
html[data-era-theme="technological"] .chip-btn,
html[data-era-theme="technological"] .nav-btn,
html[data-era-theme="technological"] .link-btn { background:linear-gradient(180deg,rgba(55,86,108,.25),rgba(9,22,35,.70));border-color:rgba(103,158,194,.21);color:#98b9cc; }
html[data-era-theme="technological"] .input,
html[data-era-theme="technological"] .textarea,
html[data-era-theme="technological"] select.input { background:rgba(6,15,24,.68);border-color:rgba(103,158,194,.20);color:#dfedf4; }
html[data-era-theme="technological"] select.input option { background:#071422;color:#eaf8ff; }
html[data-era-theme="technological"] .topbar,
html[data-era-theme="technological"] .bottom-nav { background:linear-gradient(180deg,rgba(20,39,55,.78),rgba(7,15,25,.92));border-color:rgba(103,158,194,.23);border-radius:24px; }
html[data-era-theme="technological"] .bottom-nav.desktop-dock { border-radius:28px; }
html[data-era-theme="technological"] .nav-btn { border-radius:18px; }
html[data-era-theme="technological"] .nav-btn:hover { background:linear-gradient(180deg,#89aebe,#6385a0);color:#06111a;box-shadow:0 12px 26px rgba(30,68,96,.20); }
html[data-era-theme="technological"] .nav-btn.active { background:radial-gradient(circle at 50% 0,rgba(111,159,190,.23),rgba(65,105,138,.10));border-color:rgba(111,164,197,.34);color:#e0edf4; }
html[data-era-theme="technological"] .web-galaxy-stage,
html[data-era-theme="technological"] .web-galaxy-inspector,
html[data-era-theme="technological"] .web-galaxy-tooltip { border-radius:22px;border-color:rgba(103,158,194,.21);background:rgba(7,17,27,.80);box-shadow:inset 0 1px rgba(213,244,255,.07),0 18px 50px rgba(0,5,17,.48); }

/* INDUSTRIAL — rough blackened steel, recessed fields and amber instrumentation. */
html[data-era-theme="industrial"] {
  --material-radius:9px;--material-radius-sm:6px;
  --surface-highlight:rgba(255,235,195,.055);--surface-shadow:rgba(0,0,0,.62);
  --map-marker:#d49a3f;--map-route:#a96f2f;--map-text:#ead8b4;
}
html[data-era-theme="industrial"] .boot-card,
html[data-era-theme="industrial"] .card,
html[data-era-theme="industrial"] .hero-card,
html[data-era-theme="industrial"] .thread-card,
html[data-era-theme="industrial"] .article-card,
html[data-era-theme="industrial"] .planet-card,
html[data-era-theme="industrial"] .profile-card,
html[data-era-theme="industrial"] .entity-card,
html[data-era-theme="industrial"] .compact-card,
html[data-era-theme="industrial"] .info-card,
html[data-era-theme="industrial"] .details-card,
html[data-era-theme="industrial"] .preview-card,
html[data-era-theme="industrial"] .archive-tile,
html[data-era-theme="industrial"] .stat,
html[data-era-theme="industrial"] .chat-bubble {
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 1px,transparent 1px 4px),linear-gradient(145deg,rgba(47,49,49,.94),rgba(16,17,18,.96));
  border-color:#514a40;box-shadow:inset 0 1px 0 rgba(255,225,174,.055),inset 0 0 0 2px #151616,inset 0 -8px 18px rgba(0,0,0,.22),0 25px 72px rgba(0,0,0,.62);
}
html[data-era-theme="industrial"] .topbar,
html[data-era-theme="industrial"] .bottom-nav { border-radius:9px; }
html[data-era-theme="industrial"] .web-galaxy-stage,
html[data-era-theme="industrial"] .web-galaxy-inspector,
html[data-era-theme="industrial"] .web-galaxy-tooltip { border-radius:8px;border-color:#514a40;background:rgba(17,18,18,.88); }

/* MEDIEVAL — tactile parchment and wood without requiring dedicated assets. */
html[data-era-theme="medieval"] {
  --material-radius:10px;--material-radius-sm:7px;
  --surface-highlight:rgba(255,244,207,.20);--surface-shadow:rgba(34,13,4,.55);
  --map-marker:#c88a52;--map-route:#9b673c;--map-text:#f0d9ad;
}
html[data-era-theme="medieval"] .boot-card,
html[data-era-theme="medieval"] .card,
html[data-era-theme="medieval"] .hero-card,
html[data-era-theme="medieval"] .thread-card,
html[data-era-theme="medieval"] .article-card,
html[data-era-theme="medieval"] .planet-card,
html[data-era-theme="medieval"] .profile-card,
html[data-era-theme="medieval"] .entity-card,
html[data-era-theme="medieval"] .compact-card,
html[data-era-theme="medieval"] .info-card,
html[data-era-theme="medieval"] .details-card,
html[data-era-theme="medieval"] .preview-card,
html[data-era-theme="medieval"] .archive-tile,
html[data-era-theme="medieval"] .stat,
html[data-era-theme="medieval"] .chat-bubble {
  background:radial-gradient(circle at 14% 12%,rgba(255,248,214,.18),transparent 28%),repeating-linear-gradient(4deg,rgba(92,54,27,.026) 0 1px,transparent 1px 5px),linear-gradient(180deg,rgba(238,216,171,.96),rgba(203,169,111,.97));
  border:1px solid #71431f;box-shadow:inset 0 1px 0 rgba(255,247,215,.48),inset 0 0 0 3px rgba(115,70,32,.10),inset 0 -9px 18px rgba(92,52,24,.09),0 23px 64px rgba(31,12,4,.52);
}
html[data-era-theme="medieval"] .web-galaxy-stage,
html[data-era-theme="medieval"] .web-galaxy-inspector,
html[data-era-theme="medieval"] .web-galaxy-tooltip { border-radius:8px;border-color:#7c4e26;background:rgba(66,40,20,.84);color:#f0d9ad; }

@media (max-width:900px) {
  html[data-era-theme] .bottom-nav.desktop-dock { bottom:8px !important; }
  html[data-era-theme="technological"] .bottom-nav.desktop-dock { border-radius:22px; }
}

/* v1.0.52 — registration, origins and armor class */
.registration-panel-v1052{margin-top:18px}
.registration-card-v1052{padding:18px;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 26%,transparent);border-radius:var(--radius-lg,20px);background:rgba(8,14,22,.88);box-shadow:inset 0 1px rgba(255,255,255,.05),0 18px 50px rgba(0,0,0,.32);backdrop-filter:blur(16px)}
.form-grid-v1052{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
[data-era-theme="industrial"] .registration-card-v1052{border-radius:6px;background:rgba(17,18,18,.94);border-color:rgba(181,130,62,.34)}
[data-era-theme="medieval"] .registration-card-v1052{background:rgba(60,39,21,.92);border-color:rgba(173,124,67,.38)}
@media(max-width:700px){.form-grid-v1052{grid-template-columns:1fr}.registration-card-v1052{padding:14px}}

/* v1.0.52 DM moderation cards */
.application-card-v1052{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.application-card-v1052 .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.application-card-v1052 button.small{min-height:34px;padding:7px 11px;font-size:12px}
@media(max-width:700px){.application-card-v1052{align-items:stretch}.application-card-v1052 .row,.application-card-v1052 button{width:100%}.application-card-v1052 button{justify-content:center}}


/* v1.0.54 — separate registration window and long-form origin cards */
body.registration-open-v1054{overflow:hidden}
.registration-panel-v1052.hidden{display:none!important}
.registration-panel-v1052{position:fixed!important;inset:0!important;z-index:12000!important;margin:0!important;pointer-events:auto}
.registration-window-v1054{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:clamp(12px,2.5vw,36px);background:rgba(2,5,9,.78);backdrop-filter:blur(13px) saturate(.82)}
.registration-card-v1052{width:min(1160px,96vw);height:min(900px,94vh);display:flex;flex-direction:column;padding:0!important;overflow:hidden!important}
.registration-sticky-head-v1054{flex:0 0 auto;padding:19px 21px;border-bottom:1px solid color-mix(in srgb,var(--accent,#6c97c7) 18%,transparent);background:color-mix(in srgb,var(--panel,#0a111b) 95%,transparent);backdrop-filter:blur(18px)}
.registration-form-v1054{flex:1 1 auto;overflow:auto;padding:21px;scrollbar-gutter:stable}
.registration-section-v1054{padding:18px;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 14%,transparent);border-radius:16px;background:rgba(255,255,255,.018);box-shadow:inset 0 1px rgba(255,255,255,.025)}
.registration-description-v1054{min-height:150px;line-height:1.58;resize:vertical}
.origin-choice-grid-v1054{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.origin-choice-card-v1054{position:relative;display:grid;grid-template-columns:145px minmax(0,1fr);min-height:190px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 16%,transparent);border-radius:15px;background:color-mix(in srgb,var(--panel,#09111a) 91%,transparent);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}
.origin-choice-card-v1054:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent,#6c97c7) 35%,transparent)}
.origin-choice-card-v1054:has(input:checked){border-color:color-mix(in srgb,var(--accent,#6c97c7) 70%,white 4%);background:color-mix(in srgb,var(--accent,#6c97c7) 7%,var(--panel,#09111a));box-shadow:0 14px 38px rgba(0,0,0,.25)}
.origin-choice-card-v1054>input{position:absolute;opacity:0;pointer-events:none}
.origin-choice-media-v1054{min-height:190px;overflow:hidden;background:rgba(0,0,0,.22);border-right:1px solid rgba(255,255,255,.05)}
.origin-choice-media-v1054 img{width:100%;height:100%;object-fit:cover;display:block}
.origin-choice-placeholder-v1054{height:100%;display:grid;place-items:center;font:700 11px/1 var(--mono);letter-spacing:.16em;color:var(--muted);background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(0,0,0,.18))}
.origin-choice-body-v1054{padding:15px 16px;display:flex;min-width:0;flex-direction:column;align-items:flex-start}
.origin-choice-kicker-v1054{font:700 10px/1.2 var(--mono);letter-spacing:.12em;color:var(--accent);opacity:.86;margin-bottom:6px;text-transform:uppercase}
.origin-choice-title-v1054{font-size:18px;font-weight:800;line-height:1.2;margin-bottom:8px}
.origin-choice-description-v1054{white-space:pre-wrap;line-height:1.52;color:var(--muted);font-size:13px;max-height:260px;overflow:auto;padding-right:4px}
.origin-bonuses-v1054{display:flex;flex-wrap:wrap;gap:6px;margin-top:13px}
.origin-bonus-v1054{padding:4px 7px;border-radius:999px;font:700 10px/1 var(--mono);border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035)}
.origin-bonus-v1054.positive{color:#9bd5b3}.origin-bonus-v1054.negative{color:#d8a0a0}.origin-bonus-v1054.neutral{color:var(--muted)}
.origin-select-indicator-v1054{margin-top:auto;padding-top:12px;font:700 10px/1 var(--mono);letter-spacing:.12em;color:var(--muted)}
.origin-choice-card-v1054:has(input:checked) .origin-select-indicator-v1054{color:var(--accent)}
.origin-choice-card-v1054:has(input:checked) .origin-select-indicator-v1054::after{content:' ✓'}
.origin-empty-v1054{padding:18px;margin-top:12px;border:1px dashed rgba(255,255,255,.12);border-radius:12px;color:var(--muted)}
.registration-submit-v1054{position:sticky;bottom:-21px;margin:0 -21px -21px;padding:15px 21px 19px;background:color-mix(in srgb,var(--panel,#09111a) 96%,transparent);border-top:1px solid rgba(255,255,255,.06);backdrop-filter:blur(18px)}
[data-era-theme="industrial"] .origin-choice-card-v1054,[data-era-theme="industrial"] .registration-section-v1054{border-radius:5px}
[data-era-theme="medieval"] .origin-choice-card-v1054,[data-era-theme="medieval"] .registration-section-v1054{border-radius:9px}
@media(max-width:760px){.registration-window-v1054{padding:0}.registration-card-v1052{width:100%;height:100dvh;max-height:none;border-radius:0!important}.registration-form-v1054{padding:14px}.origin-choice-grid-v1054{grid-template-columns:1fr}.origin-choice-card-v1054{grid-template-columns:105px minmax(0,1fr)}.registration-submit-v1054{bottom:-14px;margin:0 -14px -14px;padding:14px}.registration-sticky-head-v1054{padding:14px}}
@media(max-width:480px){.origin-choice-card-v1054{grid-template-columns:1fr}.origin-choice-media-v1054{height:145px;min-height:145px;border-right:0;border-bottom:1px solid rgba(255,255,255,.05)}}

/* v1.0.58 asset-backed era skins */
html[data-era-theme="industrial"]{
  --era-ui-window-main:url("./assets/images/nowadays/UI/windows/window-main.png");
  --era-ui-window-modal:url("./assets/images/nowadays/UI/windows/window-modal.png");
  --era-ui-panel:url("./assets/images/nowadays/UI/windows/panel-card.png");
  --era-ui-tooltip:url("./assets/images/nowadays/UI/windows/tooltip.png");
  --era-ui-button-primary:url("./assets/images/nowadays/UI/buttons/button-primary-default.png");
  --era-ui-button-primary-hover:url("./assets/images/nowadays/UI/buttons/button-primary-hover.png");
  --era-ui-button-primary-pressed:url("./assets/images/nowadays/UI/buttons/button-primary-pressed.png");
  --era-ui-button-primary-disabled:url("./assets/images/nowadays/UI/buttons/button-primary-disabled.png");
  --era-ui-button-secondary:url("./assets/images/nowadays/UI/buttons/button-secondary.png");
  --era-ui-toggle-selected:url("./assets/images/nowadays/UI/buttons/toggle-selected.png");
  --era-ui-label:url("./assets/images/nowadays/UI/labels/label-passive.png");
  --era-ui-toast-info:url("./assets/images/nowadays/UI/notifications/notification-info.png");
  --era-ui-toast-success:url("./assets/images/nowadays/UI/notifications/notification-success.png");
  --era-ui-toast-error:url("./assets/images/nowadays/UI/notifications/notification-error.png");
  --era-ui-toast-warning:url("./assets/images/nowadays/UI/notifications/notification-warning.png");
}
html[data-era-theme="medieval"]{
  --era-ui-window-main:url("./assets/images/bronzera/UI/windows/window-main.png");
  --era-ui-window-modal:url("./assets/images/bronzera/UI/windows/window-modal.png");
  --era-ui-panel:url("./assets/images/bronzera/UI/windows/panel-card.png");
  --era-ui-tooltip:url("./assets/images/bronzera/UI/windows/tooltip.png");
  --era-ui-button-primary:url("./assets/images/bronzera/UI/buttons/button-primary-default.png");
  --era-ui-button-primary-hover:url("./assets/images/bronzera/UI/buttons/button-primary-hover.png");
  --era-ui-button-primary-pressed:url("./assets/images/bronzera/UI/buttons/button-primary-pressed.png");
  --era-ui-button-primary-disabled:url("./assets/images/bronzera/UI/buttons/button-primary-disabled.png");
  --era-ui-button-secondary:url("./assets/images/bronzera/UI/buttons/button-secondary.png");
  --era-ui-toggle-selected:url("./assets/images/bronzera/UI/buttons/toggle-selected.png");
  --era-ui-label:url("./assets/images/bronzera/UI/labels/label-passive.png");
  --era-ui-toast-info:url("./assets/images/bronzera/UI/notifications/notification-info.png");
  --era-ui-toast-success:url("./assets/images/bronzera/UI/notifications/notification-success.png");
  --era-ui-toast-error:url("./assets/images/bronzera/UI/notifications/notification-error.png");
  --era-ui-toast-warning:url("./assets/images/bronzera/UI/notifications/notification-warning.png");
}
html[data-era-theme="industrial"] .boot-card,
html[data-era-theme="industrial"] .card,
html[data-era-theme="industrial"] .hero-card,
html[data-era-theme="industrial"] .thread-card,
html[data-era-theme="industrial"] .article-card,
html[data-era-theme="industrial"] .planet-card,
html[data-era-theme="industrial"] .combat-card,
html[data-era-theme="industrial"] .profile-card,
html[data-era-theme="industrial"] .entity-card,
html[data-era-theme="industrial"] .compact-card,
html[data-era-theme="industrial"] .info-card,
html[data-era-theme="industrial"] .details-card,
html[data-era-theme="industrial"] .preview-card,
html[data-era-theme="industrial"] .archive-tile,
html[data-era-theme="industrial"] .chat-bubble,
html[data-era-theme="medieval"] .boot-card,
html[data-era-theme="medieval"] .card,
html[data-era-theme="medieval"] .hero-card,
html[data-era-theme="medieval"] .thread-card,
html[data-era-theme="medieval"] .article-card,
html[data-era-theme="medieval"] .planet-card,
html[data-era-theme="medieval"] .combat-card,
html[data-era-theme="medieval"] .profile-card,
html[data-era-theme="medieval"] .entity-card,
html[data-era-theme="medieval"] .compact-card,
html[data-era-theme="medieval"] .info-card,
html[data-era-theme="medieval"] .details-card,
html[data-era-theme="medieval"] .preview-card,
html[data-era-theme="medieval"] .archive-tile,
html[data-era-theme="medieval"] .chat-bubble{background-image:var(--era-ui-panel);background-size:100% 100%;background-repeat:no-repeat;backdrop-filter:blur(10px)}
html[data-era-theme="industrial"] .boot-card,
html[data-era-theme="medieval"] .boot-card{background-image:var(--era-ui-window-modal);background-size:100% 100%;background-repeat:no-repeat}
html[data-era-theme="industrial"] .topbar,
html[data-era-theme="industrial"] .bottom-nav,
html[data-era-theme="medieval"] .topbar,
html[data-era-theme="medieval"] .bottom-nav{background-image:var(--era-ui-window-main);background-size:100% 100%;background-repeat:no-repeat}
html[data-era-theme="industrial"] .primary,
html[data-era-theme="medieval"] .primary{background-image:var(--era-ui-button-primary);background-size:100% 100%;background-repeat:no-repeat;border-color:transparent;min-height:44px;padding-inline:22px}
html[data-era-theme="industrial"] .primary:hover,
html[data-era-theme="medieval"] .primary:hover{background-image:var(--era-ui-button-primary-hover)}
html[data-era-theme="industrial"] .primary:active,
html[data-era-theme="medieval"] .primary:active{background-image:var(--era-ui-button-primary-pressed)}
html[data-era-theme="industrial"] .primary:disabled,
html[data-era-theme="medieval"] .primary:disabled{background-image:var(--era-ui-button-primary-disabled)}
html[data-era-theme="industrial"] .secondary,
html[data-era-theme="industrial"] .ghost-btn,
html[data-era-theme="industrial"] .chip-btn,
html[data-era-theme="industrial"] .nav-btn,
html[data-era-theme="industrial"] .link-btn,
html[data-era-theme="medieval"] .secondary,
html[data-era-theme="medieval"] .ghost-btn,
html[data-era-theme="medieval"] .chip-btn,
html[data-era-theme="medieval"] .nav-btn,
html[data-era-theme="medieval"] .link-btn{background-image:var(--era-ui-button-secondary);background-size:100% 100%;background-repeat:no-repeat;border-color:transparent}
html[data-era-theme="industrial"] .eyebrow,
html[data-era-theme="industrial"] .pill,
html[data-era-theme="industrial"] .tag,
html[data-era-theme="medieval"] .eyebrow,
html[data-era-theme="medieval"] .pill,
html[data-era-theme="medieval"] .tag{background-image:var(--era-ui-label);background-size:100% 100%;background-repeat:no-repeat;border-color:transparent;padding-inline:12px}

/* =====================================================================
   v1.0.59 — mixed asset mode: compact controls use PNG, fluid panels CSS
   ===================================================================== */
html[data-era-theme="industrial"]{
  --era-ui-button-icon:url("./assets/images/nowadays/UI/buttons/button-icon.png");
}
html[data-era-theme="medieval"]{
  --era-ui-button-icon:url("./assets/images/bronzera/UI/buttons/button-icon.png");
}

/* Large content surfaces: procedural material, no stretched panel/window PNG. */
html[data-era-theme="industrial"] .boot-card,
html[data-era-theme="industrial"] .card,
html[data-era-theme="industrial"] .hero-card,
html[data-era-theme="industrial"] .thread-card,
html[data-era-theme="industrial"] .article-card,
html[data-era-theme="industrial"] .planet-card,
html[data-era-theme="industrial"] .combat-card,
html[data-era-theme="industrial"] .profile-card,
html[data-era-theme="industrial"] .entity-card,
html[data-era-theme="industrial"] .compact-card,
html[data-era-theme="industrial"] .info-card,
html[data-era-theme="industrial"] .details-card,
html[data-era-theme="industrial"] .preview-card,
html[data-era-theme="industrial"] .archive-tile,
html[data-era-theme="industrial"] .chat-bubble{
  background-image:none;
  background:linear-gradient(145deg,rgba(43,44,43,.97),rgba(17,18,18,.98));
  border-color:#49433b;
}
html[data-era-theme="industrial"] .topbar,
html[data-era-theme="industrial"] .bottom-nav{
  background-image:none;
  background:rgba(12,13,13,.97);
  border-color:#49433b;
}
html[data-era-theme="medieval"] .boot-card,
html[data-era-theme="medieval"] .card,
html[data-era-theme="medieval"] .hero-card,
html[data-era-theme="medieval"] .thread-card,
html[data-era-theme="medieval"] .article-card,
html[data-era-theme="medieval"] .planet-card,
html[data-era-theme="medieval"] .combat-card,
html[data-era-theme="medieval"] .profile-card,
html[data-era-theme="medieval"] .entity-card,
html[data-era-theme="medieval"] .compact-card,
html[data-era-theme="medieval"] .info-card,
html[data-era-theme="medieval"] .details-card,
html[data-era-theme="medieval"] .preview-card,
html[data-era-theme="medieval"] .archive-tile,
html[data-era-theme="medieval"] .chat-bubble{
  background-image:none;
  background:linear-gradient(180deg,rgba(234,211,164,.98),rgba(207,173,112,.98));
  border-color:#6d421f;
  color:#2c1c10;
}
html[data-era-theme="medieval"] .topbar,
html[data-era-theme="medieval"] .bottom-nav{
  background-image:none;
  background:linear-gradient(180deg,#432b17,#25170d);
  border-color:#8c6334;
}

/* Keep authored compact controls where aspect ratio is reasonably close. */
html[data-era-theme="industrial"] .primary,
html[data-era-theme="medieval"] .primary{
  background-image:var(--era-ui-button-primary);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-color:transparent;
}
html[data-era-theme="industrial"] .secondary,
html[data-era-theme="industrial"] .ghost-btn,
html[data-era-theme="industrial"] .chip-btn,
html[data-era-theme="industrial"] .nav-btn,
html[data-era-theme="industrial"] .link-btn,
html[data-era-theme="medieval"] .secondary,
html[data-era-theme="medieval"] .ghost-btn,
html[data-era-theme="medieval"] .chip-btn,
html[data-era-theme="medieval"] .nav-btn,
html[data-era-theme="medieval"] .link-btn{
  background-image:var(--era-ui-button-secondary);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-color:transparent;
}
html[data-era-theme="industrial"] .eyebrow,
html[data-era-theme="industrial"] .pill,
html[data-era-theme="industrial"] .tag,
html[data-era-theme="medieval"] .eyebrow,
html[data-era-theme="medieval"] .pill,
html[data-era-theme="medieval"] .tag{
  background-image:var(--era-ui-label);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-color:transparent;
}
html[data-era-theme="industrial"] .toast,
html[data-era-theme="medieval"] .toast{
  background-color:transparent;
  background-size:100% 100%;
  background-repeat:no-repeat;
  border-color:transparent;
}
html[data-era-theme="industrial"] .toast{background-image:var(--era-ui-toast-info)}
html[data-era-theme="industrial"] .toast.ok{background-image:var(--era-ui-toast-success)}
html[data-era-theme="industrial"] .toast.err{background-image:var(--era-ui-toast-error)}
html[data-era-theme="industrial"] .toast.warn{background-image:var(--era-ui-toast-warning)}
html[data-era-theme="medieval"] .toast{background-image:var(--era-ui-toast-info)}
html[data-era-theme="medieval"] .toast.ok{background-image:var(--era-ui-toast-success)}
html[data-era-theme="medieval"] .toast.err{background-image:var(--era-ui-toast-error)}
html[data-era-theme="medieval"] .toast.warn{background-image:var(--era-ui-toast-warning)}

/* Text/article bodies must be freely resizable and never use a stretched texture asset. */
html[data-era-theme="industrial"] .article-body,
html[data-era-theme="industrial"] .rich-text,
html[data-era-theme="medieval"] .article-body,
html[data-era-theme="medieval"] .rich-text{
  background-image:none;
}

/* v1.0.60 archive navigation, compact profile inventory and targeted era assets */
html[data-era-theme="industrial"]{
  --era-wide-button-v1060:url("./assets/images/nowadays/button.png");
  --era-article-top-v1060:url("./assets/images/nowadays/article_top.png");
}
html[data-era-theme="medieval"]{
  --era-wide-button-v1060:url("./assets/images/bronzera/button.png");
  --era-article-top-v1060:url("./assets/images/bronzera/article_top.png");
}
.archive-top-nav-v1060{position:sticky;top:0;z-index:6;padding:8px 0 10px;background:linear-gradient(180deg,rgba(5,8,13,.98),rgba(5,8,13,.78),transparent)}
.archive-catalog,.archive-catalog-side{grid-template-columns:1fr !important}
html[data-era-theme="medieval"] #screen-archive,
html[data-era-theme="medieval"] #screen-archive .archive-tile-btn,
html[data-era-theme="medieval"] #screen-archive .article-body,
html[data-era-theme="medieval"] #screen-archive .small-note,
html[data-era-theme="medieval"] #screen-archive .muted,
html[data-era-theme="medieval"] #screen-archive h2,
html[data-era-theme="medieval"] #screen-archive h3,
html[data-era-theme="medieval"] #screen-archive .data-value,
html[data-era-theme="medieval"] #screen-archive .data-label{
  color:#8b201d !important;
}
html[data-era-theme="industrial"] .era-article-top-v1060,
html[data-era-theme="medieval"] .era-article-top-v1060{
  position:relative;
  min-height:42px;
  padding:12px 16px 10px;
  background-image:var(--era-article-top-v1060);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center;
}
html[data-era-theme="industrial"] .article-card > .eyebrow:first-of-type,
html[data-era-theme="medieval"] .article-card > .eyebrow:first-of-type{
  display:block;
  min-height:34px;
  padding:9px 14px 6px;
  margin:0 0 8px;
  background-image:var(--era-article-top-v1060);
  background-size:100% 100%;
  background-repeat:no-repeat;
  background-position:center;
}
.profile-item-grid-v1060{
  grid-template-columns:repeat(auto-fit,minmax(150px,190px));
  justify-content:start;
  gap:10px;
}
.profile-item-card-v1060{
  padding:10px;
  cursor:pointer;
  min-width:0;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.profile-item-card-v1060:hover{transform:translateY(-2px);border-color:var(--line-strong)}
.profile-item-card-v1060 .entity-thumb{border:1px solid var(--line);border-radius:14px;margin-bottom:9px}
.profile-item-card-v1060 h3{font-size:14px;line-height:1.25;margin:3px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-item-card-v1060 .eyebrow{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-item-card-copy-v1060{min-width:0}
.entity-item-media-v1060{aspect-ratio:1 / 1 !important;width:100%;height:auto !important}
.entity-item-media-v1060 img{width:100%;height:100%;object-fit:cover}
.profile-item-modal-v1060{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:18px;
  background:rgba(2,4,8,.82);
  backdrop-filter:blur(14px);
}
body.registration-open-v1054 .profile-item-modal-v1060{
  z-index:13000;
}
.profile-item-modal-shell-v1060{width:min(560px,100%);max-height:calc(100vh - 36px);overflow:auto}
.profile-item-modal-card-v1060{
  position:relative;
  padding:18px;
  border:1px solid var(--line-strong);
  border-radius:22px;
  background:var(--panel,rgba(9,14,24,.96));
  box-shadow:var(--shadow);
}
.profile-item-modal-card-v1060 .entity-item-media-v1060{max-width:280px;margin:0 auto 16px;border-radius:18px;border:1px solid var(--line)}
.profile-item-modal-card-v1060 h2{margin:5px 44px 6px 0}
.profile-item-modal-pills-v1060{margin:12px 0;display:flex;gap:8px;flex-wrap:wrap}
.profile-item-modal-close-v1060{
  position:absolute;
  right:12px;
  top:12px;
  z-index:2;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid var(--line-strong);
  background:rgba(0,0,0,.42);
  color:var(--text);
  font-size:24px;
  line-height:1;
  cursor:pointer;
}
@media(max-width:760px){
  .profile-item-grid-v1060{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .profile-item-card-v1060{padding:8px;border-radius:14px}
  .profile-item-card-v1060 .entity-thumb{border-radius:10px;margin-bottom:7px}
  .profile-item-card-v1060 h3{font-size:12px;margin:2px 0 4px}
  .profile-item-card-v1060 .pill{font-size:10px;padding:4px 7px}
  .profile-item-modal-v1060{padding:10px}
  .profile-item-modal-shell-v1060{max-height:calc(100vh - 20px)}
  .profile-item-modal-card-v1060{padding:14px;border-radius:18px}
}
html[data-era-theme="medieval"] #screen-archive .section-title,
html[data-era-theme="medieval"] #screen-archive .archive-category-title,
html[data-era-theme="medieval"] #screen-archive .eyebrow,
html[data-era-theme="medieval"] #screen-archive .input{
  color:#8b201d !important;
}
html[data-era-theme="medieval"] #screen-archive .input::placeholder{color:rgba(139,32,29,.62) !important}
html[data-era-theme="medieval"] #screen-archive .chip-btn,
html[data-era-theme="medieval"] #screen-archive .pill{color:#8b201d !important}

/* v1.0.61 archive text + medieval eyebrow */
html[data-era-theme="medieval"] #screen-archive .article-body,
html[data-era-theme="medieval"] #screen-archive .article-body *,
html[data-era-theme="medieval"] #screen-archive .rich-text,
html[data-era-theme="medieval"] #screen-archive .rich-text *{
  color:#6d1717 !important;
}
html[data-era-theme="medieval"] #screen-archive .article-body a,
html[data-era-theme="medieval"] #screen-archive .rich-text a{
  color:#8f2420 !important;
  text-decoration-color:rgba(143,36,32,.55);
}
html[data-era-theme="medieval"] .eyebrow{
  display:inline-block;
  width:max-content;
  max-width:100%;
  padding:5px 10px;
  background-image:url("./assets/images/bronzera/UI/windows/panel-card.png") !important;
  background-size:100% 100% !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-color:transparent !important;
}
.origin-access-note-v1061{margin-top:10px}
html[data-era-theme="medieval"] #screen-archive p,
html[data-era-theme="medieval"] #screen-archive li,
html[data-era-theme="medieval"] #screen-archive blockquote{color:#6d1717 !important}

/* v1.0.62 campaign-wide chat */
.campaign-chat-members-v1062{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 12px;padding:10px 12px;border:1px solid rgba(125,249,255,.10);border-radius:14px;background:rgba(255,255,255,.025);font-size:12px;color:var(--muted)}
.campaign-chat-members-v1062 .eyebrow{margin-right:2px}
.campaign-thread-card-v1062{border-color:rgba(125,249,255,.24)}
.campaign-thread-card-v1062.active{box-shadow:0 0 0 1px rgba(125,249,255,.18) inset,0 14px 34px rgba(0,0,0,.20)}
.campaign-actor-field-v1062{margin-bottom:2px}
.chat-bubble.npc-message-v1062{border-color:rgba(255,190,125,.24)}
html[data-era-theme="medieval"] .campaign-chat-members-v1062{border-color:rgba(111,43,33,.24);background:rgba(119,48,34,.05);color:#6d1717}
html[data-era-theme="industrial"] .campaign-chat-members-v1062{border-color:rgba(190,151,92,.20)}
@media(max-width:900px){.campaign-chat-members-v1062{font-size:11px;padding:8px 10px}.campaign-actor-field-v1062 .input{min-height:40px}}

/* v1.0.64 scalable NPC sender picker */
.npc-scroll-select-v1064{
  min-height:210px;
  max-height:min(320px,42vh);
  overflow-y:auto;
  scrollbar-gutter:stable;
  padding-right:8px;
}
.npc-scroll-select-v1064 option{padding:8px 10px;white-space:nowrap}
@media(max-width:900px){.npc-scroll-select-v1064{min-height:180px;max-height:34vh}}

/* v1.0.65 unread chat indicators */
.nav-btn[data-screen="chat"]{position:relative}
.chat-nav-unread-v1065,
.chat-thread-unread-v1065{
  display:inline-grid;
  place-items:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#a8202f;
  color:#fff;
  border:1px solid rgba(255,255,255,.42);
  box-shadow:0 3px 12px rgba(0,0,0,.38),0 0 0 2px rgba(168,32,47,.12);
  font:700 10px/1 Consolas,monospace;
  letter-spacing:0;
  z-index:3;
}
.chat-nav-unread-v1065[hidden],
.chat-thread-unread-v1065[hidden]{display:none!important}
.chat-nav-unread-v1065{
  position:absolute;
  top:5px;
  right:8px;
}
.thread-card .thread-row{position:relative}
.chat-thread-unread-v1065{
  position:absolute;
  top:0;
  right:0;
}
.thread-card.has-unread-v1065{box-shadow:inset 0 0 0 1px rgba(168,32,47,.38),var(--shadow)}
html[data-era-theme="medieval"] .chat-nav-unread-v1065,
html[data-era-theme="medieval"] .chat-thread-unread-v1065{background:#761616;border-color:#b86a55;color:#f7e3c1}
html[data-era-theme="industrial"] .chat-nav-unread-v1065,
html[data-era-theme="industrial"] .chat-thread-unread-v1065{background:#a92a2a;border-color:#d5bbb0;color:#fff}
@media(max-width:520px){
  .chat-nav-unread-v1065{top:3px;right:5px;min-width:18px;height:18px;padding:0 5px;font-size:9px}
}

/* v1.0.66 character creation economy */
.creation-budget-v1066{position:sticky;top:0;z-index:4;padding:12px 14px;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 28%,transparent);border-radius:12px;background:color-mix(in srgb,var(--panel,#09111a) 92%,transparent);font:700 12px var(--mono,monospace);letter-spacing:.05em;color:var(--accent,#7df9ff);box-shadow:0 8px 20px rgba(0,0,0,.16)}
.creation-budget-v1066.over-budget{color:var(--danger,#ff7c92);border-color:color-mix(in srgb,var(--danger,#ff7c92) 55%,transparent)}
.creation-cost-badge-v1066{display:inline-flex;align-items:center;justify-content:center;justify-self:start;margin:7px 0;padding:4px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 32%,transparent);background:color-mix(in srgb,var(--accent,#6c97c7) 8%,transparent);font:700 10px var(--mono,monospace);color:var(--accent,#7df9ff)}
.starting-equipment-grid-v1066{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:10px;margin-top:12px}
.starting-equipment-card-v1066{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:11px;min-height:80px;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent,#6c97c7) 16%,transparent);border-radius:14px;background:color-mix(in srgb,var(--panel,#09111a) 91%,transparent);cursor:pointer;transition:.16s ease}
.starting-equipment-card-v1066:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent,#6c97c7) 34%,transparent)}
.starting-equipment-card-v1066:has(input:checked){border-color:color-mix(in srgb,var(--accent,#6c97c7) 72%,white 4%);background:color-mix(in srgb,var(--accent,#6c97c7) 7%,var(--panel,#09111a));box-shadow:0 10px 28px rgba(0,0,0,.2)}
.starting-equipment-card-v1066>input{position:absolute;right:9px;top:9px;accent-color:var(--accent,#7df9ff)}
.starting-equipment-copy-v1066{display:grid;gap:3px;min-width:0}.starting-equipment-copy-v1066 b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.starting-equipment-copy-v1066 small{color:var(--muted);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.starting-equipment-card-v1066 .creation-cost-badge-v1066{margin:0 17px 0 0;white-space:nowrap}
.starting-equipment-card-v1066>input[hidden]{display:none}
.starting-equipment-selected-v1072{display:none;position:absolute;right:9px;bottom:7px;color:var(--accent);font:700 9px/1 var(--mono);letter-spacing:.08em}
.starting-equipment-card-v1066:has(input:checked) .starting-equipment-selected-v1072{display:block}
.registration-equipment-modal-actions-v1072{display:flex;justify-content:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.registration-equipment-modal-actions-v1072 .primary{min-width:180px}
.form-grid-v1066,.personality-profile-grid-v1066{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.form-grid-v1066 .area{min-height:118px}.personality-profile-grid-v1066 .info-card{min-width:0}.personality-profile-grid-v1066 .v{white-space:pre-wrap;line-height:1.5}
[data-era-theme="industrial"] .starting-equipment-card-v1066,[data-era-theme="industrial"] .creation-budget-v1066{border-radius:4px}
[data-era-theme="medieval"] .starting-equipment-card-v1066,[data-era-theme="medieval"] .creation-budget-v1066{border-radius:8px}
@media(max-width:760px){.starting-equipment-grid-v1066{grid-template-columns:1fr}.form-grid-v1066,.personality-profile-grid-v1066{grid-template-columns:1fr}}

/* v1.0.67 inventory grid and equipment slots */
.web-profile-inventory-v1067{margin-top:18px;padding:16px;overflow:visible}
.web-inventory-capacity-v1067{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;padding:10px 12px;margin:10px 0 14px;border:1px solid rgba(125,249,255,.12);background:rgba(255,255,255,.025);font:12px var(--mono)}
.inventory-limit-exceeded-v1067{color:var(--danger);font-weight:700}
.web-inventory-slots-v1067{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px}
.web-inventory-slot-v1067{min-height:110px;padding:8px;border:1px dashed rgba(125,249,255,.24);border-radius:14px;background:rgba(255,255,255,.025);display:grid;align-content:start;gap:7px}
.web-inventory-slot-v1067.filled{border-style:solid;background:rgba(125,249,255,.035)}
.web-inventory-slot-label-v1067{font:10px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.web-inventory-slot-empty-v1067{display:grid;place-items:center;min-height:62px;text-align:center;color:var(--muted);font-size:11px}
.web-inventory-slot-item-v1067{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px;align-items:center;cursor:grab;min-width:0}
.web-inventory-slot-item-v1067 .entity-thumb{width:46px;height:46px;aspect-ratio:1/1}
.web-inventory-slot-item-v1067>span{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.web-inventory-grid-head-v1067{margin-top:18px}
.web-inventory-grid-v1067{position:relative;display:grid;grid-template-columns:repeat(var(--inv-cols),minmax(0,1fr));width:min(100%,calc(var(--inv-cols) * 84px));max-width:100%;gap:3px;padding:4px;border:1px solid rgba(125,249,255,.15);background:rgba(0,0,0,.2);isolation:isolate}
.web-inventory-cell-v1067{aspect-ratio:1/1;border:1px solid rgba(125,249,255,.09);background:rgba(255,255,255,.018);z-index:0;pointer-events:none}
.web-inventory-tile-v1067{z-index:2;min-width:0;min-height:0;padding:5px;border:1px solid rgba(125,249,255,.28);border-radius:9px;background:linear-gradient(180deg,rgba(18,28,42,.96),rgba(8,13,21,.98));box-shadow:0 5px 14px rgba(0,0,0,.3);display:grid;grid-template-columns:minmax(30px,44px) minmax(0,1fr);grid-template-rows:1fr auto;gap:3px 6px;align-items:center;overflow:hidden;cursor:grab;user-select:none}
.web-inventory-tile-v1067 .entity-thumb{grid-row:1/span 2;width:100%;height:auto;aspect-ratio:1/1;border-radius:7px}
.web-inventory-tile-v1067>span{font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.web-inventory-tile-v1067>small{font:9px var(--mono);color:var(--muted)}
.web-inventory-dragging-v1067{opacity:.38;cursor:grabbing}
.web-inventory-overflow-v1067{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;padding:9px 10px;border:1px solid rgba(255,124,146,.28);background:rgba(255,124,146,.06);font-size:11px;color:var(--danger)}
.web-inventory-overflow-v1067 span{padding:2px 6px;border:1px solid currentColor;border-radius:999px}
html[data-era-theme="industrial"] .web-inventory-grid-v1067,html[data-era-theme="industrial"] .web-inventory-slot-v1067{border-radius:2px;border-color:rgba(194,139,56,.28)}
html[data-era-theme="industrial"] .web-inventory-tile-v1067{border-radius:2px;border-color:#574934;background:linear-gradient(180deg,#262521,#121210)}
html[data-era-theme="medieval"] .web-inventory-grid-v1067{border-color:#8b6130;background:rgba(73,42,20,.1)}
html[data-era-theme="medieval"] .web-inventory-cell-v1067{border-color:rgba(107,63,31,.18);background:rgba(246,226,184,.08)}
html[data-era-theme="medieval"] .web-inventory-slot-v1067{border-color:#8b6130;background:rgba(246,226,184,.18)}
html[data-era-theme="medieval"] .web-inventory-tile-v1067{border-color:#7b4a26;background:linear-gradient(180deg,#e4c791,#bf9459);color:#421b15}
@media(max-width:760px){.web-profile-inventory-v1067{padding:12px}.web-inventory-slots-v1067{grid-template-columns:repeat(2,minmax(0,1fr))}.web-inventory-grid-v1067{width:100%}.web-inventory-tile-v1067{grid-template-columns:minmax(26px,36px) minmax(0,1fr);padding:4px}.web-inventory-tile-v1067>span{font-size:10px}.web-inventory-slot-v1067{min-height:92px}.web-inventory-slot-item-v1067{grid-template-columns:38px minmax(0,1fr)}.web-inventory-slot-item-v1067 .entity-thumb{width:38px;height:38px}}
/* v1.0.67 large inventories stay scrollable instead of shrinking cells indefinitely */
.web-profile-inventory-v1067{overflow-x:auto}
.web-inventory-grid-v1067{grid-template-columns:repeat(var(--inv-cols),78px);width:max-content;max-width:none}
@media(max-width:760px){.web-inventory-grid-v1067{grid-template-columns:repeat(var(--inv-cols),64px);width:max-content}.web-profile-inventory-v1067{overflow-x:auto}}
.web-inventory-touch-ghost-v1067{position:fixed!important;z-index:99999!important;pointer-events:none!important;width:92px!important;height:72px!important;transform:translate(-50%,-50%) scale(.92);opacity:.88;box-shadow:0 18px 44px rgba(0,0,0,.5)!important}

/* v1.0.68 Web chat master window */
.chat-list-only-v1068{display:grid;gap:16px;max-width:980px;margin:0 auto}
.chat-contact-list-only-v1068{display:grid;grid-template-columns:1fr;gap:12px}
.chat-list-card-v1068{position:relative}
.chat-master-modal-v1068{position:fixed;inset:0;z-index:9800;display:grid;place-items:center;padding:24px}
.chat-master-modal-v1068.hidden{display:none}
.chat-master-backdrop-v1068{position:absolute;inset:0;background:rgba(1,5,10,.76);backdrop-filter:blur(12px)}
.chat-master-window-v1068{position:relative;z-index:1;width:min(920px,calc(100vw - 40px));height:min(780px,calc(100vh - 48px));display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px;padding:18px;border:1px solid var(--line);border-radius:22px;background:linear-gradient(180deg,rgba(8,20,33,.98),rgba(4,10,19,.99));box-shadow:0 30px 100px rgba(0,0,0,.68);overflow:hidden}
.chat-master-header-v1068{display:flex;align-items:center;justify-content:space-between;gap:16px}
.chat-master-close-v1068{width:42px;height:42px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--text);font-size:28px;line-height:1;cursor:pointer}
.chat-master-message-list-v1068{min-height:0;overflow:auto;padding:8px 4px 8px 0;scrollbar-gutter:stable}
.chat-master-compose-v1068{margin-top:0}
.chat-master-actor-v1068 select.npc-scroll-select-v1065{max-height:240px;overflow-y:auto}
html[data-era-theme="industrial"] .chat-master-window-v1068{border-radius:3px;background:linear-gradient(145deg,#2b2c2b,#111212);border-color:#49433b;box-shadow:inset 0 0 0 2px #161717,0 30px 100px rgba(0,0,0,.68)}
html[data-era-theme="medieval"] .chat-master-window-v1068{border-radius:3px;background:linear-gradient(180deg,#ead3a4,#cfad70);border:2px solid #6d421f;color:#2c1c10;box-shadow:inset 0 0 0 3px rgba(111,66,30,.11),0 30px 100px rgba(20,9,3,.64)}
html[data-era-theme="medieval"] .chat-master-close-v1068{background:#674622;border-color:#8c6435;color:#f0d7a4}
.privacy-consent-login-v1068 a{color:var(--accent)}
@media(max-width:700px){.chat-master-modal-v1068{padding:0}.chat-master-window-v1068{width:100vw;height:100dvh;max-height:none;border-radius:0!important;border-left:0;border-right:0;padding:14px}.chat-master-message-list-v1068{padding-right:2px}.chat-master-compose-v1068 textarea{max-height:128px}}


/* =====================================================================
   v1.0.70 — Web chat master layout + fixed composer
   ===================================================================== */
.chat-master-window-v1068{
  display:flex;
  flex-direction:column;
  grid-template-rows:none;
  gap:12px;
}
.chat-master-header-v1068,
.campaign-chat-members-v1062{flex:0 0 auto}
.chat-master-message-list-v1068{
  flex:1 1 auto;
  min-height:0;
  max-height:none;
  overflow-y:auto;
  overflow-x:hidden;
  padding:8px 8px 10px 0;
  scrollbar-gutter:stable;
  overscroll-behavior:contain;
}
.chat-master-compose-v1068{
  position:static!important;
  bottom:auto!important;
  flex:0 0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 132px;
  align-items:end;
  gap:10px 12px;
  width:100%;
  margin:0;
  padding-top:12px;
  border-top:1px solid var(--line);
  background:transparent;
  z-index:2;
}
.chat-master-compose-v1068 .chat-master-actor-v1068,
.chat-master-compose-v1068 .campaign-actor-field-v1062{
  grid-column:1/-1;
  margin:0;
}
.chat-master-compose-v1068 textarea.textarea{
  grid-column:1;
  width:100%;
  height:88px;
  min-height:72px;
  max-height:136px;
  margin:0;
  resize:vertical;
  box-sizing:border-box;
}
.chat-master-compose-v1068 button.primary[type="submit"]{
  grid-column:2;
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:44px!important;
  min-height:44px!important;
  max-height:44px!important;
  padding:0 14px!important;
  align-self:end;
  justify-self:end;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
}
html[data-era-theme="industrial"] .chat-master-compose-v1068 button.primary[type="submit"],
html[data-era-theme="medieval"] .chat-master-compose-v1068 button.primary[type="submit"]{background-size:100% 100%}
@media(max-width:700px){
  .chat-master-window-v1068{gap:10px;padding:12px}
  .chat-master-compose-v1068{grid-template-columns:minmax(0,1fr) 108px;gap:8px;padding-top:10px}
  .chat-master-compose-v1068 textarea.textarea{height:76px;min-height:64px;max-height:112px}
  .chat-master-compose-v1068 button.primary[type="submit"]{width:108px!important;min-width:108px!important;max-width:108px!important;height:42px!important;min-height:42px!important;max-height:42px!important;padding:0 10px!important;font-size:11px}
}

/* v1.0.71 planetary market */
.market-terminal-v1071{display:grid;gap:12px;min-width:0}.market-hero-v1071{padding:16px}.market-access-banner-v1071{padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:rgba(7,15,22,.72)}.market-access-banner-v1071.ok{border-color:rgba(98,218,151,.4)}.market-access-banner-v1071.err{border-color:rgba(255,107,107,.45);color:#ffc2c2}
.market-tabs-v1073{display:flex;gap:8px;align-items:center;padding:5px;border:1px solid var(--line);border-radius:14px;background:rgba(4,10,16,.62)}.market-tabs-v1073>button{flex:1 1 0;min-height:42px}.market-tabs-v1073>button.active{border-color:var(--accent);color:var(--accent);background:rgba(125,249,255,.12);box-shadow:inset 0 0 0 1px rgba(125,249,255,.08)}
.market-dual-grid-v1071{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(320px,.82fr);gap:14px;min-height:430px}.market-pane-v1071{border:1px solid var(--line);border-radius:16px;background:rgba(4,10,16,.76);padding:12px;min-width:0;overflow:auto}.market-pane-head-v1071{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.market-pane-head-v1071>div{display:flex;flex-direction:column;gap:3px}
.market-shop-grid-v1071{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-auto-rows:82px;grid-auto-flow:dense;gap:8px;align-content:start}.market-shop-tile-v1071,.market-inventory-tile-v1071{appearance:none;border:1px solid rgba(125,249,255,.22);border-radius:11px;background:linear-gradient(150deg,rgba(22,39,52,.96),rgba(5,11,17,.98));color:var(--text);padding:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-width:0;overflow:hidden;cursor:pointer;box-shadow:inset 0 1px rgba(255,255,255,.035);transition:.14s ease}.market-shop-tile-v1071:hover,.market-inventory-tile-v1071:hover,.market-shop-tile-v1071.selected,.market-inventory-tile-v1071.selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(125,249,255,.12);transform:translateY(-1px)}
.market-shop-tile-v1071 .entity-thumb,.market-inventory-tile-v1071 .entity-thumb{max-width:48px;max-height:48px;flex:0 0 auto}.market-tile-name-v1071,.market-inventory-tile-v1071>span{font-size:12px;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-tile-meta-v1071,.market-inventory-tile-v1071>small{font-size:9px;color:var(--muted);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.market-tile-price-v1071{font-size:11px;color:var(--accent)}
.market-inventory-grid-v1071{display:grid;grid-template-columns:repeat(var(--inv-cols),minmax(54px,1fr));grid-template-rows:repeat(var(--inv-rows),70px);position:relative;gap:4px;min-height:180px;border:1px solid rgba(125,249,255,.16);border-radius:12px;padding:6px;background:rgba(0,0,0,.2)}.market-inventory-cell-v1071{border:1px solid rgba(125,249,255,.1);border-radius:7px;background:rgba(125,249,255,.025)}.market-inventory-tile-v1071{z-index:2;margin:1px}.market-inventory-tile-v1071.not-sellable{filter:saturate(.45);opacity:.68}
.market-selection-card-v1071,.market-selection-empty-v1071{min-height:76px;border:1px solid var(--line);border-radius:13px;background:rgba(4,10,16,.8);padding:12px 14px}.market-selection-card-v1071{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:start}.market-selection-details-v1071{display:flex;flex-direction:column;gap:9px;min-width:0}.market-selection-heading-v1071{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;align-items:baseline}.market-selection-heading-v1071>b{font-size:16px}.market-selection-heading-v1071>strong{color:var(--accent);font-size:13px}.market-selection-facts-v1071{display:flex;flex-wrap:wrap;gap:6px}.market-selection-facts-v1071 .pill{font-size:11px}.market-selection-description-v1071{margin:0;white-space:pre-wrap;line-height:1.45;color:var(--text)}.market-selection-requirements-v1071,.market-selection-tags-v1071{font-size:12px;color:var(--muted);line-height:1.4}.market-selection-card-v1071>.primary{align-self:center}.market-selection-card-v1071 small{color:var(--muted)}.market-selection-empty-v1071{display:grid;place-items:center;color:var(--muted)}.market-rotation-note-v1071{text-align:center}.market-dragging-v1071{opacity:.35!important}
.market-selection-card-v1071>.entity-item-media-v1060{width:112px!important;height:112px!important;max-width:112px!important;aspect-ratio:1/1!important;align-self:start;border:1px solid var(--line);border-radius:12px;background:rgba(0,0,0,.22)}
.market-selection-card-v1071>.entity-item-media-v1060 img{width:100%;height:100%;object-fit:contain}
html[data-era-theme="industrial"] .market-pane-v1071,html[data-era-theme="industrial"] .market-selection-card-v1071{border-radius:2px}html[data-era-theme="medieval"] .market-pane-v1071,html[data-era-theme="medieval"] .market-selection-card-v1071{border-radius:3px;color:#2b1c11;background:rgba(232,211,168,.76);border-color:#8a6031}html[data-era-theme="medieval"] .market-shop-tile-v1071,html[data-era-theme="medieval"] .market-inventory-tile-v1071{color:#2b1c11;background:rgba(246,226,184,.8);border-color:#9a713e}
@media(max-width:900px){.market-dual-grid-v1071{grid-template-columns:1fr}.market-shop-grid-v1071{grid-template-columns:repeat(auto-fill,minmax(80px,1fr));grid-auto-rows:76px}}@media(max-width:600px){.market-pane-v1071{padding:8px}.market-selection-card-v1071{grid-template-columns:88px minmax(0,1fr);gap:10px;padding:10px}.market-selection-card-v1071>.entity-item-media-v1060{width:88px!important;height:88px!important;max-width:88px!important}.market-selection-card-v1071>button{grid-column:1/-1;width:100%}.market-selection-heading-v1071{display:grid}.market-inventory-grid-v1071{grid-template-columns:repeat(var(--inv-cols),minmax(44px,1fr));grid-template-rows:repeat(var(--inv-rows),58px)}}
