:root {
  --bg: #07111c;
  --panel: #0c1826;
  --panel2: #101f31;
  --line: #294058;
  --text: #e9f1f7;
  --muted: #89a0b4;
  --gold: #d9b55f;
  --cyan: #63d4ec;
  --danger: #f06b72;
  --good: #6ed49a;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  background: #040a11;
  color: var(--text);
  font-family: "Noto Sans JP", "Yu Gothic", system-ui, sans-serif;
  min-width: 1180px;
}
button,
input,
select {
  font: inherit;
}
button {
  cursor: pointer;
  color: var(--text);
  background: #12243a;
  border: 1px solid #38536d;
  border-radius: 7px;
  padding: 8px 12px;
}
button:hover {
  border-color: #6d93b7;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.45;
}
button.active {
  border-color: var(--gold);
  color: #ffe4a2;
  background: #3a2c12;
}
.hidden {
  display: none !important;
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 0.18em;
  color: #8ba4ba;
}
.message {
  min-height: 24px;
  margin-top: 10px;
  color: #f2c879;
}
.message.bad {
  color: #ff8b8f;
}
.primary {
  background: linear-gradient(#765b20, #49370f);
  border-color: #d2ad51;
  color: #fff0bc;
  font-weight: 700;
}
.wide {
  width: 100%;
  padding: 12px;
}
.screen-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(
    circle at center,
    #12273f 0,
    #07111c 52%,
    #02060a 100%
  );
}
.auth-card {
  width: 520px;
  padding: 34px;
  border: 1px solid #604e25;
  border-radius: 16px;
  background: rgba(9, 20, 33, 0.96);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.65);
}
.auth-card h1 {
  font-family: Georgia, serif;
  font-size: 38px;
  margin: 4px 0;
  color: #f0d581;
  letter-spacing: 0.06em;
}
.auth-card h2 {
  font-size: 28px;
  margin: 6px 0;
  color: #f0d581;
}
.alpha-badge {
  display: inline-block;
  padding: 5px 10px;
  border: 1px solid #79652d;
  border-radius: 999px;
  color: #ead47f;
  background: #241d0d;
}
.lead {
  color: #9cb2c4;
  line-height: 1.7;
}
.auth-tabs {
  display: flex;
  gap: 8px;
  margin: 24px 0 14px;
}
.auth-tabs button {
  flex: 1;
}
.auth-card label {
  display: block;
  margin: 12px 0;
  color: #b9c9d6;
}
.auth-card input,
.auth-card select {
  width: 100%;
  margin-top: 6px;
  padding: 10px 12px;
  border: 1px solid #38536d;
  border-radius: 7px;
  background: #07121e;
  color: #fff;
}
.setup-hint {
  margin-top: 14px;
  font-size: 12px;
  color: #70889c;
}
.start-state {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 16px 0;
}
.start-state span {
  padding: 9px;
  background: #0b1725;
  border: 1px solid #23394e;
  border-radius: 6px;
  color: #abc0d0;
  font-size: 13px;
}
.app {
  min-height: 100vh;
  background: #050c14;
}
.topbar {
  height: 78px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 18px;
  border-bottom: 1px solid #27394b;
  background: linear-gradient(180deg, #101c29, #09131f);
  position: sticky;
  top: 0;
  z-index: 50;
}
.brand {
  display: flex;
  align-items: center;
  gap: 13px;
}
.crest {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border: 2px solid #8b7132;
  border-radius: 50%;
  color: #f2d985;
  font-size: 26px;
}
.brand h1 {
  font-family: Georgia, serif;
  margin: 1px 0 0;
  font-size: 22px;
  letter-spacing: 0.08em;
  color: #ecd785;
}
.brand h1 span {
  font-family: system-ui;
  font-size: 12px;
  color: #98adc0;
}
.world-status {
  display: flex;
  align-items: center;
  gap: 18px;
}
.world-status > div {
  min-width: 110px;
}
.world-status small {
  display: block;
  color: #718aa0;
  font-size: 10px;
  letter-spacing: 0.12em;
}
.world-status strong {
  display: block;
  margin-top: 3px;
}
.status-good {
  color: var(--good);
}
.status-warn {
  color: #f0c86a;
}
.status-bad {
  color: #ff787d;
}
.game-grid {
  display: grid;
  grid-template-columns: 260px minmax(620px, 1fr) 360px;
  gap: 10px;
  padding: 10px;
  height: calc(100vh - 150px);
}
.side {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
}
.left-side {
  overflow-y: auto;
  padding-right: 2px;
}
.right-side {
  min-width: 0;
  overflow: hidden;
}
.panel,
.map-panel {
  border: 1px solid #273c51;
  background: linear-gradient(180deg, #0d1927, #09131e);
  border-radius: 9px;
  overflow: hidden;
}
.panel {
  padding: 12px;
}
.panel-title {
  border-bottom: 1px solid #25394c;
  padding-bottom: 8px;
  margin-bottom: 10px;
}
.panel-title span {
  font-size: 9px;
  letter-spacing: 0.16em;
  color: #69839b;
}
.panel-title h2 {
  font-size: 17px;
  margin: 2px 0;
  color: #d8e5ef;
}
.player-panel {
  flex: 0 0 auto;
}
.service-panel {
  flex: 0 0 auto;
}
.city-people-panel {
  flex: 1;
  min-height: 150px;
}
.roadmap-panel {
  flex: 0 0 auto;
}
.rank-road {
  line-height: 1.8;
  color: #e4c977;
  font-size: 13px;
}
.roadmap-panel p {
  font-size: 11px;
  color: #7f98ab;
  line-height: 1.6;
}
.list {
  overflow: auto;
  max-height: 330px;
}
.person-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  border-bottom: 1px solid #1d2c3a;
}
.person-row > div:nth-child(2) {
  min-width: 0;
  flex: 1;
}
.person-avatar {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #1f3650;
  border: 1px solid #527397;
  color: #fff;
  font-weight: 700;
}
.person-row small {
  display: block;
  color: #7f96aa;
}
.person-actions {
  display: flex;
  gap: 4px;
  flex: 0 0 auto;
}
.person-actions.stacked {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.local-person {
  align-items: flex-start;
}
.mini-btn {
  padding: 4px 7px;
  font-size: 10px;
}
.mini-btn.gold {
  border-color: #9b7a32;
  color: #ffe49a;
  background: #392b10;
}
.mini-btn.cyan {
  border-color: #35778a;
  color: #9fefff;
  background: #123644;
}
.mini-btn.danger,
.danger {
  border-color: #74343a;
  color: #ff9aa0;
  background: #32151a;
}
.relation-badge {
  display: inline-block;
  margin-left: 4px;
  padding: 1px 4px;
  border: 1px solid #79652d;
  border-radius: 4px;
  color: #f0d584;
  font-size: 9px;
}
.player-name {
  font-size: 22px;
  font-weight: 700;
  color: #f1dc95;
}
.player-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px;
  margin: 10px 0;
}
.player-meta div {
  background: #0b1724;
  padding: 7px;
  border: 1px solid #1f3346;
  border-radius: 6px;
}
.player-meta small {
  display: block;
  color: #71899d;
}
.travel-box {
  padding: 8px;
  border: 1px solid #37566f;
  background: #102337;
  border-radius: 7px;
}
.progress {
  height: 7px;
  border-radius: 999px;
  background: #07101a;
  overflow: hidden;
  margin-top: 6px;
}
.progress i {
  display: block;
  height: 100%;
  background: #4fb7d2;
}
.service-block {
  padding: 8px;
  margin-bottom: 7px;
  border: 1px solid #263e53;
  border-radius: 7px;
  background: #0a1724;
}
.service-block:last-child {
  margin-bottom: 0;
}
.service-block h3 {
  margin: 0 0 5px;
  color: #829cb1;
  font-size: 10px;
  letter-spacing: 0.1em;
}
.service-person {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 5px 0;
  border-top: 1px solid #1b3042;
}
.service-person:first-of-type {
  border-top: 0;
}
.service-person b {
  font-size: 12px;
  color: #dfebf3;
}
.service-person small {
  display: block;
  color: #71899d;
}
.service-empty {
  color: #6f879a;
  font-size: 11px;
  line-height: 1.5;
}
.service-note {
  margin: 5px 0;
  color: #aabcca;
  font-size: 11px;
  line-height: 1.5;
}
.map-panel {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.map-header {
  height: 68px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid #263a4d;
}
.map-header h2 {
  margin: 2px 0;
  font-size: 20px;
}
.map-controls {
  display: flex;
  gap: 6px;
  align-items: center;
}
.map-viewport {
  position: relative;
  flex: 1;
  overflow: hidden;
  background: #031a29;
  cursor: grab;
}
.map-viewport.dragging {
  cursor: grabbing;
}
.map-layer {
  position: absolute;
  left: 0;
  top: 0;
  width: 8000px;
  height: 6000px;
  transform-origin: 0 0;
  will-change: transform;
  background: radial-gradient(
    circle at 48% 45%,
    #0c5874 0,
    #073c59 38%,
    #032a42 72%,
    #021725 100%
  );
  overflow: hidden;
}
.map-layer:before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-radial-gradient(
    ellipse at 30% 35%,
    rgba(164, 226, 234, 0.11) 0 2px,
    transparent 2px 28px
  );
  opacity: 0.35;
}
.continent {
  position: absolute;
  z-index: 1;
  object-fit: contain;
  pointer-events: none;
  filter: drop-shadow(0 28px 28px rgba(0, 0, 0, 0.5));
}
.route-svg,
.territory-svg {
  position: absolute;
  inset: 0;
  width: 8000px;
  height: 6000px;
  pointer-events: none;
}
.territory-svg {
  z-index: 2;
  mix-blend-mode: screen;
}
.route-svg {
  z-index: 3;
}
.road-line {
  fill: none;
  stroke: rgba(228, 200, 137, 0.42);
  stroke-width: 10;
  stroke-linecap: round;
}
.sea-line {
  fill: none;
  stroke: rgba(103, 213, 240, 0.58);
  stroke-width: 12;
  stroke-dasharray: 44 30;
  stroke-linecap: round;
}
.settlement-node,
.player-marker {
  position: absolute;
  z-index: 5;
  transform: scale(var(--marker-scale, 1)) translate(-50%, -50%);
  transform-origin: 0 0;
  transition: transform 0.08s linear;
}
.settlement-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1px;
  width: max-content;
  min-width: 42px;
  max-width: 124px;
  padding: 2px;
  text-align: center;
  cursor: pointer;
}
.settlement-node img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  pointer-events: none;
  filter: drop-shadow(0 4px 5px rgba(0, 0, 0, 0.9));
  transition:
    transform 0.12s ease,
    filter 0.12s ease;
}
.settlement-label {
  display: inline-block;
  max-width: 124px;
  padding: 3px 6px;
  border: 1px solid #6d879f;
  border-radius: 5px;
  background: rgba(3, 12, 20, 0.94);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.65);
  font-size: 12px;
  line-height: 1.2;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-shadow: 0 1px 2px #000;
  pointer-events: none;
}
.settlement-node:hover img {
  transform: scale(1.16);
  filter: drop-shadow(0 0 7px rgba(112, 211, 240, 0.95))
    drop-shadow(0 4px 5px rgba(0, 0, 0, 0.9));
}
.settlement-node.selected {
  z-index: 6;
}
.settlement-node.selected img {
  transform: scale(1.2);
  filter: drop-shadow(0 0 8px rgba(255, 215, 107, 0.95))
    drop-shadow(0 4px 5px rgba(0, 0, 0, 0.9));
}
.settlement-node.selected .settlement-label {
  border-color: #f0c85e;
  color: #ffedb0;
  background: rgba(52, 39, 10, 0.96);
  box-shadow: 0 0 8px rgba(240, 200, 94, 0.55);
}
.map-layer.labels-off .settlement-label {
  display: none;
}
.player-marker {
  z-index: 7;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 3px solid #fff;
  background: #184d70;
  color: #fff;
  font-weight: 800;
  font-size: 12px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.7);
}
.player-marker.me {
  border-color: #ffd76b;
  background: #734f0c;
}
.player-marker.offline {
  opacity: 0.55;
}
.map-footer {
  height: 30px;
  display: flex;
  gap: 18px;
  align-items: center;
  padding: 0 12px;
  border-top: 1px solid #26394a;
  color: #70889d;
  font-size: 11px;
}
.settlement-panel {
  flex: 1.12;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
#settlementDetail {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  overflow: auto;
  padding-right: 3px;
}
.settlement-console {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.settlement-hero {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border: 1px solid #294158;
  border-radius: 10px;
  background: linear-gradient(180deg, rgba(12, 26, 38, 0.96), rgba(9, 19, 30, 0.96));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.03);
}
.settlement-hero-main {
  min-width: 0;
}
.settlement-eyebrow {
  color: #7b94aa;
  font-size: 10px;
  letter-spacing: 0.14em;
  margin-bottom: 4px;
}
.settlement-name {
  font-size: 24px;
  font-weight: 800;
  line-height: 1.15;
  color: #f1d98e;
}
.settlement-faction-badge {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: #fff3c8;
  border: 1px solid color-mix(in srgb, var(--faction-color) 55%, #ffffff 10%);
  background: color-mix(in srgb, var(--faction-color) 18%, #0b1724 82%);
}
.settlement-icon-badge {
  flex: 0 0 auto;
  min-width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  padding: 8px;
  border: 1px solid #3a5368;
  border-radius: 14px;
  background: radial-gradient(circle at top, rgba(255,215,107,0.14), rgba(9,19,30,0.95) 65%);
  color: #ffd76b;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-align: center;
}
.settlement-chip-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.settlement-chip {
  padding: 10px;
  border: 1px solid #22384b;
  border-radius: 9px;
  background: #0a1723;
}
.settlement-chip small,
.settlement-grid small {
  display: block;
  color: #6f899f;
  margin-bottom: 3px;
}
.settlement-chip b,
.settlement-grid strong {
  color: #e4edf4;
  font-size: 13px;
}
.settlement-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0;
}
.settlement-grid.gamey div {
  padding: 9px;
  background: linear-gradient(180deg, #0a1723, #09131e);
  border: 1px solid #21364a;
  border-radius: 8px;
}
.settlement-action-card,
.adjacent-section {
  border: 1px solid #22384b;
  border-radius: 10px;
  padding: 10px;
  background: rgba(8, 18, 29, 0.95);
}
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.section-head h3 {
  margin: 0;
  font-size: 13px;
  color: #d6e2ec;
}
.section-head span {
  color: #7892a8;
  font-size: 10px;
  letter-spacing: 0.12em;
}
.move-button-emphasis {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 14px;
}
.move-button-emphasis span {
  font-size: 12px;
  color: #fff0bf;
}
.travel-hint {
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid #2b4359;
  color: #b9cad8;
  background: #0b1622;
  font-size: 12px;
  line-height: 1.5;
}
.travel-hint.current {
  border-color: #2f6044;
  background: rgba(25, 70, 52, 0.25);
  color: #caedd8;
}
.travel-hint.moving {
  border-color: #45698b;
  background: rgba(18, 48, 78, 0.35);
  color: #d3e4f4;
}
.travel-hint.disabled {
  border-color: #4d3f2c;
  background: rgba(74, 50, 18, 0.25);
  color: #ecd8b4;
}
.adjacent-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0;
  max-height: 210px;
  overflow: auto;
  padding-right: 2px;
}
.adjacent-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  text-align: left;
  padding: 9px 10px;
  border: 1px solid #2a4359;
  border-radius: 8px;
  background: linear-gradient(180deg, #0c1a28, #0a1520);
  color: #dfe7ee;
}
.adjacent-card b {
  font-size: 12px;
  color: #f1d98e;
}
.adjacent-card small {
  color: #89a2b7;
  line-height: 1.4;
}
.adjacent-card:hover {
  border-color: #f0c85e;
  box-shadow: 0 0 0 1px rgba(240,200,94,0.18) inset;
}
.adjacent-empty {
  grid-column: 1 / -1;
  padding: 12px;
  border: 1px dashed #2c4255;
  border-radius: 8px;
  color: #72899d;
  text-align: center;
  font-size: 12px;
}
.chat-panel {
  flex: 0.94;
  min-height: 220px;
  display: flex;
  flex-direction: column;
}
.chat-log {
  flex: 1;
  overflow: auto;
  background: #07121d;
  border: 1px solid #1d3043;
  border-radius: 6px;
  padding: 8px;
}
.chat-line {
  margin-bottom: 8px;
  font-size: 12px;
  line-height: 1.5;
}
.chat-line b {
  color: #d9c37c;
}
.chat-line time {
  color: #5e768a;
  font-size: 10px;
  margin-left: 5px;
}
.chat-input-row {
  display: flex;
  gap: 6px;
  margin-top: 7px;
}
.chat-input-row input {
  flex: 1;
  min-width: 0;
  background: #07121d;
  border: 1px solid #2b4359;
  border-radius: 6px;
  color: #fff;
  padding: 8px;
}
.event-panel {
  flex: 0.92;
  min-height: 150px;
  display: flex;
  flex-direction: column;
}
.event-log {
  flex: 1;
}
.event-log {
  max-height: 230px;
  overflow: auto;
}
.event-item {
  padding: 7px 0;
  border-bottom: 1px solid #1a2b3b;
}
.event-item b {
  display: block;
  color: #c8d8e5;
  font-size: 12px;
}
.event-item p {
  margin: 3px 0;
  color: #8299ab;
  font-size: 11px;
  line-height: 1.5;
}
.toast {
  position: fixed;
  left: 50%;
  bottom: 88px;
  transform: translateX(-50%);
  z-index: 2000;
  min-width: 320px;
  max-width: 560px;
  padding: 12px 16px;
  border: 1px solid #6a5a2c;
  border-radius: 9px;
  background: #101b27;
  color: #f0d995;
  box-shadow: 0 10px 35px rgba(0, 0, 0, 0.55);
}
.command-dock {
  height: 72px;
  display: flex;
  justify-content: center;
  gap: 10px;
  padding: 8px;
  border-top: 1px solid #31485c;
  background: linear-gradient(#0c1723, #07101a);
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 60;
}
.command-dock :is(button, a.restoration-dock-button) {
  width: 190px;
  display: grid;
  grid-template-columns: 36px 1fr;
  grid-template-rows: 1fr 1fr;
  text-align: left;
  padding: 6px 12px;
}
.command-dock span {
  grid-row: 1/3;
  font-size: 24px;
  color: #ebcd71;
  align-self: center;
}
.command-dock b {
  font-size: 13px;
}
.command-dock small {
  font-size: 9px;
  color: #70889d;
  letter-spacing: 0.1em;
}
.modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 500;
  background: rgba(1, 5, 9, 0.82);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
}
.system-modal,
.admin-modal {
  width: min(1120px, 94vw);
  height: min(780px, 90vh);
  display: flex;
  flex-direction: column;
  border: 1px solid #765f2c;
  border-radius: 12px;
  background: #08131f;
  box-shadow: 0 30px 100px #000;
  overflow: hidden;
}
.system-modal > header,
.admin-modal > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px;
  border-bottom: 1px solid #2c4155;
  background: #0d1a28;
}
.system-modal h2,
.admin-modal h2 {
  margin: 2px 0;
  color: #ead27c;
}
.system-tabs {
  display: flex;
  padding: 8px 14px;
  gap: 7px;
  border-bottom: 1px solid #24384b;
}
.system-content,
.admin-content {
  padding: 14px;
  overflow: auto;
  flex: 1;
}
.system-grid,
.admin-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.system-card,
.admin-card {
  padding: 14px;
  border: 1px solid #294158;
  border-radius: 9px;
  background: #0b1927;
}
.system-card h3,
.admin-card h3 {
  margin: 0 0 10px;
  color: #dfc875;
}
.system-card label,
.admin-card label {
  display: block;
  color: #94aabc;
  font-size: 12px;
  margin: 8px 0;
}
.system-card input,
.system-card select,
.admin-card input,
.admin-card select,
.admin-card textarea {
  width: 100%;
  margin-top: 4px;
  padding: 8px;
  background: #06111c;
  border: 1px solid #36516a;
  border-radius: 6px;
  color: #fff;
}
.admin-card textarea {
  min-height: 90px;
  resize: vertical;
}
.big-value {
  font-size: 22px;
  color: #f0d780;
  font-weight: 700;
}
.button-row {
  display: flex;
  gap: 7px;
  margin-top: 8px;
}
.member-chips {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
  margin: 8px 0;
}
.member-chips span {
  padding: 4px 7px;
  border: 1px solid #2e485e;
  border-radius: 999px;
  font-size: 11px;
}
.request-row,
.war-row {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 7px 0;
  border-bottom: 1px solid #1e3244;
}
.request-row span,
.war-row b {
  flex: 1;
}
.request-row small,
.war-row small {
  color: #7f97aa;
}
.dynasty-ledger-card { overflow: hidden; }
.dynasty-ledger-row {
  display: grid;
  grid-template-columns: minmax(260px, 1.35fr) minmax(230px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid #203649;
}
.dynasty-ledger-row:last-child { border-bottom: 0; }
.dynasty-person { display: grid; grid-template-columns: auto 1fr; gap: 2px 8px; align-items: center; min-width: 0; }
.dynasty-person b { color: #d8e4ec; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dynasty-person small { grid-column: 2; color: #7891a4; }
.generation-badge {
  grid-row: 1 / 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  padding: 4px 7px;
  border: 1px solid #6f5b2a;
  border-radius: 999px;
  color: #e4c86f;
  background: rgba(118, 88, 25, 0.16);
  font-size: 10px;
}
.dynasty-marriage-state { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 3px 8px; }
.dynasty-marriage-state small { color: #a6b7c2; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dynasty-marriage-state em { grid-column: 1 / -1; color: #718a9d; font-size: 10px; font-style: normal; }
.marriage-state { display: inline-flex; padding: 3px 8px; border-radius: 999px; border: 1px solid #4a6175; font-size: 10px; color: #b9cad5; }
.marriage-state.married { border-color: #a18435; color: #f0d477; background: rgba(147, 111, 25, 0.16); }
.marriage-state.pending { border-color: #4177a0; color: #a9d9fa; background: rgba(30, 91, 133, 0.18); }
.marriage-state.courtship { border-color: #4c7f68; color: #aee0c3; background: rgba(30, 105, 70, 0.17); }
.marriage-state.ended { border-color: #6d5b70; color: #cdb7d0; }
.dynasty-support-note { color: #a9bbc7; line-height: 1.55; }
.dynasty-support-card > small { display: block; color: #7893a5; margin: 5px 0 9px; }
.dynasty-support-card h4 { margin: 14px 0 4px; color: #d8c16e; }
.operator-banner {
  padding: 7px 9px;
  margin: 7px 0;
  border: 1px solid #b28b36;
  background: #392b10;
  color: #ffe49a;
  border-radius: 6px;
}
.admin-button {
  border-color: #c49a3d;
  color: #ffe49a;
}
.wide-card {
  grid-column: 1/-1;
}
.canonical-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
.canonical-card {
  display: flex;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap;
  padding: 9px;
  border: 1px solid #2d465d;
  border-radius: 7px;
}
.canonical-card > div {
  flex: 1 0 100%;
}
.canonical-card small {
  display: block;
  color: #7891a6;
}
.canonical-card label {
  display: flex;
  gap: 4px;
  align-items: center;
  margin: 0;
}
.canonical-card input {
  width: auto;
  margin: 0;
}
.form-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.form-three {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
}
.audit-wrap {
  max-height: 240px;
  overflow: auto;
}
.audit-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}
.audit-wrap th,
.audit-wrap td {
  padding: 6px;
  border-bottom: 1px solid #203446;
  text-align: left;
}
.army-marker {
  position: absolute;
  z-index: 8;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 2px solid #f17862;
  border-radius: 7px;
  background: #421a17;
  color: #ffd0bd;
  font-size: 18px;
  box-shadow: 0 4px 10px #000;
  transform: scale(var(--marker-scale, 1)) translate(-50%, -50%);
  transform-origin: 0 0;
}

/* α v0.7a: readable local-character cards and state systems */
.game-grid {
  grid-template-columns: 340px minmax(620px, 1fr) 320px;
}
.city-people-panel {
  flex: 1 0 380px;
  min-height: 380px;
  display: flex;
  flex-direction: column;
}
.city-people-panel .panel-title {
  flex: 0 0 auto;
}
.city-people-panel .list {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  padding-right: 2px;
}
.local-count {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 6px 8px;
  border-bottom: 1px solid #294158;
  background: #0b1927;
  color: #8fa9bc;
  font-size: 11px;
}
.local-person {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin: 7px 2px;
  padding: 10px;
  border: 1px solid #263e53;
  border-radius: 8px;
  background: #0a1724;
}
.local-person .person-avatar {
  grid-column: 1;
  grid-row: 1;
  width: 36px;
  height: 36px;
  flex-basis: 36px;
}
.local-person .person-identity {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
}
.local-person .person-identity b {
  display: block;
  overflow-wrap: anywhere;
  line-height: 1.45;
}
.local-person .person-identity small {
  margin-top: 3px;
  line-height: 1.45;
  white-space: normal;
  overflow-wrap: anywhere;
}
.local-person .person-actions.stacked {
  grid-column: 1/-1;
  grid-row: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-top: 7px;
  border-top: 1px solid #203447;
}
.local-person .person-actions .mini-btn {
  flex: 1 1 112px;
  min-width: 0;
  padding: 6px 8px;
  white-space: normal;
  line-height: 1.25;
}
.operator-response {
  display: inline-block;
  padding: 1px 4px;
  border: 1px solid #68528c;
  border-radius: 4px;
  color: #cdb8ff;
  font-size: 9px;
}
.organization-service label {
  display: block;
  margin: 8px 0 5px;
  color: #8fa9bc;
  font-size: 11px;
}
.organization-service select {
  width: 100%;
  margin-top: 4px;
  padding: 7px;
  background: #06111c;
  border: 1px solid #36516a;
  border-radius: 6px;
  color: #fff;
}
.command-dock :is(button, a.restoration-dock-button) {
  width: 180px;
}
.state-stats {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.state-stats span {
  padding: 7px 9px;
  border: 1px solid #2c465d;
  border-radius: 6px;
  color: #91a9bc;
}
.state-list {
  display: grid;
  gap: 6px;
}
.state-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px;
  border: 1px solid #263e53;
  border-radius: 7px;
  background: #081522;
}
.state-row b,
.state-row small {
  display: block;
}
.state-row small {
  margin-top: 2px;
  color: #7f97aa;
}
.operator-guide {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: 5px 12px;
  padding: 9px;
  border: 1px solid #38536d;
  border-radius: 7px;
  background: #081522;
}
.operator-guide b {
  color: #eed47d;
}
.operator-guide span {
  color: #91a9bc;
}
.button-column {
  display: flex;
  flex-direction: column;
  justify-content: end;
  gap: 6px;
  padding-bottom: 8px;
}
@media (max-width: 1450px) {
  .game-grid {
    grid-template-columns: 310px minmax(560px, 1fr) 290px;
  }
  .local-person .person-actions .mini-btn {
    flex-basis: 100px;
  }
  .world-status {
    gap: 10px;
  }
  .world-status > div {
    min-width: 90px;
  }
}

/* α v0.10–v0.13: generations, economy, captivity, manors and households */
.command-dock {
  overflow-x: auto;
  justify-content: center;
}
.command-dock :is(button, a.restoration-dock-button) {
  width: 155px;
  min-width: 140px;
}
.market-list,
.manor-list,
.loan-list,
.ledger-list {
  display: grid;
  gap: 7px;
}
.market-row {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 70px 58px 58px 112px;
  align-items: center;
  gap: 7px;
  padding: 8px;
  border: 1px solid #294158;
  border-radius: 7px;
  background: #081522;
}
.market-row b,
.market-row small,
.manor-row b,
.manor-row small {
  display: block;
}
.market-row small,
.manor-row small {
  color: #8299ab;
  margin-top: 3px;
}
.market-row input {
  width: 70px;
  margin: 0;
}
.manor-row,
.ledger-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px;
  border-bottom: 1px solid #23394d;
}
.ledger-row b.positive { color: #75d6a2; }
.ledger-row b.negative { color: #ef8b91; }
.request-row em { color: #8299ab; font-style: normal; }
@media (max-width: 900px) {
  .command-dock { justify-content: flex-start; }
  .market-row { grid-template-columns: 70px 58px 58px minmax(104px, 1fr); }
  .market-row > div { grid-column: 1/-1; }
}

/* α v0.8: equipment, inventory, settlement shops, and protected SCC2 divine relics */
.command-dock :is(button, a.restoration-dock-button) {
  width: 170px;
}
.system-tabs button {
  flex: 1;
}
.loadout-summary {
  width: 100%;
  margin: 0 0 9px;
  text-align: left;
  line-height: 1.5;
  border-color: #4a647c;
  background: #091927;
}
.loadout-summary small {
  display: block;
  margin-top: 4px;
  color: #78bfd0;
}
.equipment-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.equipment-slots {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
.equipment-slot {
  position: relative;
  min-height: 112px;
  padding: 10px;
  border: 1px solid #304b63;
  border-radius: 8px;
  background: #081522;
}
.equipment-slot > small,
.equipment-slot > b,
.equipment-slot > span {
  display: block;
}
.equipment-slot > small {
  color: #7f9ab0;
}
.equipment-slot > b {
  margin: 7px 0;
  color: #e8edf2;
}
.equipment-slot > span {
  min-height: 29px;
  color: #8ca5b8;
  font-size: 10px;
  line-height: 1.45;
}
.equipment-slot button {
  margin-top: 7px;
  padding: 4px 8px;
  font-size: 10px;
}
.equipment-list {
  display: grid;
  gap: 8px;
  max-height: 470px;
  overflow: auto;
  padding-right: 3px;
}
.equipment-item {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 104px;
  gap: 9px;
  padding: 10px;
  border: 1px solid #2b455c;
  border-radius: 8px;
  background: #081522;
}
.item-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid #46647d;
  border-radius: 8px;
  background: #102438;
  font-size: 22px;
}
.item-body {
  min-width: 0;
}
.item-heading {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}
.item-heading b {
  color: #e8edf2;
}
.item-heading span {
  padding: 1px 5px;
  border: 1px solid #4b657c;
  border-radius: 999px;
  color: #9eb3c4;
  font-size: 9px;
}
.item-heading em {
  font-style: normal;
  color: #e9d27d;
}
.item-body > small {
  color: #708ba1;
}
.item-body p {
  margin: 5px 0;
  color: #91a7b8;
  font-size: 11px;
  line-height: 1.45;
}
.bonus-line {
  color: #70d3e7;
  font-size: 10px;
}
.item-actions {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
}
.item-actions button {
  padding: 6px;
  font-size: 10px;
}
.bonus-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin: 10px 0;
}
.bonus-chips span {
  padding: 5px 8px;
  border: 1px solid #356075;
  border-radius: 999px;
  background: #0a2431;
  color: #9cdceb;
  font-size: 11px;
}
.bonus-chips b {
  color: #fff;
}
.equipment-sets {
  display: grid;
  gap: 6px;
}
.equipment-set {
  position: relative;
  padding: 9px;
  border: 1px solid #354c61;
  border-radius: 7px;
  background: #08131f;
}
.equipment-set > b,
.equipment-set > p,
.equipment-set > small,
.equipment-set > strong {
  display: block;
}
.equipment-set > span {
  position: absolute;
  right: 9px;
  top: 9px;
  color: #8199ac;
}
.equipment-set p {
  margin: 4px 0;
  color: #8299ab;
  font-size: 11px;
}
.equipment-set strong {
  color: #9bb0bf;
  font-size: 11px;
}
.equipment-set.active {
  border-color: #b79443;
  background: linear-gradient(135deg, #2b210e, #111527);
}
.equipment-set.active > b,
.equipment-set.active > strong {
  color: #ffe493;
}
.divine-item,
.divine-slot {
  border-color: #b18b39;
  background: radial-gradient(
    circle at 15% 10%,
    rgba(111, 61, 149, 0.32),
    rgba(36, 27, 13, 0.95) 75%
  );
  box-shadow: inset 0 0 18px rgba(205, 166, 72, 0.08);
}
.divine-item .item-icon {
  border-color: #d1a854;
  background: #38255a;
}
.divine-item .item-heading b,
.divine-slot > b {
  color: #ffe69c;
}
.divine-lock {
  margin-top: 5px;
  color: #d7b6ff;
  font-size: 10px;
}
.protected-item-admin {
  padding: 12px;
  border: 1px solid #ad8738;
  border-radius: 8px;
  background: linear-gradient(135deg, #30240d, #221735);
}
.protected-item-admin > b,
.protected-item-admin > span,
.protected-item-admin > small {
  display: block;
}
.protected-item-admin > b {
  color: #ffe395;
}
.protected-item-admin > span,
.protected-item-admin > small {
  margin-top: 4px;
  color: #bc9fe1;
}
.admin-item-form {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #294158;
}
.admin-checks {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.admin-checks label {
  display: flex;
  gap: 5px;
  align-items: center;
}
.admin-checks input {
  width: auto;
  margin: 0;
}
.admin-card input[readonly] {
  opacity: 0.65;
}
.operator-landing {
  padding: 10px;
  border: 1px solid #b28b36;
  background: #392b10;
  color: #ffe49a;
  border-radius: 6px;
}
@media (max-width: 1450px) {
  .command-dock :is(button, a.restoration-dock-button) {
    width: 155px;
  }
  .equipment-slots {
    grid-template-columns: 1fr 1fr;
  }
  .equipment-item {
    grid-template-columns: 38px minmax(0, 1fr);
  }
  .item-actions {
    grid-column: 1/-1;
    flex-direction: row;
  }
  .item-actions button {
    flex: 1;
  }
}

/* α v0.9a: server-autonomous NPCs, canonical characters, lords, and states */
.ai-operations-card {
  border-color: #496b78;
  background: radial-gradient(
    circle at 10% 0,
    rgba(30, 106, 118, 0.18),
    #0b1927 42%
  );
}
.ai-health-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.ai-health {
  padding: 10px;
  border: 1px solid #314b60;
  border-radius: 8px;
  background: #081522;
}
.ai-health small,
.ai-health b {
  display: block;
}
.ai-health small {
  color: #718ba1;
  font-size: 9px;
  letter-spacing: 0.12em;
}
.ai-health b {
  margin-top: 4px;
  color: #c6d5df;
  font-size: 12px;
  overflow-wrap: anywhere;
}
.ai-health.on {
  border-color: #2c7769;
  background: #0b2727;
}
.ai-health.on b {
  color: #8be1c5;
}
.ai-health.off,
.ai-health.warn {
  border-color: #8e6533;
  background: #29200f;
}
.ai-health.off b,
.ai-health.warn b {
  color: #ffd17b;
}
.check-line {
  display: flex !important;
  align-items: center;
  gap: 7px;
  padding-top: 18px;
}
.check-line input {
  width: auto !important;
  margin: 0 !important;
}
.ai-profile-editor {
  margin: 14px 0;
  padding: 12px;
  border: 1px solid #314c61;
  border-radius: 9px;
  background: #081522;
}
.ai-profile-editor h4,
.ai-operations-card h4 {
  margin: 12px 0 8px;
  color: #bcd5df;
}
.ai-profile-status {
  padding: 9px;
  border-left: 3px solid #4d8390;
  background: #0a1a27;
}
.ai-profile-status b,
.ai-profile-status span,
.ai-profile-status small {
  display: block;
}
.ai-profile-status b {
  color: #ebd47d;
}
.ai-profile-status span,
.ai-profile-status small {
  margin-top: 3px;
  color: #829bad;
}
.ai-profile-status p {
  margin: 7px 0;
  color: #b7c7d1;
}
.ai-travel-status {
  position: relative;
  margin: 10px 0 12px;
  padding: 12px;
  border: 1px solid #345268;
  border-radius: 9px;
  background: linear-gradient(135deg, rgba(16, 42, 58, 0.96), rgba(8, 24, 37, 0.96));
}
.ai-travel-status.moving {
  border-color: #8b7133;
  box-shadow: inset 3px 0 0 #d3a936;
}
.ai-travel-status.staying {
  opacity: 0.88;
}
.ai-travel-route {
  position: relative;
  padding-right: 48px;
}
.ai-travel-route small,
.ai-travel-grid small {
  display: block;
  color: #7892a7;
  font-size: 9px;
  letter-spacing: 0.08em;
}
.ai-travel-route b {
  display: block;
  margin-top: 4px;
  color: #f0d779;
  font-size: 14px;
}
.ai-travel-route b span {
  color: #769bad;
  padding: 0 6px;
}
.ai-travel-route em {
  position: absolute;
  right: 0;
  bottom: 0;
  color: #efcf67;
  font-size: 11px;
  font-style: normal;
}
.ai-travel-progress {
  height: 5px;
  margin-top: 8px;
  overflow: hidden;
  border-radius: 99px;
  background: #06101a;
}
.ai-travel-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #527d90, #ddb74c);
}
.ai-travel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 2fr;
  gap: 8px;
  margin-top: 10px;
}
.ai-travel-grid > div {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #263f52;
  border-radius: 7px;
  background: rgba(5, 17, 28, 0.72);
}
.ai-travel-grid b {
  display: block;
  margin-top: 3px;
  color: #c5d5df;
  font-size: 11px;
  overflow-wrap: anywhere;
}
.ai-travel-grid .purpose b {
  color: #dfcf98;
}
.ai-traits {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}
.ai-decision-log {
  max-height: 300px;
}
.ai-queue-log {
  max-height: 250px;
}
@media (max-width: 900px) {
  .ai-health-row {
    grid-template-columns: 1fr 1fr;
  }
  .ai-traits {
    grid-template-columns: 1fr 1fr;
  }
  .ai-travel-grid {
    grid-template-columns: 1fr 1fr;
  }
  .ai-travel-grid .purpose {
    grid-column: 1 / -1;
  }
  .form-three {
    grid-template-columns: 1fr;
  }
  .check-line {
    padding-top: 0;
  }
  .dynasty-ledger-row { grid-template-columns: 1fr; gap: 7px; }
  .dynasty-ledger-row > button { justify-self: start; }
}

/* α v0.14: offices, political factions, intrigue, defection and rebellion */
.politics-list { display: grid; gap: 7px; }
.politics-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 9px;
  border: 1px solid #2b4358;
  border-radius: 7px;
  background: #081522;
}
.politics-row b,.politics-row small { display: block; }
.politics-row small { color: #8299ab; margin-top: 3px; }
.politics-row p { margin: 5px 0 0; color: #9db0bf; }
.politics-row em { color: #b6a26d; font-style: normal; font-size: 11px; }
.office-badge {
  margin-top: 10px;
  padding: 9px;
  border: 1px solid #7a6533;
  border-radius: 7px;
  background: #211c0d;
  color: #efd57d;
}
.faction-power-row { display: grid; grid-template-columns: minmax(220px,1fr) 140px auto; }
.power-meter {
  position: relative;
  height: 18px;
  border: 1px solid #40566b;
  border-radius: 10px;
  overflow: hidden;
  background: #06111c;
}
.power-meter span { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg,#425b70,#b89543); }
.power-meter b { position: relative; z-index: 1; text-align: center; line-height: 16px; color: #fff; font-size: 10px; }
@media (max-width: 900px) {
  .faction-power-row { grid-template-columns: 1fr; }
  .power-meter { width: 100%; }
}

/* α v0.14a: SCC4 LW style domain capital / palace / fortress development */
.domain-capital-card { padding: 0; overflow: hidden; }
.system-section-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 16px; border-bottom: 1px solid #2d455a;
  background: linear-gradient(180deg,#102236,#0b1927);
}
.system-section-head h3 { margin: 2px 0 0; }
.system-section-head > div > small { color:#7891a7; letter-spacing:.12em; font-size:9px; }
.scc4-parity-label {
  padding: 5px 9px; border:1px solid #8a6b28; border-radius:999px;
  color:#ead27c; background:#231d0c; font-size:9px; letter-spacing:.12em; white-space:nowrap;
}
.domain-capital-layout { display:grid; grid-template-columns: 250px minmax(0,1fr); min-height:520px; }
.domain-selector {
  border-right:1px solid #294158; background:#07131f; padding:10px; max-height:650px; overflow:auto;
}
.domain-selector-title { color:#8299ab; font-size:10px; letter-spacing:.08em; padding:4px 5px 9px; }
.domain-selector-title b { color:#e8ce72; float:right; }
.domain-choice {
  width:100%; display:flex; align-items:flex-start; justify-content:space-between; gap:8px;
  text-align:left; padding:10px; margin:0 0 7px; border:1px solid #294158; border-radius:7px;
  background:#0a1927; color:#dbe8f1; cursor:pointer;
}
.domain-choice:hover { border-color:#54738e; background:#10243a; }
.domain-choice.selected { border-color:#a27a25; background:linear-gradient(90deg,#29220f,#132339); box-shadow:inset 3px 0 #d3a63e; }
.domain-choice span:first-child { min-width:0; }
.domain-choice b { display:block; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.domain-choice small { display:block; color:#7f98aa; font-size:9px; margin-top:3px; }
.domain-choice-status { display:grid; justify-items:end; gap:3px; flex:0 0 auto; }
.domain-choice-status em { font-style:normal; font-size:8px; color:#f0d477; border:1px solid #6f5722; padding:2px 4px; border-radius:3px; }
.domain-choice-status strong { color:#89b6d6; font-size:9px; white-space:nowrap; }
.domain-facility-panel { padding:15px; min-width:0; background:radial-gradient(circle at 85% 0,#11263b 0,#0a1724 42%,#08131f 100%); }
.domain-facility-head { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:12px; }
.domain-facility-head > div:first-child > small { color:#67839a; letter-spacing:.14em; font-size:8px; }
.domain-facility-head h4 { margin:3px 0 5px; font-size:20px; color:#f0d77b; }
.capital-badges { display:flex; flex-wrap:wrap; gap:5px; }
.capital-badge { font-size:9px; padding:3px 7px; border-radius:999px; border:1px solid #40566a; color:#a9bac8; background:#0b1824; }
.capital-badge.domain { border-color:#79632d; color:#efd57c; background:#211d10; }
.capital-badge.national { border-color:#a17620; color:#ffd66a; background:#30240a; }
.capital-badge.state { border-color:#4c6480; color:#9fc7e6; }
.defense-gauge { min-width:190px; text-align:right; }
.defense-gauge > span { display:block; color:#8299ab; font-size:9px; letter-spacing:.08em; }
.defense-gauge strong { display:block; font-size:28px; color:#e7ce78; line-height:1; margin:3px 0 7px; }
.defense-gauge strong small { color:#69849a; font-size:11px; margin-left:2px; }
.defense-gauge progress { width:100%; height:8px; accent-color:#c79b34; }
.facility-schema-warning { padding:9px 11px; margin:0 0 12px; border:1px solid #986b2c; background:#2b1c0c; color:#e8c98e; border-radius:6px; font-size:11px; }
.domain-stat-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:7px; margin:0 0 10px; }
.domain-stat-grid > div { padding:8px; border:1px solid #263d51; border-radius:6px; background:#071522; text-align:center; }
.domain-stat-grid small { display:block; color:#7890a2; font-size:8px; margin-bottom:2px; }
.domain-stat-grid b { color:#dbe7ee; font-size:12px; }
.domain-actions { display:flex; gap:7px; margin:0 0 14px; }
.facility-section-title { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:7px 0 6px; border-bottom:1px solid #2a4155; margin-top:4px; }
.facility-section-title span { color:#e1c96f; font-weight:700; font-size:12px; }
.facility-section-title small { color:#71899b; font-size:9px; text-align:right; }
.facility-section-title.royal span { color:#f1ca54; }
.facility-section-title.economy span { color:#9fc89c; }
.facility-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:9px 0 12px; }
.facility-grid.royal-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.facility-grid.economy-grid { grid-template-columns:repeat(4,minmax(0,1fr)); padding-bottom:2px; }
.facility-card { border:1px solid #2b455a; border-radius:8px; background:#0a1926; padding:10px; min-width:0; }
.facility-card:hover { border-color:#476984; }
.facility-card.complete { border-color:#4c634c; background:#0d1d20; }
.facility-card.locked { opacity:.68; }
.facility-card-head { display:flex; align-items:center; gap:8px; }
.facility-icon { width:30px; height:30px; display:grid; place-items:center; border:1px solid #334c61; border-radius:6px; background:#07131e; font-size:17px; }
.facility-card-head b { display:block; color:#e6edf2; font-size:11px; }
.facility-card-head small { display:block; color:#d2b85d; font-size:9px; margin-top:2px; }
.facility-pips { display:grid; grid-template-columns:repeat(5,1fr); gap:2px; margin:8px 0 6px; }
.facility-grid.economy-grid .facility-pips { grid-template-columns:repeat(10,1fr); }
.facility-pips i { height:4px; background:#1f3345; border-radius:2px; }
.facility-pips i.on { background:#c39a3c; box-shadow:0 0 5px rgba(218,175,73,.25); }
.facility-binary { margin:8px 0 6px; padding:3px 6px; border-radius:3px; background:#172838; color:#708a9e; font-size:8px; font-weight:700; letter-spacing:.08em; }
.facility-binary.on { color:#8fd4a9; background:#113023; }
.facility-card p { min-height:31px; margin:4px 0 8px; color:#7891a4; font-size:9px; line-height:1.45; }
.facility-card button { width:100%; padding:6px 7px; font-size:9px; }
.empty-domain-detail { min-height:400px; display:grid; place-items:center; color:#748b9d; }

@media (min-width: 1200px) {
  .system-modal { width:min(1320px,96vw); }
}
@media (max-width: 980px) {
  .domain-capital-layout { grid-template-columns:1fr; }
  .domain-selector { display:flex; gap:7px; border-right:0; border-bottom:1px solid #294158; max-height:none; overflow-x:auto; }
  .domain-selector-title { min-width:90px; }
  .domain-choice { min-width:210px; margin:0; }
  .domain-stat-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .facility-grid,.facility-grid.economy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .domain-facility-head { flex-direction:column; }
  .defense-gauge { width:100%; text-align:left; }
  .domain-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .facility-grid,.facility-grid.royal-grid,.facility-grid.economy-grid { grid-template-columns:1fr; }
  .facility-section-title { display:block; }
  .facility-section-title small { display:block; text-align:left; margin-top:2px; }
}

/* α v0.15-v0.17: state institutions, grand diplomacy, relations & chronicle */
.command-dock { overflow-x: auto; overflow-y: hidden; justify-content: flex-start; scrollbar-width: thin; }
.command-dock :is(button, a.restoration-dock-button) { flex: 0 0 158px; width: 158px; }
.system-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: thin; }
.system-tabs button { flex: 0 0 128px; white-space: nowrap; }
.notification-badge { display:inline-flex; min-width:18px; height:18px; align-items:center; justify-content:center; margin-left:5px; padding:0 4px; border-radius:999px; background:#8f2e31; color:#fff; font-size:10px; font-style:normal; }
.notification-badge.hidden { display:none; }
.institution-bars { display:grid; gap:8px; margin-top:10px; }
.institution-bar { display:grid; grid-template-columns:100px 1fr 42px; gap:8px; align-items:center; font-size:12px; }
.institution-bar i { height:8px; display:block; border-radius:999px; background:#172b3d; overflow:hidden; }
.institution-bar i::after { content:""; display:block; height:100%; width:var(--pct); background:linear-gradient(90deg,#806923,#e4c65d); }
.gov-metric-grid,.troop-grid,.relation-grid,.chronicle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.gov-metric,.troop-card,.relation-card,.chronicle-entry,.notification-entry,.request-entry { padding:10px; border:1px solid #294158; border-radius:8px; background:#091725; }
.gov-metric strong,.troop-card strong { display:block; font-size:18px; color:#ecd270; }
.status-pill { display:inline-block; padding:2px 7px; border:1px solid #486078; border-radius:999px; font-size:10px; color:#aac0d2; }
.status-pill.critical,.priority-critical { border-color:#9b3d43; color:#ff9da3; }
.status-pill.high,.priority-high { border-color:#98772d; color:#f2d270; }
.budget-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.budget-grid label { margin:0; }
.army-composition { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }
.army-composition span { padding:3px 6px; border-radius:6px; background:#10263a; font-size:11px; }
.chronicle-entry[data-importance="5"] { border-color:#8b6d27; box-shadow:inset 3px 0 #d4ae3f; }
.chronicle-entry h4,.notification-entry h4 { margin:0 0 5px; color:#e6cf83; }
.chronicle-entry p,.notification-entry p,.request-entry p { margin:5px 0; }
.unread-notification { border-color:#846a2d; background:#102033; }
.social-actions { display:flex; gap:6px; flex-wrap:wrap; margin-top:8px; }
@media (max-width:760px){ .gov-metric-grid,.troop-grid,.relation-grid,.chronicle-grid,.budget-grid { grid-template-columns:1fr; } .institution-bar{grid-template-columns:80px 1fr 36px;} }

/* α v0.17a AI/Cron recovery diagnostics */
.ai-job-error {
  margin: 10px 0 14px;
  padding: 10px 12px;
  border: 1px solid #8f5548;
  border-left: 4px solid #d17a61;
  border-radius: 8px;
  background: #241416;
  color: #efc3b8;
}
.ai-job-error b,
.ai-job-error span {
  display: block;
}
.ai-job-error b {
  margin-bottom: 4px;
  color: #ffb19d;
  font-size: 12px;
}
.ai-job-error span {
  font-size: 11px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

/* α v0.17a3 request form */
.muted-text { opacity:.72; }
#escortTargetWrap { margin-top:8px; padding:10px; border:1px solid #36506a; border-radius:8px; background:#0a1b2a; }
#escortTargetWrap.hidden { display:none; }

.right-side .panel-title {
  margin-bottom: 8px;
}
#settlementDetail::-webkit-scrollbar,
.adjacent-list::-webkit-scrollbar,
.event-log::-webkit-scrollbar,
.chat-log::-webkit-scrollbar {
  width: 8px;
}
#settlementDetail::-webkit-scrollbar-thumb,
.adjacent-list::-webkit-scrollbar-thumb,
.event-log::-webkit-scrollbar-thumb,
.chat-log::-webkit-scrollbar-thumb {
  background: #294158;
  border-radius: 999px;
}

/* α v0.17a5 CHARACTER STATUS */
.character-abilities{margin:10px 0;padding:9px;border:1px solid #2b4154;border-radius:9px;background:linear-gradient(180deg,#0b1824,#08131e)}
.ability-head{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-bottom:7px}.ability-head span{font-size:9px;letter-spacing:.13em;color:#7190a8}.ability-head em{font-style:normal;font-size:9px;color:#d2b968}
.ability-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.ability-cell{padding:6px 3px;text-align:center;border:1px solid #20374a;border-radius:6px;background:#091622}.ability-cell small{display:block;color:#7891a5;font-size:9px}.ability-cell b{font-size:14px;color:#cfdce6}.ability-cell.high b{color:#8ed2ff}.ability-cell.elite{border-color:#685729;background:linear-gradient(180deg,#211b0d,#0b1620)}.ability-cell.elite b{color:#ffd76b}.ability-cell.divine{border-color:#9e7b25;background:radial-gradient(circle at top,#3a2b09,#0a1420 70%);box-shadow:inset 0 0 12px rgba(255,215,107,.12)}.ability-cell.divine b{color:#fff0a8;text-shadow:0 0 8px rgba(255,215,107,.45)}
.stamina-row{margin-top:8px;padding-top:7px;border-top:1px solid #1f3243}.stamina-row>div:first-child{display:flex;justify-content:space-between;gap:8px}.stamina-row small{color:#7790a4;font-size:9px}.stamina-row b{font-size:11px;color:#dce7ef}.stamina-bar{height:7px;margin-top:5px;border:1px solid #294358;border-radius:999px;overflow:hidden;background:#061019}.stamina-bar i{display:block;height:100%;background:linear-gradient(90deg,#315f8f,#d5b34d);box-shadow:0 0 7px rgba(213,179,77,.35)}
.local-statline{margin-top:3px!important;color:#7fa7bd!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px!important}.local-statline.divine{color:#f0ce65!important;text-shadow:0 0 6px rgba(240,206,101,.3)}
@media(max-width:1200px){.ability-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Siege operation UX hotfix */
.siege-guide{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:10px;padding:9px 11px;border:1px solid #4a3d22;border-radius:8px;background:linear-gradient(180deg,rgba(79,55,14,.28),rgba(10,20,30,.72));color:#ddc77e}.siege-guide span{font-size:11px;color:#9fb0bd}.siege-target-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:300px;overflow:auto;padding-right:3px}.siege-target-card{display:grid;gap:8px;padding:10px;border:1px solid #263d52;border-radius:9px;background:#091622}.siege-target-card.near{border-color:#6d5c2b}.siege-target-card.ready{border-color:#a94d51;box-shadow:inset 0 0 0 1px rgba(255,99,105,.12)}.siege-target-card b{display:block;color:#efd98e}.siege-target-card small{display:block;margin-top:3px;color:#8199ac}.siege-target-meta{display:flex;flex-wrap:wrap;gap:5px}.siege-target-meta span{padding:3px 6px;border:1px solid #2b4358;border-radius:999px;background:#0d1c29;color:#9cb1c1;font-size:10px}.siege-route-note{font-size:11px;color:#71899d;line-height:1.45}.operator-banner.warn{border-color:#6e5927;background:rgba(79,55,14,.2)}.operator-banner.good{border-color:#2c6a4b;background:rgba(28,83,57,.2)}@media(max-width:1200px){.siege-target-list{grid-template-columns:1fr}}

/* α v0.17a8 — Logistics / Supply Lines */
.logistics-status {
  display: grid;
  grid-template-columns: repeat(4,minmax(0,1fr));
  gap: 7px;
  margin-bottom: 9px;
}
.logistics-status > div {
  padding: 9px 8px;
  border: 1px solid #294158;
  border-radius: 8px;
  background: linear-gradient(180deg,#0b1926,#09131e);
}
.logistics-status small {
  display: block;
  color: #70889d;
  font-size: 9px;
  letter-spacing: .08em;
  margin-bottom: 3px;
}
.logistics-status b { color:#e7edf3; font-size:13px; }
.logistics-status.good > div:first-child { border-color:#2f674a; box-shadow:inset 0 0 18px rgba(53,143,95,.10); }
.logistics-status.good > div:first-child b { color:#8be0ae; }
.logistics-status.warn > div:first-child { border-color:#7c6326; box-shadow:inset 0 0 18px rgba(202,157,49,.10); }
.logistics-status.warn > div:first-child b { color:#f0ca68; }
.logistics-status.bad > div:first-child { border-color:#71383b; box-shadow:inset 0 0 18px rgba(191,66,73,.10); }
.logistics-status.bad > div:first-child b { color:#ff8d91; }
.logistics-source {
  padding:10px;
  margin-bottom:9px;
  border:1px solid #263d51;
  border-radius:8px;
  background:#08141f;
}
.logistics-source b { display:block; color:#e8d69b; margin-bottom:3px; }
.logistics-source small { color:#7f97aa; }
.logistics-source p {
  margin:7px 0 0;
  padding-top:7px;
  border-top:1px dashed #23394b;
  color:#9fb1c0;
  font-size:11px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
@media (max-width: 1050px) {
  .logistics-status { grid-template-columns:1fr 1fr; }
}

/* α v0.17a10 — National Army Command */
.national-army-card { border-left: 3px solid #b58a2a; }
.national-army-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.army-commander-line { margin:8px 0; padding:7px 9px; border:1px solid #2d4356; border-radius:7px; background:#091522; color:#9db0c0; font-size:12px; }
.army-commander-line b { color:#eed27c; }
.army-commander-line span { float:right; color:#6f8ca3; font-size:10px; letter-spacing:.08em; }
.army-cap-note { margin:8px 0; padding:8px 10px; border:1px solid #334b60; border-radius:7px; background:#0a1723; color:#9fb1bf; }
.army-cap-note b { color:#f1d98e; }
.army-cap-note b.over-cap { color:#ff7676; }
.army-command-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:8px; }
.army-command-chip { text-align:left; display:flex; flex-direction:column; gap:3px; padding:10px 12px; border:1px solid #2c4357; border-radius:8px; background:linear-gradient(180deg,#0d1b29,#09141f); color:#d7e2ea; }
.army-command-chip b { color:#f0d47c; }
.army-command-chip small { color:#8197a9; }
.army-command-chip.active { border-color:#d3a93c; box-shadow:0 0 0 1px rgba(211,169,60,.25) inset,0 0 15px rgba(211,169,60,.08); background:linear-gradient(180deg,#1d251e,#0d181b); }


/* alpha v0.18 - SCC4 LW portrait / bilingual / UI parity */
.language-switch{display:flex;border:1px solid #314a61;border-radius:7px;overflow:hidden;background:#07121d}
.language-switch button{min-width:42px;border:0;border-radius:0;padding:8px 9px;background:transparent;color:#7891a7;font-size:11px;font-weight:800}
.language-switch button.active{background:#6f5316;color:#ffe6a0;box-shadow:inset 0 0 0 1px #d0a63a}
.language-toggle.auth-language{position:absolute;right:16px;top:16px;font-size:11px;padding:7px 10px}
.auth-card{position:relative}
.player-identity-card{display:grid;grid-template-columns:92px minmax(0,1fr);gap:11px;align-items:stretch;margin-bottom:10px}
.character-portrait{position:relative;overflow:hidden;border:1px solid #405a70;background:radial-gradient(circle at 50% 25%,rgba(240,200,94,.16),transparent 45%),linear-gradient(180deg,#142536,#07131f);box-shadow:inset 0 0 0 2px rgba(255,255,255,.025),0 5px 18px rgba(0,0,0,.35)}
.character-portrait.hero{width:92px;height:116px;border-radius:8px}
.character-portrait.small{width:46px;height:56px;border-radius:7px;flex:0 0 auto}
.character-portrait.profile{width:190px;height:250px;border-radius:12px}
.character-portrait img{width:100%;height:100%;object-fit:cover;display:block}
.character-portrait .portrait-fallback{width:100%;height:100%;display:grid;place-items:center;font-family:Georgia,serif;font-size:34px;font-weight:900;color:#e2ca81;text-shadow:0 2px 8px #000}
.character-portrait.small .portrait-fallback{font-size:19px}
.portrait-rank{position:absolute;left:4px;right:4px;bottom:4px;padding:3px 4px;border-radius:4px;background:rgba(4,10,16,.86);color:#e3cb87;font-size:8px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-identity-main{min-width:0;display:flex;flex-direction:column;justify-content:center}
.player-name{font-size:19px;line-height:1.25}
.player-subtitle{color:#849cb0;margin-top:4px;font-size:12px}
.local-person .character-portrait{margin-right:8px}
.person-avatar{display:none!important}
.local-person{align-items:flex-start}
.profile-modal{width:min(900px,94vw);height:min(720px,90vh);border:1px solid #725a20;border-radius:12px;background:linear-gradient(180deg,#101e2c,#08131e);box-shadow:0 25px 90px rgba(0,0,0,.72);overflow:hidden;display:flex;flex-direction:column}
.profile-modal>header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #2e4356;background:#0d1a27}
.profile-modal>header h2{margin:2px 0;color:#f0d477}
.profile-content{padding:16px;overflow:auto;flex:1}
.profile-layout{display:grid;grid-template-columns:190px minmax(0,1fr);gap:18px}
.profile-summary h3{font-size:24px;color:#f2d985;margin:0 0 6px}.profile-summary p{color:#8da5b8;margin:4px 0}.profile-summary .character-abilities{margin-top:16px}
.ui-parity-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}.ui-parity-strip>div{padding:7px;border:1px solid #22394d;border-radius:6px;background:#081520}.ui-parity-strip small{display:block;color:#6d879d;font-size:9px}.ui-parity-strip b{color:#dbe6ee;font-size:12px}
@media(max-width:1100px){.game-grid{grid-template-columns:240px minmax(520px,1fr) 320px}.player-identity-card{grid-template-columns:74px minmax(0,1fr)}.character-portrait.hero{width:74px;height:94px}}
@media(max-width:760px){.profile-layout{grid-template-columns:1fr}.character-portrait.profile{width:150px;height:200px}.language-switch{position:fixed;right:8px;top:8px;z-index:5000}.world-status>div:nth-child(2){display:none}}

/* α v0.18c — World Chat / authenticated presence */
.chat-panel-title {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 10px;
}
.chat-panel-title > div:first-child { min-width: 0; }
.chat-channel-tabs {
  display: flex;
  gap: 4px;
  padding: 3px;
  border: 1px solid #243b50;
  border-radius: 8px;
  background: #07121d;
}
.chat-channel-tabs button {
  border: 0;
  min-width: 48px;
  padding: 5px 8px;
  border-radius: 6px;
  background: transparent;
  color: #7891a6;
  font-size: 11px;
  font-weight: 700;
}
.chat-channel-tabs button.active {
  color: #ffdf82;
  background: linear-gradient(180deg,#6a5117,#43330f);
  box-shadow: inset 0 0 0 1px #a98227;
}
.chat-meta {
  display: flex;
  align-items: center;
  gap: 5px;
}
.chat-meta time { margin-left: auto; }
.chat-line small {
  display: block;
  color: #6d879b;
  font-size: 10px;
  margin: 1px 0 3px;
}
.world-chat-line {
  padding: 7px 8px;
  margin: 0 0 6px;
  border: 1px solid #1d3144;
  border-radius: 7px;
  background: linear-gradient(180deg,rgba(14,31,46,.9),rgba(7,18,29,.92));
}
.chat-badge {
  display: inline-flex;
  align-items: center;
  padding: 1px 5px;
  border-radius: 999px;
  font-size: 8px;
  line-height: 1.4;
  letter-spacing: .06em;
  border: 1px solid #40576c;
  color: #9eb5c7;
}
.chat-badge.canonical {
  border-color: #8e7028;
  color: #f0d27a;
  background: rgba(101,77,18,.25);
}
.chat-empty {
  color: #61798d;
  font-size: 12px;
  padding: 8px 4px;
}
.presence-list,.admin-chat-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  max-height: 320px;
  overflow: auto;
}
.presence-row,.admin-chat-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid #263e53;
  border-radius: 8px;
  background: #091722;
}
.presence-row b,.admin-chat-row b { color: #edd37a; }
.presence-row small,.admin-chat-row small {
  display: block;
  margin-top: 2px;
  color: #718da3;
  font-size: 10px;
}
.presence-row time {
  color: #5e788d;
  font-size: 10px;
  white-space: nowrap;
}
.admin-chat-row p {
  margin: 6px 0 0;
  color: #c9d6df;
  font-size: 12px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.presence-actions { display:flex; align-items:flex-end; gap:7px; flex-direction:column; }

/* α v0.18d — City recruitment & training */
.military-city-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0;
}
.military-city-summary > div {
  padding: 10px;
  border: 1px solid #294158;
  border-radius: 8px;
  background: linear-gradient(180deg, #0c1a28, #09131e);
}
.military-city-summary small { display:block; color:#7892a8; margin-bottom:3px; }
.military-city-summary b { color:#f1d98e; font-size:15px; }
.recruit-train-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 10px 0;
}
.recruit-train-grid > div {
  padding: 12px;
  border: 1px solid #294158;
  border-radius: 10px;
  background: rgba(8,18,29,.92);
}
.recruit-train-grid h4 { color:#f1d98e; margin:0 0 8px; }
.trained-reserve-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  margin: 10px 0;
}
.trained-reserve-grid span {
  display:flex;
  justify-content:space-between;
  gap:6px;
  padding:7px 8px;
  border:1px solid #22384b;
  border-radius:7px;
  background:#0a1723;
  font-size:12px;
}
.training-order .training-progress {
  height:6px;
  margin-top:7px;
  overflow:hidden;
  border-radius:999px;
  background:#07111a;
  border:1px solid #22384b;
}
.training-order .training-progress span {
  display:block;
  height:100%;
  background:linear-gradient(90deg,#a97818,#f0c85e);
}
@media (max-width: 920px) {
  .military-city-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .recruit-train-grid { grid-template-columns: 1fr; }
  .trained-reserve-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* α v0.18f — Nine Arms / Constitutional War / National Technology */
.troop-card-title,.tech-card-head {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.troop-card.advanced-troop {
  border-color:#765b2d;
  background:linear-gradient(180deg,rgba(40,29,17,.96),rgba(12,22,32,.98));
  box-shadow:inset 0 0 0 1px rgba(226,185,83,.08);
}
.troop-card.troop-locked { opacity:.66; filter:saturate(.7); }
.advanced-badge,.locked-badge {
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:2px 7px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
}
.advanced-badge { color:#f4d88a; border:1px solid #8d6c31; background:#2b2110; }
.locked-badge { color:#e6b4b4; border:1px solid #6e3b43; background:#27151a; }
.trained-reserve-grid .advanced-reserve { border-color:#6d542a; background:#211b12; }
.constitutional-war-policy { border-color:#4b5569; }
.war-policy-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:8px 0 10px;
}
.war-policy-summary > div {
  padding:9px;
  border:1px solid #2a4358;
  border-radius:8px;
  background:#0a1824;
}
.war-policy-summary small { display:block; color:#7892a8; }
.war-policy-summary b { color:#efd584; }
.technology-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.tech-card {
  padding:10px;
  border:1px solid #2c455a;
  border-radius:9px;
  background:linear-gradient(180deg,#0c1b29,#08141f);
}
.tech-card-head strong { color:#ead17d; }
.tech-card-head span { color:#b7c8d6; font-weight:700; }
.tech-card p { margin:7px 0 0; color:#9eb1c0; font-size:11px; line-height:1.45; }
.tech-card.tech-max { border-color:#5e6b39; }
.tech-progress {
  height:7px;
  margin:7px 0 4px;
  overflow:hidden;
  border:1px solid #21384b;
  border-radius:999px;
  background:#061018;
}
.tech-progress i {
  display:block;
  height:100%;
  background:linear-gradient(90deg,#8e702b,#e2c766);
}
.technology-research-form {
  display:grid;
  grid-template-columns:2fr 1fr 1.4fr;
  gap:8px;
  align-items:end;
  margin-top:12px;
  padding:10px;
  border:1px solid #304a60;
  border-radius:9px;
  background:#091722;
}
.technology-research-form small { grid-column:1/-1; }
.war-rule-box {
  margin:0 0 10px;
  padding:9px 10px;
  border:1px solid #594a32;
  border-radius:8px;
  background:linear-gradient(180deg,#1b1710,#0b151e);
  line-height:1.5;
}
.war-rule-box small { display:block; margin-top:5px; color:#91a7b8; }
.war-authorization-entry,.war-authorization-bill { border-color:#5b4930; }
@media (max-width: 920px) {
  .technology-grid { grid-template-columns:1fr; }
  .technology-research-form { grid-template-columns:1fr; }
  .technology-research-form small { grid-column:auto; }
  .war-policy-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* α v0.18g — Collaborative National Research */
.tech-card.tech-focused {
  border-color:#7a6531;
  box-shadow:inset 0 0 0 1px rgba(235,198,91,.08);
}
.research-focus-badge {
  display:inline-flex;
  align-items:center;
  margin-left:5px;
  padding:2px 6px;
  border:1px solid #6f5b2c;
  border-radius:999px;
  background:#271f10;
  color:#efd784;
  font-size:9px;
  vertical-align:middle;
}
.research-focus-badge.p3 { border-color:#a77c2b; color:#ffe39a; }
.research-source-totals {
  display:block;
  margin-top:4px;
  color:#728da2;
  line-height:1.4;
}
.research-collab-summary {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
  margin:10px 0;
}
.research-collab-summary > div {
  padding:9px;
  border:1px solid #2d465a;
  border-radius:8px;
  background:#091722;
}
.research-collab-summary small,
.research-collab-summary em { display:block; color:#7892a8; font-style:normal; }
.research-collab-summary b { display:block; margin:2px 0; color:#efd584; font-size:15px; }
.research-ai-plan,
.research-policy-readonly,
.research-migration-note {
  margin:8px 0;
  padding:9px 10px;
  border:1px solid #314a5f;
  border-radius:8px;
  background:#0a1723;
  line-height:1.5;
}
.research-ai-plan small { display:block; color:#8199aa; margin-top:3px; }
.research-policy-form {
  display:grid;
  grid-template-columns:1.4fr repeat(3,minmax(0,1fr)) auto;
  gap:8px;
  align-items:end;
  margin:10px 0 12px;
  padding:10px;
  border:1px solid #4a5c6c;
  border-radius:9px;
  background:linear-gradient(180deg,#0c1a26,#08141e);
}
.research-policy-form > div small { display:block; margin-top:4px; color:#8099ab; }
.research-action-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
}
.research-personal-form {
  display:grid;
  grid-template-columns:2fr 1fr 1.4fr;
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid #315046;
  border-radius:9px;
  background:#091a18;
}
.research-personal-form small { grid-column:1/-1; }
.research-history {
  margin-top:12px;
  padding-top:9px;
  border-top:1px solid #263e51;
}
.research-history h4 { margin:0 0 7px; color:#c8d5df; }
.research-history-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:8px;
  align-items:center;
  padding:7px 8px;
  border-bottom:1px solid #1e3344;
}
.research-history-row span small { display:block; color:#718b9f; }
.research-history-row strong { color:#e1c66d; }
.research-history-row em { color:#9cb2c1; font-style:normal; }
@media (max-width: 920px) {
  .research-collab-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-policy-form { grid-template-columns:1fr; }
  .research-action-grid { grid-template-columns:1fr; }
  .research-personal-form { grid-template-columns:1fr; }
  .research-personal-form small { grid-column:auto; }
}

/* α v0.18h morale / privacy / lineage */
.private-status-message{padding:18px;border:1px dashed rgba(130,165,190,.45);border-radius:10px;color:#91a9bc;background:rgba(7,18,29,.45);text-align:center}
.local-statline.private{color:#778b9c;font-style:italic}
.lineage-badge{display:inline-flex;align-items:center;padding:2px 7px;margin-left:4px;border-radius:999px;font-size:11px;border:1px solid rgba(255,255,255,.2);vertical-align:middle}
.lineage-badge.imperial{border-color:#d8b34b;color:#f0d47c;background:rgba(139,101,16,.18)}
.lineage-badge.noble{border-color:#7aa7cf;color:#a9ccec;background:rgba(31,73,108,.18)}
.lineage-badge.divine{border-color:#d7bcff;color:#e4d2ff;background:rgba(104,62,153,.22)}
.lineage-badge.demigod{border-color:#b6a8ff;color:#cec5ff;background:rgba(66,55,125,.2)}
.morale-guide{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:10px 12px;border:1px solid rgba(211,166,62,.35);border-radius:10px;background:rgba(110,78,15,.12)}
.morale-guide b{color:#e3c26b}.morale-guide small{color:#9fb4c3;line-height:1.55}

/* α v0.18i civic economy / agriculture / merchant companies / portraits */
.civic-card-grid,.merchant-company-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.civic-law-card,.civic-policy-card,.merchant-company-card{border:1px solid #29445a;border-radius:9px;padding:10px;background:#091722;display:flex;flex-direction:column;gap:6px;min-width:0}
.civic-law-card.enacted,.civic-policy-card.active{border-color:#75612d;background:linear-gradient(180deg,rgba(116,87,22,.18),#091722)}
.civic-law-card>div,.civic-policy-card>div{display:flex;justify-content:space-between;gap:8px;align-items:center}
.civic-law-card p,.civic-policy-card p{margin:0;color:#a7bac8;line-height:1.5}.civic-law-card small,.civic-policy-card small{color:#7892a8;line-height:1.5}
.agriculture-summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-bottom:10px}.agriculture-summary>div{padding:9px;border:1px solid #2d4a44;border-radius:8px;background:#081916;text-align:center}.agriculture-summary small{display:block;color:#789889}.agriculture-summary b{display:block;color:#dfc96f;font-size:18px;margin-top:2px}
.button-row.wrap{flex-wrap:wrap}.essential-goods-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.essential-good{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:9px;border:1px solid #294052;border-radius:8px;background:#081520}.essential-good small{display:block;color:#7790a3}.essential-good strong{color:#9fc8aa}.essential-good em{font-style:normal;font-size:11px;padding:3px 7px;border-radius:999px;background:#19382d;color:#a7dbba}.essential-good.shortage{border-color:#735d2b}.essential-good.shortage em{background:#493915;color:#e7c978}.essential-good.critical{border-color:#7a3434;background:rgba(93,31,31,.12)}.essential-good.critical em{background:#542626;color:#ffb2b2}
.merchant-company-card>div{display:flex;gap:12px;flex-wrap:wrap;color:#a6b7c4}.merchant-company-card small{color:#7890a3}.merchant-company-card em{font-style:normal;color:#dfc56c}.merchant-startup-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid #263d50}.merchant-startup-grid h4{margin:0 0 8px;color:#d9c071}.noble-commerce-note{display:block;margin-top:7px;color:#a8a07d;line-height:1.5}
.portrait-editor{margin-top:14px;padding:12px;border:1px solid #344e63;border-radius:10px;background:#081622}.portrait-editor h4{margin:0 0 5px;color:#e1c66d}.portrait-editor p{color:#8fa7b8}.portrait-preset-preview{display:flex;gap:7px;overflow-x:auto;padding:8px 0}.portrait-preset-preview button{width:58px;height:72px;padding:0;border:1px solid #3b5367;overflow:hidden;border-radius:7px;background:#07131d}.portrait-preset-preview img{width:100%;height:100%;object-fit:cover}.portrait-preset-preview button:hover{border-color:#d0ad4b;transform:translateY(-1px)}
@media(max-width:1000px){.civic-card-grid,.merchant-company-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.agriculture-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.civic-card-grid,.merchant-company-grid,.essential-goods-list,.merchant-startup-grid{grid-template-columns:1fr}.agriculture-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* α v0.18j merchant company autonomy */
.merchant-system-card{overflow:hidden}.merchant-console{display:flex;flex-direction:column;gap:12px}.merchant-company-tabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px}.merchant-company-select{position:relative;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:11px;border:1px solid #29465b;border-radius:9px;background:#081722;color:#c6d5df}.merchant-company-select:hover,.merchant-company-select.active{border-color:#b79439;background:linear-gradient(180deg,rgba(119,91,24,.2),#081722)}.merchant-company-select small{color:#7f98aa}.merchant-company-select span{color:#a9bdca;font-size:12px}.merchant-company-select em{position:absolute;right:8px;top:8px;font-style:normal;font-size:10px;color:#e2c56d;border:1px solid rgba(204,169,73,.42);border-radius:999px;padding:2px 6px}.merchant-company-detail{border:1px solid #2b465a;border-radius:10px;background:#07141e;padding:12px}.merchant-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;border-bottom:1px solid #263d50;padding-bottom:10px;margin-bottom:12px}.merchant-detail-head h4{font-size:20px;color:#e2c66c;margin:2px 0 3px}.merchant-detail-head p{margin:0;color:#8ea5b6}.merchant-detail-head small{color:#6f8798;letter-spacing:.08em}.merchant-kpis{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:6px;min-width:380px}.merchant-kpis span,.merchant-ledger-kpis span{border:1px solid #294153;border-radius:7px;padding:7px 9px;background:#091a26;color:#7f96a8;font-size:11px}.merchant-kpis b,.merchant-ledger-kpis b{display:block;color:#e0c66f;font-size:14px;margin-top:2px}.merchant-management-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.merchant-module{border:1px solid #273f52;border-radius:9px;background:#091722;padding:11px;min-width:0}.merchant-module.wide{grid-column:1/-1}.merchant-module h5{margin:0 0 9px;color:#e1c46c;font-size:15px}.merchant-module>p{color:#9dafbb}.merchant-module label{display:flex;flex-direction:column;gap:4px;margin:6px 0;color:#839bad;font-size:12px}.merchant-module .check-line{flex-direction:row;align-items:center}.merchant-route-card{border:1px solid #29465a;border-radius:8px;padding:9px;margin:7px 0;background:#07131d}.merchant-route-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.merchant-route-head b{color:#c8d8e2}.merchant-route-head span{font-size:11px;color:#839bac}.merchant-route-controls{display:grid;grid-template-columns:80px minmax(160px,1.5fr) 90px 90px 100px;gap:7px;align-items:end;margin-top:7px}.merchant-add-line{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:8px}.merchant-list-row{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid #1f3445;padding:7px 2px}.merchant-list-row:last-child{border-bottom:0}.merchant-list-row span{min-width:0}.merchant-list-row b{display:block;color:#bed0dc}.merchant-list-row small{display:block;color:#71899b;margin-top:2px}.merchant-list-row em{font-style:normal;color:#b4c3cc;font-size:11px}.merchant-share-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px;padding:6px 0;border-bottom:1px solid #203647}.merchant-share-row b{color:#e0c56d}.merchant-share-row small{grid-column:1/-1;color:#758d9e}.merchant-guild-banner{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px;border:1px solid #5f552e;border-radius:8px;background:rgba(111,85,25,.14)}.merchant-guild-banner b{color:#e1c76e}.merchant-guild-banner span{color:#aebcc5}.merchant-ledger-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:8px}.merchant-ledger{max-height:330px;overflow:auto}.merchant-ledger table{width:100%;border-collapse:collapse}.merchant-ledger th,.merchant-ledger td{padding:7px;border-bottom:1px solid #203747;text-align:left}.merchant-ledger th{position:sticky;top:0;background:#0b1d2a;color:#9cb0be}.form-two.compact,.form-three.compact{gap:7px}.merchant-module .positive{color:#8fcca5}.merchant-module .negative{color:#e58c8c}
@media(max-width:1000px){.merchant-detail-head{flex-direction:column}.merchant-kpis{min-width:0;width:100%}.merchant-route-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.merchant-management-grid{grid-template-columns:1fr}.merchant-module.wide{grid-column:auto}.merchant-kpis,.merchant-ledger-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.merchant-route-controls{grid-template-columns:1fr}.merchant-add-line{grid-template-columns:1fr}.merchant-detail-head{gap:8px}}


/* α v0.18k branch expansion & fisheries */
.merchant-branch-row{gap:12px;align-items:center}.merchant-branch-row button{white-space:nowrap}.fishery-panel{display:grid;gap:12px}.fishery-panel .state-stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.fishery-panel small{opacity:.78;line-height:1.6}

/* v0.18k8 family tree / captive command */
.family-tree-card{overflow:hidden}.family-tree-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:2px 0 10px;padding:10px 12px;border:1px solid rgba(203,169,76,.28);border-radius:9px;background:rgba(6,19,31,.7)}.family-tree-preview-head b{display:block;color:#e6d28a}.family-tree-preview-head small{display:block;color:#8299a9;margin-top:4px}.family-tree-preview{overflow:auto;max-height:520px;border:1px solid #223b4f;border-radius:9px;background:radial-gradient(circle at 50% 0,rgba(54,86,107,.12),rgba(3,13,22,.64));padding:14px}.family-tree-preview .family-tree-root{margin-inline:auto}.family-tree-preview .family-tree-person{cursor:default}.family-tree-overlay{z-index:760;padding:16px}.family-tree-modal{width:min(1540px,98vw);height:min(940px,96vh);display:flex;flex-direction:column;border:1px solid #806a30;border-radius:14px;background:#06111b;box-shadow:0 34px 120px #000;overflow:hidden}.family-tree-modal>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-bottom:1px solid #2b4153;background:linear-gradient(180deg,#102334,#0b1825)}.family-tree-modal>header h2{margin:2px 0;color:#efd373}.family-tree-modal>header small{color:#839caf}.family-tree-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:10px;align-items:end;padding:10px 14px;border-bottom:1px solid #203547;background:#081725}.family-tree-search{display:flex;flex-direction:column;gap:4px;color:#869eae;font-size:11px;letter-spacing:.04em}.family-tree-search select{width:100%;min-width:210px;padding:8px 10px;border:1px solid #355169;border-radius:7px;background:#06121d;color:#e9f0f4}.family-tree-modes,.family-tree-zoom-controls{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.family-tree-modes button,.family-tree-zoom-controls button{white-space:nowrap}.family-tree-modes button.active{border-color:#c59f37;background:linear-gradient(180deg,#6e5318,#3f2f0e);color:#ffe083}.family-tree-viewport{position:relative;flex:1;min-height:0;overflow:hidden;cursor:grab;background-image:linear-gradient(rgba(80,118,143,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(80,118,143,.055) 1px,transparent 1px),radial-gradient(circle at 50% 0,rgba(39,78,105,.16),transparent 62%);background-size:32px 32px,32px 32px,auto}.family-tree-viewport.dragging{cursor:grabbing}.family-tree-canvas{position:absolute;left:0;top:0;width:max-content;min-width:max-content;transform-origin:0 0;will-change:transform;padding:8px 20px 80px}.family-tree-help{padding:8px 14px;border-top:1px solid #203547;background:#07131f;color:#748c9d;font-size:11px}.family-tree-root{display:flex;flex-direction:column;align-items:center;width:max-content;min-width:520px;padding:8px 18px 28px}.family-tree-root.ancestor-only{gap:8px}.family-tree-level-label{font-size:10px;letter-spacing:.14em;color:#cba94c;text-transform:uppercase;text-align:center;margin:3px 0 8px}.family-tree-level-label.root-label{margin-top:12px}.family-tree-ancestor-row{display:flex;flex-direction:column;align-items:center;width:100%;position:relative;margin-bottom:17px}.family-tree-ancestor-row:not(:last-child):after{content:"";position:absolute;bottom:-17px;left:50%;width:1px;height:17px;background:rgba(203,169,76,.42)}.family-tree-ancestor-people{display:flex;justify-content:center;gap:14px;flex-wrap:nowrap}.family-tree-branch{position:relative;display:flex;flex-direction:column;align-items:center;width:max-content;text-align:center}.family-tree-couple-wrap{position:relative;display:flex;flex-direction:column;align-items:center;min-width:max-content}.family-tree-couple-unit{display:flex;align-items:stretch;justify-content:center;gap:8px;min-height:70px;white-space:nowrap}.family-tree-heart{display:grid;place-items:center;align-self:center;min-width:22px;height:22px;border:1px solid rgba(203,169,76,.48);border-radius:999px;background:#0c1a25;color:#d9b64d;font-size:11px;box-shadow:0 0 0 3px #06111b}.family-tree-person{appearance:none;display:flex;align-items:center;gap:8px;min-width:176px;max-width:238px;padding:8px 10px;border:1px solid rgba(102,153,187,.44);border-radius:9px;background:linear-gradient(180deg,rgba(12,37,54,.96),rgba(6,24,37,.96));color:#dce8ee;text-align:left;font:inherit;white-space:normal;box-shadow:0 4px 12px rgba(0,0,0,.23)}button.family-tree-person{cursor:pointer}.family-tree-person:hover{border-color:#b49b52;background:linear-gradient(180deg,rgba(35,52,57,.98),rgba(10,28,39,.98));transform:translateY(-1px)}.family-tree-person.muted{opacity:.78}.family-tree-avatar{position:relative;display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border:1px solid #51687a;border-radius:50%;overflow:hidden;background:#12293a;color:#d9c471;font-style:normal}.family-tree-avatar img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.family-tree-avatar i{display:grid;place-items:center;width:100%;height:100%;font-style:normal;font-weight:800}.family-tree-avatar img+i{visibility:hidden}.family-tree-avatar.fallback i{visibility:visible}.family-tree-person-body{display:block;min-width:0}.family-tree-name{display:flex;gap:5px;align-items:center;min-width:0}.family-tree-name b{display:block;overflow:hidden;text-overflow:ellipsis}.family-tree-relation{flex:0 0 auto;font-size:9px;padding:2px 5px;border:1px solid rgba(203,169,76,.55);border-radius:999px;color:#e8c85d}.family-tree-person small,.family-tree-person em{display:block;color:#91a9b8;font-size:10px;margin-top:3px;line-height:1.35}.family-tree-person em{color:#d18383;font-style:normal}.family-tree-collapse{margin-top:5px;padding:3px 8px;border-color:#344f63;background:#071826;color:#8fa9b8;font-size:10px}.family-tree-descendant-count{margin-top:5px;padding:3px 8px;border:1px solid #2b4558;border-radius:999px;background:#071725;color:#8299aa;font-size:10px}.family-tree-children{display:flex;justify-content:center;align-items:flex-start;gap:20px;list-style:none;padding:42px 0 0;margin:0;position:relative;width:max-content}.family-tree-children:before{content:"";position:absolute;top:20px;left:calc(var(--tree-edge, 0px) + 6%);right:calc(var(--tree-edge, 0px) + 6%);height:1px;background:rgba(203,169,76,.46)}.family-tree-children>li{position:relative;display:flex;justify-content:center;width:max-content;min-width:max-content}.family-tree-children>li:before{content:"";position:absolute;top:-22px;left:50%;height:22px;width:1px;background:rgba(203,169,76,.46)}.family-tree-branch>.family-tree-children:after{content:"";position:absolute;top:0;left:50%;height:20px;width:1px;background:rgba(203,169,76,.46)}.family-tree-loading,.family-tree-empty{min-width:420px;padding:80px 40px;text-align:center;color:#93a9b7}.captive-command-buttons{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:1050px){.family-tree-toolbar{grid-template-columns:1fr}.family-tree-modes,.family-tree-zoom-controls{justify-content:flex-start}.family-tree-modal{width:98vw;height:96vh}.family-tree-person{min-width:158px;max-width:210px}.family-tree-children{gap:14px}}


/* α v0.18k8 world-map density control */
.settlement-npc-count {
  position: absolute;
  left: calc(50% + 30px);
  top: 7px;
  min-width: 42px;
  padding: 3px 7px;
  border: 1px solid rgba(126, 198, 220, 0.72);
  border-radius: 999px;
  background: rgba(3, 18, 29, 0.94);
  color: #d8edf4;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
  box-shadow: 0 2px 7px rgba(0,0,0,.7);
  pointer-events: none;
}
.traveler-cluster {
  position: absolute;
  z-index: 9;
  transform: scale(var(--marker-scale, 1)) translate(-50%, -50%);
  transform-origin: 0 0;
  min-width: 62px;
  height: 34px;
  padding: 0 9px;
  border: 2px solid #b8dce8;
  border-radius: 17px;
  background: rgba(8, 43, 62, .96);
  color: #f0fbff;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,.72);
}
.traveler-cluster:hover { border-color: #f0c85e; color: #ffe9a7; }
.travelling-npc-marker { border-color: #9edbe8; background: #11536a; }
.important-npc-marker { border-color: #f0c85e; background: #5e4512; }
.map-cluster-popover {
  position: absolute;
  z-index: 80;
  width: min(290px, calc(100% - 16px));
  max-height: 250px;
  overflow: auto;
  padding: 10px;
  border: 1px solid #52758c;
  border-radius: 9px;
  background: rgba(6, 20, 31, .98);
  box-shadow: 0 10px 26px rgba(0,0,0,.75);
  color: #dceaf2;
}
.map-cluster-title { color: #f0d47c; font-weight: 900; font-size: 13px; }
.map-cluster-route { color: #87a7ba; font-size: 10px; margin: 3px 0 7px; }
.map-cluster-person { padding: 5px 0; border-top: 1px solid #21394a; font-size: 12px; font-weight: 700; }
.map-cluster-person small { display: block; color: #7f99aa; font-size: 10px; font-weight: 500; margin-top: 1px; }
.map-cluster-more { padding-top: 6px; color: #8da4b3; font-size: 10px; }

.divine-retreat-showcase{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0}.divine-retreat-showcase figure{margin:0;border:1px solid rgba(102,153,187,.35);border-radius:10px;overflow:hidden;background:rgba(7,27,42,.76)}.divine-retreat-showcase img{display:block;width:100%;height:150px;object-fit:cover}.divine-retreat-showcase figcaption{padding:8px 10px;font-size:12px;color:#dce8f1}

@media(max-width:800px){.family-tree-preview-head{align-items:stretch;flex-direction:column}.family-tree-preview-head button{width:100%}.family-tree-preview{max-height:420px}.family-tree-modal{width:100vw;height:100vh;border-radius:0}.family-tree-overlay{padding:0}.family-tree-help{font-size:10px}.family-tree-person{min-width:150px;max-width:188px}}

/* α v0.18k9h SKY REALM / DIVINE FLEET / ADMIN EVENTS */
.map-viewport{position:relative;isolation:isolate}.sky-atmosphere{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden;opacity:.72;mix-blend-mode:screen;background:radial-gradient(circle at 50% 24%,rgba(150,224,255,.18),transparent 35%),linear-gradient(180deg,rgba(88,162,216,.07),transparent 58%)}.sky-atmosphere.hidden{display:none}.sky-atmosphere:before,.sky-atmosphere:after,.sky-atmosphere i{content:"";position:absolute;inset:-30%;pointer-events:none}.sky-atmosphere:before{background:repeating-linear-gradient(112deg,transparent 0 11%,rgba(149,227,255,.10) 11.5% 12%,transparent 12.5% 22%);animation:skyRays 14s linear infinite}.sky-atmosphere:after{background:radial-gradient(circle at 30% 35%,rgba(227,249,255,.18) 0 2px,transparent 3px),radial-gradient(circle at 68% 52%,rgba(201,236,255,.17) 0 1px,transparent 2px);background-size:90px 90px,64px 64px;animation:skyDust 18s linear infinite}.sky-atmosphere i:nth-child(1){background:conic-gradient(from 20deg at 50% 50%,transparent,rgba(103,223,255,.08),transparent 28%,rgba(197,137,255,.07),transparent 55%);animation:skyHalo 22s linear infinite}.sky-atmosphere i:nth-child(2){inset:auto -20% -18%;height:48%;background:radial-gradient(ellipse at center,rgba(238,248,255,.22),rgba(121,180,224,.10) 42%,transparent 72%);filter:blur(10px);animation:skyCloud 11s ease-in-out infinite alternate}.sky-atmosphere i:nth-child(3){opacity:.1;background:linear-gradient(90deg,transparent 45%,#fff 49%,transparent 52%);animation:skySweep 9s ease-in-out infinite}.sky-atmosphere.event-tempest{opacity:.9;background:radial-gradient(circle at 50% 20%,rgba(151,202,255,.22),transparent 35%),linear-gradient(180deg,rgba(52,83,123,.30),rgba(36,51,82,.12))}.sky-atmosphere.event-tempest i:nth-child(3){opacity:.65;background:linear-gradient(105deg,transparent 47%,rgba(234,250,255,.95) 48%,rgba(93,167,255,.8) 49%,transparent 50%);animation:skyLightning 3.7s steps(1) infinite}.sky-atmosphere.event-aurora:before{background:repeating-linear-gradient(108deg,transparent 0 10%,rgba(126,255,226,.10) 11% 13%,transparent 14% 23%,rgba(186,133,255,.08) 24% 26%,transparent 27% 35%)}.sky-atmosphere.event-conclave i:nth-child(1){background:repeating-radial-gradient(circle at 50% 45%,transparent 0 8%,rgba(245,215,120,.12) 8.5% 9%,transparent 9.5% 16%);animation:skyConclave 8s ease-in-out infinite}.sky-atmosphere.event-review:after{background:radial-gradient(circle,rgba(255,229,135,.55) 0 1px,transparent 2px);background-size:54px 54px;animation:skyDust 6s linear infinite}.sky-atmosphere.event-gate i:nth-child(1){background:repeating-radial-gradient(circle at 50% 50%,transparent 0 9%,rgba(108,220,255,.14) 9.5% 10%,transparent 10.5% 18%);animation:skyGate 4.5s ease-in-out infinite}
@keyframes skyRays{to{transform:translate3d(12%,8%,0)}}@keyframes skyDust{to{transform:translate3d(-90px,90px,0)}}@keyframes skyHalo{to{transform:rotate(360deg)}}@keyframes skyCloud{from{transform:translateX(-3%) scale(1)}to{transform:translateX(4%) scale(1.08)}}@keyframes skySweep{0%,70%{transform:translateX(-100%)}100%{transform:translateX(120%)}}@keyframes skyLightning{0%,86%,100%{opacity:0}87%{opacity:1}88%{opacity:.1}89%{opacity:.8}91%{opacity:0}}@keyframes skyConclave{50%{transform:scale(1.12);opacity:.8}}@keyframes skyGate{50%{transform:scale(.82) rotate(8deg);opacity:1}}
body.sky-realm-active .map-panel{box-shadow:inset 0 0 0 1px rgba(121,209,255,.22),0 0 28px rgba(70,151,215,.09)}#skyBgmToggle.active{border-color:#7fd3f1;color:#c9f1ff;background:linear-gradient(180deg,#174765,#0d2b3e);box-shadow:0 0 14px rgba(77,190,236,.16)}
.sky-event-cinematic{position:fixed;inset:0;z-index:990;display:grid;place-items:center;pointer-events:none;background:radial-gradient(circle,rgba(13,49,75,.18),rgba(0,5,11,.48));opacity:0;transition:opacity .5s}.sky-event-cinematic.hidden{display:none}.sky-event-cinematic.show{opacity:1}.sky-event-cinematic-inner{width:min(620px,88vw);padding:24px 30px;text-align:center;border:1px solid rgba(205,181,103,.72);border-radius:16px;background:linear-gradient(180deg,rgba(9,32,48,.94),rgba(4,14,24,.96));box-shadow:0 18px 90px #000,0 0 60px rgba(91,184,230,.16);transform:translateY(16px) scale(.96);transition:transform .55s}.sky-event-cinematic.show .sky-event-cinematic-inner{transform:none}.sky-event-cinematic-inner>span{display:block;font-size:42px;color:#f1d778;text-shadow:0 0 22px rgba(241,215,120,.55)}.sky-event-cinematic-inner small{display:block;margin-top:6px;letter-spacing:.28em;color:#7abbd9}.sky-event-cinematic-inner b{display:block;margin:8px 0 5px;font-size:25px;color:#f0d783}.sky-event-cinematic-inner p{margin:0;color:#c7d9e5;line-height:1.65}.sky-event-cinematic-inner em{display:block;margin-top:10px;color:#84a8bd;font-style:normal}.sky-event-cinematic.event-tempest .sky-event-cinematic-inner{box-shadow:0 18px 90px #000,0 0 70px rgba(90,147,255,.3)}.sky-event-cinematic.event-conclave .sky-event-cinematic-inner{border-color:#d1ad45;box-shadow:0 18px 90px #000,0 0 70px rgba(209,173,69,.2)}
.divine-fleet-card{border-color:rgba(120,190,220,.42)!important;background:radial-gradient(circle at 90% 0,rgba(72,143,190,.12),transparent 35%),#091722!important}.divine-fleet-console{display:grid;gap:12px}.divine-fleet-hero{display:grid;grid-template-columns:minmax(220px,42%) 1fr;gap:14px;align-items:center;border:1px solid #315770;border-radius:10px;overflow:hidden;background:#071622}.divine-fleet-hero img{width:100%;height:150px;object-fit:cover}.divine-fleet-hero>div{padding:10px 14px 10px 0;display:grid;gap:4px}.divine-fleet-hero small{letter-spacing:.17em;color:#78b8d5}.divine-fleet-hero h4{margin:0;color:#f0d77f;font-size:20px}.divine-fleet-hero b{color:#d8eef6}.divine-fleet-hero span{color:#8ea9b9}.divine-fleet-meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.divine-fleet-meters label{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:1px solid #264459;border-radius:8px;padding:8px;background:#071722;color:#84a7b9}.divine-fleet-meters meter{width:100%;accent-color:#79c5df}.divine-fleet-meters b{color:#d7eaf2}.divine-event-badges{display:flex;gap:6px;flex-wrap:wrap}.divine-event-badge{padding:5px 9px;border:1px solid #38546a;border-radius:999px;background:#0b2030;color:#a8cfdf;font-size:11px}.divine-event-badge.event-tempest{border-color:#536eaf;color:#b7caff}.divine-event-badge.event-conclave,.divine-event-badge.event-review{border-color:#8e7638;color:#edd481}.divine-event-badge.event-gate{border-color:#397a97;color:#9ee6ff}.divine-fleet-marker{z-index:16!important;min-width:48px!important;border-color:#86d9f4!important;background:linear-gradient(180deg,#164c69,#082a3f)!important;color:#d8f6ff!important;box-shadow:0 0 18px rgba(76,194,239,.5),0 4px 10px rgba(0,0,0,.65)!important}.divine-fleet-marker:after{content:"";position:absolute;inset:-7px;border:1px solid rgba(121,218,251,.35);border-radius:50%;animation:divineFleetPulse 2.3s ease-out infinite}@keyframes divineFleetPulse{0%{transform:scale(.75);opacity:.8}100%{transform:scale(1.45);opacity:0}}
.divine-admin-card{border-color:rgba(201,171,81,.42)!important;background:radial-gradient(circle at 100% 0,rgba(116,186,225,.10),transparent 40%),#081722!important}.divine-admin-event-row{border-color:#344f63}.divine-admin-event-row b{color:#e7ca72}
@media(max-width:760px){.divine-fleet-hero{grid-template-columns:1fr}.divine-fleet-hero>div{padding:10px 12px}.divine-fleet-meters{grid-template-columns:1fr}.sky-event-cinematic-inner{padding:20px 16px}.sky-event-cinematic-inner b{font-size:20px}}
.sky-atmosphere[data-intensity="1"]{opacity:.46}.sky-atmosphere[data-intensity="2"]{opacity:.58}.sky-atmosphere[data-intensity="3"]{opacity:.72}.sky-atmosphere[data-intensity="4"]{opacity:.84}.sky-atmosphere[data-intensity="5"]{opacity:.96}

/* α v0.18k9j: supplied divine sky battleship art as the world-map unit marker */
.army-marker.divine-fleet-marker {
  width: 86px;
  height: 62px;
  padding: 0;
  overflow: visible;
  border: 2px solid rgba(255, 218, 103, .95);
  border-radius: 11px;
  background: rgba(3, 29, 61, .96);
  box-shadow: 0 0 0 2px rgba(89, 188, 255, .2), 0 5px 16px #000, 0 0 18px rgba(75, 171, 255, .55);
}
.divine-fleet-map-unit-image {
  width: 82px;
  height: 58px;
  display: block;
  object-fit: cover;
  border-radius: 8px;
  pointer-events: none;
  user-select: none;
}
.divine-fleet-map-unit-count {
  position: absolute;
  right: -8px;
  bottom: -8px;
  min-width: 28px;
  height: 22px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border: 1px solid #f2cf63;
  border-radius: 999px;
  background: #081b31;
  color: #ffe38a;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 2px 8px #000;
  pointer-events: none;
}

/* v0.18k9l — free trade routes / treaty gate / warehouse logistics */
.merchant-route-card.route-blocked{border-color:#6b3434;background:rgba(82,25,25,.16)}
.merchant-route-card.route-blocked .merchant-route-head span{color:#ef9b9b}
.merchant-free-route{display:grid;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 140px auto;gap:8px;align-items:end;margin-top:12px;padding:10px;border:1px solid #3a5366;border-radius:8px;background:#081924}
.merchant-free-route label,.merchant-route-cargo label{margin:0}
.merchant-warehouse-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:12px;margin:10px 0}
.merchant-warehouse-grid>div,.merchant-route-cargo{border:1px solid #263f51;border-radius:8px;background:#07141e;padding:10px}
.merchant-module h6{margin:0 0 8px;color:#c6d8e4;font-size:13px}
.merchant-route-cargo{margin:10px 0}
.merchant-route-cargo .form-three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.merchant-free-route{grid-template-columns:repeat(2,minmax(0,1fr))}.merchant-warehouse-grid{grid-template-columns:1fr}.merchant-route-cargo .form-three{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.merchant-free-route,.merchant-route-cargo .form-three{grid-template-columns:1fr}}

/* v0.18k9m — WORLD ROUTE Phase 1 */
.settlement-node.relay-node{max-width:108px;opacity:.92}
.settlement-node.relay-node img{width:25px;height:25px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.9)) saturate(.78)}
.settlement-node.relay-node .settlement-label{max-width:108px;padding:2px 5px;border-color:#587887;background:rgba(5,22,28,.93);font-size:10px;color:#cde7df}
.relay-type-badge{position:absolute;left:50%;top:-10px;transform:translateX(-50%);padding:1px 4px;border:1px solid rgba(116,202,174,.65);border-radius:999px;background:rgba(4,28,27,.94);color:#9ce8ce;font-size:8px;font-weight:900;white-space:nowrap;pointer-events:none}
.map-layer.relays-off .relay-node{display:none!important}
.map-layer.relays-compact .relay-node:not(.selected) .settlement-label,.map-layer.relays-compact .relay-node:not(.selected) .relay-type-badge{display:none}
.relay-point-card{margin:10px 0;padding:12px;border:1px solid rgba(95,192,163,.45);border-radius:8px;background:linear-gradient(135deg,rgba(8,47,44,.56),rgba(7,28,40,.72));box-shadow:inset 0 0 18px rgba(64,189,157,.05)}
.relay-point-card p{margin:7px 0 10px;color:#c1d6d3;font-size:12px;line-height:1.65}
.relay-rest-status{display:flex;justify-content:space-between;gap:12px;margin:8px 0;padding:8px 10px;border:1px solid rgba(120,178,170,.25);border-radius:6px;background:rgba(2,15,19,.5)}
.relay-rest-status b{color:#9ce8ce}.relay-rest-status span{color:#d5e5e3;font-size:12px}
/* v0.18k9n WORLD ROUTE Phase 2 — LOGISTICS */
.relay-logistics-card{margin-top:12px;padding:12px;border:1px solid rgba(217,171,65,.42);border-radius:10px;background:linear-gradient(180deg,rgba(10,31,46,.96),rgba(7,23,35,.96));box-shadow:inset 0 0 22px rgba(64,144,172,.08)}
.relay-logistics-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0}.relay-logistics-kpis>div{padding:8px 10px;border:1px solid rgba(83,130,157,.28);border-radius:7px;background:rgba(11,39,56,.55)}.relay-logistics-kpis small,.relay-logistics-columns small{display:block;color:#8fb0c3;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.relay-logistics-kpis b{color:#f4d478}
.relay-logistics-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px}.relay-logistics-columns>div{padding:9px;border:1px solid rgba(83,130,157,.22);border-radius:7px}.relay-stock-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.relay-stock-list span{padding:4px 7px;border-radius:999px;background:rgba(31,76,98,.52);font-size:11px}.relay-stock-list b{color:#f4d478}.relay-policy{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end;margin-top:9px}.relay-policy label{margin:0}.merchant-free-route.phase2{grid-template-columns:repeat(4,minmax(150px,1fr))}.merchant-route-card .merchant-route-head b{max-width:100%;white-space:normal;line-height:1.45}
@media(max-width:900px){.relay-logistics-kpis,.relay-logistics-columns{grid-template-columns:1fr}.merchant-free-route.phase2{grid-template-columns:1fr 1fr}.relay-policy{grid-template-columns:1fr}}

/* v0.18k9q LIVING SETTLEMENT */
.living-settlement-card{margin:12px 0;padding:12px;border:1px solid rgba(178,141,73,.42);border-radius:10px;background:linear-gradient(180deg,rgba(22,40,43,.88),rgba(11,25,31,.92));box-shadow:inset 0 0 24px rgba(154,122,55,.08)}
.living-settlement-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}
.living-settlement-kpis>div{padding:8px 10px;border:1px solid rgba(140,170,174,.2);border-radius:8px;background:rgba(5,18,24,.5)}
.living-settlement-kpis small{display:block;opacity:.72;font-size:11px}.living-settlement-kpis b{display:block;margin-top:2px;font-size:15px}
.settlement-node.relay-node[data-city^="camp_"]{filter:drop-shadow(0 0 8px rgba(255,183,77,.65))}.settlement-node.relay-node[data-city^="camp_"] .relay-type-badge{background:rgba(113,62,24,.92);border-color:rgba(255,190,92,.72)}
@media(max-width:900px){.living-settlement-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* α v0.18k9s — DIVINE INTERVENTION */
.divine-intervention-card{border-color:rgba(220,184,72,.46)!important;background:radial-gradient(circle at 95% 5%,rgba(204,160,45,.10),transparent 34%),#0a1721!important}.divine-intervention-create{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.divine-intervention-create label:last-of-type{grid-column:1/-1}.divine-intervention-create .wide{grid-column:1/-1}.divine-intervention-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border:1px solid #334b5d;border-left:4px solid #9a7a2d;border-radius:9px;padding:11px 12px;margin:8px 0;background:#081722}.divine-intervention-row.stage-ceasefire{border-left-color:#6586a6}.divine-intervention-row.stage-approved{border-left-color:#d1a63d}.divine-intervention-row.stage-sanction{border-left-color:#cf5656;background:linear-gradient(90deg,rgba(125,28,34,.16),#081722 42%)}.divine-intervention-row b{color:#efd57d}.divine-intervention-row small{display:block;margin-top:3px;color:#8fa8b8}.divine-intervention-row p{margin:6px 0 0;color:#b6c6cf}.divine-intervention-row .button-row{justify-content:flex-end;min-width:220px}
@media(max-width:760px){.divine-intervention-create{grid-template-columns:1fr}.divine-intervention-create label:last-of-type,.divine-intervention-create .wide{grid-column:auto}.divine-intervention-row{grid-template-columns:1fr}.divine-intervention-row .button-row{justify-content:flex-start;min-width:0}}

/* α v0.18k9v — Divine world-flight / sanctioned-target command */
.divine-sanction-target-list{display:grid;gap:8px;border:1px solid #4e3b35;border-radius:10px;padding:10px;background:linear-gradient(180deg,rgba(86,34,39,.16),rgba(8,23,34,.96));}
.divine-sanction-head{display:flex;justify-content:space-between;gap:12px;align-items:end;border-bottom:1px solid rgba(207,86,86,.28);padding-bottom:8px}.divine-sanction-head b{color:#f0c46e}.divine-sanction-head small{color:#93a9b8;text-align:right}
.divine-sanction-army{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid #4a3a3d;border-left:4px solid #b94b50;border-radius:8px;padding:9px 10px;background:#091722}.divine-sanction-army b{color:#f0d47b}.divine-sanction-army small{display:block;margin-top:3px;color:#9db0bd;line-height:1.45}.divine-sanction-army .button-row{justify-content:flex-end;min-width:190px}
@media(max-width:760px){.divine-sanction-head{display:grid;align-items:start}.divine-sanction-head small{text-align:left}.divine-sanction-army{grid-template-columns:1fr}.divine-sanction-army .button-row{justify-content:flex-start;min-width:0}}
.divine-air-army-marker{z-index:15!important;border-color:#d9bb62!important;background:linear-gradient(180deg,#5c481c,#2a210d)!important;color:#fff0a6!important;box-shadow:0 0 14px rgba(224,190,85,.38),0 4px 10px rgba(0,0,0,.6)!important}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a — UI OVERHAUL PHASE 1                            */
/* SCC4LW parity shell. Scoped to .ui-overhaul-v1 for rollback safety.       */
/* ========================================================================== */
:root{
  --scc19-bg0:#040910;
  --scc19-bg1:#07111a;
  --scc19-bg2:#0b1723;
  --scc19-bg3:#102033;
  --scc19-line:#263b4d;
  --scc19-line2:#38536a;
  --scc19-gold:#d2ad4b;
  --scc19-gold2:#f0d47c;
  --scc19-text:#dbe7ef;
  --scc19-muted:#7891a5;
  --scc19-good:#66cc91;
  --scc19-warn:#e1b85d;
  --scc19-bad:#df7075;
  --scc19-header-h:72px;
  --scc19-kpi-h:48px;
  --scc19-dock-h:72px;
  --scc19-left-w:244px;
  --scc19-right-w:304px;
  --scc19-gap:8px;
}
.ui-overhaul-v1{
  min-height:100vh;
  background:radial-gradient(circle at 50% -18%,#17263a 0,#09131d 38%,#040910 100%);
  color:var(--scc19-text);
  overflow:hidden;
}
.ui-overhaul-v1 .topbar{
  position:relative;
  top:auto;
  z-index:70;
  height:var(--scc19-header-h);
  padding:7px 12px;
  border-top:1px solid rgba(210,173,75,.34);
  border-bottom:1px solid rgba(210,173,75,.38);
  background:linear-gradient(180deg,#111e2c 0,#09141f 100%);
  box-shadow:0 6px 18px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.025);
}
.ui-overhaul-v1 .brand{gap:10px;min-width:0}
.ui-overhaul-v1 .crest{width:42px;height:42px;font-size:22px;border-color:#806927;box-shadow:inset 0 0 12px rgba(214,180,79,.08)}
.ui-overhaul-v1 .brand .eyebrow{font-size:8px;letter-spacing:.2em;color:#647d90}
.ui-overhaul-v1 .brand h1{font-size:18px;line-height:1.12;letter-spacing:.08em;white-space:nowrap}
.ui-overhaul-v1 .brand h1 span{font-size:9px;letter-spacing:.05em}
.ui-overhaul-v1 .world-status{gap:8px;min-width:0}
.ui-overhaul-v1 .world-status>div{min-width:78px;padding:4px 7px;border-left:1px solid rgba(69,94,116,.28)}
.ui-overhaul-v1 .world-status>div:first-child{min-width:185px}
.ui-overhaul-v1 .world-status small{font-size:8px;color:#647e91;letter-spacing:.12em}
.ui-overhaul-v1 .world-status strong{margin-top:2px;font-size:11px;white-space:nowrap}
.ui-overhaul-v1 .language-switch{display:flex;gap:2px;padding:0!important;border:0!important;min-width:0!important}
.ui-overhaul-v1 .language-switch button,.ui-overhaul-v1 .admin-button,.ui-overhaul-v1 #logoutBtn{padding:6px 9px;font-size:10px;border-radius:5px}

.ui-overhaul-v1 .ui-kpi-strip{
  height:var(--scc19-kpi-h);
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:5px;
  padding:5px 8px;
  border-bottom:1px solid rgba(210,173,75,.25);
  background:linear-gradient(180deg,#08131d,#060e16);
  box-shadow:0 5px 13px rgba(0,0,0,.18);
  position:relative;
  z-index:30;
}
.ui-overhaul-v1 .ui-kpi{
  min-width:0;
  padding:4px 8px 5px;
  border:1px solid #263b4e;
  border-radius:5px;
  background:linear-gradient(180deg,#0d1b28,#091520);
  box-shadow:inset 0 1px rgba(255,255,255,.018);
  overflow:hidden;
}
.ui-overhaul-v1 .ui-kpi small{display:block;font-size:7px;line-height:1.1;letter-spacing:.13em;color:#647f93;white-space:nowrap}
.ui-overhaul-v1 .ui-kpi b{display:flex;align-items:baseline;gap:6px;margin-top:3px;min-width:0;font-size:10px;font-weight:600;white-space:nowrap;color:#9db2c1}
.ui-overhaul-v1 .ui-kpi b span{overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .ui-kpi em{margin-left:auto;font-size:13px;font-style:normal;color:#e0eaf0;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .ui-kpi.good{border-color:rgba(78,158,110,.52)} .ui-overhaul-v1 .ui-kpi.good em{color:#78d49d}
.ui-overhaul-v1 .ui-kpi.warn{border-color:rgba(187,139,48,.58);background:linear-gradient(180deg,#211b0d,#0d1720)} .ui-overhaul-v1 .ui-kpi.warn em{color:#edc867}
.ui-overhaul-v1 .ui-kpi.bad{border-color:rgba(174,66,72,.62);background:linear-gradient(180deg,#251215,#0e141c)} .ui-overhaul-v1 .ui-kpi.bad em{color:#f08b90}
.ui-overhaul-v1 .ui-kpi.gold{border-color:rgba(210,173,75,.62)} .ui-overhaul-v1 .ui-kpi.gold em{color:var(--scc19-gold2)}

.ui-overhaul-v1 .game-grid{
  grid-template-columns:var(--scc19-left-w) minmax(0,1fr) var(--scc19-right-w);
  gap:var(--scc19-gap);
  padding:6px 8px;
  height:calc(100vh - var(--scc19-header-h) - var(--scc19-kpi-h) - var(--scc19-dock-h));
  min-height:0;
  overflow:hidden;
}
.ui-overhaul-v1 .side{gap:7px;min-height:0}
.ui-overhaul-v1 .left-side{overflow-y:auto;overflow-x:hidden;padding-right:1px;scrollbar-width:thin}
.ui-overhaul-v1 .right-side{display:flex;overflow:hidden;min-width:0}
.ui-overhaul-v1 .panel,.ui-overhaul-v1 .map-panel{
  border:1px solid rgba(88,118,142,.46);
  border-radius:6px;
  background:linear-gradient(180deg,rgba(13,25,38,.985),rgba(7,16,25,.99));
  box-shadow:inset 0 1px rgba(255,255,255,.02),0 3px 10px rgba(0,0,0,.14);
}
.ui-overhaul-v1 .panel{padding:9px}
.ui-overhaul-v1 .panel-title{padding-bottom:6px;margin-bottom:7px;border-color:#203548}
.ui-overhaul-v1 .panel-title span{font-size:7px;letter-spacing:.16em;color:#5f7b90}
.ui-overhaul-v1 .panel-title h2{margin:1px 0;font-size:14px;color:#d5e1e9}
.ui-overhaul-v1 .player-panel{flex:0 0 auto;border-color:rgba(163,133,54,.42)}
.ui-overhaul-v1 .service-panel{flex:0 0 auto}
.ui-overhaul-v1 .city-people-panel{flex:1 1 auto;min-height:150px}
.ui-overhaul-v1 .roadmap-panel{flex:0 0 auto;max-height:118px;overflow:hidden;opacity:.78}
.ui-overhaul-v1 .roadmap-panel p{font-size:9px;margin:5px 0}.ui-overhaul-v1 .rank-road{font-size:9px;line-height:1.5}
.ui-overhaul-v1 .local-person{padding:7px;margin:5px 1px;gap:6px;grid-template-columns:32px minmax(0,1fr)}
.ui-overhaul-v1 .local-person .person-avatar{width:30px;height:30px;flex-basis:30px}

.ui-overhaul-v1 .map-panel{min-width:0;min-height:0;border-color:rgba(190,155,67,.48);box-shadow:inset 0 0 0 1px rgba(210,173,75,.035),0 5px 18px rgba(0,0,0,.2)}
.ui-overhaul-v1 .map-header{height:52px;min-height:52px;padding:6px 9px;background:linear-gradient(180deg,#101e2c,#0a151f);border-color:#23384a;gap:8px}
.ui-overhaul-v1 .map-header .eyebrow{font-size:8px}.ui-overhaul-v1 .map-header h2{font-size:17px;margin:1px 0}
.ui-overhaul-v1 .map-controls{gap:3px;min-width:0;overflow-x:auto;scrollbar-width:none}.ui-overhaul-v1 .map-controls::-webkit-scrollbar{display:none}
.ui-overhaul-v1 .map-controls button{flex:0 0 auto;padding:5px 7px;font-size:9px;border-radius:4px}
.ui-overhaul-v1 .ui-map-mode-bar{
  min-height:36px;
  height:36px;
  flex:0 0 36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:3px 8px;
  border-bottom:1px solid #24384a;
  background:linear-gradient(180deg,#091722,#07121b);
}
.ui-overhaul-v1 .ui-map-mode-buttons{display:flex;gap:3px;min-width:0;overflow-x:auto;scrollbar-width:none}.ui-overhaul-v1 .ui-map-mode-buttons::-webkit-scrollbar{display:none}
.ui-overhaul-v1 .ui-map-mode-bar button{min-width:58px;padding:5px 12px;border-radius:4px;font-size:10px;white-space:nowrap;background:#0e2030;border-color:#2d475d}
.ui-overhaul-v1 .ui-map-mode-bar button.active{border-color:#9f7f2d;color:#ffe09a;background:linear-gradient(180deg,#362a0d,#17180f);box-shadow:inset 0 0 10px rgba(216,180,78,.08)}
.ui-overhaul-v1 #mapModeDescription{margin-left:auto;color:#698297;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .map-viewport{height:auto;flex:1;min-height:0;background:#041623}
.ui-overhaul-v1 .map-footer{min-height:24px;height:24px;padding:4px 9px;font-size:8px;opacity:.72}

/* Phase-1 map modes are layer emphasis only: no API, route, or game-state mutation. */
.ui-overhaul-v1[data-map-mode="politics"] .army-marker,
.ui-overhaul-v1[data-map-mode="politics"] .travelling-npc-marker,
.ui-overhaul-v1[data-map-mode="politics"] .traveler-cluster{opacity:.38;filter:saturate(.65)}
.ui-overhaul-v1[data-map-mode="politics"] .settlement-node{box-shadow:0 0 0 2px rgba(219,183,77,.11),0 5px 12px rgba(0,0,0,.35)}
.ui-overhaul-v1[data-map-mode="military"] .settlement-node{opacity:.72}
.ui-overhaul-v1[data-map-mode="military"] .army-marker{z-index:25!important;transform:scale(calc(var(--marker-scale,1) * 1.12)) translate(-50%,-50%);filter:drop-shadow(0 0 7px rgba(245,108,93,.35))}
.ui-overhaul-v1[data-map-mode="military"] .player-marker:not(.me),
.ui-overhaul-v1[data-map-mode="military"] .travelling-npc-marker,.ui-overhaul-v1[data-map-mode="military"] .traveler-cluster{opacity:.3}
.ui-overhaul-v1[data-map-mode="economy"] .army-marker,.ui-overhaul-v1[data-map-mode="economy"] .player-marker,.ui-overhaul-v1[data-map-mode="economy"] .travelling-npc-marker{opacity:.28}
.ui-overhaul-v1[data-map-mode="economy"] .road-line,.ui-overhaul-v1[data-map-mode="economy"] .sea-line{filter:brightness(1.45) saturate(1.25);opacity:.95}
.ui-overhaul-v1[data-map-mode="economy"] .settlement-node.relay-node{filter:brightness(1.35);z-index:20}
.ui-overhaul-v1[data-map-mode="people"] .army-marker{opacity:.28}
.ui-overhaul-v1[data-map-mode="people"] .settlement-node{opacity:.58}
.ui-overhaul-v1[data-map-mode="people"] .player-marker,.ui-overhaul-v1[data-map-mode="people"] .travelling-npc-marker,.ui-overhaul-v1[data-map-mode="people"] .traveler-cluster{z-index:28!important;filter:brightness(1.18)}

.ui-overhaul-v1 .right-side .settlement-panel{order:1;flex:1 1 44%;min-height:155px;overflow:hidden}
.ui-overhaul-v1 .right-side .event-panel{order:2;flex:1 1 28%;min-height:135px;overflow:hidden;border-color:rgba(151,119,50,.35)}
.ui-overhaul-v1 .right-side .chat-panel{order:3;flex:0 0 205px;min-height:170px}
.ui-overhaul-v1 #settlementDetail,.ui-overhaul-v1 .event-log,.ui-overhaul-v1 .chat-log{scrollbar-width:thin}
.ui-overhaul-v1 .event-log{max-height:none;height:calc(100% - 35px);overflow:auto}
.ui-overhaul-v1 .chat-log{min-height:0;max-height:none;flex:1 1 auto}
.ui-overhaul-v1 .chat-panel{display:flex;flex-direction:column}.ui-overhaul-v1 .chat-input-row{flex:0 0 auto}

.ui-overhaul-v1 .command-dock{
  height:var(--scc19-dock-h);
  gap:4px;
  padding:5px 7px;
  justify-content:center;
  overflow-x:hidden;
  border-top:1px solid rgba(210,173,75,.48);
  background:linear-gradient(180deg,rgba(11,21,32,.985),rgba(5,11,17,.995));
  box-shadow:0 -7px 22px rgba(0,0,0,.3);
}
.ui-overhaul-v1 .command-dock :is(button, a.restoration-dock-button){
  width:auto;
  min-width:0;
  max-width:172px;
  flex:1 1 0;
  grid-template-columns:28px minmax(0,1fr);
  padding:5px 6px;
  border-radius:5px;
  border-color:#2a4255;
  background:linear-gradient(180deg,#102237,#091522);
  overflow:hidden;
}
.ui-overhaul-v1 .command-dock :is(button, a.restoration-dock-button):hover,.ui-overhaul-v1 .command-dock :is(button, a.restoration-dock-button).active{border-color:#9b7c31;background:linear-gradient(180deg,#302711,#121820);box-shadow:inset 0 0 14px rgba(211,174,72,.08)}
.ui-overhaul-v1 .command-dock span{font-size:19px;color:#e7c760}.ui-overhaul-v1 .command-dock b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-overhaul-v1 .command-dock small{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .notification-badge{min-width:15px;height:15px;font-size:8px}

.ui-overhaul-v1 ::-webkit-scrollbar{width:7px;height:7px}.ui-overhaul-v1 ::-webkit-scrollbar-track{background:#07111a}.ui-overhaul-v1 ::-webkit-scrollbar-thumb{background:#294157;border-radius:99px}.ui-overhaul-v1 ::-webkit-scrollbar-thumb:hover{background:#3a5871}

@media(max-width:1599px){
  :root{--scc19-left-w:228px;--scc19-right-w:286px}
  .ui-overhaul-v1 .brand h1{font-size:16px}.ui-overhaul-v1 .world-status{gap:4px}.ui-overhaul-v1 .world-status>div{min-width:66px;padding-left:5px;padding-right:5px}.ui-overhaul-v1 .world-status>div:first-child{min-width:164px}
  .ui-overhaul-v1 .command-dock small{display:none}.ui-overhaul-v1 .command-dock b{font-size:9px}
}
@media(max-width:1366px){
  :root{--scc19-left-w:216px;--scc19-right-w:272px;--scc19-header-h:68px;--scc19-kpi-h:46px}
  .ui-overhaul-v1 .topbar{padding-left:8px;padding-right:8px}.ui-overhaul-v1 .crest{width:36px;height:36px;font-size:19px}.ui-overhaul-v1 .brand h1{font-size:14px}.ui-overhaul-v1 .brand .eyebrow{display:none}
  .ui-overhaul-v1 .world-status>div:first-child{min-width:150px}.ui-overhaul-v1 .world-status small{font-size:7px}.ui-overhaul-v1 .world-status strong{font-size:9px}.ui-overhaul-v1 .admin-button{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ui-overhaul-v1 .ui-kpi{padding-left:5px;padding-right:5px}.ui-overhaul-v1 .ui-kpi b span{display:none}.ui-overhaul-v1 .ui-kpi em{margin-left:0;font-size:12px}
  .ui-overhaul-v1 .map-controls button{font-size:8px;padding:5px}.ui-overhaul-v1 #mapModeDescription{display:none}
}
@media(max-height:820px){
  :root{--scc19-header-h:64px;--scc19-kpi-h:42px;--scc19-dock-h:64px}
  .ui-overhaul-v1 .topbar{padding-top:4px;padding-bottom:4px}.ui-overhaul-v1 .ui-kpi-strip{padding-top:3px;padding-bottom:3px}.ui-overhaul-v1 .map-header{height:46px;min-height:46px}.ui-overhaul-v1 .ui-map-mode-bar{height:32px;min-height:32px;flex-basis:32px}.ui-overhaul-v1 .ui-map-mode-bar button{padding-top:4px;padding-bottom:4px}
  .ui-overhaul-v1 .right-side .chat-panel{flex-basis:170px}.ui-overhaul-v1 .roadmap-panel{display:none}
  .ui-overhaul-v1 .command-dock{padding-top:3px;padding-bottom:3px}
}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a1 — PHASE 1 HOTFIX + UI OVERHAUL PHASE 2          */
/* Character info hierarchy / command center / notifications / right tabs.    */
/* ========================================================================== */
.ui-overhaul-v1 .player-vitals{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:5px;
  margin:7px 0 5px;
}
.ui-overhaul-v1 .player-vitals>div{
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-rows:auto auto;
  column-gap:6px;
  align-items:end;
  padding:6px 7px;
  border:1px solid #263d50;
  border-radius:5px;
  background:linear-gradient(180deg,#0c1a27,#08141f);
}
.ui-overhaul-v1 .player-vitals small{grid-column:1/-1;font-size:7px;letter-spacing:.1em;color:#678197;text-transform:uppercase}
.ui-overhaul-v1 .player-vitals b{font-size:14px;line-height:1.1;color:#e5edf2;font-weight:800}
.ui-overhaul-v1 .player-vitals span{max-width:72px;font-size:8px;line-height:1.15;color:#8ca2b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right}
.ui-overhaul-v1 .player-resources{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:5px;
  margin:0 0 7px;
}
.ui-overhaul-v1 .player-resources>div{
  min-width:0;
  padding:6px 5px 7px;
  border:1px solid #25394c;
  border-radius:5px;
  background:#081520;
  text-align:center;
}
.ui-overhaul-v1 .player-resources small{display:block;font-size:7px;color:#658095;letter-spacing:.07em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .player-resources b{display:block;margin-top:2px;font-size:12px;color:#dce7ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .player-resources>div:first-child{border-color:rgba(184,147,51,.45);background:linear-gradient(180deg,#18180e,#09141d)}
.ui-overhaul-v1 .player-resources>div:first-child b{color:#f0d272}
.ui-overhaul-v1 .player-panel .character-abilities{margin-top:0}
.ui-overhaul-v1 .player-panel .loadout-summary{margin-top:7px}

.ui-overhaul-v1 .character-command-panel{flex:0 0 auto;border-color:rgba(85,126,155,.48)}
.ui-overhaul-v1 .character-command-state,
.ui-overhaul-v1 .character-command-context{
  padding:7px 8px;
  border:1px solid #293f52;
  border-radius:6px;
  background:linear-gradient(180deg,#0d1b28,#08141f);
  margin-bottom:6px;
}
.ui-overhaul-v1 .character-command-state small,
.ui-overhaul-v1 .character-command-context small{display:block;font-size:7px;letter-spacing:.13em;color:#638096}
.ui-overhaul-v1 .character-command-state b,
.ui-overhaul-v1 .character-command-context b{display:block;margin-top:2px;font-size:11px;color:#dfe9ef}
.ui-overhaul-v1 .character-command-state span,
.ui-overhaul-v1 .character-command-context span{display:block;margin-top:2px;font-size:8px;line-height:1.35;color:#839bac;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .character-command-state.gold{border-color:rgba(199,161,63,.5);background:linear-gradient(180deg,#211c0e,#0b171e)}
.ui-overhaul-v1 .character-command-state.gold b{color:#efd47a}
.ui-overhaul-v1 .character-command-state.bad{border-color:rgba(177,66,72,.55);background:linear-gradient(180deg,#211216,#0a151e)}
.ui-overhaul-v1 .character-command-state.bad b{color:#ef9296}
.ui-overhaul-v1 .character-command-state.good b{color:#80d6a2}
.ui-overhaul-v1 .mini-progress{height:4px;margin-top:6px;border-radius:99px;overflow:hidden;background:#051019}
.ui-overhaul-v1 .mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#9e7e2c,#e7c867)}
.ui-overhaul-v1 .character-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}
.ui-overhaul-v1 .character-command-grid button{
  position:relative;
  min-width:0;
  min-height:42px;
  display:grid;
  place-items:center;
  gap:1px;
  padding:4px 2px;
  border-radius:5px;
  border-color:#2b4356;
  background:linear-gradient(180deg,#102235,#091621);
}
.ui-overhaul-v1 .character-command-grid button:hover{border-color:#9a7d31;background:linear-gradient(180deg,#29230f,#0c1820)}
.ui-overhaul-v1 .character-command-grid span{font-size:13px;line-height:1;color:#e4c45c}
.ui-overhaul-v1 .character-command-grid b{max-width:100%;font-size:7px;line-height:1.1;color:#b9cad4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .character-command-grid em{position:absolute;right:2px;top:2px;min-width:13px;height:13px;padding:0 3px;display:grid;place-items:center;border-radius:99px;background:#9c3438;color:#fff;font-size:7px;font-style:normal}
.ui-overhaul-v1 .roadmap-panel{display:none}

.ui-overhaul-v1 .right-side{display:flex;flex-direction:column;gap:6px;overflow:hidden}
.ui-overhaul-v1 .ui-right-tabs{
  flex:0 0 42px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:4px;
  padding:4px;
  border:1px solid rgba(83,111,133,.48);
  border-radius:6px;
  background:linear-gradient(180deg,#0d1b29,#08141e);
}
.ui-overhaul-v1 .ui-right-tabs button{
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  padding:3px 5px;
  border-radius:4px;
  border-color:#263d50;
  background:#091722;
  color:#92a7b6;
}
.ui-overhaul-v1 .ui-right-tabs button span{font-size:10px;font-weight:800;white-space:nowrap}
.ui-overhaul-v1 .ui-right-tabs button small{font-size:6px;letter-spacing:.1em;color:#5f788b}
.ui-overhaul-v1 .ui-right-tabs button.active{border-color:#9a7c2d;background:linear-gradient(180deg,#2a230e,#0e181d);color:#f1d679;box-shadow:inset 0 0 10px rgba(213,175,73,.08)}
.ui-overhaul-v1 .ui-right-tabs button.active small{color:#9b874d}
.ui-overhaul-v1 .ui-right-tabs .notification-badge{display:inline-grid;vertical-align:middle;margin-left:2px}
.ui-overhaul-v1 .ui-right-tabs .notification-badge.hidden{display:none!important}
.ui-overhaul-v1 .right-tab-panel{display:none!important;order:initial!important;flex:1 1 auto!important;min-height:0!important;overflow:hidden!important}
.ui-overhaul-v1 .right-tab-panel.active{display:flex!important;flex-direction:column!important}
.ui-overhaul-v1 .right-tab-panel.settlement-panel.active{display:block!important;overflow:hidden!important}
.ui-overhaul-v1 .right-tab-panel #settlementDetail{height:calc(100% - 37px);overflow:auto}
.ui-overhaul-v1 .right-tab-panel.chat-panel .chat-log{flex:1 1 auto;height:auto}

.ui-overhaul-v1 .notification-panel-title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px}
.ui-overhaul-v1 .notification-panel-title>div{min-width:0}
.ui-overhaul-v1 #notificationOpenAll{padding:4px 6px;font-size:8px;white-space:nowrap;border-color:#665729;color:#d9bd65;background:#17180e}
.ui-overhaul-v1 .notification-center{flex:0 1 57%;min-height:130px;overflow:auto;padding-right:1px}
.ui-overhaul-v1 .notification-read-all{width:100%;margin-bottom:5px;padding:5px;font-size:8px;border-color:#38536a;background:#0d2030;color:#a9c0cf}
.ui-overhaul-v1 .notification-stack{display:grid;gap:5px}
.ui-overhaul-v1 .ui-notification{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 8px;border:1px solid #293f51;border-left:3px solid #47647b;border-radius:5px;background:#081520}
.ui-overhaul-v1 .ui-notification.unread{background:linear-gradient(90deg,rgba(54,72,102,.2),#081520 40%)}
.ui-overhaul-v1 .ui-notification.priority-high{border-left-color:#c69c38}.ui-overhaul-v1 .ui-notification.priority-urgent{border-left-color:#c34d52;background:linear-gradient(90deg,rgba(101,31,35,.22),#081520 42%)}
.ui-overhaul-v1 .ui-notification.priority-gold{border-left-color:#d2ad4b}
.ui-overhaul-v1 .ui-notification small{display:block;font-size:6px;letter-spacing:.08em;color:#647f92}
.ui-overhaul-v1 .ui-notification b{display:block;margin-top:2px;font-size:9px;color:#dbe6ec}
.ui-overhaul-v1 .ui-notification p{margin:2px 0 0;font-size:8px;line-height:1.35;color:#879eae}
.ui-overhaul-v1 .ui-notification-actions{display:flex;flex-direction:column;gap:3px;justify-content:center}
.ui-overhaul-v1 .ui-notification-actions button{padding:3px 5px;font-size:7px;white-space:nowrap}
.ui-overhaul-v1 .notification-empty{padding:14px 9px;border:1px dashed #2a4255;border-radius:6px;text-align:center;background:#07131d}.ui-overhaul-v1 .notification-empty b{display:block;font-size:10px;color:#9eb1bd}.ui-overhaul-v1 .notification-empty span{display:block;margin-top:3px;font-size:8px;color:#60798d}
.ui-overhaul-v1 .right-subsection-title{flex:0 0 auto;display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:7px 0 5px;padding-top:6px;border-top:1px solid #23384a}.ui-overhaul-v1 .right-subsection-title span{font-size:6px;letter-spacing:.12em;color:#647e90}.ui-overhaul-v1 .right-subsection-title b{font-size:9px;color:#a9b9c4}
.ui-overhaul-v1 .event-panel .event-log{flex:1 1 43%;height:auto;min-height:90px;overflow:auto}

@media(max-width:1599px){
  .ui-overhaul-v1 .character-command-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ui-overhaul-v1 .player-vitals b{font-size:13px}.ui-overhaul-v1 .player-resources b{font-size:11px}
}
@media(max-height:820px){
  .ui-overhaul-v1 .character-command-state,.ui-overhaul-v1 .character-command-context{padding-top:5px;padding-bottom:5px;margin-bottom:4px}
  .ui-overhaul-v1 .character-command-grid button{min-height:36px}.ui-overhaul-v1 .character-command-grid span{font-size:11px}
  .ui-overhaul-v1 .player-vitals>div,.ui-overhaul-v1 .player-resources>div{padding-top:4px;padding-bottom:5px}
  .ui-overhaul-v1 .notification-center{min-height:105px}
}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a2 — LOCAL COURT / RECRUITMENT / ROYAL TITLE GRANT */
/* ========================================================================== */
.ui-overhaul-v1 .player-panel{order:1}
.ui-overhaul-v1 .character-command-panel{order:2}
.ui-overhaul-v1 .city-people-panel{order:3;flex:1 1 360px;min-height:260px;border-color:rgba(103,145,174,.52);overflow:hidden;display:flex;flex-direction:column}
.ui-overhaul-v1 .service-panel{order:4;flex:0 0 auto;max-height:290px;overflow:auto}
.ui-overhaul-v1 .roadmap-panel{order:5}
.ui-overhaul-v1 #localPlayers{min-height:0;flex:1 1 auto;overflow:auto;padding-right:2px;scrollbar-width:thin}
.ui-overhaul-v1 .local-court-summary{padding:8px 9px;margin-bottom:6px;border:1px solid rgba(177,145,58,.5);border-radius:6px;background:linear-gradient(135deg,rgba(57,45,14,.7),rgba(8,24,35,.96) 55%)}
.ui-overhaul-v1 .local-court-summary small{display:block;font-size:7px;letter-spacing:.13em;color:#8b7d4b}.ui-overhaul-v1 .local-court-summary b{display:block;margin-top:2px;font-size:12px;color:#f1d77b}.ui-overhaul-v1 .local-court-summary span{display:block;margin-top:3px;font-size:8px;color:#91a8b7}.ui-overhaul-v1 .local-court-summary strong{color:#e8edf0}
.ui-overhaul-v1 .local-court-toolbar{position:sticky;top:0;z-index:4;padding:5px;margin-bottom:5px;border:1px solid #263d50;border-radius:6px;background:rgba(7,18,27,.97);box-shadow:0 5px 12px rgba(0,0,0,.16)}
.ui-overhaul-v1 .local-court-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;margin-bottom:4px}.ui-overhaul-v1 .local-court-tabs button{position:relative;min-width:0;padding:5px 2px;font-size:7px;border-radius:4px;background:#0b1a27;border-color:#2b4255;color:#9aafbd;white-space:nowrap}.ui-overhaul-v1 .local-court-tabs button.active{background:linear-gradient(180deg,#31270d,#111a1f);border-color:#9b7c2e;color:#efd172}.ui-overhaul-v1 .local-court-tabs em{display:inline-grid;min-width:14px;height:14px;margin-left:2px;padding:0 3px;place-items:center;border-radius:99px;background:#172b39;color:#acc0cc;font-size:6px;font-style:normal}.ui-overhaul-v1 .local-court-tabs button.active em{background:#6e5720;color:#fff0b4}
.ui-overhaul-v1 #localPeopleSearch{width:100%;height:27px;padding:5px 7px;font-size:8px;border:1px solid #2a4255;border-radius:4px;background:#06121c;color:#dce7ed;outline:none}.ui-overhaul-v1 #localPeopleSearch:focus{border-color:#9a7d30;box-shadow:0 0 0 1px rgba(216,178,72,.12)}
.ui-overhaul-v1 .local-count{display:flex;align-items:center;justify-content:space-between;margin:4px 2px 5px;font-size:8px;color:#70899b}.ui-overhaul-v1 .local-count b{color:#c3d0d8;font-size:9px}
.ui-overhaul-v1 .local-person{display:grid;grid-template-columns:36px minmax(0,1fr);gap:7px;padding:8px;margin:0 0 6px;border:1px solid #273d4f;border-left:3px solid #39576c;border-radius:6px;background:linear-gradient(180deg,#0b1a27,#07141e)}
.ui-overhaul-v1 .local-person.recruitable{border-left-color:#bc8d31;background:linear-gradient(90deg,rgba(100,76,20,.16),#081620 34%)}
.ui-overhaul-v1 .local-person.same-nation{box-shadow:inset 0 0 0 1px rgba(81,133,161,.06)}
.ui-overhaul-v1 .local-person .person-avatar{width:34px;height:34px;flex-basis:34px}.ui-overhaul-v1 .local-person .person-identity{min-width:0;cursor:pointer}
.ui-overhaul-v1 .local-person-head{display:flex;align-items:center;gap:4px;min-width:0;flex-wrap:wrap}.ui-overhaul-v1 .local-person-head>b{font-size:10px;color:#dce7ed;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-overhaul-v1 .local-recruitable-badge{padding:2px 4px;border:1px solid #8a6b25;border-radius:99px;background:#33280d;color:#efd16c;font-size:6px;white-space:nowrap}
.ui-overhaul-v1 .local-rank-line{display:flex;align-items:center;gap:4px;min-width:0;margin-top:4px;flex-wrap:wrap}.ui-overhaul-v1 .local-rank-badge{padding:3px 6px;border:1px solid #9a7c2d;border-radius:4px;background:linear-gradient(180deg,#33290e,#16180f);color:#f0d171;font-size:8px;font-weight:800;white-space:nowrap}.ui-overhaul-v1 .local-faction-badge{max-width:135px;padding:3px 5px;border:1px solid #345269;border-radius:4px;background:#0a1d2b;color:#9fc0d2;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .local-meta-line{display:block;margin-top:4px;font-size:7px;color:#738d9f}.ui-overhaul-v1 .local-statline{display:block;margin-top:3px;font-size:7px;color:#8da3b2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-overhaul-v1 .local-action-bar{grid-column:1/-1;display:flex!important;flex-wrap:wrap;gap:4px;margin-top:1px;padding-top:6px;border-top:1px solid #203546}.ui-overhaul-v1 .local-action-bar .mini-btn{flex:1 1 auto;min-width:72px;padding:5px 7px;font-size:7px}.ui-overhaul-v1 .local-action-bar .recruit-primary{font-weight:800;box-shadow:inset 0 0 10px rgba(75,173,191,.08)}.ui-overhaul-v1 .local-action-bar .mini-btn.royal{border-color:#9f7d2c;background:linear-gradient(180deg,#3c2d0d,#19170e);color:#ffe19a}.ui-overhaul-v1 .local-action-bar .mini-btn.subtle{opacity:.8}
.ui-overhaul-v1 .local-people-empty{padding:18px 10px;text-align:center;border:1px dashed #2c4354;border-radius:6px;color:#6e8799;font-size:8px}
.ui-overhaul-v1 .royal-title-grant-card{border-color:rgba(190,150,49,.58)!important;background:radial-gradient(circle at 100% 0,rgba(196,151,40,.12),transparent 35%),linear-gradient(180deg,#121b20,#09141d)!important}.ui-overhaul-v1 .royal-title-grant-card h3{color:#efd16c}.ui-overhaul-v1 .royal-title-grant-card .scc4-parity-label{border-color:#8a6d28;color:#ebca67}.ui-overhaul-v1 .royal-title-grant-card select{border-color:#5a4b24}
@media(max-height:900px){.ui-overhaul-v1 .service-panel{max-height:220px}.ui-overhaul-v1 .city-people-panel{min-height:220px;flex-basis:300px}.ui-overhaul-v1 .local-person{padding:6px;margin-bottom:4px}.ui-overhaul-v1 .local-action-bar .mini-btn{padding-top:4px;padding-bottom:4px}}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a3 — UI OVERHAUL PHASE 3                            */
/* City tabs / Local Court list / Map LOD / Quick actions / Priority notices */
/* ========================================================================== */
.ui-overhaul-v1 .current-identity-bar{position:sticky;top:0;z-index:18;display:grid;grid-template-columns:1.35fr .75fr 1.1fr;gap:4px;padding:5px;margin-bottom:6px;border:1px solid rgba(185,150,55,.48);border-radius:6px;background:linear-gradient(180deg,rgba(30,26,13,.97),rgba(8,20,29,.98));box-shadow:0 5px 14px rgba(0,0,0,.22)}
.ui-overhaul-v1 .current-identity-bar span{min-width:0;padding:3px 5px;border-right:1px solid rgba(73,86,91,.35)}.ui-overhaul-v1 .current-identity-bar span:last-child{border-right:0}.ui-overhaul-v1 .current-identity-bar small{display:block;font-size:6px;letter-spacing:.12em;color:#847b53}.ui-overhaul-v1 .current-identity-bar b{display:block;margin-top:1px;font-size:8px;color:#e8d681;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.ui-overhaul-v1 .settlement-subtabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:3px;padding:0 6px 6px}.ui-overhaul-v1 .settlement-subtabs button{min-width:0;padding:5px 2px;border:1px solid #294257;border-radius:4px;background:#091824;color:#8299a9;font-size:7px}.ui-overhaul-v1 .settlement-subtabs button.active{border-color:#9a7b2d;background:linear-gradient(180deg,#30260d,#12191d);color:#efd172}.ui-overhaul-v1 #settlementDetail [data-settlement-panel]{display:none}.ui-overhaul-v1 #settlementDetail [data-settlement-panel].active{display:block}.ui-overhaul-v1 .settlement-console.phase3-compact{gap:7px}.ui-overhaul-v1 .settlement-console.phase3-compact .settlement-hero{margin-bottom:2px}.ui-overhaul-v1 .settlement-console.phase3-compact .settlement-chip-row{margin-bottom:2px}.ui-overhaul-v1 .settlement-icon-badge.quick{cursor:pointer;transition:.15s}.ui-overhaul-v1 .settlement-icon-badge.quick:hover{border-color:#cfab45;box-shadow:0 0 15px rgba(205,166,58,.17)}
.ui-overhaul-v1 .settlement-tab-content{display:grid;gap:8px;padding-bottom:6px}.ui-overhaul-v1 .settlement-grid.compact{grid-template-columns:1fr 1fr}.ui-overhaul-v1 .settlement-facility-row{display:flex;gap:5px;flex-wrap:wrap}.ui-overhaul-v1 .settlement-facility-row span{padding:4px 7px;border:1px solid #31485a;border-radius:999px;background:#0a1b27;color:#9eb4c1;font-size:7px}.ui-overhaul-v1 .adjacent-section.compact .adjacent-list{max-height:180px;overflow:auto}
.ui-overhaul-v1 .settlement-economic-kpis,.ui-overhaul-v1 .settlement-military-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.ui-overhaul-v1 .settlement-economic-kpis>div,.ui-overhaul-v1 .settlement-military-summary>div{padding:7px;border:1px solid #2b4355;border-radius:5px;background:#091722}.ui-overhaul-v1 .settlement-economic-kpis small,.ui-overhaul-v1 .settlement-military-summary small{display:block;font-size:6px;color:#6f899a}.ui-overhaul-v1 .settlement-economic-kpis b,.ui-overhaul-v1 .settlement-military-summary b{display:block;margin-top:2px;color:#e6d17b;font-size:10px}.ui-overhaul-v1 .settlement-market-preview{display:grid;gap:4px}.ui-overhaul-v1 .settlement-market-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px;align-items:center;padding:5px 6px;border:1px solid #263d50;border-radius:4px;background:#081620;font-size:7px}.ui-overhaul-v1 .settlement-market-row b{color:#e4cb70}.ui-overhaul-v1 .settlement-market-row small{color:#748c9c}.ui-overhaul-v1 .settlement-economy-note,.ui-overhaul-v1 .settlement-empty-state{padding:12px;border:1px dashed #31495b;border-radius:6px;background:#08141e;color:#7f98a8}.ui-overhaul-v1 .settlement-economy-note b,.ui-overhaul-v1 .settlement-economy-note span{display:block;margin-bottom:4px}.ui-overhaul-v1 .settlement-military-list,.ui-overhaul-v1 .settlement-people-list{display:grid;gap:4px;max-height:340px;overflow:auto}.ui-overhaul-v1 .settlement-military-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 7px;border:1px solid #2b4254;border-radius:5px;background:#091722}.ui-overhaul-v1 .settlement-military-row.divine{border-color:#8d7530}.ui-overhaul-v1 .settlement-military-row b{font-size:8px;color:#dbe5ea}.ui-overhaul-v1 .settlement-military-row small{display:block;margin-top:2px;font-size:6px;color:#718b9b}.ui-overhaul-v1 .settlement-military-row strong{font-size:8px;color:#e7ca69}.ui-overhaul-v1 .settlement-person-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;align-items:center;padding:5px 6px;text-align:left;border:1px solid #294154;border-radius:5px;background:#091722}.ui-overhaul-v1 .settlement-person-row .person-avatar{width:26px;height:26px}.ui-overhaul-v1 .settlement-person-row b{display:block;font-size:8px;color:#dce7ed}.ui-overhaul-v1 .settlement-person-row small{display:block;font-size:6px;color:#748d9e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-overhaul-v1 .population-flow-note{padding:7px;border-left:3px solid #547b8f;background:#0a1a24;color:#819baa;font-size:7px}

.ui-overhaul-v1 .local-court-summary.compact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;align-items:center;padding:5px 7px}.ui-overhaul-v1 .local-court-summary.compact small{grid-column:1/-1}.ui-overhaul-v1 .local-court-summary.compact b{font-size:9px}.ui-overhaul-v1 .local-court-summary.compact span{font-size:7px;text-align:right}.ui-overhaul-v1 .local-list-header{position:sticky;top:66px;z-index:3;display:grid;grid-template-columns:1.6fr .7fr 1fr .7fr .95fr .95fr 20px;gap:3px;padding:4px 5px;border:1px solid #2a4152;border-radius:4px;background:#0c1b27;color:#6f899a;font-size:6px}.ui-overhaul-v1 .local-list-body{display:grid;gap:3px;margin-top:3px}.ui-overhaul-v1 .local-list-row{display:grid;grid-template-columns:1.6fr .7fr 1fr .7fr .95fr .95fr 20px;gap:3px;align-items:center;padding:4px;border:1px solid #243b4c;border-left:3px solid #36566c;border-radius:5px;background:#081620}.ui-overhaul-v1 .local-list-row.recruitable{border-left-color:#b98b30;background:linear-gradient(90deg,rgba(105,78,19,.13),#081620 32%)}.ui-overhaul-v1 .local-list-row.expanded{border-color:#6e5c2b}.ui-overhaul-v1 .local-person-cell{min-width:0}.ui-overhaul-v1 button.local-person-cell.name{display:grid;grid-template-columns:26px minmax(0,1fr);gap:5px;align-items:center;padding:0;border:0;background:transparent;text-align:left}.ui-overhaul-v1 .local-person-cell.name .person-avatar{width:24px;height:24px}.ui-overhaul-v1 .local-person-cell.name b{display:block;font-size:7px;color:#dce6ec;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-overhaul-v1 .local-person-cell.name small{display:block;font-size:5px;color:#71899a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-overhaul-v1 .local-person-cell:not(.name) span{display:block;font-size:6px;color:#9bb0bd;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ui-overhaul-v1 .local-person-cell.rank span{color:#e5c969}.ui-overhaul-v1 .local-person-cell.recruit .mini-btn{width:100%;padding:4px 2px;font-size:6px}.ui-overhaul-v1 .local-none{font-size:6px;color:#586f7e}.ui-overhaul-v1 .local-expand-btn{width:20px;height:22px;padding:0;border-color:#324b5d;background:#0b1b27;color:#92aaba}.ui-overhaul-v1 .local-list-expanded{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 7px;margin-top:2px;border-top:1px solid #2c4354;background:#0a1822}.ui-overhaul-v1 .local-list-expanded small{display:block;font-size:6px;color:#728a9a}.ui-overhaul-v1 .local-list-expanded b{font-size:7px;color:#bdccd5}.ui-overhaul-v1 .local-expanded-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.ui-overhaul-v1 .local-expanded-actions button{padding:4px 6px;font-size:6px}

.quick-action-popover{position:fixed;z-index:2300;width:min(380px,calc(100vw - 16px));padding:8px;border:1px solid #8b7330;border-radius:8px;background:linear-gradient(180deg,#0e1d29,#07121b);box-shadow:0 18px 55px rgba(0,0,0,.65),0 0 0 1px rgba(212,177,72,.08);color:#dce7ed}.quick-action-popover.hidden{display:none}.quick-action-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding-bottom:7px;border-bottom:1px solid #2c4354}.quick-action-head>div{display:flex;gap:7px;align-items:center;min-width:0}.quick-action-head .person-avatar{width:34px;height:34px}.quick-action-head small{display:block;font-size:6px;letter-spacing:.13em;color:#7d93a1}.quick-action-head b{display:block;font-size:10px;color:#efd171;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-action-head em{display:block;font-size:7px;color:#91a6b3;font-style:normal}.quick-action-head>button{width:26px;height:26px;padding:0}.quick-city-icon{display:grid;width:34px;height:34px;place-items:center;border:1px solid #765f28;border-radius:5px;background:#1a211b;color:#e8ca6a;font-size:18px}.quick-action-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:8px}.quick-action-grid.city{grid-template-columns:repeat(3,minmax(0,1fr))}.quick-action-grid button{min-width:0;padding:7px 3px;font-size:7px}.quick-action-note{display:block;margin-top:7px;color:#718a9a;font-size:6px;line-height:1.45}

.ui-overhaul-v1 .notification-priority-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;margin-bottom:6px}.ui-overhaul-v1 .notification-priority-summary button{display:grid;grid-template-columns:1fr auto;gap:4px;align-items:center;padding:5px 6px;background:#0a1924;border-color:#2c4355}.ui-overhaul-v1 .notification-priority-summary button small{font-size:6px}.ui-overhaul-v1 .notification-priority-summary button b{font-size:9px}.ui-overhaul-v1 .notification-priority-summary button.urgent{border-color:#7d383d;color:#ef9ca0}.ui-overhaul-v1 .notification-priority-summary button.action{border-color:#8b6d2b;color:#e5c76b}.ui-overhaul-v1 .notification-priority-summary button.info{border-color:#355267;color:#8db1c5}.ui-overhaul-v1 .notification-priority-summary button.active{box-shadow:inset 0 0 12px rgba(228,191,80,.09);background:#17202a}.ui-overhaul-v1 .ui-notification{grid-template-columns:auto minmax(0,1fr) auto}.ui-overhaul-v1 .ui-notification.severity-urgent{border-left-color:#cf5056;background:linear-gradient(90deg,rgba(100,28,33,.22),#081520 42%)}.ui-overhaul-v1 .ui-notification.severity-action{border-left-color:#c59a37}.ui-overhaul-v1 .ui-notification.severity-info{border-left-color:#4d7187;opacity:.88}.ui-overhaul-v1 .notification-severity-badge{align-self:start;padding:3px 4px;border-radius:3px;background:#172a36;color:#9fb5c3;font-size:5px;white-space:nowrap}.ui-overhaul-v1 .severity-urgent .notification-severity-badge{background:#53252a;color:#ffb9bc}.ui-overhaul-v1 .severity-action .notification-severity-badge{background:#4a3a17;color:#f0d37b}.notification-badge.urgent{background:#b73f45!important;box-shadow:0 0 9px rgba(208,65,71,.45)}

/* LOD: 70% major cities only / 100% cities + major armies / 125%+ relays + people */
.ui-overhaul-v1 .map-layer[data-lod="overview"] .relay-node,.ui-overhaul-v1 .map-layer[data-lod="overview"] .lod-secondary-settlement,.ui-overhaul-v1 .map-layer[data-lod="overview"] .army-marker,.ui-overhaul-v1 .map-layer[data-lod="overview"] .player-marker,.ui-overhaul-v1 .map-layer[data-lod="overview"] .traveler-cluster,.ui-overhaul-v1 .map-layer[data-lod="overview"] .settlement-npc-count{display:none!important}.ui-overhaul-v1 .map-layer[data-lod="overview"] .lod-major-settlement .settlement-label{font-size:11px;padding:3px 6px}.ui-overhaul-v1 .map-layer[data-lod="standard"] .relay-node,.ui-overhaul-v1 .map-layer[data-lod="standard"] .player-marker:not(.me),.ui-overhaul-v1 .map-layer[data-lod="standard"] .traveler-cluster,.ui-overhaul-v1 .map-layer[data-lod="standard"] .settlement-npc-count,.ui-overhaul-v1 .map-layer[data-lod="standard"] .minor-army-marker{display:none!important}.ui-overhaul-v1 .map-layer[data-lod="detail"] .relay-node{display:block}.ui-overhaul-v1 .map-layer[data-lod="detail"] .player-marker,.ui-overhaul-v1 .map-layer[data-lod="detail"] .traveler-cluster{display:grid}

/* Fleet markers: compact by default, large only when selected. Count badge stays outside art. */
.ui-overhaul-v1 .army-marker.divine-fleet-marker{width:54px!important;height:40px!important;min-width:54px!important;border-radius:7px!important}.ui-overhaul-v1 .divine-fleet-map-unit-image{width:50px!important;height:36px!important;border-radius:5px!important}.ui-overhaul-v1 .divine-fleet-map-unit-count{right:-12px!important;bottom:-7px!important;min-width:24px!important;height:18px!important;font-size:8px!important}.ui-overhaul-v1 .army-marker.divine-fleet-marker.selected-army{width:104px!important;height:72px!important;z-index:40!important}.ui-overhaul-v1 .army-marker.divine-fleet-marker.selected-army .divine-fleet-map-unit-image{width:100px!important;height:68px!important}.ui-overhaul-v1 .army-marker.selected-army{outline:2px solid rgba(240,204,94,.75);box-shadow:0 0 0 4px rgba(224,181,61,.13),0 0 22px rgba(224,181,61,.28)!important}

/* Phase 3 command dock: 5 primary game commands + compact secondary drawer. */
.ui-overhaul-v1 .command-dock.phase3-dock{display:block;height:var(--scc19-dock-h);padding:4px 7px;overflow:visible}.ui-overhaul-v1 .command-dock-primary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(90px,.65fr);gap:5px;height:100%;max-width:1560px;margin:0 auto}.ui-overhaul-v1 .command-dock.phase3-dock .command-dock-primary button{width:auto;max-width:none;min-width:0;height:100%;grid-template-columns:30px minmax(0,1fr)}.ui-overhaul-v1 .command-dock.phase3-dock .dock-primary{border-color:#344d61}.ui-overhaul-v1 .command-dock.phase3-dock .dock-primary:hover{border-color:#a78632}.ui-overhaul-v1 .command-dock.phase3-dock .dock-more{border-color:#5a4c2c;background:linear-gradient(180deg,#211f16,#0b151d)}.ui-overhaul-v1 .command-dock-secondary{position:absolute;right:8px;bottom:calc(var(--scc19-dock-h) + 5px);display:grid;grid-template-columns:repeat(5,120px);gap:5px;padding:6px;border:1px solid #725f2a;border-radius:7px;background:rgba(7,16,24,.985);box-shadow:0 -10px 28px rgba(0,0,0,.55)}.ui-overhaul-v1 .command-dock-secondary.hidden{display:none}.ui-overhaul-v1 .command-dock-secondary :is(button, a.restoration-dock-button){width:120px;min-height:44px;grid-template-columns:24px 1fr;padding:5px 7px}.ui-overhaul-v1 .command-dock-secondary :is(button, a.restoration-dock-button) span{font-size:14px}.ui-overhaul-v1 .command-dock-secondary :is(button, a.restoration-dock-button) b{font-size:8px}.ui-overhaul-v1 .command-dock-secondary :is(button, a.restoration-dock-button) small{font-size:6px}

@media(max-width:1366px){.ui-overhaul-v1 .current-identity-bar{grid-template-columns:1.2fr .7fr 1fr}.ui-overhaul-v1 .local-list-header,.ui-overhaul-v1 .local-list-row{grid-template-columns:1.55fr .7fr .9fr .7fr .85fr .9fr 18px}.ui-overhaul-v1 .command-dock-primary{grid-template-columns:repeat(5,minmax(92px,1fr)) 72px}.ui-overhaul-v1 .command-dock-secondary{grid-template-columns:repeat(5,96px)}.ui-overhaul-v1 .command-dock-secondary :is(button, a.restoration-dock-button){width:96px}.quick-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1000px){.ui-overhaul-v1 .local-list-header span:nth-child(4),.ui-overhaul-v1 .local-person-cell.relation{display:none}.ui-overhaul-v1 .local-list-header,.ui-overhaul-v1 .local-list-row{grid-template-columns:1.7fr .75fr 1fr .9fr .95fr 20px}.ui-overhaul-v1 .command-dock-primary{grid-template-columns:repeat(3,1fr);height:auto}.ui-overhaul-v1 .command-dock.phase3-dock{height:auto;min-height:var(--scc19-dock-h)}.ui-overhaul-v1 .command-dock-secondary{grid-template-columns:repeat(3,100px)}}
.ui-overhaul-v1 .right-tab-panel.settlement-panel.active{display:flex!important;flex-direction:column!important}.ui-overhaul-v1 .right-tab-panel.settlement-panel.active .settlement-subtabs{flex:0 0 31px}.ui-overhaul-v1 .right-tab-panel.settlement-panel.active #settlementDetail{height:auto!important;flex:1 1 auto;min-height:0;overflow:auto}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a4 — STATUS PROGRESSION EXPANDED CARD                */
/* ========================================================================== */
.ui-overhaul-v1 .current-identity-bar .identity-status-clickable{position:relative;cursor:pointer;border-color:rgba(192,153,55,.68);background:linear-gradient(180deg,rgba(55,43,13,.88),rgba(8,21,30,.98));transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.ui-overhaul-v1 .current-identity-bar .identity-status-clickable:hover,.ui-overhaul-v1 .current-identity-bar .identity-status-clickable:focus{outline:none;border-color:#d2aa43;box-shadow:0 0 0 1px rgba(217,177,66,.18),0 0 15px rgba(185,145,42,.15);transform:translateY(-1px)}
.ui-overhaul-v1 .current-identity-bar .identity-status-clickable b{color:#f0d57d}.ui-overhaul-v1 .current-identity-bar .identity-status-clickable b em{font-size:.8em;color:#fff1ad;font-style:normal}.ui-overhaul-v1 .current-identity-bar .identity-status-clickable i{display:block;margin-top:2px;font-size:6px;letter-spacing:.1em;color:#8e7d49;font-style:normal}
.ui-overhaul-v1 .ambition-clickable{cursor:pointer;border-color:rgba(178,143,49,.56)}.ui-overhaul-v1 .ambition-clickable:hover,.ui-overhaul-v1 .ambition-clickable:focus{outline:none;border-color:#b99332;box-shadow:0 0 15px rgba(185,145,42,.11)}
.ambition-summary-compact{display:grid;grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr);gap:4px;align-items:center}.ambition-current,.ambition-next{min-width:0;padding:5px;border:1px solid #2a4153;border-radius:5px;background:#091722}.ambition-next{border-color:#6d5723;background:linear-gradient(180deg,#211d0e,#091722)}.ambition-current small,.ambition-next small{display:block;font-size:6px;letter-spacing:.08em;color:#678091}.ambition-current b,.ambition-next b{display:block;margin-top:2px;font-size:10px;color:#dce7ed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ambition-next b{color:#f0d277}.ambition-arrow{text-align:center;color:#b79437}.ambition-mini-meter{grid-column:1/4;height:3px;border-radius:99px;background:#132433;overflow:hidden}.ambition-mini-meter i{display:block;height:100%;background:linear-gradient(90deg,#7a6325,#d3ad45);border-radius:inherit}.ambition-mini-note{grid-column:1/4;text-align:right;font-size:6px;color:#7c91a0}.ambition-open-hint{display:flex;align-items:center;gap:5px;margin-top:5px;padding-top:5px;border-top:1px solid #263948;color:#9caeba;font-size:7px}.ambition-open-hint span{color:#e0bd54}.ambition-open-hint em{margin-left:auto;color:#d5b84e;font-style:normal}
.status-progression-overlay{z-index:720;background:rgba(0,4,8,.88);backdrop-filter:blur(3px)}
.status-progression-modal{width:min(1180px,96vw);max-height:min(850px,94vh);display:flex;flex-direction:column;border:1px solid #8a6c28;border-radius:12px;background:radial-gradient(circle at 85% 0,rgba(169,127,34,.12),transparent 34%),#07131e;box-shadow:0 35px 120px #000,0 0 0 1px rgba(220,184,77,.06);overflow:hidden}
.status-progression-modal>header{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid #334756;background:linear-gradient(180deg,#111f2d,#0a1722)}.status-progression-modal h2{margin:2px 0;color:#efd174;font-size:22px}.status-progression-content{padding:16px;overflow:auto;scrollbar-width:thin}
.status-progression-hero{display:grid;grid-template-columns:1fr 260px;gap:12px;margin-bottom:12px;padding:16px;border:1px solid #3d5261;border-left:4px solid #b58d2d;border-radius:10px;background:linear-gradient(115deg,#0c1c29,#101c23 54%,#261f0c)}.status-progression-hero small{font-size:8px;letter-spacing:.18em;color:#7e95a5}.status-progression-hero h3{margin:4px 0 2px;font-size:30px;color:#f1d67b}.status-progression-hero p{margin:0;color:#9fb2be}.status-next-card{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #806726;border-radius:9px;background:linear-gradient(180deg,#2b240d,#0d1920);text-align:center}.status-next-card.ready{border-color:#d5a83b;box-shadow:inset 0 0 24px rgba(194,151,41,.12)}.status-next-card b{margin:4px 0;font-size:24px;color:#ffe495}.status-next-card span{font-size:8px;letter-spacing:.12em;color:#9d8644}
.status-road-section,.status-detail-card{padding:13px;border:1px solid #2d4355;border-radius:9px;background:#091824}.status-road-section{margin-bottom:12px}.status-section-head{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:10px}.status-section-head small{font-size:7px;letter-spacing:.16em;color:#698397}.status-section-head h3{margin:1px 0;color:#e8d17b;font-size:15px}.status-section-head>span{font-size:8px;color:#728a9a}.status-section-head>strong{font-size:20px;color:#e6c153}.status-rank-road{display:flex;align-items:center;gap:4px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}.status-rank-link{flex:0 0 auto;color:#4c6576;font-size:16px;font-style:normal}.status-rank-node{flex:0 0 82px;min-height:72px;display:grid;place-items:center;padding:7px 5px;border:1px solid #294154;border-radius:7px;background:#071520;text-align:center}.status-rank-node span{font-size:13px;color:#526d80}.status-rank-node b{font-size:11px;color:#9cafba}.status-rank-node small{font-size:6px;color:#5f7687}.status-rank-node.reached{border-color:#596538;background:#0d1b1d}.status-rank-node.reached span,.status-rank-node.reached b{color:#a9bd72}.status-rank-node.current{border-color:#d0a43b;background:linear-gradient(180deg,#34290d,#101b20);box-shadow:0 0 15px rgba(207,162,52,.13)}.status-rank-node.current span,.status-rank-node.current b{color:#ffe28b}.status-rank-node.target{border-color:#8b7130;background:#151c1b}.status-rank-node.target span,.status-rank-node.target b{color:#e3c35d}.status-rank-node.divine{border-color:#6d5c91;background:linear-gradient(180deg,#1b1830,#0c1722)}.status-rank-node.divine span,.status-rank-node.divine b{color:#c8b8ef}
.status-progression-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:12px}.status-progress-bar{height:7px;margin:3px 0 12px;border-radius:99px;background:#122737;overflow:hidden}.status-progress-bar i{display:block;height:100%;background:linear-gradient(90deg,#856a26,#deb449);border-radius:inherit}.status-requirement-list{display:grid;gap:7px}.status-requirement{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:9px;border:1px solid #2a4152;border-radius:7px;background:#07151f}.status-requirement>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#142532;color:#8297a5;font-weight:900}.status-requirement.met{border-color:#3c6649;background:linear-gradient(90deg,rgba(35,86,52,.12),#07151f 35%)}.status-requirement.met>span{background:#173b27;color:#82dda1}.status-requirement.unmet{border-color:#5a4932}.status-requirement.unmet>span{background:#302516;color:#e0b65d}.status-requirement small{display:block;font-size:7px;letter-spacing:.08em;color:#718b9d}.status-requirement b{display:block;margin-top:2px;font-size:12px;color:#e1ebf0}.status-requirement p{margin:3px 0 0;font-size:8px;line-height:1.45;color:#8599a7}.status-summary-message,.status-max-message{margin-top:10px;padding:9px;border:1px solid rgba(181,144,48,.35);border-radius:6px;background:rgba(112,82,17,.08);color:#c9d6dd;font-size:9px;line-height:1.6}.status-rule-note{display:block;margin-top:8px;color:#718594;line-height:1.5}.status-foundation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.status-foundation-grid>div{padding:9px;border:1px solid #2a4152;border-radius:7px;background:#07151f}.status-foundation-grid small{display:block;font-size:7px;color:#6d8597}.status-foundation-grid b{display:block;margin-top:3px;color:#dce7ed;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-system-open,.status-profile-open{width:100%;margin-top:7px;padding:9px}.status-system-open.gold{border-color:#92752d;background:linear-gradient(180deg,#30270d,#12191b);color:#f1d174}
@media(max-width:900px){.status-progression-modal{width:98vw;max-height:96vh}.status-progression-hero{grid-template-columns:1fr 180px}.status-progression-grid{grid-template-columns:1fr}.status-rank-node{flex-basis:70px}.status-progression-content{padding:10px}}
@media(max-width:620px){.status-progression-hero{grid-template-columns:1fr}.status-next-card{min-height:90px}.status-foundation-grid{grid-template-columns:1fr 1fr}.status-progression-modal>header{padding:10px 12px}.status-progression-modal h2{font-size:18px}}

/* α v0.19a5 — wartime relay occupation */
.relay-occupation-card{border-color:rgba(202,155,56,.45)!important;background:radial-gradient(circle at 92% 8%,rgba(201,151,45,.09),transparent 34%),#091722!important}.relay-occupation-target{border-left:4px solid #c49a38!important}.relay-occupation-target.ready{box-shadow:0 0 0 1px rgba(219,179,74,.22) inset}.siege-guide.relay{border-color:#6d5b2e;background:linear-gradient(90deg,rgba(116,82,18,.18),rgba(8,23,34,.95))}.danger-text{color:#ef8585!important}.relay-war-occupation-panel{display:grid;gap:8px;border:1px solid rgba(199,157,55,.45);border-radius:9px;padding:10px;margin-bottom:10px;background:linear-gradient(180deg,rgba(101,75,18,.16),rgba(7,21,31,.96))}.relay-war-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid #314654;border-left:3px solid #c49a38;border-radius:7px;padding:8px;background:#081722}.relay-war-row b{color:#ead07a}.relay-war-row small{display:block;margin-top:2px;color:#91a7b5}.relay-war-row button{white-space:nowrap}
@media(max-width:760px){.relay-war-row{grid-template-columns:1fr}.relay-war-row button{width:100%}}

/* α v0.19a6 — NATIONAL STABILITY / WAR EXHAUSTION / REBELLION DYNAMICS */
.stability-dynamics-card{border-color:rgba(195,151,58,.48)!important;background:linear-gradient(180deg,rgba(17,31,43,.98),rgba(7,18,27,.98))!important}
.stability-risk-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin:10px 0}.stability-risk-grid>div{display:grid;gap:3px;padding:10px;border:1px solid #294457;border-radius:8px;background:#081824}.stability-risk-grid small{color:#7893a6;font-size:10px;letter-spacing:.08em}.stability-risk-grid strong{font-size:22px;color:#f0d37a}.stability-risk-grid em{font-style:normal;color:#9fb5c3;font-size:11px}
.stability-gate{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 11px;margin:8px 0;border-radius:8px;border:1px solid #355164;background:#0a1b27}.stability-gate b{color:#f0d37a}.stability-gate span{font-size:12px;color:#aec0cb}.stability-gate.grace{border-color:#7f6a2d;background:rgba(92,72,16,.18)}.stability-gate.cooldown{border-color:#456177}.stability-gate.danger{border-color:#934047;background:rgba(105,27,35,.25)}.stability-gate.danger b{color:#ff7f88}.stability-gate.stable{border-color:#2c705a;background:rgba(25,78,61,.16)}.stability-gate.stable b{color:#73d8ab}
.stability-factor-list{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.stability-factor{padding:4px 7px;border-radius:999px;border:1px solid #76513f;background:rgba(103,54,39,.2);font-size:11px;color:#e4b99e}.stability-factor.good{border-color:#316a58;background:rgba(31,90,70,.18);color:#80d1ac}
.stability-advice{margin:10px 0;padding:10px 12px;border-left:3px solid #c69c42;background:rgba(29,38,45,.76);border-radius:5px}.stability-advice b{color:#efce72}.stability-advice p{margin:5px 0;color:#c7d4dc}.stability-advice small{color:#91a6b4;line-height:1.5}
.stability-columns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.stability-columns>div{border:1px solid #253d4d;border-radius:8px;background:#071722;padding:9px}.stability-columns h4{margin:0 0 7px;color:#d5b966}.stability-history-row{padding:7px 4px;border-bottom:1px solid rgba(58,83,99,.55)}.stability-history-row:last-child{border-bottom:0}.stability-history-row b{display:block;color:#d9e3e8;font-size:12px}.stability-history-row small{color:#7f9aaa;font-size:10px}.unrest-incident{display:flex;justify-content:space-between;gap:8px;padding:7px 5px;border-bottom:1px solid rgba(89,54,57,.62)}.unrest-incident:last-child{border-bottom:0}.unrest-incident b{color:#e5b468}.unrest-incident small{display:block;color:#879faa;font-size:10px}.unrest-incident p{margin:3px 0 0;color:#b9c5cb;font-size:11px}.unrest-incident em{font-size:10px;font-style:normal;color:#ff838c}.unrest-incident.resolved em{color:#79cba6}
@media(max-width:900px){.stability-risk-grid{grid-template-columns:repeat(2,minmax(110px,1fr))}.stability-columns{grid-template-columns:1fr}.stability-gate{align-items:flex-start;flex-direction:column}}

/* α v0.19a7 — ALLIED WAR / PEACE NEGOTIATION */
.coalition-card{border-color:rgba(89,145,190,.5)!important;background:linear-gradient(180deg,rgba(10,29,43,.98),rgba(6,18,28,.98))!important}.coalition-war,.coalition-proposal,.peace-form{border:1px solid #315166;border-radius:9px;padding:10px;margin:8px 0;background:#081923}.coalition-proposal.urgent{border-color:#8b5d36}.coalition-sides{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}.coalition-side{border:1px solid #294655;border-radius:7px;padding:8px;background:#06151f}.coalition-member{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(63,88,103,.45);padding:5px 0}.coalition-member:last-child{border-bottom:0}.coalition-member em{font-style:normal;color:#a7bbc7;font-size:10px}.call-to-arms-row{display:grid;grid-template-columns:1fr auto;gap:8px}.peace-terms{display:flex;flex-wrap:wrap;gap:5px;margin:6px 0}.peace-terms span{border:1px solid #4b6371;border-radius:999px;padding:3px 7px;font-size:10px}.peace-form select[multiple]{min-height:92px}.peace-form textarea{min-height:70px}.coalition-card h4{color:#e0c46a;margin:10px 0 5px}@media(max-width:760px){.coalition-sides{grid-template-columns:1fr}.call-to-arms-row{grid-template-columns:1fr}.coalition-member{flex-direction:column}}

/* ========================================================================== */
/* SCC LW ONLINE α v0.19a7h — COMMERCIAL UI OVERHAUL                       */
/* Premium desktop presentation layer. Functional IDs / event wiring remain. */
/* ========================================================================== */
:root{
  --scc-commercial-bg:#03080e;
  --scc-commercial-panel:#07131e;
  --scc-commercial-panel-2:#0b1b29;
  --scc-commercial-panel-3:#102538;
  --scc-commercial-line:#29445a;
  --scc-commercial-line-soft:rgba(96,132,158,.28);
  --scc-commercial-gold:#c9a341;
  --scc-commercial-gold-bright:#f0d57a;
  --scc-commercial-gold-soft:rgba(211,174,73,.16);
  --scc-commercial-text:#e7eef3;
  --scc-commercial-muted:#7892a5;
  --scc-commercial-cyan:#6dbbd1;
  --scc-commercial-green:#68cb91;
  --scc-commercial-red:#df676e;
  --scc-commercial-shadow:0 18px 50px rgba(0,0,0,.34);
}

/* Global polish */
html,body{
  background:
    radial-gradient(circle at 50% -20%,rgba(34,62,88,.24),transparent 42%),
    linear-gradient(180deg,#03080e,#050b12 58%,#020609);
}
body{
  font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
button,input,select,textarea{outline:none}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  box-shadow:0 0 0 2px rgba(205,167,66,.2),0 0 0 1px #d4ad4d;
}
button{transition:border-color .14s ease,background .14s ease,color .14s ease,box-shadow .14s ease,transform .14s ease}
button:not(:disabled):active{transform:translateY(1px)}

/* Login / character creation */
.screen-overlay{
  background:
    radial-gradient(circle at 50% 24%,rgba(61,94,124,.22),transparent 34%),
    radial-gradient(circle at 16% 70%,rgba(169,127,34,.08),transparent 26%),
    linear-gradient(145deg,#071521,#02070c 62%,#05090d);
}
.auth-card{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(203,163,60,.72);
  border-radius:8px;
  background:linear-gradient(180deg,rgba(12,27,41,.985),rgba(5,14,22,.99));
  box-shadow:0 34px 110px rgba(0,0,0,.72),inset 0 0 0 1px rgba(255,255,255,.025);
}
.auth-card::before,.auth-card::after{
  content:"";position:absolute;width:74px;height:74px;pointer-events:none;opacity:.72
}
.auth-card::before{left:-1px;top:-1px;border-left:2px solid #d0a842;border-top:2px solid #d0a842}
.auth-card::after{right:-1px;bottom:-1px;border-right:2px solid #d0a842;border-bottom:2px solid #d0a842}
.auth-card h1,.auth-card h2{color:#eed47d;text-shadow:0 2px 18px rgba(211,174,73,.14)}
.alpha-badge{border-radius:4px;background:linear-gradient(180deg,#2b220c,#151309);box-shadow:inset 0 0 12px rgba(215,176,65,.08)}

/* Main shell */
.ui-commercial-v2{
  --scc19-header-h:76px;
  --scc19-kpi-h:52px;
  --scc19-dock-h:78px;
  --scc19-left-w:252px;
  --scc19-right-w:326px;
  --scc19-gap:8px;
  background:
    radial-gradient(circle at 50% -15%,rgba(37,61,86,.18),transparent 42%),
    var(--scc-commercial-bg);
}
.ui-commercial-v2::before{
  content:"";
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px),
    linear-gradient(rgba(255,255,255,.008) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.5),transparent 70%);
}
.ui-commercial-v2>*{position:relative;z-index:1}

/* Header */
.ui-commercial-v2 .topbar{
  height:var(--scc19-header-h);
  padding:8px 14px;
  border-top:0;
  border-bottom:1px solid rgba(202,162,61,.72);
  background:linear-gradient(180deg,#0b1824 0,#07111a 100%);
  box-shadow:0 8px 30px rgba(0,0,0,.36),inset 0 -1px rgba(255,255,255,.02);
}
.ui-commercial-v2 .topbar::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;
  background:linear-gradient(90deg,transparent,#e2bb56 18%,rgba(226,187,86,.35) 50%,#e2bb56 82%,transparent);
  opacity:.55;
}
.ui-commercial-v2 .brand{gap:12px}
.ui-commercial-v2 .crest{
  position:relative;width:50px;height:50px;
  border:1px solid #b38d32;
  background:radial-gradient(circle,#2e2713 0,#0c1720 58%,#061019 100%);
  box-shadow:0 0 0 4px rgba(186,145,43,.08),inset 0 0 20px rgba(215,177,67,.12),0 4px 16px rgba(0,0,0,.35);
  color:#f1d578;text-shadow:0 0 12px rgba(230,190,77,.35);
}
.ui-commercial-v2 .brand .eyebrow{font-size:8px;color:#718b9d;letter-spacing:.24em}
.ui-commercial-v2 .brand h1{font-size:21px;color:#efd77f;letter-spacing:.095em;text-shadow:0 2px 14px rgba(191,148,46,.14)}
.ui-commercial-v2 .brand h1 span{margin-left:4px;padding:2px 5px;border-left:1px solid rgba(205,168,67,.35);color:#728b9d}
.ui-commercial-v2 .world-status{gap:4px}
.ui-commercial-v2 .world-status>div{
  min-width:90px;padding:7px 10px;
  border-left:1px solid rgba(88,111,128,.3);
  background:linear-gradient(180deg,rgba(12,25,36,.15),rgba(3,9,14,.04));
}
.ui-commercial-v2 .world-status>div:first-child{min-width:192px}
.ui-commercial-v2 .world-status small{font-size:7px;color:#647d8f;letter-spacing:.16em}
.ui-commercial-v2 .world-status strong{font-size:11px;color:#dce7ed}
.ui-commercial-v2 .language-switch button,.ui-commercial-v2 .admin-button,.ui-commercial-v2 #logoutBtn{
  min-height:32px;border-radius:5px;border-color:#2b465c;background:linear-gradient(180deg,#102438,#091722);box-shadow:inset 0 1px rgba(255,255,255,.025)
}
.ui-commercial-v2 .language-switch button.active{border-color:#a9852f;color:#f5dc82;background:linear-gradient(180deg,#4a3610,#251c0b)}
.ui-commercial-v2 .admin-button{border-color:#9b7a28!important;color:#f2d36e!important;background:linear-gradient(180deg,#352b10,#14170f)!important}

/* KPI bar */
.ui-commercial-v2 .ui-kpi-strip{
  height:var(--scc19-kpi-h);gap:6px;padding:6px 8px;
  border-bottom:1px solid rgba(210,171,65,.42);
  background:linear-gradient(180deg,#07121a,#040a10);
  box-shadow:0 6px 18px rgba(0,0,0,.28);
}
.ui-commercial-v2 .ui-kpi{
  position:relative;padding:5px 10px 6px 31px;
  border-color:rgba(64,93,116,.58);border-radius:5px;
  background:linear-gradient(180deg,#0b1925,#07111a);
  box-shadow:inset 0 1px rgba(255,255,255,.025),0 3px 10px rgba(0,0,0,.14);
}
.ui-commercial-v2 .ui-kpi::before{
  position:absolute;left:9px;top:50%;transform:translateY(-50%);
  width:15px;text-align:center;color:#d3ad4e;font-size:14px;text-shadow:0 0 10px rgba(214,175,70,.2)
}
.ui-commercial-v2 .ui-kpi[data-kpi="treasury"]::before{content:"◈"}
.ui-commercial-v2 .ui-kpi[data-kpi="stability"]::before{content:"◇"}
.ui-commercial-v2 .ui-kpi[data-kpi="support"]::before{content:"✦"}
.ui-commercial-v2 .ui-kpi[data-kpi="military"]::before{content:"⚔"}
.ui-commercial-v2 .ui-kpi[data-kpi="diplomacy"]::before{content:"✧"}
.ui-commercial-v2 .ui-kpi[data-kpi="logistics"]::before{content:"⌘"}
.ui-commercial-v2 .ui-kpi[data-kpi="world"]::before{content:"◎"}
.ui-commercial-v2 .ui-kpi small{font-size:6.5px;letter-spacing:.16em;color:#668092}
.ui-commercial-v2 .ui-kpi b{margin-top:2px;font-size:9px;color:#91a7b7}
.ui-commercial-v2 .ui-kpi em{font-size:13px;font-weight:900;color:#e9eef1}
.ui-commercial-v2 .ui-kpi.good{box-shadow:inset 0 -2px rgba(74,166,109,.22)}
.ui-commercial-v2 .ui-kpi.warn{box-shadow:inset 0 -2px rgba(211,166,60,.28)}
.ui-commercial-v2 .ui-kpi.bad{box-shadow:inset 0 -2px rgba(208,82,89,.3)}

/* Main layout and premium panels */
.ui-commercial-v2 .game-grid{padding:7px 8px 6px;gap:8px}
.ui-commercial-v2 .panel,.ui-commercial-v2 .map-panel{
  position:relative;
  border:1px solid rgba(70,102,127,.62);
  border-radius:5px;
  background:
    linear-gradient(180deg,rgba(13,27,40,.99),rgba(5,14,22,.995));
  box-shadow:inset 0 1px rgba(255,255,255,.025),inset 0 0 24px rgba(34,71,99,.035),0 7px 20px rgba(0,0,0,.18);
}
.ui-commercial-v2 .panel::after,.ui-commercial-v2 .map-panel::after{
  content:"";position:absolute;left:-1px;top:-1px;width:30px;height:30px;pointer-events:none;
  border-left:1px solid rgba(213,173,67,.72);border-top:1px solid rgba(213,173,67,.72);opacity:.62
}
.ui-commercial-v2 .panel-title{
  position:relative;padding:1px 0 8px 10px;margin-bottom:9px;border-bottom:1px solid rgba(52,78,98,.62)
}
.ui-commercial-v2 .panel-title::before{
  content:"";position:absolute;left:0;top:3px;bottom:9px;width:2px;background:linear-gradient(#f0ce68,#775916);box-shadow:0 0 8px rgba(215,174,62,.18)
}
.ui-commercial-v2 .panel-title::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,rgba(211,173,70,.34),transparent 64%)
}
.ui-commercial-v2 .panel-title span{font-size:6.5px;color:#688296;letter-spacing:.18em}
.ui-commercial-v2 .panel-title h2{font-size:14px;color:#e1e9ee}

/* Player card */
.ui-commercial-v2 .player-panel{border-color:rgba(176,141,47,.62);background:linear-gradient(180deg,#0c1a26,#061019)}
.ui-commercial-v2 .player-identity-card{grid-template-columns:88px minmax(0,1fr);gap:12px;margin-bottom:9px}
.ui-commercial-v2 .character-portrait.hero{
  border:1px solid #b38e31;border-radius:4px;
  box-shadow:0 0 0 3px rgba(190,149,43,.08),0 8px 20px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.04)
}
.ui-commercial-v2 .player-name{font-family:Georgia,"Yu Mincho",serif;font-size:18px!important;line-height:1.32;color:#f0d578!important;text-shadow:0 2px 10px rgba(208,167,59,.16)}
.ui-commercial-v2 .player-subtitle{margin-top:4px;font-size:9px!important;line-height:1.45;color:#8da4b4!important}
.ui-commercial-v2 .relation-badge,.ui-commercial-v2 .status-pill{border-radius:3px}
.ui-commercial-v2 .player-vitals>div,.ui-commercial-v2 .player-resources>div{
  border-color:#2b4357;background:linear-gradient(180deg,#0b1b28,#07131d);border-radius:4px
}
.ui-commercial-v2 .player-vitals b,.ui-commercial-v2 .player-resources b{color:#edf1f3}
.ui-commercial-v2 .player-resources>div:first-child{border-color:rgba(188,149,48,.62);background:linear-gradient(180deg,#241d0b,#0a151b)}
.ui-commercial-v2 .character-abilities{border-color:#334e64!important;background:linear-gradient(180deg,#091925,#06111a)!important;border-radius:5px!important}
.ui-commercial-v2 .ability-head{border-color:rgba(72,103,126,.48)!important}
.ui-commercial-v2 .ability-head span{letter-spacing:.14em!important}
.ui-commercial-v2 .ability-head em{color:#ddc15f!important}
.ui-commercial-v2 .ability-cell{background:linear-gradient(180deg,#0d2131,#081520)!important;border-color:#2d475b!important;border-radius:4px!important}
.ui-commercial-v2 .ability-cell b{color:#f0d16f!important;text-shadow:0 0 12px rgba(223,183,69,.12)}
.ui-commercial-v2 .stamina-bar{height:5px!important;background:#020a0f!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.8)}
.ui-commercial-v2 .stamina-bar i{background:linear-gradient(90deg,#356f91,#64c4d6)!important;box-shadow:0 0 8px rgba(92,190,211,.24)}
.ui-commercial-v2 .loadout-summary{border-color:#3a566b;background:linear-gradient(180deg,#0d2030,#08151f);border-radius:4px;color:#c8d5dd}
.ui-commercial-v2 .loadout-summary:hover{border-color:#a4822d;background:linear-gradient(180deg,#231e0d,#09161e)}
.ui-commercial-v2 .operator-banner{border-radius:4px!important;border-color:rgba(188,146,39,.62)!important;background:linear-gradient(180deg,#30240b,#12160e)!important;color:#f0d372!important}

/* Current identity / command center */
.ui-commercial-v2 .current-identity-bar{
  border-color:rgba(178,140,42,.68);border-radius:5px;
  background:linear-gradient(180deg,#211b0a,#09151d);
  box-shadow:0 7px 18px rgba(0,0,0,.24),inset 0 1px rgba(255,255,255,.018)
}
.ui-commercial-v2 .character-command-state,.ui-commercial-v2 .character-command-context{border-radius:4px;border-color:#2e475b;background:linear-gradient(180deg,#0d2030,#07141e)}
.ui-commercial-v2 .character-command-grid button{border-radius:4px;background:linear-gradient(180deg,#112538,#091722)}
.ui-commercial-v2 .character-command-grid button:hover{transform:translateY(-1px);border-color:#b08b32;box-shadow:0 5px 14px rgba(0,0,0,.2),inset 0 0 12px rgba(207,166,57,.08)}

/* Cinematic map */
.ui-commercial-v2 .map-panel{border-color:rgba(185,145,43,.72);box-shadow:0 8px 30px rgba(0,0,0,.24),inset 0 0 0 1px rgba(221,180,67,.04)}
.ui-commercial-v2 .map-header{
  height:56px;min-height:56px;padding:7px 10px;
  background:linear-gradient(180deg,#0f2030,#07151f);
  border-bottom:1px solid rgba(190,150,47,.38)
}
.ui-commercial-v2 .map-header h2{font-family:Georgia,"Yu Mincho",serif;font-size:19px;color:#e8edf0}
.ui-commercial-v2 .map-controls button{
  border-radius:4px;border-color:#31516a;background:linear-gradient(180deg,#10283b,#091925);color:#a9becb
}
.ui-commercial-v2 .map-controls button:hover{border-color:#b08a31;color:#f1d678;background:linear-gradient(180deg,#2c260f,#0e1b22)}
.ui-commercial-v2 .map-controls button.active{border-color:#b48c2f;background:linear-gradient(180deg,#493711,#241c0b);color:#f3d97d}
.ui-commercial-v2 .ui-map-mode-bar{
  min-height:38px;height:38px;flex-basis:38px;padding:4px 9px;
  border-bottom-color:#263f53;background:linear-gradient(180deg,#071620,#050f17)
}
.ui-commercial-v2 .ui-map-mode-bar button{min-width:64px;border-color:#2d4a60;background:linear-gradient(180deg,#0f2638,#091722);color:#9cb2c0}
.ui-commercial-v2 .ui-map-mode-bar button.active{border-color:#b78e30;color:#f5dd85;background:linear-gradient(180deg,#4a3710,#221b0b);box-shadow:inset 0 0 14px rgba(218,179,73,.1),0 0 10px rgba(198,156,44,.08)}
.ui-commercial-v2 .map-viewport{position:relative;background:#03131e}
.ui-commercial-v2 .map-viewport::after{
  content:"";position:absolute;inset:0;z-index:40;pointer-events:none;
  box-shadow:inset 0 0 70px rgba(0,8,15,.36),inset 0 -55px 70px rgba(0,8,15,.24);
  background:linear-gradient(180deg,rgba(4,17,26,.06),transparent 22%,transparent 72%,rgba(2,9,14,.08))
}
.ui-commercial-v2 .map-footer{border-top:1px solid #1c3345;background:#050f17;color:#738a9a}
.ui-commercial-v2 .settlement-node{filter:drop-shadow(0 5px 7px rgba(0,0,0,.5))}
.ui-commercial-v2 .settlement-label{box-shadow:0 4px 11px rgba(0,0,0,.54)!important;border-color:rgba(87,116,137,.72)!important}
.ui-commercial-v2 .army-marker{box-shadow:0 0 0 2px rgba(118,37,39,.2),0 6px 12px rgba(0,0,0,.58)!important}

/* Right rail */
.ui-commercial-v2 .ui-right-tabs{height:46px;flex-basis:46px;border-color:rgba(76,108,132,.64);background:linear-gradient(180deg,#0d1d2a,#07131c);border-radius:5px}
.ui-commercial-v2 .ui-right-tabs button{border-color:#29455a;background:linear-gradient(180deg,#0d2030,#07151f)}
.ui-commercial-v2 .ui-right-tabs button.active{border-color:#ac862e;color:#f0d373;background:linear-gradient(180deg,#3b2f0f,#16180f);box-shadow:inset 0 -2px rgba(220,179,65,.22)}
.ui-commercial-v2 .right-tab-panel{border-color:rgba(72,102,125,.6)}
.ui-commercial-v2 .settlement-subtabs{gap:3px!important}
.ui-commercial-v2 .settlement-subtabs button{border-radius:3px!important;background:#091925!important;border-color:#2e485b!important}
.ui-commercial-v2 .settlement-subtabs button.active{background:linear-gradient(180deg,#44330f,#20190a)!important;border-color:#ab852d!important;color:#f1d678!important}
.ui-commercial-v2 .settlement-kpis>div,.ui-commercial-v2 .settlement-stat,.ui-commercial-v2 .settlement-info-card{border-radius:4px!important;background:linear-gradient(180deg,#0b1c29,#07141e)!important}
.ui-commercial-v2 .notification-center,.ui-commercial-v2 .chat-log{padding-right:2px}

/* Quick action popover */
.quick-action-popover{
  border:1px solid rgba(193,150,43,.82)!important;
  border-radius:5px!important;
  background:linear-gradient(180deg,rgba(13,29,42,.99),rgba(5,15,23,.995))!important;
  box-shadow:0 20px 55px rgba(0,0,0,.64),inset 0 0 0 1px rgba(255,255,255,.025)!important;
  backdrop-filter:blur(8px)
}
.quick-action-popover::before{
  content:"";position:absolute;left:-1px;top:-1px;width:40px;height:40px;border-left:2px solid #d0a743;border-top:2px solid #d0a743;pointer-events:none
}
.quick-action-grid button{border-radius:4px!important;border-color:#304d62!important;background:linear-gradient(180deg,#102438,#091722)!important}
.quick-action-grid button:hover{border-color:#b18a31!important;color:#f1d67a!important;background:linear-gradient(180deg,#342b10,#0e1a21)!important}

/* Bottom command dock */
.ui-commercial-v2 .command-dock{
  height:var(--scc19-dock-h);padding:7px 6px 8px;
  border-top:1px solid rgba(205,165,61,.62);
  background:linear-gradient(180deg,rgba(9,19,28,.98),rgba(3,8,13,.995));
  box-shadow:0 -12px 32px rgba(0,0,0,.4),inset 0 1px rgba(255,255,255,.02)
}
.ui-commercial-v2 .command-dock::before{
  content:"";position:absolute;left:6%;right:6%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,#d1a746 20%,rgba(209,167,70,.4) 50%,#d1a746 80%,transparent)
}
.ui-commercial-v2 .command-dock-primary{gap:5px;padding:0 4px}
.ui-commercial-v2 .command-dock :is(button, a.restoration-dock-button){
  position:relative;min-height:60px;border:1px solid #30495d;border-radius:5px;
  background:linear-gradient(180deg,#0d1f2d,#07121b);
  box-shadow:inset 0 1px rgba(255,255,255,.02),0 5px 15px rgba(0,0,0,.18)
}
.ui-commercial-v2 .command-dock :is(button, a.restoration-dock-button)::after{
  content:"";position:absolute;left:12%;right:12%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(204,164,58,.38),transparent);opacity:.65
}
.ui-commercial-v2 .command-dock :is(button, a.restoration-dock-button):hover,.ui-commercial-v2 .command-dock :is(button, a.restoration-dock-button).active{
  transform:translateY(-1px);border-color:#b28b30;color:#f3d87a;
  background:linear-gradient(180deg,#33290e,#0c171d);
  box-shadow:inset 0 0 18px rgba(207,166,57,.08),0 7px 18px rgba(0,0,0,.24)
}
.ui-commercial-v2 .command-dock span{color:#e7c65c;text-shadow:0 0 12px rgba(216,175,66,.18)}
.ui-commercial-v2 .command-dock b{font-size:10px;color:#dbe5ea;letter-spacing:.01em}
.ui-commercial-v2 .command-dock small{font-size:6.5px;color:#647e91;letter-spacing:.13em}
.ui-commercial-v2 .command-dock-secondary{bottom:calc(var(--scc19-dock-h) - 4px);border-color:rgba(179,142,47,.62);background:linear-gradient(180deg,#0d1f2d,#050f17);box-shadow:0 -8px 28px rgba(0,0,0,.42)}

/* Modal shell: command-center look */
.modal-overlay{
  background:rgba(1,5,9,.86);
  backdrop-filter:blur(4px) saturate(.82);
}
.ui-commercial-v2~.modal-overlay .system-modal,
.ui-commercial-v2~.modal-overlay .admin-modal,
.system-modal,.admin-modal{
  position:relative;
  width:min(1240px,94vw);height:min(790px,90vh);
  border:1px solid rgba(203,161,53,.82);border-radius:7px;
  background:linear-gradient(180deg,#081722,#041019);
  box-shadow:0 36px 120px rgba(0,0,0,.78),0 0 0 1px rgba(255,255,255,.018),inset 0 0 50px rgba(34,69,92,.04)
}
.system-modal::before,.admin-modal::before{
  content:"";position:absolute;left:-1px;top:-1px;width:70px;height:70px;z-index:5;pointer-events:none;border-left:2px solid #d0a543;border-top:2px solid #d0a543
}
.system-modal::after,.admin-modal::after{
  content:"";position:absolute;right:-1px;bottom:-1px;width:70px;height:70px;z-index:5;pointer-events:none;border-right:2px solid #d0a543;border-bottom:2px solid #d0a543
}
.system-modal>header,.admin-modal>header{
  min-height:72px;padding:12px 18px 11px 22px;
  border-bottom:1px solid rgba(184,145,43,.52);
  background:linear-gradient(180deg,#102435,#091722)
}
.system-modal>header::after,.admin-modal>header::after{
  content:"";position:absolute;left:0;right:0;top:71px;height:1px;background:linear-gradient(90deg,#d1a743,transparent 32%,transparent 68%,#d1a743);opacity:.38
}
.system-modal .eyebrow,.admin-modal .eyebrow{font-size:8px;color:#6ea0bc;letter-spacing:.2em}
.system-modal h2,.admin-modal h2{font-family:Georgia,"Yu Mincho",serif;font-size:23px;color:#f0d474;text-shadow:0 2px 14px rgba(210,166,54,.16)}
.system-modal>header>button,.admin-modal>header>button{padding:8px 14px;border-radius:4px;border-color:#3b5b73;background:linear-gradient(180deg,#102b40,#0a1b29)}
.system-tabs{
  position:relative;display:flex;gap:5px;padding:8px 11px 9px;overflow-x:auto;scrollbar-width:thin;
  border-bottom:1px solid #2b465b;background:linear-gradient(180deg,#091a27,#06121b)
}
.system-tabs button{
  flex:0 0 auto;min-width:104px;padding:8px 11px;border-radius:4px;
  border-color:#33516a;background:linear-gradient(180deg,#10283b,#091825);color:#a9becb;font-size:11px;font-weight:700
}
.system-tabs button.active{border-color:#b38a2e;background:linear-gradient(180deg,#503b10,#291f0b);color:#f3da82;box-shadow:inset 0 -2px rgba(235,197,89,.18),0 0 12px rgba(188,143,34,.08)}
.system-content,.admin-content{padding:14px 16px 18px;background:radial-gradient(circle at 80% 0,rgba(46,78,102,.08),transparent 38%)}
.system-grid,.admin-grid{gap:11px}
.system-card,.admin-card{
  position:relative;padding:13px;border:1px solid rgba(63,94,118,.62);border-radius:5px;
  background:linear-gradient(180deg,#0b1d2b,#07141e);
  box-shadow:inset 0 1px rgba(255,255,255,.02),0 5px 15px rgba(0,0,0,.13)
}
.system-card::before,.admin-card::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:2px;background:linear-gradient(transparent,#bb9134,transparent);opacity:.7}
.system-card h3,.admin-card h3{font-size:14px;color:#e9cb69;margin-bottom:9px}
.system-card p,.admin-card p{color:#9cb0bd;line-height:1.55}
.system-card label,.admin-card label{font-size:10px;color:#899fac}
.system-card input,.system-card select,.system-card textarea,.admin-card input,.admin-card select,.admin-card textarea{
  border-radius:4px;border-color:#35536a;background:#04101a;color:#edf2f4;box-shadow:inset 0 2px 5px rgba(0,0,0,.22)
}
.system-card input:focus,.system-card select:focus,.system-card textarea:focus{border-color:#b18a32}
.system-section-head{padding-bottom:8px!important;border-bottom:1px solid rgba(58,87,108,.55)!important}
.system-section-head h3{font-family:Georgia,"Yu Mincho",serif;color:#efd375!important}
.relation-card,.state-row,.war-row,.request-row,.army-card,.field-battle-card,.popular-rebellion-card{
  border-color:#304b60!important;border-radius:4px!important;background:linear-gradient(180deg,#0b1c29,#07141e)!important
}
.relation-card:hover,.state-row:hover{border-color:#7b6836!important}
.status-pill{border-radius:3px!important}
.button-row button,.mini-btn{
  border-radius:4px!important;border-color:#38556d!important;background:linear-gradient(180deg,#10283a,#091722)!important
}
.button-row button:hover,.mini-btn:hover{border-color:#a98531!important;color:#f0d678!important;background:linear-gradient(180deg,#332b10,#0d1a21)!important}
button.danger,.danger-button,.button-row button.danger{border-color:#7d393e!important;background:linear-gradient(180deg,#4a1d22,#251217)!important;color:#ffadb0!important}

/* Notification / toast */
.toast{border-radius:5px;border-color:#957832;background:linear-gradient(180deg,#142535,#09151f);box-shadow:0 16px 46px rgba(0,0,0,.58);color:#f0d578}
.ui-commercial-v2 .ui-notification{border-radius:4px;background:linear-gradient(180deg,#0b1c28,#07131d)}

/* Scrollbars */
.ui-commercial-v2 ::-webkit-scrollbar,.system-modal ::-webkit-scrollbar,.admin-modal ::-webkit-scrollbar{width:7px;height:7px}
.ui-commercial-v2 ::-webkit-scrollbar-track,.system-modal ::-webkit-scrollbar-track,.admin-modal ::-webkit-scrollbar-track{background:#030b11}
.ui-commercial-v2 ::-webkit-scrollbar-thumb,.system-modal ::-webkit-scrollbar-thumb,.admin-modal ::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#38556b,#22394b);border-radius:99px;border:1px solid #09151d}
.ui-commercial-v2 ::-webkit-scrollbar-thumb:hover,.system-modal ::-webkit-scrollbar-thumb:hover,.admin-modal ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#9b7e35,#57451e)}

/* Resolution tuning — preserve map space on common 1600×900 / laptop layouts */
@media(max-width:1680px){
  .ui-commercial-v2{--scc19-left-w:238px;--scc19-right-w:304px;--scc19-header-h:72px;--scc19-kpi-h:48px;--scc19-dock-h:74px}
  .ui-commercial-v2 .brand h1{font-size:18px}.ui-commercial-v2 .crest{width:44px;height:44px}
  .ui-commercial-v2 .world-status>div{min-width:76px;padding-left:7px;padding-right:7px}.ui-commercial-v2 .world-status>div:first-child{min-width:172px}
  .ui-commercial-v2 .player-name{font-size:16px!important}.ui-commercial-v2 .player-identity-card{grid-template-columns:78px minmax(0,1fr)}
  .ui-commercial-v2 .character-portrait.hero{width:78px;height:100px}
  .ui-commercial-v2 .system-tabs button{min-width:94px;padding-left:8px;padding-right:8px;font-size:10px}
}
@media(max-width:1400px){
  .ui-commercial-v2{--scc19-left-w:226px;--scc19-right-w:286px}
  .ui-commercial-v2 .brand h1{font-size:16px}.ui-commercial-v2 .world-status>div:first-child{min-width:156px}
  .ui-commercial-v2 .ui-kpi{padding-left:24px}.ui-commercial-v2 .ui-kpi::before{left:6px;font-size:12px}
  .ui-commercial-v2 .ui-kpi b span{display:none}.ui-commercial-v2 .ui-kpi em{margin-left:0}
  .ui-commercial-v2 .command-dock small{display:none}
}
@media(max-height:820px){
  .ui-commercial-v2{--scc19-header-h:66px;--scc19-kpi-h:44px;--scc19-dock-h:68px}
  .ui-commercial-v2 .topbar{padding-top:5px;padding-bottom:5px}.ui-commercial-v2 .crest{width:40px;height:40px}.ui-commercial-v2 .map-header{height:50px;min-height:50px}
  .ui-commercial-v2 .command-dock :is(button, a.restoration-dock-button){min-height:52px}.ui-commercial-v2 .panel{padding:7px}.ui-commercial-v2 .panel-title{margin-bottom:6px}
}

/* ========================================================================== */
/* α v0.20 — LIVING WORLD CORE STABILIZATION UI                              */
/* ========================================================================== */
.core-inbox-card,.core-nation-dashboard,.core-battle-results,.core-rebel-lifecycle,.core-world-feed,.core-ai-decisions,.core-battle-policy{border-color:#765f2c!important;background:linear-gradient(180deg,rgba(10,27,39,.98),rgba(5,16,24,.98))!important;box-shadow:inset 0 1px 0 rgba(231,199,110,.06),0 8px 24px rgba(0,0,0,.16)}
.core-unread-badge{display:inline-flex;min-width:24px;height:20px;align-items:center;justify-content:center;margin-left:6px;padding:0 6px;border:1px solid #b24b52;border-radius:999px;background:#4a1c22;color:#ffd1d3;font:700 11px/1 var(--font-ui,sans-serif)}
.core-inbox-list{display:grid;gap:7px;margin-top:10px}.core-inbox-entry{display:grid;grid-template-columns:38px 1fr;gap:10px;padding:10px;border:1px solid #29465b;border-radius:5px;background:linear-gradient(180deg,#0b1d2a,#07141e);transition:.15s ease}.core-inbox-entry.unread{border-color:#8d7333;box-shadow:inset 3px 0 #c39a3c}.core-inbox-entry.priority-critical{border-left-color:#b74e53}.core-inbox-entry:hover{border-color:#9a7d36;background:#0d2331}.core-inbox-icon{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid #5d4d2a;background:#181a15;color:#e6c66e;border-radius:4px;font-size:16px}.core-inbox-body>div:first-child{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.core-inbox-body p{margin:5px 0 7px;color:#c8d5df}.core-empty-state{padding:20px;text-align:center;border:1px dashed #334c60;color:#8197a7}
.core-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0}.core-kpi{padding:10px 12px;border:1px solid #304b5f;background:#071722}.core-kpi small,.core-kpi em{display:block;color:#8097a8}.core-kpi b{display:block;margin:4px 0;color:#f0d274;font-size:18px}.core-meter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:10px 0}.core-meter-grid label{font-size:11px;color:#aebec9}.core-meter-grid label>b{float:right;color:#e9d17b}.core-progress{height:6px;margin-top:5px;overflow:hidden;border:1px solid #284153;background:#030b10}.core-progress span{display:block;height:100%;background:linear-gradient(90deg,#4b8b77,#77c19d)}.core-progress.invert span{background:linear-gradient(90deg,#b88536,#a74349)}
.battle-report-list{display:grid;gap:9px}.battle-report-card{padding:11px;border:1px solid #314c61;background:#071722}.battle-report-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.battle-report-head small,.battle-report-head b{display:block}.battle-report-head b{color:#ecd078;margin-top:2px}.battle-sides{display:grid;grid-template-columns:1fr 44px 1fr;gap:8px;align-items:center;margin:10px 0}.battle-sides>div:not(.battle-vs){padding:8px;border:1px solid #243c4e;background:#091b27}.battle-sides strong,.battle-sides b,.battle-sides em{display:block}.battle-sides b{font-size:16px;color:#dce9f1;margin:3px 0}.battle-sides em{font-style:normal;color:#e89999}.battle-vs{text-align:center;color:#caa64d;font-weight:800}.battle-pursuit{padding:7px 9px;margin:6px 0;border-left:3px solid #c28c35;background:#261e0c;color:#f3d179}
.rebel-lifecycle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rebel-lifecycle-card{padding:10px;border:1px solid #354b5d;background:#081823}.rebel-lifecycle-card.active{border-left:3px solid #ae454b}.rebel-lifecycle-card>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.rebel-lifecycle-card small,.rebel-lifecycle-card p,.rebel-lifecycle-card em{display:block;margin-top:5px}.rebel-lifecycle-card em{color:#e6c871;font-style:normal}
.world-feed-toolbar{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.world-feed-toolbar button{min-width:auto!important;padding:6px 9px!important}.world-feed-toolbar button.active{border-color:#b99036!important;background:#32280e!important;color:#f3d272!important}.world-feed-list{display:grid;gap:6px}.world-feed-item{display:grid;grid-template-columns:64px 1fr;gap:9px;padding:9px;border:1px solid #263e50;background:#071621}.world-feed-item.importance-3{border-left:3px solid #a9444a}.world-feed-item.importance-2{border-left:3px solid #aa8135}.world-feed-item.my-nation{background:linear-gradient(90deg,rgba(69,63,29,.35),#071621 35%)}.world-feed-category{align-self:start;padding:4px 5px;border:1px solid #3e5667;color:#9fb1bc;text-align:center;font-size:10px}.world-feed-item b,.world-feed-item small{display:block}.world-feed-item p{margin:4px 0 0;color:#c2d1dc}
.ai-reason-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ai-reason-card{padding:10px;border:1px solid #3c5261;background:#071722}.ai-reason-card>div{display:flex;align-items:center;gap:7px}.ai-reason-card p{margin:5px 0;color:#bdccd6}.ai-reason-card .ai-pause{color:#e8ac77}
.core-battle-policy label{margin-bottom:9px}.core-battle-policy input[type=range]{width:100%;accent-color:#c49c42}.core-battle-policy .scc4-parity-label{white-space:nowrap}
@media(max-width:900px){.core-kpi-grid{grid-template-columns:repeat(2,1fr)}.core-meter-grid,.rebel-lifecycle-grid,.ai-reason-grid{grid-template-columns:1fr}.battle-sides{grid-template-columns:1fr}.battle-vs{padding:2px}.world-feed-item{grid-template-columns:1fr}.world-feed-category{justify-self:start}}
/* α v0.21 INFORMATION HUB / RUMOR NETWORK / WORLD KNOWLEDGE */
.information-hub-card,.rumor-card,.knowledge-card,.information-debug-row{border:1px solid rgba(190,150,55,.28);background:linear-gradient(180deg,rgba(11,30,43,.96),rgba(5,19,30,.96));border-radius:8px;padding:10px 12px;margin:8px 0;box-shadow:inset 0 1px rgba(255,255,255,.025)}
.information-hub-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.information-hub-card div{display:flex;flex-direction:column;gap:3px}.information-hub-card>b,.information-hub-card b{color:#e9cb72}.information-hub-card small,.information-hub-card span{color:#8fa8b8;font-size:11px}
.information-rumor-head{margin-top:14px}.rumor-list,.knowledge-list{display:grid;gap:8px}.rumor-meta{display:flex;gap:8px;align-items:center;font-size:10px;color:#93a9b6}.rumor-meta span{border:1px solid rgba(88,154,178,.35);padding:2px 6px;border-radius:12px;color:#8fd0e8}.rumor-meta b{color:#e1c56c;margin-left:auto}.rumor-card strong,.rumor-card h4,.knowledge-card h4{display:block;color:#f1e6c1;margin:6px 0 4px}.rumor-card p,.knowledge-card p{margin:0;color:#c3d1d9;line-height:1.55;font-size:12px}.knowledge-card>div:first-child{display:flex;gap:8px;color:#8ea8b6;font-size:10px}.knowledge-card>div:first-child b{color:#dfc26c}.knowledge-card footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;color:#8398a5;font-size:10px}.knowledge-card footer button{padding:5px 10px}.information-debug-row{display:flex;justify-content:space-between;gap:10px;font-size:11px}.information-debug-row b{color:#d9c178}.information-debug-row span{color:#869ba8}.information-system{grid-template-columns:1fr}.settlement-subtabs button[data-settlement-tab="information"]{color:#d9c46f}.ui-map-mode-buttons button[data-ui-map-mode="information"]{color:#d9c46f}

/* α v0.22 — PRODUCTION / INDUSTRY / COMMODITY ECONOMY */
.industry-system-card{overflow:visible}.industry-dashboard{display:grid;gap:14px}.industry-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.industry-summary>div,.industry-deposit,.industry-demand{border:1px solid rgba(91,139,174,.35);background:rgba(5,20,31,.58);border-radius:6px;padding:10px}.industry-summary small,.industry-deposit small,.industry-demand small{display:block;color:#7895aa;font-size:11px}.industry-summary b{font-size:18px;color:#edd374}.industry-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.industry-deposit,.industry-demand{display:flex;justify-content:space-between;align-items:center;margin:5px 0}.industry-deposit strong{color:#b9d5e8}.industry-demand strong{font-size:12px;color:#8fb4ca}.industry-demand.shortage{border-color:rgba(204,98,66,.7);background:rgba(78,24,18,.36)}.industry-demand.shortage strong{color:#ef9b7e}.industry-facility-grid,.industry-build-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.industry-facility,.industry-build-card{border:1px solid rgba(165,132,55,.42);background:linear-gradient(180deg,rgba(11,36,51,.92),rgba(5,21,31,.92));border-radius:8px;padding:12px}.industry-facility.constructing{border-color:rgba(224,178,63,.75)}.industry-facility.paused{opacity:.78}.industry-facility-head{display:flex;justify-content:space-between;gap:10px}.industry-facility-head small,.industry-build-card small{color:#6f9ab4}.industry-facility-head h4,.industry-build-card h4{margin:3px 0;color:#f0d873}.industry-facility-head h4 em{font-style:normal;font-size:12px;color:#aac6d6}.industry-facility-head>span{font-size:11px;border:1px solid rgba(214,178,75,.45);padding:4px 7px;height:max-content}.industry-kpis{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0;font-size:12px}.industry-kpis b{color:#d9e7ef}.industry-warning{margin:7px 0;color:#f0a284}.industry-controls{display:grid;gap:8px;margin-top:10px}.industry-controls label{display:grid;gap:4px}.industry-fixed-operation{display:grid;gap:4px;border:1px solid rgba(104,191,255,.24);background:rgba(7,31,45,.64);border-radius:6px;padding:9px 10px}.industry-fixed-operation small{color:#7895aa}.industry-fixed-operation b{color:#bfe7fa;font-size:13px}.industry-build{border-top:1px solid rgba(164,135,70,.3);padding-top:10px}.industry-build summary{cursor:pointer;color:#efd46f;font-weight:700;margin-bottom:10px}.industry-build-card{display:grid;grid-template-columns:1fr minmax(150px,.6fr) auto;gap:8px;align-items:center}.industry-build-card.disabled{opacity:.55}.industry-build-card p{margin:4px 0;font-size:12px}.industry-build-card select{min-width:0}@media(max-width:900px){.industry-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.industry-columns,.industry-facility-grid,.industry-build-grid{grid-template-columns:1fr}.industry-build-card{grid-template-columns:1fr}}

/* α v0.22b — industry build selector stability hotfix */
.industry-build-grid{align-items:stretch}
.industry-build-card{min-height:104px;contain:layout paint}
.industry-build-card>div{min-width:0}
.industry-build-card select{width:100%;min-width:0;height:38px;line-height:38px;transform:none!important;transition:border-color .12s ease,background .12s ease,color .12s ease,box-shadow .12s ease}
.industry-build-card button:hover,.industry-build-card button:active{transform:none!important}
.industry-build[open]>summary{margin-bottom:10px}

/* α v0.23 — MANA GRID / MILITARY INDUSTRY / LOGISTICS */
.v023-system-card{border-color:rgba(104,191,255,.34);background:linear-gradient(180deg,rgba(7,23,35,.98),rgba(6,17,28,.98))}
.v023-dashboard{display:grid;gap:14px}
.v023-mana-grid,.v023-techline{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.v023-mana-grid>div,.v023-techline>span{min-height:64px;border:1px solid rgba(115,190,225,.25);background:rgba(10,34,48,.72);padding:10px 12px;border-radius:7px;display:flex;flex-direction:column;justify-content:center;gap:4px}
.v023-mana-grid small,.v023-techline span{color:#9db7c4}.v023-mana-grid b,.v023-techline b{color:#e8f7ff;font-size:1.05rem}
.v023-columns{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.4fr);gap:12px;align-items:start}
.v023-columns>div,.v023-relay-stock{border:1px solid rgba(115,190,225,.22);background:rgba(4,20,31,.72);padding:12px;border-radius:7px}
.v023-stock-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(255,255,255,.07);padding:8px 2px}
.v023-stock-row:last-child{border-bottom:0}.v023-stock-row span{display:grid;gap:2px}.v023-stock-row small{color:#839aa7}.v023-stock-row strong{white-space:nowrap;color:#a8dfff}.v023-stock-row.low strong{color:#f2cd6b}.v023-stock-row.critical strong{color:#ff8585}
.v023-army-list{display:grid;gap:8px}.v023-army-readiness{border:1px solid rgba(115,190,225,.22);background:rgba(11,32,44,.76);padding:10px;border-radius:7px;display:grid;grid-template-columns:minmax(160px,.8fr) minmax(300px,1.6fr) auto;gap:10px;align-items:center;min-height:78px}.v023-army-readiness.low{border-color:rgba(242,205,107,.42)}.v023-army-readiness.critical{border-color:rgba(255,105,105,.52);background:rgba(55,20,24,.52)}
.v023-army-readiness>div:first-child{display:grid;gap:3px}.v023-army-readiness small{color:#849ca8}.v023-readiness-kpis{display:flex;flex-wrap:wrap;gap:5px 12px}.v023-readiness-kpis span{font-size:.82rem;color:#9ab0bb}.v023-readiness-kpis b{color:#eef9ff}
.v023-relay-stock>span{display:inline-flex;gap:6px;margin:4px 8px 4px 0;padding:5px 8px;border:1px solid rgba(115,190,225,.18);border-radius:5px;background:rgba(9,30,42,.72)}
.v023-controls{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:12px;border:1px solid rgba(220,181,68,.3);background:rgba(48,39,12,.22);border-radius:7px}.v023-controls label{display:flex;align-items:center;gap:8px;min-width:300px;flex:1}.v023-controls input[type=range]{flex:1;min-width:130px}
.industry-tech-requirement{display:block;margin-top:4px}.industry-tech-requirement.met{color:#76cfa6}.industry-tech-requirement.unmet{color:#e0a06b}.danger-text{color:#ff8b8b!important}
@media(max-width:900px){.v023-columns{grid-template-columns:1fr}.v023-army-readiness{grid-template-columns:1fr}.v023-controls label{min-width:100%}}

/* α v0.23b — ALDIA ROYAL PORTRAIT LINEAGE SYSTEM */
.admin-lineage-portrait-tools{margin:8px 0 12px;padding:10px 12px;border:1px solid rgba(194,151,55,.42);border-radius:8px;background:linear-gradient(180deg,rgba(97,69,20,.18),rgba(7,21,31,.5))}.admin-lineage-portrait-tools small{display:block;color:#c7b474;line-height:1.5;margin-bottom:8px}.admin-lineage-portrait-tools .button-row{margin:0;flex-wrap:wrap}

/* α v0.23d — NATIONAL MILITARY STOCKPILE / SUPPLY DEPOT */
.v023-national-stockpile{border:1px solid rgba(220,181,68,.34);background:linear-gradient(180deg,rgba(42,34,10,.30),rgba(7,22,31,.76));padding:13px;border-radius:8px;display:grid;gap:8px}
.v023-national-stockpile .system-section-head.compact{margin:0;padding:0 0 7px;border-bottom:1px solid rgba(220,181,68,.18)}
.v023-national-stockpile .system-section-head.compact>span{color:#d7bd69;font-size:.82rem}
.v023-national-stockpile>p{margin:0;color:#9fb2bc;font-size:.84rem;line-height:1.55}
.v023-stock-row.national strong{color:#f0d172}.v023-stock-row.national.low strong{color:#ffb866}.v023-stock-row.national.critical strong{color:#ff8585}

/* α v0.23g — INDUSTRIAL SUPPLY CHAIN VISIBILITY */
.industry-chain-guide{border:1px solid rgba(201,163,67,.42);background:rgba(7,25,36,.62);border-radius:8px;padding:10px 12px}.industry-chain-guide>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#efd574;font-weight:700}.industry-chain-guide>summary small{color:#7f9eb1;font-weight:400}.industry-chain-list{display:grid;gap:9px;margin-top:10px}.industry-chain-card{border:1px solid rgba(84,137,171,.34);background:rgba(4,18,28,.72);border-radius:7px;padding:10px}.industry-chain-card.dependency-missing{border-color:rgba(205,104,71,.62);background:rgba(56,19,18,.24)}.industry-chain-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:8px}.industry-chain-head small{color:#7196ad}.industry-chain-head h5{margin:2px 0 0;color:#e8d47e;font-size:14px}.industry-chain-head h5 em{font-style:normal;color:#a9c4d4;font-weight:500}.industry-chain-head>span{font-size:11px;color:#b6d1df;border:1px solid rgba(110,157,184,.35);border-radius:999px;padding:4px 8px;white-space:nowrap}.industry-chain-alert{margin:8px 0 0;color:#efa284;font-size:12px}.industry-recipe-flow{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(150px,.7fr) minmax(0,1fr);gap:8px;align-items:stretch}.industry-flow-inputs,.industry-flow-outputs{display:grid;gap:5px}.industry-flow-good{border:1px solid rgba(85,133,161,.32);background:rgba(6,28,40,.72);border-radius:6px;padding:7px 8px;min-width:0}.industry-flow-good b{display:block;color:#dcebf3;font-size:12px}.industry-flow-good small{display:block;color:#7698ac;font-size:10px;margin-top:2px;line-height:1.35}.industry-flow-good.input.low{border-color:rgba(211,103,76,.52);background:rgba(70,24,20,.28)}.industry-flow-good.output{border-color:rgba(175,144,68,.45);background:rgba(55,44,16,.22)}.industry-flow-good.output b{color:#efd979}.industry-flow-arrow{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border:1px dashed rgba(151,178,194,.34);border-radius:6px;padding:7px}.industry-flow-arrow span{font-size:20px;color:#a7cddd}.industry-flow-arrow b{color:#efd574;font-size:12px}.industry-flow-arrow small{color:#7795a7;font-size:10px}.industry-flow-good em{font-style:normal;border-radius:4px;padding:1px 4px;margin-left:3px}.industry-flow-good em.ready{color:#9bd5aa;background:rgba(49,111,65,.22)}.industry-flow-good em.building{color:#ecd27b;background:rgba(112,87,31,.22)}.industry-flow-good em.missing{color:#ee9a83;background:rgba(119,49,35,.25)}.industry-external-source{color:#9ab7c7}.industry-facility-flow{margin:9px 0 2px;border-top:1px solid rgba(100,145,170,.22);padding-top:8px}.industry-subhead{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}.industry-subhead b{font-size:12px;color:#d9e8ef}.industry-subhead small{color:#7895a8;font-size:10px}.industry-build-chain{margin-top:7px}.industry-build-chain summary{cursor:pointer;color:#9fc8dd;font-size:11px}.industry-build-chain .industry-recipe-flow{margin-top:6px}.industry-recipe-flow.compact{grid-template-columns:minmax(0,1fr) minmax(110px,.55fr) minmax(0,.85fr)}.industry-recipe-flow.compact .industry-flow-good{padding:5px 6px}.industry-recipe-flow.compact .industry-flow-good b{font-size:10px}.industry-recipe-flow.compact .industry-flow-good small{font-size:9px}.industry-recipe-flow.compact .industry-flow-arrow span{font-size:14px}.industry-fixed-hint{display:block;margin-top:7px}
@media(max-width:900px){.industry-chain-guide>summary{align-items:flex-start;flex-direction:column}.industry-recipe-flow,.industry-recipe-flow.compact{grid-template-columns:1fr}.industry-flow-arrow{flex-direction:row;gap:8px;justify-content:flex-start}.industry-flow-arrow span{transform:rotate(90deg)}.industry-chain-head{flex-direction:column}.industry-chain-head>span{white-space:normal}.industry-subhead{flex-direction:column}}

/* α v0.23p5 — WORLD MAP UNIT MOTION
   Original lightweight marker animation. No third-party sprite/animation assets. */
.map-unit-motion.unit-position-tween {
  transition: left .92s linear, top .92s linear, transform .08s linear;
  will-change: left, top;
}
.map-unit-core {
  width: 100%;
  height: 100%;
  display: grid;
  place-items: center;
  transform-origin: 50% 72%;
  pointer-events: none;
}
.map-unit-heading {
  position: absolute;
  z-index: 3;
  top: 50%;
  right: -9px;
  width: 14px;
  height: 18px;
  margin-top: -9px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(235, 210, 128, .52);
  border-radius: 999px;
  background: rgba(3, 15, 24, .9);
  color: #f4d779;
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 2px 7px rgba(0,0,0,.68);
  pointer-events: none;
}
.map-unit-motion.dir-left .map-unit-heading { left: -9px; right: auto; transform: rotate(180deg); }
.map-unit-motion.dir-up .map-unit-heading { transform: rotate(-90deg); }
.map-unit-motion.dir-down .map-unit-heading { transform: rotate(90deg); }

/* Travellers: a restrained two-step bounce rather than imported walk cycles. */
.player-marker.map-unit-moving .map-unit-core,
.traveler-cluster.map-unit-moving .map-unit-core {
  animation: sccMapWalkBob .54s ease-in-out infinite;
}
.army-marker.map-unit-moving:not(.divine-fleet-marker):not(.divine-air-army-marker) .map-unit-core {
  animation: sccMapArmyMarch .44s ease-in-out infinite;
}
.divine-air-army-marker.map-unit-moving .map-unit-core {
  animation: sccMapDivineFloat 1.25s ease-in-out infinite;
}
.army-marker.divine-fleet-marker.map-unit-moving .divine-fleet-map-unit-image {
  animation: sccMapFleetGlide 1.45s ease-in-out infinite;
  transform-origin: 50% 55%;
}
.army-marker.divine-fleet-marker.map-unit-moving.dir-left .divine-fleet-map-unit-image {
  --scc-facing: -1;
}
.army-marker.divine-fleet-marker.map-unit-moving:not(.dir-left) .divine-fleet-map-unit-image {
  --scc-facing: 1;
}

/* Tiny procedural trail: land = dust, divine = light. */
.player-marker.map-unit-moving::before,
.army-marker.map-unit-moving::before,
.traveler-cluster.map-unit-moving::before {
  content: "";
  position: absolute;
  z-index: -1;
  left: -16px;
  top: 50%;
  width: 14px;
  height: 8px;
  margin-top: -4px;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(203,181,128,.42), rgba(203,181,128,0) 72%);
  filter: blur(.2px);
  animation: sccMapTrailPulse .7s ease-out infinite;
  pointer-events: none;
}
.map-unit-motion.dir-left.map-unit-moving::before { left: auto; right: -16px; }
.map-unit-motion.dir-up.map-unit-moving::before { left: 50%; top: auto; bottom: -15px; margin: 0 0 0 -7px; }
.map-unit-motion.dir-down.map-unit-moving::before { left: 50%; top: -15px; margin: 0 0 0 -7px; }
.divine-air-army-marker.map-unit-moving::before,
.divine-fleet-marker.map-unit-moving::before {
  width: 24px;
  height: 10px;
  background: radial-gradient(ellipse at center, rgba(125,218,255,.55), rgba(125,218,255,0) 72%);
  box-shadow: 0 0 9px rgba(98,201,246,.2);
}

/* Departure/arrival readability. Animation lives on the inner core so map scaling is untouched. */
.unit-departing.map-unit-moving .map-unit-core {
  animation: sccMapDepart .34s ease-out, sccMapWalkBob .54s .34s ease-in-out infinite;
}
.army-marker.unit-departing.map-unit-moving:not(.divine-fleet-marker):not(.divine-air-army-marker) .map-unit-core {
  animation: sccMapDepart .34s ease-out, sccMapArmyMarch .44s .34s ease-in-out infinite;
}
.unit-arriving .map-unit-core { animation: sccMapArrive .42s ease-out 1; }
.army-marker.divine-fleet-marker.unit-arriving .divine-fleet-map-unit-image { animation: sccMapArriveFleet .5s ease-out 1; }

@keyframes sccMapWalkBob {
  0%,100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes sccMapArmyMarch {
  0%,100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes sccMapDivineFloat {
  0%,100% { transform: translateY(1px) scale(1); filter: drop-shadow(0 0 2px rgba(245,220,130,.35)); }
  50% { transform: translateY(-4px) scale(1.04); filter: drop-shadow(0 0 8px rgba(245,220,130,.58)); }
}
@keyframes sccMapFleetGlide {
  0%,100% { transform: scaleX(var(--scc-facing,1)) translateY(1px) rotate(-.5deg); }
  50% { transform: scaleX(var(--scc-facing,1)) translateY(-3px) rotate(.5deg); }
}
@keyframes sccMapTrailPulse {
  0% { opacity: .64; transform: scale(.65); }
  100% { opacity: 0; transform: scale(1.45); }
}
@keyframes sccMapDepart {
  0% { opacity: .28; transform: translateY(3px) scale(.78); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes sccMapArrive {
  0% { opacity: .65; transform: translateY(-2px) scale(1.15); }
  55% { transform: translateY(1px) scale(.92); }
  100% { opacity: 1; transform: none; }
}
@keyframes sccMapArriveFleet {
  0% { opacity: .62; filter: brightness(1.45); }
  100% { opacity: 1; filter: none; }
}

/* Keep the motion system cheap on low-detail map views. */
.ui-overhaul-v1 .map-layer[data-lod="overview"] .map-unit-motion,
.ui-overhaul-v1 .map-layer[data-lod="standard"] .map-unit-motion:not(.major-army-marker):not(.me) {
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  .map-unit-motion.unit-position-tween { transition: none !important; }
  .map-unit-motion .map-unit-core,
  .map-unit-motion::before,
  .map-unit-motion .divine-fleet-map-unit-image { animation: none !important; }
  .map-unit-heading { display: none !important; }
}

/* α v0.23p6 — LEGION SPRITE / MOTION ASSETS
   Project-original SCC legion atlas wired to ordinary land armies. */
.army-marker.legion-sprite-marker {
  width: 72px;
  height: 72px;
  border: 0;
  border-radius: 14px;
  background: transparent;
  color: transparent;
  box-shadow: none;
  overflow: visible;
  isolation: isolate;
}
.army-marker.legion-sprite-marker.minor-army-marker {
  width: 58px;
  height: 58px;
}
.army-marker.legion-sprite-marker::after {
  content: "";
  position: absolute;
  z-index: 0;
  left: 13%;
  right: 13%;
  bottom: 2px;
  height: 22%;
  border: 1px solid color-mix(in srgb, var(--army-faction-color,#f17862) 72%, #f1d67b 28%);
  border-radius: 50%;
  background: radial-gradient(ellipse at center,
    color-mix(in srgb, var(--army-faction-color,#f17862) 22%, transparent),
    transparent 68%);
  box-shadow: 0 0 9px color-mix(in srgb, var(--army-faction-color,#f17862) 32%, transparent);
  opacity: .9;
  pointer-events: none;
}
.army-legion-sprite {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  background-image: url("assets/world/army/royal_legion_march_4x4.png");
  background-repeat: no-repeat;
  background-size: 400% 400%;
  background-position-x: 0%;
  background-position-y: 0%;
  filter: drop-shadow(0 4px 4px rgba(0,0,0,.72));
  transform-origin: 50% 82%;
  pointer-events: none;
}
.minor-army-marker .army-legion-sprite { inset: 0; }
.dir-right .army-legion-sprite { background-position-y: 0%; }
.dir-left .army-legion-sprite { background-position-y: 33.333333%; }
.dir-up .army-legion-sprite { background-position-y: 66.666667%; }
.dir-down .army-legion-sprite { background-position-y: 100%; }

/* Default/unknown direction uses the right-facing row. */
.legion-sprite-marker:not(.dir-left):not(.dir-up):not(.dir-down) .army-legion-sprite { background-position-y: 0%; }

.army-state-idle .army-legion-sprite {
  animation: sccArmySpriteIdle 2.4s ease-in-out infinite;
}
.army-state-defend .army-legion-sprite {
  background-position-x: 33.333333%;
  animation: sccArmySpriteDefend 1.55s ease-in-out infinite;
}
.army-state-siege .army-legion-sprite {
  background-position-x: 100%;
  animation: sccArmySpriteSiege .92s ease-in-out infinite;
}
.legion-sprite-marker.map-unit-moving .army-legion-sprite {
  animation:
    sccArmySpriteMarchFrames var(--army-march-cycle,840ms) linear infinite,
    sccArmySpriteBob 280ms ease-in-out infinite;
}
.legion-sprite-marker.unit-arriving:not(.map-unit-moving) .army-legion-sprite {
  animation: sccArmySpriteArrive 220ms ease-out 1;
}

.army-legion-count {
  position: absolute;
  z-index: 5;
  right: -9px;
  bottom: -6px;
  min-width: 24px;
  height: 17px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--army-faction-color,#f17862) 70%, #f3d77b 30%);
  border-radius: 999px;
  background: rgba(3,15,24,.94);
  box-shadow: 0 2px 7px rgba(0,0,0,.76);
  color: #f2df9a;
  font-size: 8px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -.02em;
  pointer-events: none;
}
.minor-army-marker .army-legion-count { right: -8px; bottom: -7px; font-size: 7px; }

.army-legion-dust {
  position: absolute;
  z-index: 1;
  width: 34px;
  height: 34px;
  left: -12px;
  bottom: -2px;
  display: block;
  background-image: url("assets/world/army/royal_legion_dust_8x1.png");
  background-repeat: no-repeat;
  background-size: 800% 100%;
  background-position: 0 0;
  opacity: .78;
  filter: drop-shadow(0 2px 2px rgba(0,0,0,.35));
  animation: sccArmyDustFrames 720ms linear infinite;
  pointer-events: none;
}
.legion-sprite-marker.dir-left .army-legion-dust { left: auto; right: -12px; }
.legion-sprite-marker.dir-up .army-legion-dust { left: 50%; right: auto; bottom: -15px; margin-left: -17px; transform: rotate(90deg); }
.legion-sprite-marker.dir-down .army-legion-dust { left: 50%; right: auto; top: -14px; bottom: auto; margin-left: -17px; transform: rotate(90deg); }

/* The sprite atlas already contains the march/body motion; suppress the p5 procedural land-army trail/bob. */
.army-marker.legion-sprite-marker.map-unit-moving::before { display: none; }
.army-marker.legion-sprite-marker.map-unit-moving .map-unit-core { animation: none; }

.ui-overhaul-v1 .army-marker.legion-sprite-marker.selected-army {
  width: 84px;
  height: 84px;
  outline: 0;
  box-shadow: none !important;
  z-index: 40 !important;
}
.ui-overhaul-v1 .army-marker.legion-sprite-marker.selected-army::after {
  left: 7%; right: 7%; bottom: -1px; height: 27%;
  border-width: 2px;
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--army-faction-color,#f17862) 18%, transparent),
    0 0 19px color-mix(in srgb, var(--army-faction-color,#f17862) 48%, transparent);
}
.ui-overhaul-v1[data-map-mode="military"] .army-marker.legion-sprite-marker {
  filter: drop-shadow(0 0 8px color-mix(in srgb,var(--army-faction-color,#f17862) 36%,transparent));
}

@keyframes sccArmySpriteMarchFrames {
  0%,16.65% { background-position-x: 0%; }
  16.67%,33.32% { background-position-x: 33.333333%; }
  33.34%,49.99% { background-position-x: 66.666667%; }
  50%,66.65% { background-position-x: 100%; }
  66.67%,83.32% { background-position-x: 66.666667%; }
  83.34%,100% { background-position-x: 33.333333%; }
}
@keyframes sccArmySpriteBob {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sccArmySpriteIdle {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.01); }
}
@keyframes sccArmySpriteDefend {
  0%,100% { transform: translateY(0) scale(1); filter: drop-shadow(0 4px 4px rgba(0,0,0,.72)); }
  50% { transform: translateY(-1px) scale(1.015); filter: drop-shadow(0 4px 6px rgba(0,0,0,.78)); }
}
@keyframes sccArmySpriteSiege {
  0%,100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(1px) translateY(-1px); }
}
@keyframes sccArmySpriteArrive {
  0% { opacity: .7; transform: translateY(-4px) scale(1.08); }
  55% { opacity: 1; transform: translateY(1px) scale(.96); }
  100% { opacity: 1; transform: none; }
}
@keyframes sccArmyDustFrames {
  0%,12.49% { background-position-x: 0%; }
  12.5%,24.99% { background-position-x: 14.285714%; }
  25%,37.49% { background-position-x: 28.571429%; }
  37.5%,49.99% { background-position-x: 42.857143%; }
  50%,62.49% { background-position-x: 57.142857%; }
  62.5%,74.99% { background-position-x: 71.428571%; }
  75%,87.49% { background-position-x: 85.714286%; }
  87.5%,100% { background-position-x: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .army-state-idle .army-legion-sprite,
  .army-state-defend .army-legion-sprite,
  .army-state-siege .army-legion-sprite,
  .legion-sprite-marker.map-unit-moving .army-legion-sprite,
  .legion-sprite-marker.unit-arriving .army-legion-sprite,
  .army-legion-dust { animation: none !important; }
  .army-legion-dust { display: none !important; }
}


/* α v0.23q AI PERSONALITY / INTERNAL CONFLICT / LIFE EXPERIENCE */
.personality-preview{margin:.55rem 0;padding:.55rem .65rem;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.035);display:flex;gap:.4rem;flex-wrap:wrap;align-items:center}
.personality-preview small{flex-basis:100%;opacity:.82;line-height:1.45}
.personality-detail{margin-top:.55rem;padding:.55rem .65rem;border:1px solid rgba(255,255,255,.12);border-radius:.55rem;background:rgba(0,0,0,.12)}
.personality-detail p{margin:0 0 .35rem}.personality-detail small{display:block;margin:.2rem 0;line-height:1.45}

/* v0.23q3 additive admin/defense controls */
.admin-person-search { display:grid; gap:4px; margin:6px 0; }
.admin-person-search small { color:#b3c5cc; font-size:11px; }
.defense-totals { display:flex; flex-wrap:wrap; gap:12px; padding:10px; background:#14272c; }
.defense-table { overflow-x:auto; margin:12px 0; }
.defense-table table { border-collapse:collapse; width:100%; white-space:nowrap; }
.defense-table th,.defense-table td { padding:7px 9px; border-bottom:1px solid #34505a; text-align:right; }
.defense-table th:first-child,.defense-table td:first-child { text-align:left; }
.defense-error { color:#ffaaa0; }
.defense-map-badge { position:absolute; right:-6px; top:-10px; font-size:12px; line-height:16px; border-radius:50%; background:#10242e; color:#f1d785; padding:0 2px; pointer-events:none; }
.house-lineage { display:grid; gap:4px; padding:8px 0; font-size:12px; }
.house-crest { width:58px; height:70px; flex:none; }
.branch-tabs,.branch-admin-actions { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0; }
.branch-tabs [aria-selected="true"] { color:#14252b; background:#d7bc7b; }
.branch-house-card { display:flex; gap:14px; border:1px solid #36505c; padding:14px; margin:8px 0; background:#142329; }
.branch-house-card small { display:block; color:#b9c8cc; }
.branch-house-card p { margin:6px 0; }
.house-branch-panel details { margin:12px 0; border-top:1px solid #344954; padding-top:10px; }
.house-branch-panel summary { cursor:pointer; color:#e0c992; padding:6px 0; }
.house-branch-panel [data-message] { color:#ffb9a0; }
/* 0.23q4 World Chronicle */
.chronicle-admin{min-width:0}.chronicle-admin pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:28rem;overflow:auto}.chronicle-admin details{margin:1rem 0}.chronicle-admin select[multiple]{min-height:8rem}.chronicle-admin input,.chronicle-admin select{max-width:100%}.enchan-council{display:flex;align-items:center;gap:1rem}.enchan-council img{object-fit:contain;border-radius:16px;flex-shrink:0}.chronicle-admin .danger{border-color:#df756a;background:#652822;margin:1rem 0}.chronicle-admin code{overflow-wrap:anywhere}@media(max-width:600px){.enchan-council{align-items:flex-start;flex-direction:column}.chronicle-admin .form-two{grid-template-columns:1fr}.chronicle-admin select{width:100%}}

.enchan-map-marker{position:absolute;z-index:8;pointer-events:none}.enchan-map-marker img{width:52px;height:52px;object-fit:contain;border-radius:50%;box-shadow:0 0 8px #bfa8ff}.chronicle-ruin{filter:grayscale(1);opacity:.65}

.enchan-sky-council{position:fixed;right:16px;bottom:58px;z-index:22;background:#0b2030;border:1px solid #d4bc70;border-radius:8px;padding:10px;max-width:min(340px,85vw);max-height:55vh;overflow:auto}.enchan-sky-council p{font-size:13px}

/* Enchan 2D rig: stable host and independently updated council transcript. */
.enchan-rig-host{position:relative;width:240px;max-width:100%;aspect-ratio:1;flex:0 0 auto;overflow:hidden;contain:layout paint;isolation:isolate}
.enchan-rig-host canvas,.enchan-rig-host svg{display:block;width:100%;height:100%;object-fit:contain}
.enchan-council-stage{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0}
.enchan-council-stage .enchan-rig-host{width:clamp(156px,21vw,220px);flex-shrink:1}
.enchan-council-neighbor{display:flex;flex:0 0 68px;flex-direction:column;align-items:center;gap:7px;color:#e8d69c;text-align:center}
.enchan-council-neighbor>span{display:grid;place-items:center;width:42px;height:42px;border:1px solid #8576a0;border-radius:50%;background:radial-gradient(circle,#3d3152,#122534);font-size:24px}
.enchan-council-neighbor small{font-size:10px;color:#a8bacb}
.enchan-sky-council>summary{cursor:pointer;color:#eddaa9;font-weight:700;min-height:28px}
.enchan-sky-council[open]{width:min(340px,calc(100vw - 28px));max-width:none;box-sizing:border-box;padding:12px}
.enchan-sky-council:not([open]){overflow:hidden}
.enchan-council-log{max-height:19vh;overflow:auto;overscroll-behavior:contain;border-top:1px solid #345064;scrollbar-width:thin}
.enchan-council-log p{line-height:1.6;overflow-wrap:anywhere}
.enchan-rig-host[data-rig-error]{display:grid;place-items:center;color:#c6bacb;font-size:13px;text-align:center}
@media(max-width:600px){.enchan-sky-council{right:10px;bottom:65px}.enchan-council-stage .enchan-rig-host{width:180px}.enchan-council .enchan-rig-host{align-self:center}}

.enchan-council-neighbor>img{display:block;width:52px;height:68px;object-fit:cover;object-position:top;border:1px solid #8576a0;border-radius:10px}.enchan-council-neighbor>span[hidden]{display:none}

/* Navigation tile: shares the command dock's responsive button styling. */
.command-dock a.restoration-dock-button {
  box-sizing: border-box;
  color: #dbe5ea;
  font-family: inherit;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.35;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.command-dock a.restoration-dock-button:visited { color: #dbe5ea; }
.command-dock a.restoration-dock-button:focus-visible {
  outline: 2px solid #f3d87a;
  outline-offset: 3px;
}
@media (prefers-reduced-motion: reduce) {
  .command-dock a.restoration-dock-button { transition: none; }
}
