* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

body {
  background-color: #0f0d0b;
  color: #f5ebe0;
  height: 100vh;
  overflow: hidden;
  user-select: none;
}

.game-container {
  display: flex;
  height: 100vh;
  width: 100vw;
}

/* OKNO LOGOWANIA I USTAWIEŃ */
#auth-modal {
  position: fixed;
  top: 0; 
  left: 0; 
  width: 100vw; 
  height: 100vh;
  background: rgba(5, 4, 3, 0.96);
  backdrop-filter: blur(8px);
  display: flex !important;
  align-items: center;
  justify-content: center;
  z-index: 99999;
}

#auth-modal.hidden-modal {
  display: none !important;
  pointer-events: none !important;
}

#settings-modal, #cleaning-modal, #epigraphy-animation-modal {
  position: fixed;
  top: 0; 
  left: 0; 
  width: 100vw; 
  height: 100vh;
  background: rgba(0, 0, 0, 0.9);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.auth-box-modern {
  background: linear-gradient(145deg, #1f1812 0%, #120e0a 100%);
  border: 2px solid #e5a963;
  border-radius: 16px;
  padding: 30px;
  text-align: center;
  max-width: 440px;
  width: 90%;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.8), 0 0 20px rgba(229, 169, 99, 0.2);
}

.auth-header-decor {
  font-size: 2.8rem;
  margin-bottom: 5px;
  animation: floatDecor 3s ease-in-out infinite alternate;
}

@keyframes floatDecor {
  0% { transform: translateY(0); }
  100% { transform: translateY(-6px); }
}

.auth-box-modern h2 {
  color: #e5a963;
  font-size: 1.6rem;
  margin-bottom: 4px;
}

.auth-subtitle {
  font-size: 0.82rem;
  color: #baa490;
  margin-bottom: 20px;
}

.auth-form-group {
  margin-bottom: 16px;
  text-align: left;
}

.auth-form-group label {
  font-size: 0.78rem;
  color: #f7d070;
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.auth-form-group input[type="text"] {
  width: 100%;
  padding: 12px;
  background: #0d0a08;
  border: 1.5px solid #4a3826;
  color: #f5ebe0;
  border-radius: 8px;
  font-size: 0.95rem;
  transition: border-color 0.2s;
}

.auth-form-group input[type="text"]:focus {
  border-color: #e5a963;
  outline: none;
}

.avatar-selection-grid {
  display: flex;
  gap: 12px;
  justify-content: center;
}

.avatar-select-btn {
  font-size: 1.8rem;
  padding: 8px 14px;
  background: #14100c;
  border: 2px solid #4a3826;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.avatar-select-btn:hover {
  border-color: #e5a963;
  transform: translateY(-2px);
}

.avatar-select-btn.active {
  border-color: #e5a963 !important;
  background: #312317 !important;
  box-shadow: 0 0 12px rgba(229, 169, 99, 0.4);
}

.auth-methods-row {
  display: flex;
  gap: 8px;
}

.method-btn {
  flex: 1;
  padding: 8px 6px;
  background: #14100c;
  border: 1px solid #4a3826;
  border-radius: 6px;
  color: #baa490;
  font-size: 0.75rem;
  font-weight: bold;
  cursor: pointer;
  transition: all 0.2s;
}

.method-btn.active {
  background: #312317;
  border-color: #e5a963;
  color: #f7d070;
}

.enter-game-btn {
  width: 100%;
  padding: 12px;
  background: linear-gradient(135deg, #e5a963 0%, #c48b48 100%);
  color: #120d09;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(229, 169, 99, 0.4);
  transition: transform 0.15s, filter 0.15s;
  margin-top: 10px;
}

.enter-game-btn:hover {
  transform: scale(1.02);
  filter: brightness(1.1);
}

.cleaning-content {
  background: #1a1510;
  border: 2px solid #e5a963;
  border-radius: 12px;
  padding: 25px;
  text-align: center;
  max-width: 420px;
  width: 100%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.9);
  position: relative;
  z-index: 10000;
}

.settings-section {
  background: #14100c;
  border: 1px solid #3d2f20;
  border-radius: 8px;
  padding: 10px;
}

/* SIDEBAR */
.sidebar {
  width: 320px;
  background-color: #1a1510;
  border-right: 2px solid #3d3124;
  display: flex;
  flex-direction: column;
  padding: 14px;
  z-index: 10;
}

.game-logo h2 {
  color: #e5a963;
  font-size: 1.3rem;
}

.player-rank {
  font-size: 0.8rem;
  color: #9e8e7c;
}

.quick-stats {
  margin: 10px 0;
  background: #14100c;
  padding: 10px;
  border-radius: 8px;
  border: 1px solid #382c1e;
}

.energy-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.8rem;
  font-weight: bold;
  color: #f7d070;
  margin-bottom: 3px;
}

.energy-bar-bg {
  width: 100%;
  height: 10px;
  background: #2a2016;
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid #4a3824;
}

.energy-bar-fill {
  height: 100%;
  width: 100%;
  background: linear-gradient(90deg, #e5a963, #38ef7d);
  transition: width 0.3s ease;
}

.energy-regen-hint {
  font-size: 0.7rem;
  color: #8c7f70;
  display: block;
  margin: 2px 0 6px 0;
}

.xp-bg { border-color: #2b4566; }
.xp-fill { background: linear-gradient(90deg, #4bcffa, #0be881); }

.resources-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 5px;
  margin-top: 8px;
  background: #201811;
  padding: 6px 8px;
  border-radius: 6px;
}

.res-item {
  font-size: 0.8rem;
  font-weight: 500;
}

/* ROZWIJANY MAGAZYN */
.sidebar-storage-box {
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
}

.storage-toggle-btn {
  background: linear-gradient(180deg, #3d2c1e 0%, #291c13 100%);
  border: 1.5px solid #6b5037;
  color: #f7d070;
  padding: 8px 10px;
  font-size: 0.82rem;
  font-weight: bold;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.sidebar-storage-dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-out;
  background: #14100c;
  border-radius: 0 0 6px 6px;
}

.sidebar-storage-dropdown.open {
  max-height: 220px;
  padding: 8px;
  border: 1px solid #4a3826;
  border-top: none;
  overflow-y: auto;
}

.storage-hint {
  font-size: 0.65rem;
  color: #a89a8c;
  margin-bottom: 6px;
  text-align: center;
}

.storage-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
}

.storage-card {
  background: #1e1711;
  border: 1px solid #453322;
  padding: 6px;
  border-radius: 5px;
  text-align: center;
  cursor: pointer;
}

.storage-card .art-status-badge {
  font-size: 0.55rem;
  padding: 1px 3px;
  border-radius: 3px;
  display: inline-block;
  margin-top: 2px;
}
.badge-dirty { background: #5c4028; color: #ffbe76; }
.badge-cleaned { background: #1b4d3e; color: #7bed9f; }
.badge-analyzed { background: #1e3799; color: #70a1ff; }

.menu-nav {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-grow: 1;
}

.nav-btn {
  background: #261e16;
  border: 1px solid #453627;
  color: #f5ebe0;
  padding: 9px 12px;
  font-size: 0.88rem;
  text-align: left;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.nav-btn:hover {
  background: #382c20;
  border-color: #e5a963;
  transform: translateX(3px);
}

.nav-btn.active {
  background: #e5a963;
  color: #12100e;
  font-weight: bold;
}

.autosave-indicator {
  font-size: 0.7rem;
  color: #72a36b;
  text-align: center;
}

/* MAIN CONTENT */
.main-content {
  flex-grow: 1;
  padding: 18px 22px;
  overflow-y: auto;
  background: #14110d;
}

.tab-panel { display: none; }
.tab-panel.active { display: block; animation: fadeIn 0.2s ease; }

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.section-header, .location-header, .museum-header, .skills-header, .city-header {
  background: #1e1711;
  padding: 12px 18px;
  border-radius: 8px;
  border: 1px solid #3d2f20;
  margin-bottom: 16px;
}

/* ==========================================
   WYKOPALISKA 
   ========================================== */
.dig-area-container { display: flex; gap: 20px; }

.dig-site-map-viewport {
  width: 480px;
  height: 480px;
  background-image: linear-gradient(rgba(33, 20, 10, 0.18), rgba(10, 6, 3, 0.42)), url('nienaruszona stuktura.png');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
  border: 3px solid #57412e;
  padding: 10px;
  box-shadow: inset 0 0 25px rgba(0,0,0,0.8), 0 8px 25px rgba(0,0,0,0.9);
  position: relative;
}

.grid-board-overlay {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(4, 1fr);
  gap: 8px;
  width: 100%;
  height: 100%;
}

.tile {
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  padding-bottom: 6px;
  cursor: pointer;
  position: relative;
  border: 1.5px solid rgba(229, 169, 99, 0.25);
  background-color: #38240f;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  transition: transform 0.15s, filter 0.2s;
  overflow: hidden;
  isolation: isolate;
}

.tile:hover:not(.excavating):not(.completed) {
  transform: scale(1.03);
  border-color: #e5a963;
  box-shadow: 0 0 10px rgba(229, 169, 99, 0.4);
}

.layer-0 { background-image: url('nienaruszona stuktura.png'); background-color: #ad8a52; color: #fff8f0; }
.layer-1 { background-image: url('zwir-zwietrzelina.png'); background-color: #85663b; border-color: #634928; color: #ebd4be; }
.layer-2 { background-image: url('glina-piaskowiec.png'); background-color: #5c4122; border-color: #422e17; color: #d6ba9f; }
.layer-3 { background-image: url('formacja skalna.png'); background-color: #38240f; border-color: #291a0a; color: #baa084; }

.tile.completed { 
  background-image: linear-gradient(rgba(12, 8, 4, 0.22), rgba(12, 8, 4, 0.52)), url('formacja skalna.png') !important;
  background-position: center !important;
  background-size: cover !important;
  border-color: #2ed573;
  box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.76), 0 0 10px rgba(46, 213, 115, 0.22);
}

.tile-artifact-final {
  width: 100%; height: 100%;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  position: relative; z-index: 2;
}

.excavated-art-img, .excavated-resource-img {
  width: 55px; height: 55px; object-fit: contain;
  filter: drop-shadow(0 0 10px rgba(229, 169, 99, 0.9));
  animation: artFoundBounce 2.5s infinite alternate ease-in-out;
}

.excavated-resource-img { filter: drop-shadow(0 0 9px rgba(103, 220, 173, 0.9)); }
.tile.resource-find { border-color: #6ddeaa; }

@keyframes artFoundBounce {
  0% { transform: translateY(0); }
  100% { transform: translateY(-4px); }
}

.tile.excavating { 
  border: 2px solid #f5b700; 
  box-shadow: 0 0 14px rgba(245, 183, 0, 0.6); 
  cursor: wait; 
  animation: pulseExcavate 0.4s infinite alternate ease-in-out;
}

@keyframes pulseExcavate {
  0% { transform: scale(1); filter: brightness(1); }
  100% { transform: scale(1.05); filter: brightness(1.25); }
}

.tile-depth { 
  font-size: 0.68rem; font-weight: bold; text-align: center; 
  text-shadow: 0 1px 3px rgba(0,0,0,0.9);
  background: rgba(15, 12, 9, 0.65);
  padding: 1px 5px; border-radius: 4px;
  position: relative; z-index: 3;
}

.tile-reward-label { margin-top: -2px; color: #fff2d4; }

.tile-progress {
  position: absolute; left: 7px; right: 7px; bottom: 5px; height: 4px;
  display: flex; gap: 3px; z-index: 4;
}
.tile-progress i {
  flex: 1; border-radius: 4px; background: rgba(22, 14, 7, 0.7);
  border: 1px solid rgba(255, 225, 170, 0.23);
}
.tile-progress i.done { background: linear-gradient(90deg, #d4862f, #f8d17d); border-color: #ffd78f; }

.tile.has-clue::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: radial-gradient(circle at 50% 38%, rgba(247, 206, 113, 0.25), transparent 48%);
  animation: digClueGlow 1.8s infinite alternate ease-in-out;
}
@keyframes digClueGlow { from { opacity: 0.35; } to { opacity: 1; } }

.dig-inspector {
  flex-grow: 1; background: #1a1510;
  border: 1px solid #3d2f20; border-radius: 10px; padding: 16px;
}
.dig-inspector h2 { color: #e5a963; margin-bottom: 6px; font-size: 1.1rem; }
.inspector-box { font-size: 0.88rem; color: #d1c2b0; margin-bottom: 12px; }

.brush-status {
  background: #120e0a; padding: 10px; border-radius: 8px;
  border: 1px solid #3f3120; text-align: center; margin-bottom: 12px;
}

.brush-icon-anim {
  font-size: 2rem; display: inline-block;
  animation: brushSweep 0.4s infinite alternate ease-in-out;
  transform-origin: bottom right;
}

@keyframes brushSweep {
  0% { transform: rotate(-20deg) translateX(-4px); }
  100% { transform: rotate(20deg) translateX(4px); }
}

.progress-container {
  width: 100%; height: 10px; background: #241d15;
  border-radius: 5px; overflow: hidden; margin: 6px 0 3px 0;
}
.progress-bar { width: 0%; height: 100%; background: linear-gradient(90deg, #e5a963, #f5b700); }

.legend { margin-top: 15px; background: #120e0a; padding: 10px; border-radius: 6px; font-size: 0.76rem; }
.legend h3 { font-size: 0.8rem; color: #e5a963; margin-bottom: 4px; }
.legend ul { list-style: none; }
.legend li { margin-bottom: 3px; display: flex; align-items: center; gap: 6px; }
.dig-reward-key { display: grid; grid-template-columns: repeat(2, 1fr); gap: 5px; margin-top: 9px; padding-top: 8px; border-top: 1px solid rgba(229, 169, 99, 0.18); }
.dig-reward-key span { display: flex; align-items: center; gap: 4px; color: #d8c5aa; font-size: .68rem; }
.dig-reward-key img { width: 20px; height: 20px; object-fit: contain; filter: drop-shadow(0 1px 2px #000); }
.dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.dot.l0 { background: #ad8a52; }
.dot.l1 { background: #85663b; }
.dot.l2 { background: #5c4122; }
.dot.l3 { background: #38240f; }

/* ==========================================
   BAZA BADAWCZA (NAPRAWIONA IZOMETRIA I PROPORCJE)
   ========================================== */
.city-shop-btn { background: #e5a963; color: #120d09; border: none; padding: 8px 14px; font-weight: bold; border-radius: 6px; cursor: pointer; transition: 0.2s; }
.city-shop-btn:hover { filter: brightness(1.1); }

.city-shop-drawer {
  max-height: 0; overflow: hidden; transition: max-height 0.35s ease-out;
  background: #17120d; border: 1px solid #4a3826; border-radius: 8px; margin-bottom: 14px;
}
.city-shop-drawer.open {
  max-height: 350px; padding: 14px; overflow-y: auto;
}
.shop-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }

.camp-map-viewport {
  position: relative;
  width: 100%;
  height: 560px;
  background: linear-gradient(rgba(18, 14, 10, 0.75), rgba(10, 8, 6, 0.9)), url('nienaruszona stuktura.png');
  background-size: cover;
  background-position: center;
  border: 3px solid #4a3826;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: inset 0 0 60px rgba(0,0,0,1);
  display: flex;
  align-items: center;
  justify-content: center;
}

.isometric-layer {
  position: relative;
  width: 680px;
  height: 440px;
  transform: rotateX(45deg) rotateZ(-30deg); /* Łagodniejszy kąt izometrii, aby budynki nie były spłaszczone */
  transform-style: preserve-3d;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 30px;
}

.plot-base {
  background: rgba(61, 44, 30, 0.45);
  border: 2px dashed rgba(229, 169, 99, 0.65);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.25s ease;
  box-shadow: inset 0 0 25px rgba(0,0,0,0.8), 0 10px 20px rgba(0,0,0,0.5);
  position: relative;
}

.plot-base:hover {
  background: rgba(229, 169, 99, 0.25);
  border-color: #f5b700;
  box-shadow: 0 0 30px rgba(245, 183, 0, 0.5), inset 0 0 15px rgba(245, 183, 0, 0.3);
  transform: translateZ(5px);
}

.plot-empty-hint {
  transform: rotateZ(30deg) rotateX(-45deg);
  font-size: 2.8rem;
  color: #e5a963;
  pointer-events: none;
  text-shadow: 0 4px 10px rgba(0,0,0,0.9);
}

/* Postawiony budynek na działce (Większy i nie rozciągnięty) */
.plot-building-wrapper {
  position: absolute;
  bottom: 30%;
  left: 50%;
  transform: translate(-50%, 0) rotateZ(30deg) rotateX(-45deg); /* Idealna kontr-rotacja pionowa */
  transform-origin: bottom center;
  display: flex;
  flex-direction: column;
  align-items: center;
  pointer-events: none;
  z-index: 10;
}

.plot-building-wrapper img {
  height: 160px; /* Wyraźne, duże stanowiska */
  width: auto;
  max-width: 190px;
  object-fit: contain; /* Blokuje rozciąganie/zniekształcenia grafiki! */
  filter: drop-shadow(0 15px 12px rgba(0,0,0,0.95));
}

.plot-building-label {
  background: rgba(18, 13, 8, 0.95);
  color: #f7d070;
  padding: 4px 10px;
  border: 1.5px solid #e5a963;
  border-radius: 6px;
  font-size: 0.75rem;
  white-space: nowrap;
  font-weight: bold;
  margin-bottom: 4px;
  z-index: 12;
  box-shadow: 0 4px 12px rgba(0,0,0,0.9);
}
/* GABINET 2D */
.room-viewport {
  position: relative;
  width: 100%;
  height: 480px;
  background: #1a1510;
  border: 3px solid #4a3826;
  border-radius: 12px;
  overflow: hidden;
}
.room-wall {
  position: absolute;
  top: 0; width: 100%; height: 65%;
  background: linear-gradient(to bottom, #2a221a, #1a1510);
  border-bottom: 2px solid #0f0d0b;
}
.room-floor-2d {
  position: absolute;
  bottom: 0; width: 100%; height: 35%;
  background: #3d2f22;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.room-content-layer {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
}
.placed-item {
  position: absolute;
  transform: translate(-50%, -100%);
  cursor: pointer;
  z-index: 10;
  transition: filter 0.2s;
}
.placed-item img {
  max-height: 120px;
  filter: drop-shadow(0 10px 15px rgba(0,0,0,0.8));
}
.placed-item.dragging {
  opacity: 0.8;
  filter: brightness(1.3) sepia(0.5);
  cursor: move;
  z-index: 100;
}

/* Działki i wyposażenie gabinetu */
.room-content-layer.decorating { background: rgba(229, 169, 99, 0.05); }
.decor-active { background: #2ed573 !important; color: #101710 !important; }
.room-plot {
  position: absolute; width: 19%; height: 24%; transform: translate(-50%, -50%);
  border: 1px dashed rgba(229, 169, 99, 0.38); border-radius: 10px; background: rgba(17, 12, 8, 0.08);
  color: #e5a963; cursor: pointer; display: flex; flex-direction: column; align-items: center; justify-content: center;
  transition: 0.2s; font: inherit; z-index: 4;
}
.room-content-layer.decorating .room-plot:hover, .room-plot.occupied:hover { border-color: #f7d070; background: rgba(229, 169, 99, 0.16); }
.room-plot.occupied { border-style: solid; border-color: rgba(229, 169, 99, 0.2); background: transparent; }
.room-plot-plus { font-size: 1.65rem; line-height: 1; }
.room-plot > span:last-child { font-size: 0.65rem; font-weight: bold; }
.room-item { display: flex; flex-direction: column; align-items: center; pointer-events: none; max-width: 100%; }
.room-item img { max-height: 78px; max-width: 126px; object-fit: contain; filter: drop-shadow(0 8px 8px rgba(0,0,0,.75)); }
.room-decor-icon { font-size: 3rem; filter: drop-shadow(0 6px 6px rgba(0,0,0,.65)); }
.room-item-label { max-width: 125px; padding: 2px 5px; border-radius: 4px; background: rgba(18,13,8,.82); color: #f7d070; font-size: .6rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.room-item.skin-bronze img { filter: sepia(.8) saturate(1.75) hue-rotate(340deg) drop-shadow(0 8px 8px rgba(0,0,0,.75)); }
.room-item.skin-obsidian img { filter: grayscale(.85) contrast(1.3) brightness(.65) drop-shadow(0 0 8px #7057a8); }
.room-placement-options { display: flex; gap: 8px; flex-wrap: wrap; }
.skin-picker, .showcase-skin-control { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; color: #baa490; font-size: .78rem; }
.skin-picker select, .showcase-skin-control select { background: #201811; color: #f7d070; border: 1px solid #57412e; border-radius: 5px; padding: 4px; }
.skin-hint { color: #70a1ff; font-size: .75rem; margin-top: 9px; }

/* RADAR */
.radar-box { margin-bottom: 15px; text-align: center; }
.radar-btn {
  background: linear-gradient(135deg, #1e3799, #0984e3);
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 20px;
  font-weight: bold;
  cursor: pointer;
  box-shadow: 0 4px 15px rgba(30, 55, 153, 0.4);
  width: 100%;
  transition: transform 0.2s;
}
.radar-btn:hover { transform: scale(1.02); }
.tile.radar-detected {
  animation: radarPulse 1s infinite alternate;
}
.tile.radar-detected::after { content: attr(data-radar-depth); position: absolute; bottom: 3px; left: 3px; right: 3px; color: #c9f3ff; font-size: .55rem; text-shadow: 0 1px 2px #000; }
@keyframes radarPulse {
  from { filter: brightness(1); }
  to { filter: brightness(1.8) drop-shadow(0 0 10px #0984e3); }
}

/* DRZEWKO WEB */
.skill-tree-web {
  width: 100%;
  height: 550px;
  background: radial-gradient(circle, #1a1510 0%, #0d0a07 100%);
  position: relative;
  overflow: hidden;
  border: 2px solid #4a3826;
  border-radius: 12px;
}
.skill-node {
  position: absolute;
  width: 90px;
  height: 90px;
  background: #201811;
  border: 2px solid #57412e;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  text-align: center;
  cursor: pointer;
  z-index: 5;
  transform: translate(-50%, -50%);
  transition: all 0.3s;
  padding: 5px;
}
.skill-node.unlocked { border-color: #2ed573; box-shadow: 0 0 15px rgba(46, 213, 115, 0.4); background: #132418; }
.skill-node.available { border-color: #e5a963; }
.skill-node.locked { opacity: 0.5; filter: grayscale(1); }
.skill-line {
  position: absolute;
  background: #3d2f22;
  height: 2px;
  transform-origin: left center;
  z-index: 1;
}

/* MUZEUM FIX */
.museum-vertical-hall {
  width: 100%; 
  height: 640px;
  background-image: var(--museum-background, url('tlomuzeum.webp')) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border: 3px solid #4a3826; 
  border-radius: 12px; 
  padding: 20px;
  overflow-y: auto;
}

/* STÓŁ EPIGRAFIKA & DATOWANIE */
.epigraphy-table-view, .dating-lab-view {
  background: #14100c; padding: 12px; border-radius: 8px; border: 1px solid #4a3826;
}

.epigraphy-table-board {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px;
  background: #1f1811; padding: 14px; border-radius: 8px;
  border: 2px solid #57412e; box-shadow: inset 0 0 15px rgba(0,0,0,0.8);
}

.epigraphy-slot {
  background: #120e0a; border: 1.5px dashed #6b5037; border-radius: 8px;
  min-height: 95px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; padding: 6px; text-align: center;
}

.epigraphy-slot.filled { border: 1.5px solid #f7d070; background: #251c14; }

.mini-slot-btn {
  background: #782b2b; color: white; border: none; border-radius: 4px;
  padding: 2px 6px; font-size: 0.65rem; margin-top: 4px; cursor: pointer;
}

/* ==========================================
   MUZEUM (PRZEZROCZYSTE TŁO + ZŁOTA OTOCZKA + ROZCIĄGNIĘTE TŁO)
   ========================================== */
.museum-vertical-hall {
  width: 100%; 
  height: 640px;
  background-image: var(--museum-background, url('tlomuzeum.webp')) !important;
  background-size: 100% 100% !important; /* Rozciągnięte po całości, bez powielania! */
  background-repeat: no-repeat !important;
  background-position: center !important;
  border: 3px solid #4a3826; 
  border-radius: 12px; 
  padding: 20px;
  overflow-y: auto;
  position: relative;
}

.pedestals-vertical-grid {
  display: grid; 
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 16px; 
  width: 100%; 
}

/* Wybudowana Gablota (W pełni przezroczysta ze złotą poświatą) */
.pedestal-showcase-box {
  position: relative; 
  width: 100%; 
  height: 180px; 
  background: rgba(18, 14, 10, 0.45); /* Półprzezroczyste, widać tło sali */
  border: 1.5px solid #e5a963; /* Złota obwódka */
  border-radius: 8px;
  display: flex;
  flex-direction: column; 
  justify-content: flex-end; 
  cursor: pointer; 
  box-shadow: 0 0 15px rgba(229, 169, 99, 0.35), inset 0 0 15px rgba(0,0,0,0.5);
  backdrop-filter: blur(2px);
  transition: transform 0.2s, box-shadow 0.2s;
  overflow: visible;
}

.pedestal-showcase-box:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 25px rgba(245, 183, 0, 0.6), inset 0 0 20px rgba(245, 183, 0, 0.2);
}

/* Niewybudowana Gablota */
.pedestal-construct {
  height: 180px;
  border: 1.5px dashed rgba(229, 169, 99, 0.6);
  background: rgba(15, 11, 8, 0.45); /* Przezroczyste */
  border-radius: 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  color: #f7d070;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  backdrop-filter: blur(2px);
  cursor: pointer;
  transition: 0.2s;
}

.pedestal-construct:hover {
  background: rgba(229, 169, 99, 0.2);
  border-color: #f5b700;
  box-shadow: 0 0 18px rgba(229, 169, 99, 0.5);
}

.skill-btn { margin-top: 8px; }

.showcase-frame-container {
  position: relative; 
  width: 100%; 
  flex-grow: 1; 
  display: flex;
  align-items: center; 
  justify-content: center; 
  background: transparent !important; /* Całkowicie przezroczyste */
}

.showcase-bg-image {
  position: absolute; 
  top: 0; left: 0; width: 100%; height: 100%;
  object-fit: fill;
  pointer-events: none; 
  opacity: 0.95;
  filter: drop-shadow(0 8px 12px rgba(0,0,0,0.7));
}

.showcase-artifact-slot {
  position: absolute; 
  bottom: 35%;
  left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; justify-content: center; z-index: 5;
}

.museum-exhibit-live-img {
  width: 58px; height: 58px; object-fit: contain;
  filter: drop-shadow(0 0 14px rgba(255, 215, 0, 0.95)) drop-shadow(0 4px 8px rgba(0,0,0,0.9));
  animation: exhibitFloating3D 3.5s ease-in-out infinite alternate;
}

@keyframes exhibitFloating3D {
  0% { transform: translateY(0px) translateZ(15px) rotateY(-8deg); filter: drop-shadow(0 0 10px rgba(255, 200, 50, 0.8)); }
  100% { transform: translateY(-7px) translateZ(35px) rotateY(8deg); filter: drop-shadow(0 0 25px rgba(255, 235, 120, 1)); }
}

.empty-showcase { 
  display: flex; align-items: center; justify-content: center; 
  background: transparent !important;
}

.empty-hint {
  font-size: 0.65rem; color: #f7d070; background: rgba(15, 11, 8, 0.75);
  padding: 4px 8px; border-radius: 4px; border: 1px solid rgba(229, 169, 99, 0.5);
  z-index: 4; 
}

.prestige-tag {
  position: absolute; top: 6px; right: 6px; background: rgba(245, 183, 0, 0.95);
  color: #120d09; font-weight: bold; font-size: 0.65rem; padding: 2px 6px;
  border-radius: 4px; z-index: 7; box-shadow: 0 0 8px rgba(245, 183, 0, 0.8);
}

.pedestal-base {
  background: rgba(26, 18, 12, 0.9); 
  padding: 5px; text-align: center;
  border-top: 1px solid #e5a963; 
  border-radius: 0 0 6px 6px;
  z-index: 6;
}
.pedestal-name { font-size: 0.7rem; color: #f7d070; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: bold; }

/* MINIGRA CZYSZCZENIA 3D */
.cleaning-workspace-3d {
  position: relative; width: 260px; height: 260px; margin: 0 auto 10px auto;
  background: radial-gradient(circle, #261e16 0%, #0d0a07 100%);
  border: 2px solid #57412e; border-radius: 12px; overflow: hidden; cursor: grab;
}
.object-container-3d {
  position: absolute; width: 100%; height: 100%; transform-style: preserve-3d;
  display: flex; align-items: center; justify-content: center; isolation: isolate;
}
.cleaning-target-img-3d { width: 160px; height: 160px; object-fit: contain; transform: translateZ(15px); filter: drop-shadow(0 9px 8px rgba(0,0,0,.6)); }
.cleaning-canvas-3d { position: absolute; top: 0; left: 0; width: 260px; height: 260px; z-index: 5; transform: translateZ(20px); }
.cleaning-stats-bar { display: flex; justify-content: space-between; font-size: 0.8rem; color: #f7d070; margin-bottom: 8px; }
.cleaning-actions { display: flex; gap: 10px; justify-content: center; }
.cleaning-dust-particle { position: absolute; z-index: 8; width: var(--dust-size); height: var(--dust-size); border-radius: 50%; pointer-events: none; background: radial-gradient(circle, rgba(239,193,120,.82), rgba(125,79,37,.35) 58%, transparent 72%); filter: blur(.35px); transform: translate(-50%, -50%); animation: cleaningDustFloat .8s ease-out forwards; }
@keyframes cleaningDustFloat { from { opacity: .92; transform: translate(-50%, -50%) scale(.75); } to { opacity: 0; transform: translate(calc(-50% + var(--drift-x)), calc(-50% + var(--drift-y))) scale(1.55); } }

/* ANIMACJA ROZWIJANIA PAPIRUSU */
.papyrus-modal-content { position: relative; display: flex; justify-content: center; align-items: center; z-index: 10002; }
.scroll-unfurl-container { display: flex; align-items: center; position: relative; filter: drop-shadow(0 15px 35px rgba(0, 0, 0, 0.95)); }
.scroll-roller {
  width: 22px; height: 240px; background: linear-gradient(90deg, #3d2412 0%, #a67946 50%, #29180b 100%);
  border: 2px solid #e5a963; border-radius: 6px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.8); z-index: 3;
}
.papyrus-body {
  width: 0px; height: 200px; background: radial-gradient(ellipse at center, #eed8ae 0%, #c49a62 80%, #9e7441 100%);
  border-top: 3px solid #634320; border-bottom: 3px solid #634320; overflow: hidden;
  transition: width 0.9s cubic-bezier(0.175, 0.885, 0.32, 1.275); position: relative; display: flex; align-items: center; justify-content: center;
}
.scroll-unfurl-container.unfurled .papyrus-body { width: 360px; }
.papyrus-content-layer { width: 340px; text-align: center; opacity: 0; transform: scale(0.9); transition: opacity 0.5s ease 0.4s, transform 0.5s ease 0.4s; }
.scroll-unfurl-container.unfurled .papyrus-content-layer { opacity: 1; transform: scale(1); }
.papyrus-title { font-size: 1.1rem; color: #4a2d10; margin-bottom: 6px; font-family: Georgia, serif; }
.papyrus-glyphs { font-size: 1.3rem; letter-spacing: 4px; color: #784415; margin-bottom: 8px; animation: glyphsGlow 1.2s infinite alternate ease-in-out; }
@keyframes glyphsGlow { 0% { filter: drop-shadow(0 0 1px rgba(120, 68, 21, 0.3)); opacity: 0.8; } 100% { filter: drop-shadow(0 0 8px rgba(245, 183, 0, 0.9)); opacity: 1; transform: scale(1.05); } }
.papyrus-text { font-size: 0.78rem; font-weight: bold; color: #3b230e; margin-bottom: 12px; }
.translation-loader-bar { width: 80%; height: 8px; background: rgba(43, 24, 9, 0.3); border-radius: 4px; margin: 0 auto; overflow: hidden; border: 1px solid #634320; }
.translation-loader-fill { width: 0%; height: 100%; background: linear-gradient(90deg, #b86b1b, #f5b700); transition: width 0.2s linear; }

.runic-particles {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  pointer-events: none; overflow: hidden;
}

.magic-spark {
  position: absolute; width: 6px; height: 6px; background: #f7d070;
  border-radius: 50%; box-shadow: 0 0 10px #f5b700; animation: sparkFloat 2s infinite ease-in-out;
}

@keyframes sparkFloat {
  0% { transform: translateY(0) scale(0.6); opacity: 0; }
  50% { opacity: 1; transform: translateY(-12px) scale(1.2); }
  100% { transform: translateY(-25px) scale(0); opacity: 0; }
}

/* INNE ZAKŁADKI (SKLEP, QUESTY, DRZEWKO) */
.artifact-library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(95px, 1fr)); gap: 12px; padding: 15px; background: #17120d; border-radius: 12px; border: 2px solid #4a3826; }
.artifact-slot { width: 95px; height: 95px; background: #2a221a; border: 2px solid #57412e; border-radius: 8px; display: flex; align-items: center; justify-content: center; padding: 8px; }
.artifact-slot img { max-width: 75px; max-height: 75px; object-fit: contain; }

.skill-tree-visual-wrapper { background: #17120d; border: 2px solid #4a3826; border-radius: 12px; padding: 20px; }
.skill-tree-grid-nodes { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.rpg-skill-node { background: #201811; border: 2px solid #57412e; border-radius: 10px; padding: 16px; text-align: center; display: flex; flex-direction: column; justify-content: space-between; position: relative; }
.rpg-skill-node.unlocked { border-color: #2ed573; background: #132418; }
.rpg-skill-node.locked { opacity: 0.55; border-style: dashed; }
.rpg-skill-node h4 { color: #e5a963; font-size: 1rem; margin-bottom: 6px; }
.rpg-skill-node p { font-size: 0.78rem; color: #baa490; margin-bottom: 10px; }
.skill-cost-badge { font-size: 0.8rem; color: #f7d070; font-weight: bold; margin-bottom: 10px; }
.skill-arrow-indicator { font-size: 0.7rem; color: #70a1ff; margin-bottom: 6px; font-weight: bold; }
.skill-tree-branches { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 16px; }
.skill-branch { background: linear-gradient(145deg, rgba(53, 39, 25, .62), rgba(21, 16, 11, .9)); border: 1px solid #4a3826; border-radius: 10px; padding: 12px; }
.skill-branch h3 { color: #f7d070; font-size: .9rem; margin: 0 0 10px; }
.skill-branch .skill-tree-grid-nodes { grid-template-columns: 1fr; gap: 10px; }
.cosmetic-card { border-color: #7057a8; background: linear-gradient(145deg, #20172a, #17120d); }
.showcase-bg-image.skin-gold { filter: sepia(.85) saturate(1.85) brightness(1.16) drop-shadow(0 0 7px rgba(245,183,0,.8)); }
.showcase-bg-image.skin-jade { filter: sepia(.55) hue-rotate(85deg) saturate(1.4) drop-shadow(0 0 7px rgba(46,213,115,.72)); }

/* =========================================================
   GALERIA MUZEALNA, GABINET ŚCIENNY I NOWOCZESNY SIDEBAR
   ========================================================= */
.sidebar {
  position: relative; overflow: hidden; padding: 16px 14px 14px;
  background: linear-gradient(160deg, #21170f 0%, #15100c 50%, #0d0b09 100%);
  border-right: 1px solid rgba(229, 169, 99, .38);
  box-shadow: 10px 0 28px rgba(0,0,0,.24);
}
.sidebar::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .35; background: repeating-linear-gradient(120deg, transparent 0 18px, rgba(229,169,99,.035) 19px 20px); }
.sidebar > * { position: relative; z-index: 1; }
.sidebar-ornament { position: absolute; top: -28px; right: -12px; z-index: 0; font-size: 8rem; color: rgba(229,169,99,.08); transform: rotate(-12deg); }
.sidebar-brand { padding: 2px 3px 11px; border-bottom: 1px solid rgba(229,169,99,.22); }
.game-logo h2 { letter-spacing: .02em; text-shadow: 0 2px 12px rgba(229,169,99,.3); }
.archaeologist-card { background: linear-gradient(135deg, rgba(53,39,26,.88), rgba(20,15,11,.94)) !important; border-color: rgba(229,169,99,.38) !important; box-shadow: inset 0 1px rgba(255,242,210,.04), 0 8px 16px rgba(0,0,0,.18); }
.archaeologist-card #sidebar-avatar { background: radial-gradient(circle at 30% 25%, #54412c, #1a120c) !important; border-color: #c39154 !important; box-shadow: 0 0 0 3px rgba(229,169,99,.1); }
.quick-stats { background: rgba(13,10,8,.74); border-color: rgba(229,169,99,.2); box-shadow: inset 0 1px rgba(255,255,255,.025); }
.resources-grid { background: rgba(66,48,31,.34); border: 1px solid rgba(229,169,99,.14); gap: 6px; }
.res-item { padding: 4px 5px; border-radius: 4px; background: rgba(8,7,6,.2); }
.menu-nav { padding-top: 2px; }
.nav-btn { display: flex; align-items: center; gap: 10px; background: transparent; border: 1px solid transparent; border-left-color: rgba(229,169,99,.2); border-radius: 8px; }
.nav-btn span { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 6px; background: rgba(229,169,99,.09); font-size: .9rem; }
.nav-btn:hover { background: rgba(229,169,99,.1); border-color: rgba(229,169,99,.48); transform: translateX(2px); }
.nav-btn.active { background: linear-gradient(100deg, #dca35d, #f1c77c); color: #1b120b; box-shadow: 0 6px 16px rgba(229,169,99,.2); }
.nav-btn.active span { background: rgba(38,25,15,.16); }
.storage-toggle-btn { border-color: rgba(229,169,99,.45); box-shadow: 0 5px 12px rgba(0,0,0,.15); }

/* Gabinet: stanowiska ustawione pod ścianą, dekoracje zawieszone wyżej */
.room-viewport { height: 540px; isolation: isolate; background: #1b1510; border-color: #86613a; box-shadow: 0 15px 38px rgba(0,0,0,.4), inset 0 0 80px rgba(0,0,0,.58); }
.room-wall { height: 73%; background: linear-gradient(90deg, rgba(39,29,20,.98), rgba(62,45,29,.93) 48%, rgba(35,26,19,.98)), repeating-linear-gradient(90deg, transparent 0 112px, rgba(229,169,99,.07) 113px 115px); border-bottom: 5px solid #21160f; box-shadow: inset 0 18px 45px rgba(0,0,0,.34); }
.room-wall::before { content: ""; position: absolute; inset: 18px 7% auto; height: 2px; background: linear-gradient(90deg, transparent, #b7854a, transparent); box-shadow: 0 2px 8px rgba(0,0,0,.8); }
.room-floor-2d { height: 27%; background: repeating-linear-gradient(90deg, #2a1c13 0 52px, #20150f 53px 56px), linear-gradient(#38251a, #17100c); box-shadow: inset 0 15px 28px rgba(0,0,0,.55); }
.room-content-layer.decorating { background: linear-gradient(90deg, rgba(229,169,99,.07), transparent 16%, transparent 84%, rgba(229,169,99,.07)); }
.room-plot { border-color: transparent; background: transparent; }
.room-plot.station-slot { width: 15.2%; height: 35%; align-items: center; justify-content: flex-end; padding-bottom: 4px; border-radius: 8px 8px 3px 3px; }
.room-plot.wall-slot { width: 14%; height: 28%; align-items: center; justify-content: center; }
.room-content-layer.decorating .room-plot.station-slot { border: 1px dashed rgba(229,169,99,.68); background: linear-gradient(rgba(229,169,99,.04), rgba(15,10,7,.22)); }
.room-content-layer.decorating .room-plot.wall-slot { border: 1px dashed rgba(229,169,99,.62); background: rgba(229,169,99,.055); }
.room-plot.station-slot::after { content: ""; position: absolute; z-index: -1; left: 5%; right: 5%; bottom: 4px; height: 8px; border-radius: 50%; background: rgba(0,0,0,.52); filter: blur(3px); }
.room-plot.wall-slot::before { content: ""; position: absolute; z-index: -1; inset: 5px; border: 2px solid rgba(199,151,88,.38); box-shadow: inset 0 0 12px rgba(0,0,0,.58), 0 3px 6px rgba(0,0,0,.35); background: rgba(20,14,10,.28); }
.room-plot.occupied { border-color: transparent; }
.room-plot.occupied:hover { background: rgba(255,211,131,.08); border-color: rgba(247,208,112,.55); }
.room-item img { max-height: 122px; max-width: 148px; filter: drop-shadow(0 12px 10px rgba(0,0,0,.8)); }
.room-item.station { min-height: 100px; justify-content: end; }
.room-item.station .room-decor-icon { width: 78px; height: 72px; display: grid; place-items: center; background: linear-gradient(135deg, #3e2a1a, #17100c); border: 2px solid #ba8b50; border-radius: 7px 7px 2px 2px; box-shadow: 0 10px 0 #150e0a, 0 15px 16px rgba(0,0,0,.58); }
.room-item.decor .room-decor-icon { font-size: 2.5rem; padding: 5px 8px; text-shadow: 0 3px 6px rgba(0,0,0,.85); }
.room-item-label { margin-top: 2px; border: 1px solid rgba(229,169,99,.28); background: rgba(17,11,8,.9); }
.future-asset-label { font-size: .45rem; letter-spacing: .08em; color: #f7d070; text-transform: uppercase; margin-top: 3px; }

/* Muzeum: osadzone w tle, z czytelnym światłem i ikonami kategorii */
.museum-vertical-hall { padding: 34px 28px; background-size: cover !important; background-position: center !important; box-shadow: inset 0 0 90px rgba(8,5,3,.52), 0 14px 28px rgba(0,0,0,.32); }
.museum-vertical-hall::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(17,10,6,.28), transparent 24%, transparent 76%, rgba(17,10,6,.28)), linear-gradient(0deg, rgba(12,8,5,.5), transparent 38%); }
.pedestals-vertical-grid { position: relative; z-index: 1; grid-template-columns: repeat(auto-fill, minmax(165px, 1fr)); gap: 24px 20px; align-items: end; }
.pedestal-showcase-box { height: 230px; border: none; border-radius: 12px 12px 7px 7px; background: linear-gradient(135deg, rgba(35,23,13,.36), rgba(5,5,4,.12)); box-shadow: 0 17px 21px rgba(0,0,0,.48), inset 0 0 0 1px rgba(248,211,139,.55); backdrop-filter: blur(1.5px); }
.pedestal-showcase-box::before { content: ""; position: absolute; z-index: 8; inset: 6px; border: 1px solid rgba(255,229,174,.48); border-radius: 8px 8px 3px 3px; pointer-events: none; }
.pedestal-showcase-box:hover { transform: translateY(-7px) scale(1.015); box-shadow: 0 23px 30px rgba(0,0,0,.52), 0 0 24px rgba(245,195,105,.52), inset 0 0 0 1px #f7d070; }
.showcase-frame-container { overflow: hidden; border-radius: 12px 12px 0 0; background: radial-gradient(ellipse at center 78%, rgba(255,207,118,.21), rgba(23,15,8,.08) 58%, transparent 73%) !important; }
.showcase-frame-container::after { content: ""; position: absolute; inset: 13% 14% 20%; z-index: 2; pointer-events: none; background: linear-gradient(115deg, transparent 26%, rgba(255,255,255,.23) 43%, transparent 50%); border-radius: 46% 46% 8% 8%; opacity: .65; }
.showcase-bg-image { opacity: .77; object-fit: contain; transform: scale(1.1); filter: sepia(.32) contrast(1.1) drop-shadow(0 10px 12px rgba(0,0,0,.55)); }
.showcase-crown { position: absolute; z-index: 10; top: 7px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: 6px; color: #f7d070; text-shadow: 0 2px 4px #000; font-size: .72rem; }
.showcase-crown i { width: 46px; height: 1px; background: linear-gradient(90deg, transparent, #f7d070, transparent); }
.showcase-artifact-slot { z-index: 6; bottom: 23%; }
.museum-exhibit-live-img { width: 75px; height: 75px; }
.showcase-plaque { position: absolute; z-index: 9; left: 50%; bottom: 6px; transform: translateX(-50%); padding: 3px 7px; min-width: 82px; border: 1px solid rgba(247,208,112,.56); border-radius: 3px; background: rgba(24,15,9,.84); color: #f7d070; text-align: center; font-size: .57rem; text-transform: uppercase; letter-spacing: .05em; white-space: nowrap; }
.empty-hint { z-index: 11; padding: 5px 9px; }
.pedestal-base { min-height: 37px; padding: 8px 8px 6px; background: linear-gradient(#342114, #1b110b); border-top-color: rgba(247,208,112,.75); }
.pedestal-name { font-size: .68rem; }
.pedestal-construct { height: 230px; background: rgba(16,10,7,.36); border-color: rgba(247,208,112,.48); border-radius: 12px; }
.showcase-frame-container.skin-lapis { box-shadow: inset 0 0 26px rgba(62,129,202,.45); }
.showcase-bg-image.skin-lapis { filter: sepia(.45) hue-rotate(155deg) saturate(1.55) drop-shadow(0 0 9px rgba(87,160,255,.78)); }
.showcase-frame-container.skin-sandstone { box-shadow: inset 0 0 24px rgba(226,158,87,.46); }
.showcase-bg-image.skin-sandstone { filter: sepia(.92) saturate(.9) brightness(1.12) drop-shadow(0 0 8px rgba(230,172,99,.75)); }

/* Więcej niepewności i informacji na wykopaliskach */
.tile-surface-sign { position: absolute; top: 6px; left: 7px; z-index: 3; opacity: .67; font-size: 1.05rem; color: #f3d39a; text-shadow: 0 2px 3px #000; }
.tile-clue { position: absolute; top: 8px; right: 6px; z-index: 3; font-size: .48rem; padding: 2px 4px; border-radius: 3px; color: #f9e6be; background: rgba(17,11,7,.48); text-transform: uppercase; letter-spacing: .04em; }
.tile:hover .tile-clue { background: rgba(37,24,14,.82); color: #f7d070; }

/* Ulepszona ekspozycja muzealna */
.museum-vertical-hall { background-size: cover !important; }
.showcase-spotlight {
  position: absolute; inset: 10% 14% 18%; z-index: 3; pointer-events: none;
  background: radial-gradient(ellipse at 50% 88%, rgba(255,210,111,.28), transparent 63%);
  mix-blend-mode: screen;
}
.showcase-artifact-slot { bottom: 19%; width: 116px; height: 122px; }
.museum-exhibit-stage { position: relative; width: 100%; height: 100%; display: grid; place-items: end center; }
.museum-exhibit-live-img {
  position: relative; z-index: 2; width: 96px; height: 96px; object-fit: contain;
  transform-origin: bottom center; filter: drop-shadow(0 0 12px rgba(255,225,141,.92)) drop-shadow(0 9px 7px rgba(0,0,0,.84));
  animation: exhibitFloating3D 3.5s ease-in-out infinite alternate;
}
.museum-exhibit-shadow { position: absolute; z-index: 1; bottom: 8px; width: 72px; height: 14px; border-radius: 50%; background: rgba(0,0,0,.68); filter: blur(5px); transform: scaleX(.9); }
.showcase-frame-container.skin-gold { box-shadow: inset 0 0 30px rgba(255,210,75,.42); }
.showcase-bg-image.skin-gold { filter: sepia(.55) saturate(1.55) brightness(1.1) drop-shadow(0 0 11px rgba(255,202,64,.9)); }
.showcase-frame-container.skin-jade { box-shadow: inset 0 0 29px rgba(72,187,138,.43); }
.showcase-bg-image.skin-jade { filter: sepia(.4) hue-rotate(85deg) saturate(1.45) drop-shadow(0 0 10px rgba(91,216,161,.88)); }
.showcase-frame-container.skin-obsidian { background: radial-gradient(ellipse at center 82%, rgba(128,90,190,.35), rgba(8,7,13,.86) 72%) !important; box-shadow: inset 0 0 32px rgba(134,90,207,.5); }
.showcase-bg-image.skin-obsidian { filter: grayscale(.7) contrast(1.35) brightness(.64) sepia(.15) drop-shadow(0 0 12px rgba(174,120,255,.82)); }
.showcase-frame-container.skin-ivory { background: radial-gradient(ellipse at center 82%, rgba(255,248,216,.38), rgba(92,76,50,.15) 72%) !important; box-shadow: inset 0 0 28px rgba(255,244,209,.58); }
.showcase-bg-image.skin-ivory { filter: sepia(.28) brightness(1.3) saturate(.72) drop-shadow(0 0 10px rgba(255,246,205,.9)); }
.showcase-frame-container.skin-royal { background: radial-gradient(ellipse at center 82%, rgba(55,112,207,.45), rgba(8,19,55,.42) 72%) !important; box-shadow: inset 0 0 32px rgba(53,122,235,.6); }
.showcase-bg-image.skin-royal { filter: sepia(.38) hue-rotate(158deg) saturate(1.8) brightness(.92) drop-shadow(0 0 11px rgba(77,155,255,.95)); }

/* Magazyn: czytelne karty zamiast miniaturowej siatki */
.sidebar-storage-dropdown.open { max-height: 355px; padding: 8px; }
.storage-grid { grid-template-columns: 1fr; gap: 7px; }
.storage-card {
  min-height: 62px; padding: 6px 7px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto;
  align-items: center; gap: 7px; text-align: left; border-radius: 8px;
  background: linear-gradient(135deg, #231911, #15100c); transition: transform .16s, border-color .16s, background .16s;
}
.storage-card:hover { transform: translateX(2px); border-color: #d9a35c; background: linear-gradient(135deg, #302116, #18110c); }
.storage-art-preview { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 7px; background: radial-gradient(circle, #40301d, #17100a); border: 1px solid rgba(229,169,99,.28); }
.storage-art-img-live { width: 43px; height: 43px; object-fit: contain; filter: drop-shadow(0 4px 4px rgba(0,0,0,.7)); }
.storage-art-details { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.storage-art-name { color: #f5d18d; font-size: .68rem; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.storage-art-meta { color: #a99884; font-size: .55rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.storage-card .art-status-badge { width: fit-content; margin: 1px 0 0; font-size: .52rem; }
.storage-card-action { color: #e5a963; font-size: .58rem; font-weight: bold; white-space: nowrap; }

/* Czyszczenie: warstwa brudu jest przycięta do przezroczystej ikony artefaktu */
.cleaning-workspace-3d {
  width: 260px; height: 260px; display: grid; place-items: center; cursor: default;
  background: radial-gradient(circle at 50% 45%, #47331f 0%, #1b120b 58%, #0d0a07 100%);
}
.object-container-3d { position: relative; width: 220px; height: 220px; transform: none !important; }
.cleaning-target-img-3d { position: absolute; inset: 0; width: 220px; height: 220px; transform: none; filter: drop-shadow(0 12px 11px rgba(0,0,0,.75)); }
.cleaning-canvas-3d { position: absolute; inset: 0; width: 220px; height: 220px; transform: none; cursor: crosshair; touch-action: none; }

/* Drobniejsze eksponaty zawieszone wyżej w gablotach */
.showcase-artifact-slot { bottom: 36%; width: 94px; height: 96px; }
.museum-exhibit-live-img { width: 74px; height: 74px; }
.museum-exhibit-shadow { bottom: 3px; width: 56px; height: 10px; }

/* Gabinet: gęstsza aranżacja, ścienne dekoracje bez ramek po postawieniu */
.room-plot.wall-slot.occupied::before { display: none; }
.room-content-layer.decorating .room-plot.wall-slot.occupied { border-color: transparent; background: transparent; }
.room-plot.wall-slot.occupied .room-item-label { display: none; }
.room-plot.wall-slot.occupied:hover { background: rgba(255,211,131,.05); border-color: transparent; }
.room-plot.wall-slot.occupied .room-item.decor { transform: translateY(2px); }

/* Dodatkowe skórki gablot */
.showcase-frame-container.skin-copper { background: radial-gradient(ellipse at center 82%, rgba(214,116,55,.42), rgba(69,29,13,.38) 72%) !important; box-shadow: inset 0 0 32px rgba(235,129,65,.54); }
.showcase-bg-image.skin-copper { filter: sepia(.85) hue-rotate(330deg) saturate(1.6) brightness(.98) drop-shadow(0 0 10px rgba(255,150,81,.9)); }
.showcase-frame-container.skin-verdigris { background: radial-gradient(ellipse at center 82%, rgba(72,161,135,.42), rgba(17,57,51,.46) 72%) !important; box-shadow: inset 0 0 32px rgba(77,185,151,.55); }
.showcase-bg-image.skin-verdigris { filter: sepia(.46) hue-rotate(104deg) saturate(1.25) brightness(.87) drop-shadow(0 0 10px rgba(105,213,176,.86)); }
.showcase-frame-container.skin-amethyst { background: radial-gradient(ellipse at center 82%, rgba(164,99,230,.42), rgba(43,20,76,.5) 72%) !important; box-shadow: inset 0 0 34px rgba(182,108,250,.62); }
.showcase-bg-image.skin-amethyst { filter: sepia(.33) hue-rotate(220deg) saturate(1.8) brightness(.92) drop-shadow(0 0 12px rgba(198,132,255,.95)); }
.showcase-frame-container.skin-sunrise { background: radial-gradient(ellipse at center 82%, rgba(255,186,84,.46), rgba(183,71,35,.3) 72%) !important; box-shadow: inset 0 0 34px rgba(255,190,76,.62); }
.showcase-bg-image.skin-sunrise { filter: sepia(.66) hue-rotate(338deg) saturate(1.55) brightness(1.11) drop-shadow(0 0 11px rgba(255,201,97,.96)); }

/* Wystrój gabinetu według ekspedycji */
.room-shop-section-title { grid-column: 1 / -1; margin: 12px 0 0; color: #f7d070; font-size: .95rem; }
.room-shop-section-title small { display: block; margin-top: 3px; color: #bda783; font-size: .7rem; font-weight: 400; }
.room-shop-preview { display: block; width: 100%; height: 112px; margin: -3px 0 10px; border: 1px solid rgba(229,169,99,.42); border-radius: 8px; background: #24170f; object-fit: cover; object-position: center; box-shadow: inset 0 0 0 1px rgba(255,222,153,.08), 0 4px 10px rgba(0,0,0,.2); }
.room-item-preview { object-fit: contain; padding: 6px; background: radial-gradient(circle at 50% 55%, rgba(197,125,52,.28), #21140d 74%); }.room-theme-preview { height: 120px; }
.room-theme-card.active-theme { border-color: #f7d070; box-shadow: 0 0 15px rgba(247,208,112,.25); }
.room-viewport[data-room-theme="egypt"] .room-wall { background: linear-gradient(rgba(48,31,17,.76), rgba(51,30,15,.79)), url('tlomuzeum.webp') center/cover; }
.room-viewport[data-room-theme="egypt"] .room-floor-2d { background: repeating-linear-gradient(90deg, #5a3a1d 0 48px, #311d10 49px 52px), linear-gradient(#9d7440, #2c190d); }
.room-viewport[data-room-theme="stonehenge"] .room-wall { background: linear-gradient(rgba(23,30,29,.73), rgba(27,29,26,.82)), url('miasto-anglia-v2.png') center/cover; }
.room-viewport[data-room-theme="stonehenge"] .room-floor-2d { background: repeating-linear-gradient(115deg, #45504c 0 40px, #28322f 41px 44px), linear-gradient(#66726b, #1e2826); }
.room-viewport[data-room-theme="vikings"] .room-wall { background: linear-gradient(rgba(20,25,30,.75), rgba(13,16,18,.84)), url('norwegia.webp') center/cover; }
.room-viewport[data-room-theme="vikings"] .room-floor-2d { background: repeating-linear-gradient(90deg, #5a3825 0 52px, #25150e 53px 56px), linear-gradient(#7c5437, #1a0e09); }
.room-viewport[data-room-theme="andes"] .room-wall { background: linear-gradient(rgba(58,39,19,.68), rgba(43,31,16,.82)), url('peru.png') center/cover; }
.room-viewport[data-room-theme="andes"] .room-floor-2d { background: repeating-linear-gradient(90deg, #776139 0 54px, #49391f 55px 58px), linear-gradient(#ae8b4d, #312615); }
.room-viewport[data-room-theme="kofun"] .room-wall { background: linear-gradient(rgba(20,22,24,.76), rgba(16,15,13,.84)), url('japonia.webp') center/cover; }
.room-viewport[data-room-theme="kofun"] .room-floor-2d { background: repeating-linear-gradient(90deg, #5a3422 0 38px, #28150d 39px 42px), linear-gradient(#8b5737, #1b0e09); }

/* Swobodna aranżacja gabinetu i głębsza, perspektywiczna podłoga */
.room-wall { height: 52%; }
.room-floor-2d {
  height: 48%; overflow: hidden; border-top: 4px solid rgba(18,11,7,.8);
  background-image: linear-gradient(180deg, rgba(255,227,174,.12), transparent 14%), repeating-linear-gradient(90deg, rgba(255,236,190,.11) 0 2px, transparent 2px 13%), repeating-linear-gradient(0deg, rgba(0,0,0,.24) 0 2px, transparent 2px 34px), linear-gradient(#513521, #1a100a);
  background-size: auto, 100% 100%, 100% 100%, auto;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.48), inset 0 -18px 25px rgba(0,0,0,.44);
}
.room-floor-2d::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.32), transparent 14%, transparent 86%, rgba(0,0,0,.32)); }
.room-floor-2d::after { content: ""; position: absolute; left: 50%; top: 0; width: 160%; height: 100%; transform: translateX(-50%) perspective(420px) rotateX(48deg); transform-origin: top; background: repeating-linear-gradient(90deg, transparent 0 68px, rgba(255,227,175,.14) 69px 71px); pointer-events: none; opacity: .55; }
.room-free-item { position: absolute; z-index: 6; border: 0; background: transparent; color: inherit; cursor: pointer; padding: 0; transform-origin: center center; transition: filter .16s, box-shadow .16s; }
.room-free-item:hover { filter: brightness(1.13); }
.room-content-layer.decorating .room-free-item { outline: 1px dashed rgba(247,208,112,.7); outline-offset: 5px; border-radius: 8px; cursor: grab; }
.room-content-layer.decorating .room-free-item:active { cursor: grabbing; }
.room-free-item.station { min-width: 110px; }
.room-free-item.wall .room-item-label { display: none; }
.room-free-item.wall { z-index: 5; }
.room-transform-controls { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.room-transform-controls .shop-btn { margin-top: 0; min-width: 34px; padding: 6px 9px; }
.room-edit-hint { margin-top: 8px; color: #d4b38a; font-size: .72rem; }

/* Subtelnie wyższa pozycja eksponatu w gablocie */
.showcase-artifact-slot { bottom: 40%; }

/* Izometryczna osada badawcza */
.room-viewport.city-view { height: 580px; overflow: hidden; isolation: isolate; background: radial-gradient(ellipse at 50% 25%, rgba(255,216,134,.18), transparent 45%), linear-gradient(145deg, #3a281b, #17110d 74%); }
.room-viewport.city-view .room-wall, .room-viewport.city-view .room-floor-2d { display: none; }
.room-viewport.city-view::before { content: ""; position: absolute; z-index: 0; width: 128%; height: 92%; left: -14%; top: 7%; transform: perspective(580px) rotateX(57deg) rotateZ(0deg); transform-origin: center top; background: repeating-linear-gradient(30deg, rgba(255,220,150,.08) 0 1px, transparent 1px 48px), repeating-linear-gradient(-30deg, rgba(255,220,150,.06) 0 1px, transparent 1px 48px), linear-gradient(135deg, #6b5132, #30241a 68%); border: 1px solid rgba(237,185,96,.22); box-shadow: inset 0 0 65px rgba(0,0,0,.6); }
.room-viewport.city-view::after { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(0,0,0,.42), transparent 18% 82%, rgba(0,0,0,.42)), linear-gradient(0deg, rgba(0,0,0,.38), transparent 30%); }
.room-viewport.city-view[data-room-theme="stonehenge"] { background: radial-gradient(ellipse at 50% 20%, rgba(144,184,165,.16), transparent 48%), linear-gradient(145deg, #26312d, #101513 74%); }
.room-viewport.city-view[data-room-theme="vikings"] { background: radial-gradient(ellipse at 50% 20%, rgba(100,151,183,.16), transparent 48%), linear-gradient(145deg, #202c34, #101418 74%); }
.room-viewport.city-view[data-room-theme="andes"] { background: radial-gradient(ellipse at 50% 20%, rgba(230,191,101,.18), transparent 48%), linear-gradient(145deg, #584326, #1f180e 74%); }
.room-viewport.city-view[data-room-theme="kofun"] { background: radial-gradient(ellipse at 50% 20%, rgba(162,183,130,.15), transparent 48%), linear-gradient(145deg, #263224, #12170f 74%); }
.room-city-content { z-index: 3; pointer-events: none; }
.room-city-content .city-plot { position: absolute; pointer-events: auto; padding: 0; color: #f6dfaa; font: inherit; cursor: pointer; }
.city-plot.empty { width: 148px; height: 76px; transform: translate(-50%, -50%); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); border: 1px solid rgba(246,213,147,.34); background: linear-gradient(135deg, rgba(111,83,46,.86), rgba(48,34,22,.92)); box-shadow: 0 9px 0 rgba(23,15,9,.56), 0 16px 24px rgba(0,0,0,.34); transition: filter .18s, transform .18s; font-size: .62rem; font-weight: 700; text-transform: uppercase; }
.city-plot.empty:hover, .room-city-content.decorating .city-plot.empty.ready { filter: brightness(1.25); }
.room-city-content.decorating .city-plot.empty.ready { border-color: #ffe07d; box-shadow: 0 0 0 2px rgba(255,224,125,.32), 0 9px 0 rgba(23,15,9,.56), 0 0 22px rgba(255,209,103,.45); animation: city-plot-pulse 1.4s ease-in-out infinite; }
.city-plot-plus { font-size: 1.3rem; line-height: .9; }
.city-plot.occupied { width: 188px; height: 188px; transform: translate(-50%, -62%); border: 0; background: transparent; filter: drop-shadow(0 12px 9px rgba(0,0,0,.47)); transition: filter .18s, transform .18s; }
.city-plot.occupied:hover { filter: brightness(1.13) drop-shadow(0 14px 11px rgba(0,0,0,.55)); transform: translate(-50%, -63%) scale(1.035); }
.city-building, .city-building img { width: 100%; height: 100%; display: block; object-fit: contain; }
.city-building-label { position: absolute; left: 50%; bottom: -1px; transform: translateX(-50%); min-width: max-content; padding: 3px 7px; border: 1px solid rgba(240,198,117,.38); border-radius: 5px; background: rgba(18,13,9,.84); color: #ffe0a2; font-size: .64rem; font-weight: 700; text-shadow: 0 1px #000; }
.room-city-content.decorating .city-plot.occupied { outline: 1px dashed rgba(255,222,139,.7); outline-offset: -15px; border-radius: 45%; }
@keyframes city-plot-pulse { 50% { filter: brightness(1.42); } }

/* Wpływ gracza na przebieg ekspedycji */
.expedition-strategy-label { display: block; margin: 12px 0 9px; color: #d8b77e; font-size: .78rem; font-weight: 700; }
.expedition-strategy-label select { display: block; width: 100%; margin-top: 5px; padding: 7px; border: 1px solid #87633d; border-radius: 5px; background: #15110d; color: #f7d070; font: inherit; }
.expedition-event-card, .expedition-field-status { margin: 10px 0; padding: 10px; border: 1px solid rgba(229,169,99,.42); border-radius: 7px; background: rgba(9,7,5,.35); }
.expedition-event-card h4 { margin: 3px 0 5px; color: #f7d070; }
.expedition-event-card p, .expedition-field-status p { margin: 0 0 8px; color: #d5c2a7; font-size: .8rem; }
.expedition-event-step { color: #9fc6bd; font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.expedition-choice-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.expedition-choice { min-height: 62px; padding: 7px; border: 1px solid #87633d; border-radius: 6px; background: #302217; color: #f7d070; text-align: left; cursor: pointer; font: inherit; }
.expedition-choice:hover { background: #51391f; border-color: #f7d070; }
.expedition-choice strong, .expedition-choice small { display: block; }
.expedition-choice small { margin-top: 4px; color: #c5b195; font-size: .68rem; }
.station-action-lock, .station-work-view { margin: 10px 0; padding: 11px; border: 1px solid rgba(229,169,99,.42); border-radius: 7px; background: linear-gradient(135deg, rgba(74,51,28,.45), rgba(13,10,7,.55)); }
.station-action-lock p, .station-work-view p { margin: 0 0 8px; color: #d9c2a2; font-size: .8rem; }
.station-work-view select { width: 100%; margin: 5px 0 9px; padding: 7px; border: 1px solid #80623c; border-radius: 5px; background: #17110c; color: #f5e2ba; font: inherit; }
.station-work-view .shop-btn { width: 100%; }

/* Miasto Wykopalisk: sceniczne tła i zwarta kompozycja stacji */
.room-viewport.city-view { height: clamp(640px, 58vw, 800px); border-color: rgba(226,186,111,.68); background-position: center; background-size: cover; box-shadow: 0 18px 44px rgba(0,0,0,.46), inset 0 0 0 1px rgba(255,231,173,.12); }
.room-viewport.city-view[data-room-theme="egypt"] { background-image: linear-gradient(180deg, rgba(15,23,30,.01) 0%, rgba(22,12,5,.04) 55%, rgba(15,8,4,.18) 100%), url('miasto-egipt-v3.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="stonehenge"] { background-image: linear-gradient(180deg, rgba(14,19,29,.03) 0%, rgba(11,19,12,.04) 54%, rgba(7,12,8,.2) 100%), url('miasto-anglia-v2.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="kofun"] { background-image: linear-gradient(180deg, rgba(12,24,31,.02) 0%, rgba(14,24,15,.04) 54%, rgba(7,14,8,.2) 100%), url('miasto-japonia-v3.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="andes"] { background-image: linear-gradient(180deg, rgba(15,27,34,.01) 0%, rgba(28,22,7,.04) 54%, rgba(14,10,4,.18) 100%), url('miasto-peru-v4.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="iceland"] { background-image: linear-gradient(180deg, rgba(13,25,39,.04), rgba(7,14,21,.2)), url('miasto-islandia-v3.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="vikings"] { background-image: linear-gradient(180deg, rgba(13,25,39,.04), rgba(7,14,21,.2)), url('miasto-norwegia-v3.png'); background-position: center 62%; }
.room-viewport.city-view::before { width: 100%; height: 100%; left: 0; top: 0; transform: none; border: 0; background: linear-gradient(90deg, rgba(8,6,3,.22), transparent 19% 81%, rgba(8,6,3,.22)), linear-gradient(0deg, rgba(8,6,3,.28), transparent 35%); box-shadow: none; }
.room-viewport.city-view::after { z-index: 2; background: linear-gradient(90deg, rgba(5,4,3,.18), transparent 15% 85%, rgba(5,4,3,.18)), linear-gradient(0deg, rgba(8,5,2,.22), transparent 28%); }
.room-viewport.city-view .room-city-content { left: 50%; width: min(100%, 1040px); max-width: 1040px; transform: translateX(-50%); z-index: 3; }
.room-viewport.city-view .room-city-content.decorating { background: transparent; }
.city-plot.occupied { width: 140px; height: 140px; transform: translate(-50%, -100%); filter: drop-shadow(0 8px 6px rgba(9,6,3,.48)); }
.city-plot.occupied:hover { transform: translate(-50%, -100%) scale(1.045); filter: brightness(1.09) drop-shadow(0 12px 9px rgba(5,4,2,.58)); }
.city-building-label { bottom: -5px; min-width: 0; max-width: 118px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; padding: 3px 6px; font-size: .56rem; border-color: rgba(255,220,142,.58); background: rgba(18,12,6,.86); box-shadow: 0 3px 8px rgba(0,0,0,.38); }
.city-plot.empty { width: 142px; height: 42px; clip-path: polygon(6% 18%, 94% 18%, 100% 55%, 50% 100%, 0 55%); background: linear-gradient(135deg, rgba(93,77,46,.93), rgba(39,31,20,.96)); box-shadow: 0 5px 0 rgba(18,12,6,.52), 0 10px 17px rgba(0,0,0,.28); }
.room-city-content.decorating .city-plot.occupied { outline: none; border-radius: 0; }
.room-city-content.decorating .city-plot.occupied::before { content: ""; position: absolute; z-index: -1; left: 50%; top: 92%; width: 102px; height: 28px; transform: translate(-50%, -50%); clip-path: polygon(6% 18%, 94% 18%, 100% 55%, 50% 100%, 0 55%); border: 1px dashed rgba(255,239,174,.75); background: rgba(255,228,150,.08); box-shadow: 0 4px 0 rgba(10,7,4,.25); }

/* Działki M: wspólny fundament przylegający do podłoża każdej ekspedycji */
.room-viewport.city-view { --plot-top: rgba(120,91,47,.92); --plot-edge: rgba(255,221,146,.62); --plot-shadow: rgba(29,17,8,.68); }
.room-viewport.city-view[data-room-theme="egypt"] { --plot-top: rgba(165,119,54,.92); --plot-edge: rgba(255,224,151,.72); --plot-shadow: rgba(68,38,11,.7); }
.room-viewport.city-view[data-room-theme="stonehenge"] { --plot-top: rgba(81,105,62,.92); --plot-edge: rgba(203,224,168,.66); --plot-shadow: rgba(20,31,16,.72); }
.room-viewport.city-view[data-room-theme="iceland"] { --plot-top: rgba(71,75,76,.95); --plot-edge: rgba(194,215,223,.67); --plot-shadow: rgba(13,18,21,.76); }
.room-viewport.city-view[data-room-theme="vikings"] { --plot-top: rgba(91,83,51,.94); --plot-edge: rgba(219,202,148,.66); --plot-shadow: rgba(25,20,12,.74); }
.room-viewport.city-view[data-room-theme="andes"] { --plot-top: rgba(132,112,55,.94); --plot-edge: rgba(235,211,135,.7); --plot-shadow: rgba(41,31,10,.72); }
.room-viewport.city-view[data-room-theme="kofun"] { --plot-top: rgba(81,102,65,.94); --plot-edge: rgba(197,220,172,.66); --plot-shadow: rgba(18,29,15,.74); }
.room-viewport.city-view[data-room-theme="iceland"] { background-image: linear-gradient(180deg, rgba(13,25,39,.04), rgba(7,14,21,.2)), url('miasto-islandia-v3.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="vikings"] { background-image: linear-gradient(180deg, rgba(13,25,39,.04), rgba(7,14,21,.2)), url('miasto-norwegia-v3.png'); background-position: center 62%; }
.room-viewport.city-view[data-room-theme="andes"] { background-image: linear-gradient(180deg, rgba(15,27,34,.01) 0%, rgba(28,22,7,.04) 54%, rgba(14,10,4,.18) 100%), url('miasto-peru-v4.png'); background-position: center 62%; }
.room-viewport.city-view .room-city-content { width: min(100%, 1320px); max-width: 1320px; }
.room-viewport.city-view { --road-bed: rgba(46,31,15,.72); --road-surface: rgba(178,133,75,.72); --road-edge: rgba(255,224,153,.26); }
.room-viewport.city-view[data-room-theme="stonehenge"] { --road-bed: rgba(24,39,20,.75); --road-surface: rgba(113,126,88,.78); --road-edge: rgba(212,226,178,.28); }
.room-viewport.city-view[data-room-theme="iceland"] { --road-bed: rgba(22,29,31,.78); --road-surface: rgba(122,133,135,.76); --road-edge: rgba(210,228,232,.26); }
.room-viewport.city-view[data-room-theme="vikings"] { --road-bed: rgba(29,23,14,.76); --road-surface: rgba(133,113,76,.78); --road-edge: rgba(232,211,164,.25); }
.room-viewport.city-view[data-room-theme="andes"] { --road-bed: rgba(51,37,15,.76); --road-surface: rgba(171,143,76,.8); --road-edge: rgba(247,220,143,.28); }
.room-viewport.city-view[data-room-theme="kofun"] { --road-bed: rgba(25,36,21,.76); --road-surface: rgba(113,131,93,.8); --road-edge: rgba(207,230,183,.26); }
.city-road-network { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; filter: drop-shadow(0 1px 1px rgba(0,0,0,.12)); mix-blend-mode: multiply; }
.city-road-network .city-road-shadow { fill: none; stroke: var(--road-bed); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; opacity: .2; }
.city-road-network .city-road-texture { fill: none; stroke: url(#city-road-texture); stroke-width: .82; stroke-linecap: round; stroke-linejoin: round; opacity: .82; }
.city-plot.occupied { width: clamp(120px, 10.5vw, 158px); height: clamp(120px, 10.5vw, 158px); isolation: isolate; filter: none; }
.city-plot.empty { width: clamp(104px, 9vw, 138px); height: clamp(46px, 4vw, 60px); clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); background: linear-gradient(135deg, color-mix(in srgb, var(--plot-top) 88%, #fff), var(--plot-top)); border-color: var(--plot-edge); box-shadow: 0 5px 0 var(--plot-shadow), 0 11px 18px rgba(0,0,0,.26); }
.city-plot.occupied::before { content: ""; position: absolute; z-index: 0; left: 50%; top: 98%; width: 72%; height: 10%; transform: translate(-50%, -50%); border-radius: 50%; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--plot-shadow) 56%, transparent) 0 28%, color-mix(in srgb, var(--plot-shadow) 28%, transparent) 54%, transparent 76%); filter: blur(1.5px); mix-blend-mode: multiply; opacity: .52; pointer-events: none; }
.city-station-base { position: absolute; z-index: 1; left: 50%; top: 98%; width: 66%; height: 8%; transform: translate(-50%, -50%); clip-path: ellipse(50% 50% at 50% 50%); background: radial-gradient(ellipse at center, color-mix(in srgb, var(--plot-shadow) 42%, transparent), transparent 68%); border: 0; box-shadow: none; }
.city-building { position: absolute; z-index: 2; inset: 0; }
.city-building-label { z-index: 3; }
.room-city-content.decorating .city-plot.occupied::before { display: none; }
.room-city-content.decorating .city-station-base { filter: brightness(1.2); outline: 1px dashed rgba(255,239,174,.82); outline-offset: 2px; }
@media (max-width: 900px) { .room-viewport.city-view { height: 540px; } .room-viewport.city-view .room-city-content { width: 100%; } .city-plot.occupied { width: 145px; height: 145px; } }
@media (max-width: 600px) { .room-viewport.city-view { height: 500px; } .city-plot.occupied { width: 142px; height: 142px; } .city-plot.empty { width: 108px; height: 56px; font-size: .5rem; } .city-building-label { font-size: .51rem; } .expedition-choice-list { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .sidebar { width: 270px; } .room-viewport { height: 480px; } .room-item img { max-height: 92px; max-width: 108px; } .pedestals-vertical-grid { grid-template-columns: repeat(auto-fill, minmax(145px, 1fr)); } }

/* Zintegrowanie przenośnych stacji z podłożem aktualnej ekspedycji */
.room-viewport.city-view { --station-filter: saturate(.94) brightness(.96) contrast(.98); }
.room-viewport.city-view[data-room-theme="egypt"] { --station-filter: sepia(.12) saturate(.88) brightness(.96) contrast(.98); }
.room-viewport.city-view[data-room-theme="stonehenge"] { --station-filter: saturate(.72) hue-rotate(5deg) brightness(.87) contrast(1.02); }
.room-viewport.city-view[data-room-theme="iceland"] { --station-filter: saturate(.62) hue-rotate(-8deg) brightness(.84) contrast(1.06); }
.room-viewport.city-view[data-room-theme="vikings"] { --station-filter: sepia(.08) saturate(.76) brightness(.89) contrast(1.04); }
.room-viewport.city-view[data-room-theme="andes"] { --station-filter: sepia(.14) saturate(.86) brightness(.94) contrast(1.02); }
.room-viewport.city-view[data-room-theme="kofun"] { --station-filter: saturate(.74) hue-rotate(8deg) brightness(.9) contrast(1.03); }
.city-station-base { opacity: .38; border-color: transparent; background: radial-gradient(ellipse at center, color-mix(in srgb, var(--plot-shadow) 58%, transparent) 0 20%, transparent 67%); box-shadow: none; mix-blend-mode: multiply; }
.city-station-base::after { display: none; }
.city-building img { filter: var(--station-filter); transform: translateY(3px); }
.city-building.landscape img { object-position: center bottom; }
.city-building.station-pack-sprite { overflow: hidden; }
.city-building.station-pack-sprite > img { position: absolute; width: 200%; height: 400%; max-width: none; max-height: none; object-fit: fill; filter: none; transform: none; }
.city-building.station-pack-sprite[data-station-pack-frame="0"] > img { left: 0; top: 0; }
.city-building.station-pack-sprite[data-station-pack-frame="1"] > img { left: -100%; top: 0; }
.city-building.station-pack-sprite[data-station-pack-frame="2"] > img { left: 0; top: -100%; }
.city-building.station-pack-sprite[data-station-pack-frame="3"] > img { left: -100%; top: -100%; }
.city-building.station-pack-sprite[data-station-pack-frame="4"] > img { left: 0; top: -200%; }
.city-building.station-pack-sprite[data-station-pack-frame="5"] > img { left: -100%; top: -200%; }
.city-building.station-pack-sprite[data-station-pack-frame="6"] > img { left: 0; top: -300%; }
.city-building.station-pack-sprite[data-station-pack-frame="7"] > img { left: -100%; top: -300%; }
.room-city-content.decorating .city-station-base { opacity: .85; filter: none; outline-color: var(--plot-edge); }
/* Kupowane dekoracje korzystają z aktualnego zestawu ekspedycji i stoją na tych samych działkach co stacje. */
.city-plot.city-decoration { width: clamp(104px, 8.5vw, 132px); height: clamp(104px, 8.5vw, 132px); filter: none; }
.city-decoration::before { top: 98%; width: 68%; height: 9%; opacity: .44; }
.city-decoration .city-building { transform: translateY(3%) rotate(var(--decoration-rotate, 0deg)) scale(var(--decoration-scale, 1)); transform-origin: center bottom; }
.city-decoration .city-building img { object-position: center bottom; }
.city-decoration .city-building.mirrored img { transform: scaleX(-1) translateY(1px); }
.theme-sprite { overflow: hidden; }
.city-decoration .decoration-asset.theme-sprite img { position: absolute; width: 200%; height: 200%; max-width: none; max-height: none; object-fit: fill; left: 0; top: 0; transform: translate(var(--sprite-x, 0), var(--sprite-y, 0)); }
.city-decoration .decoration-asset.theme-sprite[data-decoration-frame="1"] img, .city-scenery.theme-sprite[data-decoration-frame="1"] img { --sprite-x: -50%; }
.city-decoration .decoration-asset.theme-sprite[data-decoration-frame="2"] img, .city-scenery.theme-sprite[data-decoration-frame="2"] img { --sprite-y: -50%; }
.city-decoration .decoration-asset.theme-sprite[data-decoration-frame="3"] img, .city-scenery.theme-sprite[data-decoration-frame="3"] img { --sprite-x: -50%; --sprite-y: -50%; }
.city-decor-plot.empty { display: flex; opacity: .78; pointer-events: auto; border-style: dashed; font-size: .54rem; background: linear-gradient(135deg, color-mix(in srgb, var(--plot-top) 60%, #29455c), var(--plot-top)); }
.room-city-content.decorating .city-decor-plot.empty { opacity: .98; border-style: dashed; }
.premium-decoration .city-building { filter: drop-shadow(0 0 10px rgba(255,208,89,.18)); }
.premium-decoration .city-building-label { border-color: rgba(111,216,255,.72); color: #d7f5ff; }
.room-shop-kind { display: inline-block; margin: -2px 0 6px; color: #d7b879; font-size: .66rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; }
.premium-room-item { border-color: rgba(94,197,230,.65); background: linear-gradient(145deg, #182a37, #12100e 72%); }
/* Rekwizyty są częścią krajobrazu: podążają za perspektywą, ale nie przechwytują kliknięć. */
.city-scenery { position: absolute; width: clamp(150px, 15vw, 228px); aspect-ratio: 1; transform: translate(-50%, -88%) rotate(var(--scenery-rotate)) scale(var(--scenery-scale)); transform-origin: center bottom; pointer-events: none; opacity: .78; filter: saturate(.9) contrast(.98) drop-shadow(0 4px 3px rgba(0,0,0,.2)); }
.city-scenery img { display: block; width: 100%; height: 100%; object-fit: contain; }
.city-scenery.mirrored img { transform: scaleX(-1); }
.city-scenery.theme-sprite img { position: absolute; width: 200%; height: 200%; max-width: none; max-height: none; object-fit: fill; left: 0; top: 0; transform: translate(var(--sprite-x, 0), var(--sprite-y, 0)); }
.room-viewport.city-view[data-room-theme="egypt"] .city-scenery { filter: sepia(.08) saturate(.9) brightness(.98) drop-shadow(0 4px 3px rgba(57,31,7,.22)); }
.room-viewport.city-view[data-room-theme="stonehenge"] .city-scenery { filter: saturate(.7) brightness(.87) drop-shadow(0 4px 3px rgba(8,17,7,.25)); }
.room-viewport.city-view[data-room-theme="iceland"] .city-scenery { filter: saturate(.65) brightness(.84) drop-shadow(0 4px 3px rgba(4,10,14,.27)); }
.room-viewport.city-view[data-room-theme="vikings"] .city-scenery { filter: saturate(.74) brightness(.89) drop-shadow(0 4px 3px rgba(10,12,8,.25)); }
.room-viewport.city-view[data-room-theme="andes"] .city-scenery { filter: sepia(.08) saturate(.86) brightness(.96) drop-shadow(0 4px 3px rgba(51,31,7,.22)); }
.room-viewport.city-view[data-room-theme="kofun"] .city-scenery { filter: saturate(.72) brightness(.89) drop-shadow(0 4px 3px rgba(5,15,7,.25)); }
@media (max-width: 900px) { .city-plot.occupied { width: clamp(104px, 16vw, 132px); height: clamp(104px, 16vw, 132px); } .city-plot.city-decoration { width: clamp(88px, 13vw, 112px); height: clamp(88px, 13vw, 112px); } .city-scenery { width: clamp(118px, 21vw, 176px); } }

/* Budowa bez polowania kursorem: grupy obiektów i bezpośrednie skróty działek. */
.city-plot.occupied:not(.city-decoration) { width: clamp(104px, 8.8vw, 132px); height: clamp(104px, 8.8vw, 132px); }
.city-plot.city-decoration { width: clamp(72px, 6.4vw, 96px); height: clamp(72px, 6.4vw, 96px); }
.city-plot.empty { width: clamp(88px, 7.3vw, 112px); height: clamp(38px, 3.2vw, 50px); }
.city-building-label { max-width: 104px; }
.city-placement-group { margin: 10px 0; padding: 8px; border: 1px solid rgba(229,169,99,.26); border-radius: 7px; background: rgba(14,10,7,.3); }
.city-placement-group h4, .city-plot-shortcuts h4 { margin: 0 0 6px; color: #f0cf90; font-size: .74rem; }
.city-placement-group .shop-btn { margin-top: 0; font-size: .71rem; }
.city-placement-group .shop-btn.selected-placement { background: #f4c86a; color: #1c1309; box-shadow: 0 0 0 2px rgba(255,235,166,.52), 0 5px 12px rgba(0,0,0,.24); }
.room-build-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin: 0 0 10px; padding: 0; list-style-position: inside; color: #d8c39b; font-size: .71rem; }
.room-build-steps li { padding: 7px; border: 1px solid rgba(229,169,99,.24); border-radius: 6px; background: rgba(17,12,8,.35); }
.room-build-status { margin: 0 0 9px; padding: 8px 10px; border-left: 3px solid #e5a963; border-radius: 4px; background: rgba(229,169,99,.1); color: #f8dda5; }
.city-plot-shortcuts { margin-top: 12px; padding: 9px; border: 1px solid rgba(229,169,99,.42); border-radius: 7px; background: linear-gradient(135deg, rgba(84,59,30,.35), rgba(14,10,7,.5)); }
.city-plot-shortcuts > div { display: flex; flex-wrap: wrap; gap: 6px; }
.city-plot-shortcut { min-width: 48px; padding: 6px 7px; border: 1px solid #aa7d47; border-radius: 5px; background: #332416; color: #f9dc9f; font: inherit; font-size: .68rem; font-weight: 700; cursor: pointer; }
.city-plot-shortcut:hover:not(:disabled) { background: #67431f; border-color: #ffe09b; }
.city-plot-shortcut.occupied, .city-plot-shortcut:disabled { opacity: .45; cursor: not-allowed; text-decoration: line-through; }
.room-city-content.decorating .city-plot.empty.ready { z-index: 2200 !important; pointer-events: auto; border-width: 2px; }
.room-city-content.decorating .city-plot.empty.ready:hover { filter: brightness(1.32); transform: translate(-50%, -50%) scale(1.04); }
@media (max-width: 700px) { .room-build-steps { grid-template-columns: 1fr; } }

.expeditions-grid, .shop-items-grid, .quests-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; padding: 10px 0; }
.shop-item-card, .expedition-card, .quest-card { background: #1a1510; border: 2px solid #3d2f20; border-radius: 10px; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; }
.quest-card.completed { border-color: #2ed573; background: #132418; }
.shop-btn, .exp-btn, .quest-btn, .skill-btn { padding: 8px 12px; border-radius: 6px; font-weight: bold; border: none; cursor: pointer; margin-top: 10px; }
.shop-btn.buy, .exp-btn.unlock, .skill-btn { background: #e5a963; color: #12100e; }
.shop-btn.equipped, .quest-btn.progress { background: #2a221a; color: #a89a8c; border: 1px dashed #57412e; }
.exp-btn.travel, .quest-btn.claim { background: #2ed573; color: #000; }

.city-plot.empty:not(.city-decor-plot) { opacity: .8; border-style: solid; background: linear-gradient(135deg, color-mix(in srgb, var(--plot-top) 62%, #e9d18c), var(--plot-top)); }
.city-plot.empty span:last-child { font-size: .53rem; letter-spacing: .025em; }
.city-plot.empty { overflow: visible; clip-path: none; border: 0; background: transparent !important; box-shadow: none; }
.city-plot.empty::before { content: ""; position: absolute; z-index: 1; inset: 0; clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); border: 1px solid var(--plot-edge); background: linear-gradient(135deg, color-mix(in srgb, var(--plot-top) 62%, #e9d18c), var(--plot-top)); box-shadow: 0 5px 0 var(--plot-shadow), 0 9px 15px rgba(0,0,0,.22); }
.city-plot.empty .city-plot-plus { position: relative; z-index: 2; margin-top: -8px; }
.city-plot.empty .city-plot-empty-label { position: absolute; z-index: 3; left: 50%; top: calc(100% + 3px); transform: translateX(-50%); min-width: max-content; padding: 2px 5px; border: 1px solid rgba(255,223,145,.38); border-radius: 4px; background: rgba(28,20,10,.82); color: #f8dc9a; font-size: .55rem !important; line-height: 1.1; letter-spacing: .02em; white-space: nowrap; text-transform: uppercase; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.city-plot.occupied.station-level-2 { width: clamp(104px, 8.6vw, 124px); height: clamp(104px, 8.6vw, 124px); }
.city-plot.occupied.station-level-3 { width: clamp(112px, 9.1vw, 132px); height: clamp(112px, 9.1vw, 132px); }
.city-plot.station-level-2 .city-building { transform-origin: center bottom; filter: drop-shadow(0 4px 4px rgba(33,20,8,.18)); animation: station-level-two 5.6s ease-in-out infinite; }
.city-plot.station-level-3 .city-building { transform-origin: center bottom; filter: drop-shadow(0 6px 7px rgba(33,20,8,.3)); animation: none; }
.city-plot.station-level-3 .city-building > img { filter: var(--station-filter) drop-shadow(0 0 2px rgba(255,222,139,.8)) drop-shadow(0 0 7px rgba(255,176,57,.46)); }
.city-plot.station-level-3 .city-building:has(.cool-aura) > img { filter: var(--station-filter) drop-shadow(0 0 2px rgba(172,239,255,.8)) drop-shadow(0 0 7px rgba(73,181,237,.46)); }
.city-plot.station-level-2 .city-station-base { width: 74%; opacity: .55; }
.city-plot.station-level-3 .city-station-base { width: 80%; opacity: .65; }
.city-building-label small { display: block; margin-top: 1px; color: #f6d47a; font-size: .52rem; font-weight: 700; text-transform: uppercase; }
.station-upgrade-card { margin: 10px 0; padding: 10px; border: 1px solid rgba(244,200,106,.52); border-radius: 7px; background: linear-gradient(135deg, rgba(103,72,33,.38), rgba(24,16,9,.52)); color: #f8dfaa; }
.station-upgrade-card p { margin: 5px 0; color: #d7c09a; font-size: .77rem; }
.station-upgrade-card.complete { border-color: rgba(91,190,138,.55); background: linear-gradient(135deg, rgba(36,104,69,.28), rgba(14,32,24,.46)); }
.city-plot.city-decoration.occupied .city-building { animation: decoration-breeze 7.2s ease-in-out infinite; }
.city-plot.city-decoration.occupied:nth-of-type(even) .city-building { animation-delay: -2.8s; }

/* Aktywność poziomu 3: światło wyłącznie po konturze bryły i stały, pionowy dym. */
.station-ambient { position: absolute; z-index: 4; inset: 0; overflow: visible; pointer-events: none; }
.station-smoke { position: absolute; left: 43%; bottom: 48%; width: 71%; aspect-ratio: 1; transform-origin: 31% 100%; opacity: .42; }
.station-smoke img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: bottom center; filter: grayscale(.32) contrast(.82) brightness(.94); }
.station-smoke::before, .station-smoke::after { content: ""; position: absolute; inset: 0; background: url('efekt-dym-kominowy.png') center bottom / contain no-repeat; filter: grayscale(.32) contrast(.82) brightness(.94); opacity: 0; animation: station-smoke-rise 10s linear infinite; }
.station-smoke::before { animation-delay: -5s; }
.station-smoke::after { animation-delay: 0s; }
.station-forge-glow { position: absolute; left: 30%; top: 57%; width: 47%; height: 25%; border-radius: 45% 45% 38% 38%; background: radial-gradient(ellipse at 50% 75%, rgba(255,232,155,.86), rgba(246,127,37,.42) 38%, rgba(197,73,21,.12) 62%, transparent 78%); filter: blur(1px); box-shadow: 0 0 17px rgba(242,105,30,.38); mix-blend-mode: screen; animation: station-forge-flicker 3.1s ease-in-out infinite; }
@keyframes station-smoke-rise {
  0% { transform: translateY(10px) scale(.78); opacity: 0; }
  14% { opacity: .28; }
  74% { opacity: .22; }
  100% { transform: translateY(-58px) scale(1.14); opacity: 0; }
}
@keyframes station-forge-flicker {
  0%, 100% { opacity: .42; transform: scale(.92); }
  45% { opacity: .86; transform: scale(1.04); }
  70% { opacity: .57; transform: scale(.97); }
}
@keyframes station-level-two {
  0%, 100% { transform: translateY(-2%) scale(1.045); filter: drop-shadow(0 4px 4px rgba(33,20,8,.18)); }
  50% { transform: translateY(-3.2%) scale(1.058); filter: drop-shadow(0 6px 6px rgba(33,20,8,.25)); }
}
@keyframes station-level-three {
  0%, 100% { transform: translateY(-4%) scale(1.1); filter: drop-shadow(0 6px 7px rgba(33,20,8,.3)) brightness(1); }
  50% { transform: translateY(-5.3%) scale(1.12); filter: drop-shadow(0 9px 10px rgba(74,45,12,.38)) brightness(1.08); }
}
@keyframes decoration-breeze {
  0%, 100% { transform: translateY(3%) rotate(var(--decoration-rotate, 0deg)) scale(var(--decoration-scale, 1)); }
  50% { transform: translateY(1.5%) rotate(calc(var(--decoration-rotate, 0deg) + 1deg)) scale(var(--decoration-scale, 1)); }
}
@media (prefers-reduced-motion: reduce) {
  .city-plot.station-level-2 .city-building,
  .city-plot.station-level-3 .city-building,
  .city-plot.city-decoration.occupied .city-building,
  .station-ambient * { animation: none; }
}

.watch-ad-btn { width: 100%; margin-top: 8px; background: linear-gradient(90deg, #b83280, #d53f8c); color: white; border: none; padding: 8px 10px; border-radius: 6px; font-weight: bold; cursor: pointer; font-size: 0.8rem; }

/* Jasny, nowoczesny język wizualny gry: piasek, pomarańcza i brąz. */
:root { --ui-paper: #fff8ea; --ui-cream: #f7e5c7; --ui-sand: #ebc98f; --ui-orange: #d98034; --ui-copper: #a95024; --ui-brown: #57321e; --ui-ink: #3a2217; }
body { background: radial-gradient(circle at 72% -10%, #fffaf0 0, #f7e5c7 34%, #e6bd7b 100%); color: var(--ui-ink); }
.main-content, .tab-panel { color: var(--ui-ink); }
.main-content { background: linear-gradient(135deg, rgba(255,250,240,.97), rgba(244,216,172,.9)) !important; }

#auth-modal, #settings-modal, #cleaning-modal, #epigraphy-animation-modal { background: rgba(76,42,21,.42); backdrop-filter: blur(10px); }
.auth-box-modern, .cleaning-content { color: var(--ui-ink); background: linear-gradient(145deg, #fffaf0, #f2d3a0); border-color: #c97832; box-shadow: 0 22px 55px rgba(87,50,30,.3); }
.auth-box-modern h2, .auth-form-group label { color: var(--ui-brown); }
.auth-subtitle { color: #79543a; }
.auth-form-group input[type="text"] { color: var(--ui-ink); background: rgba(255,255,255,.72); border-color: #d39a58; }
.avatar-select-btn, .method-btn { color: var(--ui-brown); background: #fff7e8; border-color: #d6a66c; }
.method-btn.active, .avatar-select-btn.active { color: var(--ui-ink); background: #f5c978 !important; border-color: #bd692b !important; }
.enter-game-btn { background: linear-gradient(135deg, #efab55, #cb642c); color: #fff9ed; box-shadow: 0 8px 18px rgba(182,86,31,.3); }

.sidebar { color: var(--ui-ink); background: linear-gradient(165deg, #fff8e9, #f2d6a7 58%, #dfaa68) !important; border-right-color: rgba(155,83,35,.32); box-shadow: 10px 0 30px rgba(97,52,25,.15); }
.sidebar::before { opacity: .6; background: repeating-linear-gradient(120deg, transparent 0 18px, rgba(165,83,32,.055) 19px 20px); }
.game-logo h2, .energy-labels, .storage-toggle-btn, .storage-art-name, .res-item { color: var(--ui-brown); }
.player-rank, .energy-regen-hint, .storage-hint, .storage-art-meta { color: #75533b; }
.archaeologist-card, .quick-stats, .resources-grid, .sidebar-storage-dropdown { background: rgba(255,250,239,.68) !important; border-color: rgba(161,88,37,.23) !important; box-shadow: 0 6px 15px rgba(106,59,26,.1); }
.archaeologist-card #sidebar-avatar { background: radial-gradient(circle at 30% 25%, #fff9ed, #d79b55) !important; border-color: #c77630 !important; }
.energy-bar-bg { background: #f4d5a0; border-color: #d6a36a; }
.energy-bar-fill { background: linear-gradient(90deg, #d8702f, #f0b65c); }
.xp-bg { border-color: #bf8959; }.xp-fill { background: linear-gradient(90deg, #e39040, #f4cc78); }
.storage-toggle-btn, .nav-btn { border-color: rgba(155,83,35,.2); background: rgba(255,252,244,.45); }
.nav-btn span { background: rgba(208,112,45,.11); }
.nav-btn:hover { background: rgba(225,139,62,.18); border-color: rgba(183,94,35,.45); }
.nav-btn.active { background: linear-gradient(100deg, #efb766, #d57632); color: #fffaf1; box-shadow: 0 7px 17px rgba(177,86,27,.23); }
.storage-card { background: linear-gradient(135deg, #fffaf1, #f0d2a0); border-color: #d8a56a; }
.storage-card:hover { background: linear-gradient(135deg, #fffdf8, #efc987); border-color: #c87532; }
.storage-art-preview { background: radial-gradient(circle, #fff9eb, #e5b971); border-color: #d49a59; }

.section-header, .museum-header, .room-header, .shop-header, .location-header { color: var(--ui-ink); }
.section-header h2, .museum-header h2, .room-header h2, .shop-header h2, .location-header h2 { color: var(--ui-brown) !important; }
.section-header, .museum-header { border-color: rgba(183,102,40,.28); }
.museum-controls, .gabloty-counter, .showcase-skin-control { color: var(--ui-brown); }
select, input, textarea { color: var(--ui-ink); background: #fffaf0; border: 1px solid #d29a5d; border-radius: 9px; padding: 7px 9px; }
select:focus, input:focus, textarea:focus { outline: 2px solid rgba(218,124,48,.28); border-color: #c86b2c; }

.shop-item-card, .expedition-card, .quest-card, .skill-tree-visual-wrapper, .rpg-skill-node, .skill-branch, .artifact-library-grid, .epigraphy-table-view, .dating-lab-view, .settings-section { color: var(--ui-ink); background: linear-gradient(145deg, rgba(255,250,240,.92), rgba(242,211,162,.92)); border-color: #d29a5b; box-shadow: 0 8px 18px rgba(110,59,25,.1); }
.shop-item-card p, .expedition-card p, .quest-card p, .rpg-skill-node p, .skill-branch p { color: #72523d; }
.shop-item-card h3, .expedition-card h3, .quest-card h3, .rpg-skill-node h4, .skill-branch h3, .room-shop-section-title { color: var(--ui-brown); }
.artifact-slot, .epigraphy-table-board, .epigraphy-slot, .cleaning-workspace-3d { background: rgba(255,248,234,.7); border-color: #d2a066; }
.rpg-skill-node.unlocked, .quest-card.completed { background: linear-gradient(145deg, #f6dfad, #ead09c); border-color: #c88038; }
.cosmetic-card { background: linear-gradient(145deg, #fff6e5, #e9c993); border-color: #b97542; }

button, .shop-btn, .exp-btn, .quest-btn, .skill-btn, .mini-slot-btn, .watch-ad-btn { border-radius: 10px; border: 1px solid rgba(128,65,27,.16); box-shadow: 0 4px 10px rgba(112,57,21,.13); transition: transform .16s ease, box-shadow .16s ease, filter .16s ease; }
button:hover:not(:disabled), .shop-btn:hover:not(:disabled), .exp-btn:hover:not(:disabled), .quest-btn:hover:not(:disabled), .skill-btn:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 8px 15px rgba(126,61,22,.2); filter: saturate(1.08) brightness(1.03); }
.shop-btn.buy, .exp-btn.unlock, .skill-btn, .quest-btn.claim { background: linear-gradient(135deg, #efb35f, #cf692d); color: #fffaf0; }
.shop-btn.equipped, .quest-btn.progress { background: #f7e1bc; color: #805033; border-color: #d9a568; }
.exp-btn.travel { background: linear-gradient(135deg, #ed9b48, #bd5d29); color: #fffaf0; }

/* Materiały gablot — jedna forma, 11 wyraźnych ram i poświat. */
.showcase-frame-container { --case-edge: #d59646; --case-glow: rgba(255,190,94,.56); --case-wash: rgba(255,214,141,.25); background: radial-gradient(ellipse at 50% 82%, var(--case-wash), transparent 67%) !important; box-shadow: inset 0 0 30px var(--case-glow), 0 0 0 2px var(--case-edge); }
.showcase-frame-container::before { content: ""; position: absolute; z-index: 8; inset: 5px; border: 2px solid var(--case-edge); border-radius: 10px 10px 4px 4px; box-shadow: inset 0 0 12px var(--case-glow), 0 0 8px var(--case-glow); pointer-events: none; }
.showcase-spotlight { background: radial-gradient(ellipse at 50% 88%, var(--case-wash), transparent 64%); }
.showcase-crown, .showcase-plaque { color: var(--case-edge); border-color: color-mix(in srgb, var(--case-edge) 70%, white); }
.showcase-crown i { background: linear-gradient(90deg, transparent, var(--case-edge), transparent); }
.showcase-frame-container.skin-classic { --case-edge: #bd7838; --case-glow: rgba(205,132,54,.38); --case-wash: rgba(246,184,99,.22); }
.showcase-frame-container.skin-gold { --case-edge: #f3c45f; --case-glow: rgba(255,204,83,.65); --case-wash: rgba(255,227,145,.35); }
.showcase-frame-container.skin-jade { --case-edge: #57b899; --case-glow: rgba(58,173,133,.56); --case-wash: rgba(115,226,178,.27); }
.showcase-frame-container.skin-lapis { --case-edge: #5588d4; --case-glow: rgba(67,131,226,.59); --case-wash: rgba(117,181,255,.27); }
.showcase-frame-container.skin-sandstone { --case-edge: #ce8c52; --case-glow: rgba(205,132,65,.52); --case-wash: rgba(242,182,108,.28); }
.showcase-frame-container.skin-obsidian { --case-edge: #9470bf; --case-glow: rgba(141,89,204,.59); --case-wash: rgba(184,132,247,.24); }
.showcase-frame-container.skin-ivory { --case-edge: #f0d79c; --case-glow: rgba(255,239,196,.72); --case-wash: rgba(255,248,221,.42); }
.showcase-frame-container.skin-royal { --case-edge: #4267bc; --case-glow: rgba(48,105,211,.61); --case-wash: rgba(103,158,255,.3); }
.showcase-frame-container.skin-copper { --case-edge: #c86f3d; --case-glow: rgba(210,94,42,.62); --case-wash: rgba(245,147,84,.27); }
.showcase-frame-container.skin-verdigris { --case-edge: #4e9f88; --case-glow: rgba(51,162,132,.58); --case-wash: rgba(101,209,177,.28); }
.showcase-frame-container.skin-amethyst { --case-edge: #a071cf; --case-glow: rgba(151,83,218,.66); --case-wash: rgba(203,142,255,.29); }
.showcase-frame-container.skin-sunrise { --case-edge: #eb913a; --case-glow: rgba(247,143,41,.68); --case-wash: rgba(255,203,101,.35); }
.pedestal-showcase-box { border: 1px solid rgba(237,184,105,.76); background: linear-gradient(145deg, rgba(255,248,232,.32), rgba(101,53,22,.22)); }
.pedestal-base { background: linear-gradient(#fff3d9, #e4b36d); border-top-color: #c87834; }.pedestal-name { color: #59311d; }.pedestal-construct { color: #6d4026; background: rgba(255,248,234,.5); border-color: #bd773b; }

/* Kontrast: na jasnym motywie wszystkie informacje użytkowe są czarne. */
:root { --ui-ink: #1d1712; }
body, .main-content, .tab-panel, .sidebar, .section-header, .museum-header, .room-header, .shop-header, .location-header { color: #1d1712; }
.section-header, .museum-header, .room-header, .shop-header, .location-header, .skills-header, .city-header {
  background: linear-gradient(135deg, #fffaf0, #f1cf98) !important;
  color: #1d1712 !important;
  border-color: #c87834 !important;
  box-shadow: 0 5px 14px rgba(97,48,18,.12);
}
.section-header h2, .museum-header h2, .room-header h2, .shop-header h2, .location-header h2,
.section-header p, .museum-header p, .room-header p, .shop-header p, .location-header p,
.museum-controls, .gabloty-counter, .showcase-skin-control { color: #1d1712 !important; text-shadow: none !important; }
.section-header h2, .museum-header h2, .room-header h2, .shop-header h2, .location-header h2 { color: #17110d !important; }

.museum-vertical-hall::before { background: linear-gradient(90deg, rgba(41,24,12,.12), transparent 22%, transparent 78%, rgba(41,24,12,.12)), linear-gradient(0deg, rgba(41,24,12,.16), transparent 46%); }
.pedestal-construct { color: #17110d !important; background: rgba(255,249,237,.84) !important; border-color: #9b572a !important; text-shadow: none; }
.pedestal-construct > div, .pedestal-name, .showcase-plaque, .empty-hint { color: #17110d !important; text-shadow: none !important; }
.showcase-plaque, .empty-hint { background: rgba(255,248,234,.92) !important; border-color: #9b572a !important; }
.pedestal-base { color: #17110d; background: linear-gradient(#fff8e8, #e8bd7c) !important; }

.nav-btn.active, .enter-game-btn, .shop-btn.buy, .exp-btn.unlock, .skill-btn, .quest-btn.claim, .exp-btn.travel { color: #17110d !important; }
.shop-item-card, .expedition-card, .quest-card, .rpg-skill-node, .skill-branch, .artifact-library-grid, .epigraphy-table-view, .dating-lab-view, .settings-section,
.shop-item-card p, .expedition-card p, .quest-card p, .rpg-skill-node p, .skill-branch p { color: #1d1712 !important; }

/* Jedna, spokojna paleta: ciemny brąz jako baza, bursztyn tylko dla akcji. */
:root { --night: #17100c; --panel: #281a12; --panel-raised: #382417; --copper: #b8692c; --amber: #dd913e; --cream-text: #f7e4c3; --muted-text: #cfb28b; --ink-on-light: #1c130d; }
body { background: #17100c; color: var(--cream-text); }
.main-content { background: radial-gradient(circle at 58% -15%, #3d281a 0, #21150e 44%, #17100c 100%) !important; color: var(--cream-text); }
.sidebar { color: var(--cream-text); background: linear-gradient(180deg, #2f1d12, #1a110c 72%, #120c09) !important; border-right-color: #75451f; box-shadow: 10px 0 28px rgba(0,0,0,.34); }
.sidebar::before { opacity: .42; background: repeating-linear-gradient(120deg, transparent 0 18px, rgba(226,146,61,.06) 19px 20px); }
.game-logo h2, .energy-labels, .storage-toggle-btn, .storage-art-name, .res-item { color: var(--cream-text); }
.player-rank, .energy-regen-hint, .storage-hint, .storage-art-meta { color: var(--muted-text); }
.archaeologist-card, .quick-stats, .resources-grid, .sidebar-storage-dropdown { background: rgba(62,39,24,.8) !important; border-color: rgba(216,140,59,.28) !important; box-shadow: inset 0 1px rgba(255,233,195,.05), 0 6px 14px rgba(0,0,0,.16); }
.storage-toggle-btn, .nav-btn { color: var(--cream-text); background: #382317; border-color: rgba(217,140,57,.3); }
.nav-btn span { background: rgba(235,160,76,.14); }.nav-btn:hover { background: #49301d; border-color: #c77731; }
.nav-btn.active { background: linear-gradient(135deg, #ca7731, #a95423); color: #17100c !important; }
.energy-bar-bg { background: #1a110c; border-color: #6d4121; }.energy-bar-fill, .xp-fill { background: linear-gradient(90deg, #a95125, #e49a43); }
.storage-card { color: var(--cream-text); background: linear-gradient(135deg, #432a19, #291a11); border-color: #70431f; }.storage-card:hover { background: linear-gradient(135deg, #52341e, #301d12); border-color: #c77731; }.storage-art-preview { background: radial-gradient(circle, #624025, #25170e); border-color: #9a5d2a; }

.section-header, .museum-header, .room-header, .shop-header, .location-header, .skills-header, .city-header { background: linear-gradient(135deg, #422817, #2a190f) !important; color: var(--cream-text) !important; border-color: #a95f28 !important; box-shadow: 0 5px 14px rgba(0,0,0,.26); }
.section-header h2, .museum-header h2, .room-header h2, .shop-header h2, .location-header h2, .section-header p, .museum-header p, .room-header p, .shop-header p, .location-header p, .museum-controls, .gabloty-counter, .showcase-skin-control { color: var(--cream-text) !important; }
select, input, textarea { color: var(--cream-text); background: #21140d; border-color: #9c5d2c; }
select:focus, input:focus, textarea:focus { outline-color: rgba(226,145,62,.38); border-color: #e19a47; }

.shop-item-card, .expedition-card, .quest-card, .rpg-skill-node, .skill-branch, .artifact-library-grid, .epigraphy-table-view, .dating-lab-view, .settings-section { color: var(--cream-text) !important; background: linear-gradient(145deg, #3a2517, #24170f) !important; border-color: #855022 !important; box-shadow: 0 9px 20px rgba(0,0,0,.22); }
.shop-item-card p, .expedition-card p, .quest-card p, .rpg-skill-node p, .skill-branch p, .station-work-view p, .station-action-lock p { color: var(--muted-text) !important; }
.shop-item-card h3, .expedition-card h3, .quest-card h3, .rpg-skill-node h4, .skill-branch h3, .room-shop-section-title { color: #f0bd75 !important; }
.artifact-slot, .epigraphy-table-board, .epigraphy-slot, .cleaning-workspace-3d { color: var(--cream-text); background: #21150e !important; border-color: #71451f !important; }
.rpg-skill-node.unlocked, .quest-card.completed { background: linear-gradient(145deg, #4c301a, #2b1a0f) !important; border-color: #c77831 !important; }
.cosmetic-card { background: linear-gradient(145deg, #3e2919, #26180f) !important; border-color: #9b5b2a !important; }

.dig-inspector, .dig-inspector *, .legend, .legend *, .expedition-event-card, .expedition-event-card *, .expedition-field-status, .expedition-field-status * { color: var(--cream-text); }
.dig-inspector, .legend, .expedition-event-card, .expedition-field-status { background: #17100c !important; border-color: #70431f !important; }
.dig-inspector h2, .legend h3, .expedition-event-card h4 { color: #efb86e !important; }
.legend li, .dig-inspector p, .expedition-event-card p, .expedition-field-status p { color: var(--muted-text) !important; }

.watch-ad-btn { background: linear-gradient(135deg, #c47a31, #87421f) !important; color: #17100c !important; border-color: #e4a253; }
.shop-btn.buy, .exp-btn.unlock, .skill-btn, .quest-btn.claim, .exp-btn.travel, .enter-game-btn { color: #17100c !important; background: linear-gradient(135deg, #e3a14e, #bc682a) !important; }
.shop-btn.equipped, .quest-btn.progress, .close-settings-btn { color: var(--cream-text) !important; background: #4a2d19 !important; border-color: #9b5d2b !important; }

/* Dziesięć portretów NPC: jeden spójny arkusz, używany przez profil i zadania. */
.npc-portrait { display: inline-block; flex: 0 0 auto; width: 58px; height: 58px; border: 2px solid #bd7335; border-radius: 50%; background-image: url('npc-avatars-sheet-v3.png'); background-repeat: no-repeat; background-size: 500% 200%; box-shadow: 0 3px 9px rgba(0,0,0,.36); }
.npc-aurel { background-position: 0% 0%; }.npc-nura { background-position: 25% 0%; }.npc-theo { background-position: 50% 0%; }.npc-clara { background-position: 75% 0%; }.npc-otis { background-position: 100% 0%; }
.npc-kenji { background-position: 0% 100%; }.npc-astrid { background-position: 25% 100%; }.npc-amaru { background-position: 50% 100%; }.npc-yuki { background-position: 75% 100%; }.npc-samir { background-position: 100% 100%; }
.npc-avatar-selection-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.npc-avatar-selection-grid .avatar-select-btn { min-width: 0; padding: 5px 2px; display: grid; justify-items: center; gap: 3px; color: var(--ink-on-light); font-size: .57rem; }
.npc-avatar-selection-grid .npc-portrait { width: 47px; height: 47px; }.npc-avatar-selection-grid .avatar-select-btn.active { background: #e8ad5c !important; border-color: #793c1d !important; }
#sidebar-avatar { display: grid; place-items: center; width: 60px; height: 60px; padding: 0 !important; overflow: hidden; }.archaeologist-card #sidebar-avatar .npc-portrait { width: 100%; height: 100%; border: 0; border-radius: 7px; box-shadow: none; }
.npc-assignment { display: flex; align-items: center; gap: 8px; margin: 8px 0 10px; padding: 6px 8px; border: 1px solid rgba(222,148,64,.32); border-radius: 8px; background: rgba(15,9,6,.36); color: var(--cream-text); }.npc-portrait-small { width: 36px; height: 36px; }.npc-assignment b, .npc-assignment small { display: block; }.npc-assignment small { margin-top: 1px; color: var(--muted-text); font-size: .67rem; }

/* Profesjonalne ustawienia konta i preferencji. */
.settings-title { margin: 0 0 15px; color: var(--cream-text); text-align: center; }.settings-section h4 { color: #efbb75; font-size: .85rem; border-bottom: 1px solid #75431f; padding-bottom: 6px; margin-bottom: 8px; }.settings-section p { color: var(--muted-text); font-size: .8rem; line-height: 1.45; }.settings-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }.settings-actions .shop-btn { margin-top: 0; }.settings-toggle { display: block; margin: 9px 0; color: var(--cream-text); font-size: .82rem; }.settings-toggle input { accent-color: #d78334; }.password-change-panel { margin-top: 10px; padding-top: 10px; border-top: 1px solid #75431f; }.password-change-panel label, .password-change-panel input { display: block; width: 100%; }.password-change-panel label { margin-bottom: 5px; color: var(--cream-text); font-size: .78rem; }.password-change-panel .shop-btn { margin-top: 8px; }.danger-btn { background: #6e2e20 !important; color: #fff1dc !important; border-color: #b9633c !important; }
.auth-provider-row { margin-bottom: 7px; }.auth-provider-hint { display: block; color: #76523a; font-size: .67rem; line-height: 1.35; }.auth-email-fields[hidden] { display: none; }.auth-email-fields label + input { margin-bottom: 9px; }
.auth-online-status { min-height: 1.35em; margin: 8px 0; color: #76523a; font-size: .72rem; line-height: 1.4; }.auth-online-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }.auth-online-actions .shop-btn { flex: 1; margin-top: 0; }.method-btn:disabled, .shop-btn:disabled { cursor: not-allowed; opacity: .58; filter: saturate(.55); }
.reduce-motion *, .reduce-motion *::before, .reduce-motion *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }.compact-ui .main-content { padding: 12px 14px; }.compact-ui .sidebar { width: 280px; }

/* Portrety zachowują proporcje oryginalnego arkusza 3:5 — bez rozciągania twarzy. */
.npc-portrait { width: 62px; height: 100px; aspect-ratio: 3 / 5; border-radius: 11px; background-size: 500% 200%; background-position-y: 0; }
.npc-avatar-selection-grid .npc-portrait { width: 56px; height: 92px; }.npc-avatar-selection-grid .avatar-select-btn { min-height: 122px; align-content: start; }
#sidebar-avatar { width: 72px; height: 112px; align-self: center; }.archaeologist-card #sidebar-avatar .npc-portrait { width: 72px; height: 112px; border-radius: 7px; }
.npc-portrait-small { width: 43px !important; height: 70px !important; border-radius: 8px; }.npc-assignment { min-height: 82px; align-items: center; }

.profile-avatar-picker { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin: 7px 0 10px; }.profile-avatar-option { display: grid; justify-items: center; gap: 3px; min-width: 0; padding: 4px 2px; color: var(--cream-text); background: #24160e; border: 1px solid #75431f; border-radius: 8px; font-size: .58rem; }.profile-avatar-option .npc-portrait { width: 42px; height: 68px; border-radius: 7px; }.profile-avatar-option.active { background: #63351c; border-color: #e2a152; box-shadow: 0 0 0 2px rgba(226,161,82,.16); }

.expedition-reward-preview { margin: 8px 0 2px; padding: 9px 10px; border: 1px solid #885020; border-left: 3px solid #e2a152; border-radius: 7px; background: rgba(20,12,8,.5); color: var(--cream-text); font-size: .75rem; }.expedition-reward-preview strong { display: block; color: #f1bd77; margin-bottom: 2px; }.expedition-reward-preview span { display: block; color: var(--muted-text); margin-bottom: 6px; }.expedition-reward-preview div { color: #f8e8cf; font-weight: 700; }

/* Archiwum: nieodkryte miejsca są widoczne, a wiedza otwiera się w osobnym oknie. */
.artifact-library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(116px, 1fr)); gap: 13px; padding: 15px; }.artifact-slot { width: 100%; min-height: 142px; height: auto; padding: 8px; border-radius: 10px; cursor: pointer; align-content: center; justify-items: center; gap: 6px; }.artifact-slot img { max-width: 78px; max-height: 78px; object-fit: contain; filter: drop-shadow(0 5px 6px rgba(0,0,0,.48)); }.artifact-slot span { max-width: 100%; color: var(--cream-text); font-size: .64rem; line-height: 1.15; text-align: center; font-weight: 700; }.artifact-slot.locked { display: grid; place-content: center; color: #9b7654; border-style: dashed; border-color: #70431f; background: repeating-linear-gradient(135deg, #21140d 0 10px, #2a1a10 10px 20px) !important; opacity: 1; cursor: default; }.artifact-slot.locked strong { font-size: 2.4rem; color: #b07b43; line-height: 1; }.artifact-slot.locked small { color: #9f7c58; font-size: .61rem; text-transform: uppercase; letter-spacing: .05em; }.artifact-slot.unlocked:hover { border-color: #e4a353; background: linear-gradient(145deg, #52331d, #2e1c11) !important; transform: translateY(-3px); }
.artifact-slot.unlocked { display: grid; grid-template-rows: 82px minmax(32px, auto); place-items: center; overflow: hidden; border-color: #9e602a !important; background: radial-gradient(circle at 50% 28%, rgba(228,166,75,.17), transparent 48%), #21150e !important; box-shadow: inset 0 0 0 1px rgba(255,207,111,.15), 0 5px 12px rgba(0,0,0,.24); }
.artifact-slot .artifact-library-icon { display: grid; place-items: center; width: 76px; height: 76px; font-size: 3.25rem; line-height: 1; border: 1px solid #d39a46; border-radius: 10px; background: #090705; box-shadow: inset 0 0 0 2px rgba(12,7,3,.7), inset 0 0 14px rgba(255,211,117,.18), 0 4px 9px rgba(0,0,0,.38); filter: drop-shadow(0 3px 2px rgba(0,0,0,.42)); }
.artifact-slot .artifact-library-icon.artifact-emoji { text-shadow: 0 2px 0 #4b2911, 0 0 12px rgba(250,198,88,.36); }
.artifact-sprite { display: block; background-image: var(--artifact-sprite); background-repeat: no-repeat; background-size: 400% calc(var(--artifact-sprite-rows, 8) * 100%); background-position: var(--artifact-sprite-x) var(--artifact-sprite-y); filter: drop-shadow(0 3px 2px rgba(0,0,0,.42)); }
.artifact-slot .artifact-library-icon.artifact-sprite { width: 76px; height: 76px; border: 1px solid #c98a38; border-radius: 8px; background-color: #090705; background-image: var(--artifact-sprite); background-repeat: no-repeat; background-size: 400% calc(var(--artifact-sprite-rows, 8) * 100%); background-position: var(--artifact-sprite-x) var(--artifact-sprite-y); box-shadow: inset 0 0 0 2px rgba(12,7,3,.7), inset 0 0 14px rgba(255,195,84,.11), 0 3px 8px rgba(0,0,0,.52); }
.museum-exhibit-live-img.artifact-emoji, .storage-art-img-live.artifact-emoji { display: grid; place-items: center; line-height: 1; text-shadow: 0 3px 0 #44230f, 0 0 14px rgba(246,194,82,.42); }
.museum-exhibit-live-img.artifact-emoji { width: 100%; height: 100%; font-size: 4.35rem; }.storage-art-img-live.artifact-emoji { width: 100%; height: 100%; font-size: 2.1rem; }
.museum-exhibit-live-img.artifact-sprite, .storage-art-img-live.artifact-sprite { width: 100%; height: 100%; background-size: 400% calc(var(--artifact-sprite-rows, 8) * 100%); }
/* Ciemne tło i ramka są elementem katalogu archiwum. W gablotach pozostaje
   sam eksponat, bez czarnego prostokąta odziedziczonego po arkuszu sprite'ów. */
.museum-exhibit-live-img.artifact-sprite { background-color: transparent; border: 0; border-radius: 0; box-shadow: none; mix-blend-mode: screen; }
#artifact-detail-modal { background: rgba(6,4,3,.72); }.artifact-detail-card { position: relative; display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 18px; width: min(620px, 92vw); padding: 24px; border: 1px solid #ad672f; border-radius: 14px; background: linear-gradient(145deg, #422917, #21140d); box-shadow: 0 22px 54px rgba(0,0,0,.56); color: var(--cream-text); }.artifact-detail-card > img { width: 150px; height: 150px; object-fit: contain; border: 1px solid #8e5428; border-radius: 10px; background: radial-gradient(circle, #5b391f, #1d120c); }.artifact-detail-card h2 { margin: 5px 26px 10px 0; color: #f0bd75; font-size: 1.25rem; }.artifact-detail-card p { color: #ebd6b7; line-height: 1.55; font-size: .88rem; }.artifact-detail-rarity { display: inline-block; padding: 3px 7px; border: 1px solid #b86c2d; border-radius: 999px; color: #f0bd75; font-size: .68rem; font-weight: 700; }.artifact-detail-card a { display: inline-block; margin-top: 14px; color: #ffc46e; font-size: .78rem; font-weight: 700; }.artifact-detail-close { position: absolute; top: 9px; right: 10px; width: 30px; height: 30px; margin: 0; padding: 0; color: #f8dec0; background: #5e2d1b; border-color: #ae6631; border-radius: 50%; font-size: 1.3rem; line-height: 1; }.artifact-detail-close:hover { background: #884522; }.artifact-detail-card a:hover { color: #fff0d5; }
.artifact-detail-symbol { display: none; place-items: center; width: 150px; height: 150px; border: 1px solid #d39a46; border-radius: 10px; background: radial-gradient(circle at 42% 30%, rgba(255,224,135,.25), #21140d 68%); box-shadow: inset 0 0 18px rgba(250,197,79,.18); color: #f4c36a; font-size: 5.5rem; line-height: 1; text-shadow: 0 4px 0 #4a2810, 0 0 18px rgba(248,202,100,.45); }
.artifact-detail-symbol.artifact-sprite { width: 150px; height: 150px; border: 1px solid #d39a46; border-radius: 10px; background-color: #21140d; background-image: var(--artifact-sprite); background-repeat: no-repeat; background-size: 400% calc(var(--artifact-sprite-rows, 8) * 100%); background-position: var(--artifact-sprite-x) var(--artifact-sprite-y); box-shadow: inset 0 0 18px rgba(250,197,79,.18); }

/* Arkusze eksponatów nie mają kwadratowych pól: pełne kolekcje są w
   formacie 4:3, a pierwsze osiem obiektów każdej ekspedycji w 3:4.
   Zachowanie tych proporcji usuwa rozciąganie i obcinanie we wszystkich
   widokach korzystających ze wspólnego renderera sprite'ów. */
.artifact-sprite-wide { aspect-ratio: 4 / 3; }
.artifact-sprite-tall { aspect-ratio: 3 / 4; }
.artifact-slot .artifact-library-icon.artifact-sprite.artifact-sprite-wide { width: 76px; height: 57px; }
.artifact-slot .artifact-library-icon.artifact-sprite.artifact-sprite-tall { width: 57px; height: 76px; }
.museum-exhibit-live-img.artifact-sprite.artifact-sprite-wide { width: 100%; height: auto; }
.museum-exhibit-live-img.artifact-sprite.artifact-sprite-tall { width: auto; height: 100%; }
.storage-art-img-live.artifact-sprite.artifact-sprite-wide { width: 100%; height: 75%; }
.storage-art-img-live.artifact-sprite.artifact-sprite-tall { width: 75%; height: 100%; }
.artifact-detail-symbol.artifact-sprite.artifact-sprite-wide { width: 150px; height: 113px; justify-self: center; align-self: center; }
.artifact-detail-symbol.artifact-sprite.artifact-sprite-tall { width: 113px; height: 150px; justify-self: center; align-self: center; }
@media (max-width: 620px) { .artifact-detail-card { grid-template-columns: 1fr; }.artifact-detail-card > img { margin: 0 auto; }.npc-avatar-selection-grid .npc-portrait { width: 44px; height: 72px; }.npc-avatar-selection-grid .avatar-select-btn { min-height: 99px; } }

/* Pojedyncze, przezroczyste ikony artefaktów. Każdy widok pokazuje cały
   kształt, bez rozciągania i bez ukrywania przez kontener. */
img.artifact-library-icon,
img.museum-exhibit-live-img,
img.storage-art-img-live,
img.excavated-art-img {
  display: block;
  box-sizing: border-box;
  object-fit: contain;
  object-position: center;
  background: transparent;
}
.museum-exhibit-stage,
.tile-artifact-final {
  overflow: visible;
}

/* Eksponaty muszą pozostać ostre. Poprzednia animacja obracała bitmapę w 3D
   i animowała poświatę do 25 px, przez co małe detale stawały się zamazane. */
.museum-exhibit-live-img {
  width: 90px;
  height: 90px;
  filter: drop-shadow(0 5px 4px rgba(0, 0, 0, 0.72));
  animation: exhibitFloating3D 4.2s ease-in-out infinite alternate;
  image-rendering: auto;
  backface-visibility: hidden;
}

@keyframes exhibitFloating3D {
  from { transform: translateY(0); }
  to { transform: translateY(-3px); }
}

/* Dziennik archeologa: postęp kolekcji, kompletowanie serii i cele po 40/40. */
.museum-prestige { display: inline-flex; align-items: center; min-height: 28px; padding: 0 9px; border: 1px solid #a96b31; border-radius: 999px; background: rgba(34,19,10,.54); color: #f7d28a; font-size: .72rem; white-space: nowrap; }.museum-prestige b { margin-right: 3px; color: #fff0bc; }
.research-survey-box { display: grid; gap: 7px; margin: 10px 0; padding: 9px; border: 1px solid #765224; border-radius: 8px; background: rgba(27,17,10,.62); color: #ecd2a4; font-size: .73rem; }.research-survey-box button, .field-choice { min-height: 30px; padding: 6px 8px; border: 1px solid #b97935; border-radius: 6px; color: #fff0d2; background: #5c331b; font: inherit; font-weight: 700; cursor: pointer; }.research-survey-box button:hover, .field-choice:hover { background: #7b4823; }.field-decision-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 8px; }.field-choice.careful { border-color: #6da995; background: #23453d; }.field-choice.rapid { border-color: #c3783b; background: #68351c; }
.badge-fragmented { color: #f6d785 !important; background: #4d3820 !important; border-color: #b48a42 !important; }
#collection-dashboard { margin: 14px 0; }.collection-summary-card, .collection-current-map, .location-collection-overview { border: 1px solid #805027; border-radius: 12px; background: linear-gradient(145deg, rgba(64,39,21,.96), rgba(31,19,12,.97)); box-shadow: 0 8px 20px rgba(0,0,0,.22); }.collection-summary-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; padding: 16px; }.collection-kicker { color: #e6ae60; font-size: .62rem; font-weight: 800; letter-spacing: .11em; }.collection-summary-card h3, .collection-current-map h3 { margin: 4px 0 5px; color: #ffe1a7; font-size: 1rem; }.collection-summary-card p, .collection-set-card p, .location-mastery-card p { margin: 0; color: #c5a98a; font-size: .74rem; line-height: 1.4; }.collection-summary-stats { display: grid; grid-template-columns: repeat(2, minmax(98px, 1fr)); gap: 7px; align-content: center; }.collection-summary-stats span { display: grid; padding: 7px 9px; border: 1px solid rgba(191,132,66,.45); border-radius: 8px; background: rgba(14,8,5,.35); text-align: center; }.collection-summary-stats b { color: #ffe1a7; font-size: .94rem; }.collection-summary-stats small { margin-top: 2px; color: #b99871; font-size: .58rem; }.collection-current-map { margin-top: 11px; padding: 14px; }.collection-current-header { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 12px; }.collection-current-header > div:first-child > span { color: #d8a964; font-size: .7rem; font-weight: 800; }.collection-progress-bar, .location-progress-line i { display: block; overflow: hidden; height: 8px; border-radius: 999px; background: #1a100a; box-shadow: inset 0 1px 2px rgba(0,0,0,.56); }.collection-progress-bar { flex: 0 1 270px; min-width: 130px; }.collection-progress-bar i, .location-progress-line em { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #a65a20, #f2c56c); box-shadow: 0 0 8px rgba(237,179,78,.48); }.collection-set-grid { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 9px; }.collection-set-card { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 10px; border: 1px solid #68401f; border-radius: 9px; background: rgba(20,12,8,.5); }.collection-set-card.ready { border-color: #c58a38; box-shadow: inset 0 0 14px rgba(229,169,74,.08); }.collection-set-card.claimed { border-color: #467b62; }.collection-set-icon { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #ad7130; border-radius: 50%; color: #ffd886; background: #39200f; font-size: .95rem; }.collection-set-card h4 { margin: 0 0 3px; color: #f1c57d; font-size: .75rem; }.collection-set-card p { min-height: 32px; font-size: .62rem; }.collection-set-card span { display: block; margin-top: 5px; color: #dcc39e; font-size: .63rem; font-weight: 700; }.collection-set-card button, .location-mastery-card button { grid-column: 1 / -1; min-height: 30px; margin-top: 1px; padding: 5px 7px; border: 1px solid #a96b31; border-radius: 6px; color: #ffe7be; background: #5b3219; font: inherit; font-size: .65rem; font-weight: 700; cursor: pointer; }.collection-set-card button:disabled { border-color: #57371f; color: #917253; background: #2b1b10; cursor: default; }.collection-set-card.ready button:not(:disabled), .location-mastery-card button { background: linear-gradient(135deg, #8b4b1f, #bb772b); }.location-mastery-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 11px; padding: 11px; border: 1px solid #8a672e; border-radius: 9px; background: radial-gradient(circle at 12% 10%, rgba(213,164,73,.18), transparent 38%), #2c1a0f; }.location-mastery-card span { color: #f4c979; font-size: .64rem; font-weight: 800; letter-spacing: .08em; }.location-mastery-card h4 { margin: 3px 0; color: #ffe2a3; font-size: .8rem; }.location-mastery-card button { min-width: 150px; margin: 0; }.location-collection-overview { display: grid; gap: 6px; margin-top: 11px; padding: 10px; }.location-progress-line { display: grid; grid-template-columns: minmax(130px, 1fr) 42px minmax(90px, 2fr) 48px; align-items: center; gap: 8px; min-height: 25px; padding: 0 5px; color: #bda080; font-size: .66rem; }.location-progress-line.active { color: #ffe1a5; background: rgba(205,142,56,.1); border-radius: 5px; }.location-progress-line b { color: #edc47f; text-align: right; }.location-progress-line small { color: #af8656; text-align: right; font-size: .57rem; }
@media (max-width: 1120px) { .collection-set-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); } }
@media (max-width: 760px) { .collection-summary-card { grid-template-columns: 1fr; }.collection-current-header, .location-mastery-card { align-items: stretch; flex-direction: column; }.collection-progress-bar { flex-basis: auto; }.collection-set-grid { grid-template-columns: repeat(2, minmax(135px, 1fr)); }.field-decision-actions { grid-template-columns: 1fr; }.location-progress-line { grid-template-columns: minmax(100px, 1fr) 38px minmax(70px, 1fr); }.location-progress-line small { display: none; } }

/* Unikaty, osiągnięcia i podgląd skórek — osobna, czytelna warstwa postępu. */
.unique-museum-gallery { margin-top: 18px; padding: 15px; border: 1px solid #9e7137; border-radius: 12px; background: radial-gradient(circle at 20% 0, rgba(231,187,95,.18), transparent 34%), linear-gradient(145deg, #312013, #17100c); box-shadow: 0 12px 25px rgba(0,0,0,.26); }
.unique-museum-gallery > header { display: flex; align-items: start; justify-content: space-between; gap: 16px; margin-bottom: 12px; }.unique-museum-gallery header span { color: #f0c56d; font-weight: 800; font-size: .65rem; letter-spacing: .11em; }.unique-museum-gallery h3 { margin: 3px 0; color: #ffe4a7; font-size: 1rem; }.unique-museum-gallery p { margin: 0; color: #c8ad87; font-size: .72rem; line-height: 1.42; }.unique-museum-gallery > header > b { display: grid; min-width: 42px; min-height: 42px; place-items: center; border: 1px solid #d0a356; border-radius: 50%; background: #4f3016; color: #fff0bf; }
.unique-relic-grid { display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 10px; }.unique-relic-card { min-height: 195px; display: grid; grid-template-rows: 112px auto; align-items: center; padding: 9px; border: 1px solid #7d5428; border-radius: 9px; background: rgba(12,8,5,.52); text-align: center; }.unique-relic-card.earned { border-color: #d2a64f; box-shadow: inset 0 0 20px rgba(238,183,67,.1); }.unique-relic-card.locked { opacity: .66; }.unique-relic-image { width: 105px; height: 105px; object-fit: contain; justify-self: center; filter: drop-shadow(0 8px 9px rgba(0,0,0,.64)); }.unique-relic-lock { display: grid; width: 78px; height: 78px; place-items: center; justify-self: center; border: 1px dashed #9b7542; border-radius: 50%; color: #d2ae70; font-size: 1.8rem; }.unique-relic-card h4 { margin: 3px 0; color: #f7d48a; font-size: .72rem; }.unique-relic-card small { color: #bd9360; font-size: .6rem; font-weight: 700; }.unique-relic-card p { color: #d1ba94; font-size: .62rem; }
.achievements-section { margin-top: 24px; padding: 15px; border: 1px solid #72502d; border-radius: 11px; background: linear-gradient(145deg, rgba(55,34,20,.88), rgba(22,14,9,.96)); }.achievements-section h3 { margin: 0; color: #f1c57b; }.achievements-section > p { margin: 5px 0 12px; color: #c6a985; font-size: .76rem; }.achievements-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(235px, 1fr)); gap: 9px; }.achievement-card { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 10px; border: 1px solid #684522; border-radius: 8px; background: rgba(15,10,7,.48); }.achievement-card.ready { border-color: #c68a3d; box-shadow: inset 0 0 15px rgba(226,167,58,.1); }.achievement-card.claimed { border-color: #3f7657; }.achievement-icon { display: grid; width: 32px; height: 32px; place-items: center; border: 1px solid #a56d2d; border-radius: 50%; background: #3a2211; }.achievement-card h4 { margin: 0 0 2px; color: #f4ce85; font-size: .73rem; }.achievement-card p, .achievement-card small { display: block; margin: 0; color: #bea381; font-size: .61rem; line-height: 1.3; }.achievement-card small { margin-top: 4px; color: #e5bf73; }.achievement-card button { padding: 6px 7px; border: 1px solid #ad7432; border-radius: 5px; background: #724019; color: #fff0c6; font: inherit; font-size: .62rem; font-weight: 700; cursor: pointer; }.achievement-card button:disabled { border-color: #52371f; background: #291a10; color: #997753; cursor: default; }
.shop-skin-preview, .shop-premium-preview { height: 94px; display: grid; place-items: center; margin-bottom: 8px; overflow: hidden; border: 1px solid rgba(231,177,91,.42); border-radius: 8px; background: radial-gradient(circle, rgba(220,170,88,.2), rgba(29,18,10,.78)); }.shop-skin-preview img { width: 112px; height: 92px; object-fit: contain; filter: drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-skin-preview.skin-jade img { filter: hue-rotate(95deg) saturate(1.4) drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-skin-preview.skin-lapis img, .shop-skin-preview.skin-royal img { filter: hue-rotate(164deg) saturate(1.55) drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-skin-preview.skin-obsidian img { filter: grayscale(.6) brightness(.7) contrast(1.25) drop-shadow(0 6px 7px rgba(0,0,0,.75)); }.shop-skin-preview.skin-amethyst img { filter: hue-rotate(235deg) saturate(1.4) drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-skin-preview.skin-copper img, .shop-skin-preview.skin-bronze img { filter: sepia(.55) saturate(1.35) drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-skin-preview.skin-verdigris img { filter: hue-rotate(80deg) sepia(.35) saturate(1.1) drop-shadow(0 6px 7px rgba(0,0,0,.55)); }.shop-premium-preview { color: #ffd775; font-size: 2.8rem; }.premium-item-card { border-color: #9b713d; background: linear-gradient(160deg, rgba(83,53,23,.7), rgba(27,17,9,.95)); }
.station-pack-preview { display: block; width: 100%; height: 148px; margin-bottom: 9px; border: 1px solid rgba(238,184,92,.56); border-radius: 8px; object-fit: contain; object-position: center; background: radial-gradient(circle, #4a2c16, #160d08); }
.station-pack-preview-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; min-height: 148px; margin-bottom: 9px; padding: 7px; overflow: hidden; border: 1px solid rgba(238,184,92,.56); border-radius: 8px; background: radial-gradient(circle at 50% 35%, #56341b, #160d08 72%); }
.station-pack-preview-grid img { width: 100%; height: 64px; object-fit: contain; filter: drop-shadow(0 5px 5px rgba(0,0,0,.65)); }
.station-pack-preview-grid.large { grid-template-columns: repeat(4, minmax(88px, 1fr)); min-height: 270px; gap: 10px; padding: 14px; }.station-pack-preview-grid.large img { height: 115px; }
.shop-btn.preview { margin-top: 0; color: #f7d589 !important; background: transparent !important; border-color: rgba(234,174,81,.68) !important; }
.museum-ranking-link { padding: 7px 11px; border: 1px solid #bd7a32; border-radius: 8px; background: rgba(69,38,17,.72); color: #ffe0a1; font: inherit; font-size: .72rem; font-weight: 800; cursor: pointer; }
.sidebar-avatar-frame { position: relative; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 34% 23%, #fff0c8 0 8%, #c87531 9% 12%, #1c1009 45%) !important; box-shadow: 0 0 0 3px rgba(227,161,78,.18), inset 0 0 22px rgba(0,0,0,.42); }.sidebar-avatar-frame::after { content: "BADACZ"; position: absolute; right: 3px; bottom: 3px; padding: 2px 4px; border-radius: 3px; background: rgba(25,13,7,.82); color: #ffd990; font-size: .44rem; font-weight: 900; letter-spacing: .08em; }
#field-decision-modal, #premium-preview-modal { z-index: 3000; background: rgba(8,5,3,.72); backdrop-filter: blur(7px); }
.field-decision-card, .premium-preview-card { position: relative; width: min(700px, calc(100vw - 32px)); max-height: min(82vh, 720px); overflow: auto; padding: 24px; border: 1px solid #c8873e; border-radius: 15px; background: radial-gradient(circle at 82% 0, rgba(175,86,26,.22), transparent 35%), linear-gradient(145deg, #3c2516, #170e09); color: #f9dfaf; box-shadow: 0 30px 80px rgba(0,0,0,.62), inset 0 1px rgba(255,232,176,.14); }
.field-decision-card h2, .premium-preview-card h2 { margin: 5px 0 9px; color: #ffd180; font-size: 1.32rem; }.field-decision-card p, .premium-preview-card p { color: #d5ba94; line-height: 1.48; }.field-decision-strategy { margin: 14px 0; padding: 9px 10px; border-left: 3px solid #e1a14e; border-radius: 5px; background: rgba(9,6,4,.45); color: #f3c477; font-size: .76rem; }.field-decision-card .expedition-choice-list { margin-top: 16px; }.field-decision-card .expedition-choice { min-height: 76px; padding: 12px; border: 1px solid #a56730; border-radius: 9px; background: linear-gradient(145deg, #663717, #352012); color: #fff0ca; cursor: pointer; text-align: left; }.field-decision-card .expedition-choice:hover { border-color: #f2b557; transform: translateY(-2px); }.field-decision-card .expedition-choice strong, .field-decision-card .expedition-choice small { display: block; }.field-decision-card .expedition-choice small { margin-top: 4px; color: #d7b887; }
.premium-preview-card { width: min(850px, calc(100vw - 32px)); }.premium-preview-close { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; border: 1px solid #b77737; border-radius: 50%; background: #28160d; color: #ffd58c; font-size: 1.35rem; cursor: pointer; }.premium-preview-visual { margin: 16px 0; }.premium-preview-card > div > small { color: #bba17c; }
.quest-rotation-hint { display: block; max-width: 160px; margin-top: 7px; color: #b99b76; font-size: .62rem; line-height: 1.35; }.active-quest-card { border-color: #c7843b !important; box-shadow: inset 0 0 0 1px rgba(255,210,124,.08), 0 9px 22px rgba(0,0,0,.22); }
@media (max-width: 1100px) { .unique-relic-grid { grid-template-columns: repeat(3, minmax(145px, 1fr)); } }
@media (max-width: 900px) { .unique-relic-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); } }
@media (max-width: 650px) { .unique-relic-grid { grid-template-columns: repeat(2, minmax(130px, 1fr)); }.unique-museum-gallery > header { display: block; }.unique-museum-gallery > header > b { margin-top: 8px; }.achievement-card { grid-template-columns: 32px 1fr; }.achievement-card button { grid-column: 1 / -1; } }

/* Czytelna, szeroka przestrzeń wykopalisk: kafelki dostają całą szerokość,
   a narzędzia terenowe są spokojnym panelem pod planszą. */
.dig-area-container { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 15px; }
.dig-site-map-viewport { box-sizing: border-box; width: 100% !important; height: clamp(500px, 48vw, 650px); padding: 12px; }
.grid-board-overlay { gap: 10px; }
.tile { min-height: 0; border-width: 2px; }
.excavated-art-img, .excavated-resource-img { width: clamp(68px, 7vw, 104px); height: clamp(68px, 7vw, 104px); }
.excavated-art-img.fragment-find { clip-path: polygon(10% 6%, 89% 0, 96% 48%, 74% 61%, 67% 94%, 27% 88%, 4% 57%); transform: rotate(-4deg) scale(.88); filter: drop-shadow(0 7px 7px rgba(0,0,0,.68)); }.excavated-art-img.fragment-find.fragment-set { clip-path: none; transform: scale(.94); }
.tile-depth { font-size: clamp(.62rem, .9vw, .78rem); }
.tile-surface-sign { font-size: clamp(1.1rem, 2vw, 1.65rem); }
.dig-inspector { display: grid; grid-template-columns: minmax(230px, 1.1fr) minmax(220px, .95fr) minmax(290px, 1.35fr); gap: 11px; align-items: start; padding: 14px; }
.dig-inspector-heading, .brush-status, .legend { grid-column: 1 / -1; }
.dig-inspector-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; padding-bottom: 9px; border-bottom: 1px solid rgba(225,154,71,.28); }
.dig-inspector-heading span { color: #e7a553; font-size: .62rem; font-weight: 800; letter-spacing: .12em; }
.dig-inspector-heading h2 { margin: 2px 0 0; }
.dig-inspector-heading p { max-width: 430px; margin: 0; font-size: .72rem; line-height: 1.4; }
.radar-control, .research-survey-box, .inspector-box { min-height: 88px; margin: 0; padding: 10px; border: 1px solid rgba(186,120,48,.36); border-radius: 8px; background: rgba(8,6,4,.28); }
.radar-control small { display: block; margin-top: 6px; color: #c5ad87; font-size: .67rem; }
.radar-control small strong { color: #e7c16f; }
.tile.radar-detected { outline: 2px solid rgba(99, 200, 255, .92); outline-offset: -4px; box-shadow: inset 0 0 26px rgba(66,174,235,.42), 0 0 18px rgba(66,174,235,.35); }
.tile.radar-detected::after { bottom: 9px; left: 9px; right: 9px; padding: 3px 5px; border-radius: 4px; background: rgba(7,18,26,.78); text-align: center; color: #d9f5ff; font-size: .62rem; }

/* Katalog budowy: osobne kategorie i kontrast niezależny od końcowego motywu. */
.city-shop-drawer { color: #f8e5bf !important; background: linear-gradient(145deg, #302013, #17100b) !important; border-color: #a7652d !important; }
.city-shop-drawer.open { max-height: min(650px, 72vh); padding: 16px; }
.city-shop-drawer > h3 { color: #ffd68d !important; margin: 0 0 14px; font-size: 1rem; }
.city-shop-drawer .shop-grid, .room-shop-catalog { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.room-shop-category { padding: 12px; border: 1px solid rgba(211,139,57,.45); border-radius: 10px; background: rgba(11,7,4,.38); }
.room-shop-section-title { color: #ffe0a0 !important; margin: 0 0 10px !important; font-size: .96rem; }
.room-shop-section-title small { display: block; margin-top: 4px; color: #d6b785 !important; font-size: .71rem; font-weight: 500; line-height: 1.35; }
.room-shop-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.city-shop-drawer .shop-card { display: flex; min-height: 310px; flex-direction: column; color: #f9e6c0 !important; background: linear-gradient(155deg, #422917, #24160d 76%) !important; border: 1px solid #9d602c !important; border-radius: 9px; padding: 10px; box-shadow: inset 0 1px rgba(255,229,182,.07), 0 7px 13px rgba(0,0,0,.22); }
.city-shop-drawer .shop-card h4 { margin: 0 0 4px; color: #ffe1a2 !important; font-size: .83rem; }
.city-shop-drawer .shop-card p, .city-shop-drawer .shop-card .shop-cost { color: #dfc197 !important; font-size: .69rem; line-height: 1.35; }
.city-shop-drawer .shop-card .shop-cost { margin-top: auto; color: #f3c56c !important; font-weight: 700; }
.city-shop-drawer .room-shop-kind { color: #d8af67 !important; }
.city-shop-drawer .room-shop-preview { height: 118px; margin: 0 0 10px; background: radial-gradient(circle at 50% 55%, rgba(211,139,57,.25), #1b1009 72%); border-color: rgba(240,180,94,.48); object-fit: contain; }
.city-shop-drawer .room-decoration-preview { position: relative; display: block; overflow: hidden; }
.city-shop-drawer .room-decoration-preview img { position: absolute; width: 200%; height: 200%; max-width: none; object-fit: fill; }
.city-shop-drawer .room-decoration-preview[data-decoration-frame="0"] img { left: 0; top: 0; }
.city-shop-drawer .room-decoration-preview[data-decoration-frame="1"] img { left: -100%; top: 0; }
.city-shop-drawer .room-decoration-preview[data-decoration-frame="2"] img { left: 0; top: -100%; }
.city-shop-drawer .room-decoration-preview[data-decoration-frame="3"] img { left: -100%; top: -100%; }
.city-shop-drawer .shop-card .shop-btn { margin-top: 9px; }

/* Płynne czyszczenie: duży artefakt pod warstwą kurzu i wsparcie dotyku. */
.cleaning-content { max-width: 520px; }
.cleaning-workspace-3d { width: min(400px, calc(100vw - 68px)) !important; height: min(400px, calc(100vw - 68px)) !important; margin-bottom: 14px; border: 2px solid #bb7838 !important; background: radial-gradient(circle at 50% 45%, #583b20 0%, #26180f 57%, #110b07 100%) !important; box-shadow: inset 0 0 38px rgba(0,0,0,.74), 0 9px 24px rgba(0,0,0,.38); }
.object-container-3d { width: 100%; height: 100%; cursor: crosshair; }
.cleaning-target-img-3d { inset: 8%; width: 84%; height: 84%; filter: drop-shadow(0 12px 9px rgba(0,0,0,.65)); }
.cleaning-canvas-3d { width: 100% !important; height: 100% !important; touch-action: none; cursor: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"%3E%3Ccircle cx="16" cy="16" r="12" fill="none" stroke="%23ffe3a4" stroke-width="2"/%3E%3Ccircle cx="16" cy="16" r="3" fill="%23d48b45"/%3E%3C/svg%3E') 16 16, crosshair; }

/* Skład rankingu jest niezależny od liczby zwykłych gablot. */
.ranking-exhibition { margin: 0 0 16px; padding: 14px; border: 1px solid #9b6c34; border-radius: 12px; background: radial-gradient(circle at 0 0, rgba(218,151,53,.2), transparent 34%), linear-gradient(145deg, #372313, #17100b); box-shadow: 0 10px 22px rgba(0,0,0,.24); }
.ranking-exhibition > header { display: flex; align-items: start; justify-content: space-between; gap: 14px; }.ranking-exhibition header span { color: #e9b660; font-size: .63rem; font-weight: 800; letter-spacing: .12em; }.ranking-exhibition h3 { margin: 4px 0; color: #ffe2a5; font-size: 1rem; }.ranking-exhibition header p { max-width: 700px; margin: 0; color: #cfb18a; font-size: .72rem; line-height: 1.4; }.ranking-exhibition > header > b { display: grid; min-width: 40px; height: 40px; place-items: center; border: 1px solid #d59b45; border-radius: 50%; color: #ffe1a0; background: #4b2c13; }
.ranking-summary { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; margin: 12px 0; padding: 8px 10px; border-radius: 7px; background: rgba(8,5,3,.34); color: #d6bd96; font-size: .72rem; }.ranking-summary strong, .ranking-summary b { color: #ffda8b; }
.ranking-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(220px, .75fr); gap: 11px; }.ranking-exhibit-list { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 7px; }.ranking-exhibit-card { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 6px; align-items: center; padding: 6px; border: 1px solid rgba(194,133,60,.5); border-radius: 7px; background: rgba(9,6,4,.35); }.ranking-exhibit-card img { width: 42px; height: 42px; object-fit: contain; filter: drop-shadow(0 3px 4px rgba(0,0,0,.62)); }.ranking-exhibit-card b, .ranking-exhibit-card small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.ranking-exhibit-card b { color: #f7d595; font-size: .63rem; }.ranking-exhibit-card small { margin-top: 3px; color: #bfa179; font-size: .55rem; }.ranking-empty { grid-column: 1 / -1; margin: 0; padding: 18px; color: #bfa27b; text-align: center; font-size: .73rem; }.ranking-board { margin: 0; padding: 4px 7px; list-style: none; border: 1px solid rgba(194,133,60,.45); border-radius: 7px; background: rgba(8,5,3,.3); }.ranking-board li { display: grid; grid-template-columns: 18px 1fr auto; gap: 6px; padding: 6px 0; border-bottom: 1px solid rgba(197,139,68,.17); color: #cdb08a; font-size: .64rem; }.ranking-board li:last-child { border: 0; }.ranking-board li.player { color: #ffdc91; font-weight: 800; }.ranking-board li strong { color: inherit; }.ranking-synergy { margin: 9px 0 0; color: #d3b17c; font-size: .65rem; }.ranking-select-btn { width: 100%; margin-top: 6px; padding: 4px 5px; border: 1px solid #a66b2d; border-radius: 5px; background: #372012; color: #f6d499; font: inherit; font-size: .56rem; font-weight: 700; cursor: pointer; }.ranking-select-btn.selected { border-color: #e4b55d; background: #70421e; color: #fff0b6; }

@media (max-width: 900px) { .dig-site-map-viewport { height: 530px; }.dig-inspector { grid-template-columns: 1fr 1fr; }.dig-inspector .inspector-box { grid-column: 1 / -1; }.ranking-layout { grid-template-columns: 1fr; }.ranking-exhibit-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .dig-site-map-viewport { height: 460px; padding: 8px; }.grid-board-overlay { gap: 6px; }.dig-inspector { grid-template-columns: 1fr; }.dig-inspector-heading, .dig-inspector .inspector-box { grid-column: auto; }.dig-inspector-heading { display: block; }.dig-inspector-heading p { margin-top: 6px; }.room-shop-list { grid-template-columns: 1fr; }.ranking-exhibit-list { grid-template-columns: 1fr; } }

/* Stała szerokość panelu gracza — duże wykopaliska nie ściskają nawigacji. */
.game-container { display: grid; grid-template-columns: 304px minmax(0, 1fr); }
.sidebar { box-sizing: border-box; width: auto !important; min-width: 0; height: 100vh; overflow-y: auto; overscroll-behavior: contain; }
.main-content { min-width: 0; }
.sidebar-brand { position: sticky; top: -16px; z-index: 4; margin: -16px -14px 10px; padding: 16px 16px 12px; background: linear-gradient(180deg, rgba(47,29,18,.98), rgba(47,29,18,.9)); backdrop-filter: blur(10px); }
.sidebar-brand h2 { margin: 0; color: #ffe2a3; font-size: 1.15rem; line-height: 1.12; }.sidebar-brand .player-rank { display: block; margin-top: 5px; color: #d0ae80; font-size: .69rem; }
.archaeologist-card { padding: 9px !important; border-radius: 12px !important; }.archaeologist-card #sidebar-avatar { flex: 0 0 58px; width: 58px; height: 84px; }.archaeologist-card #sidebar-avatar .npc-portrait { width: 58px; height: 84px; }.quick-stats { border-radius: 12px; }.resources-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.res-item { min-width: 0; font-size: .72rem; }
.menu-nav { margin-top: 10px; gap: 5px; }.nav-btn { min-height: 39px; padding: 8px 9px; font-size: .78rem; }.nav-btn span { flex: 0 0 23px; }

/* Magazyn jest niezależnym panelem — nie zabiera miejsca ani sidebarowi, ani wykopaliskom. */
.storage-fab { position: fixed; z-index: 1200; right: 20px; bottom: 20px; display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 9px 11px; border: 1px solid #e3a14e; border-radius: 999px; color: #22150d; background: linear-gradient(135deg, #f3bf68, #c96a2c); box-shadow: 0 11px 25px rgba(0,0,0,.35); font: inherit; font-size: .75rem; cursor: pointer; }.storage-fab span { font-size: 1.05rem; }.storage-fab em { display: grid; min-width: 22px; height: 22px; place-items: center; border-radius: 50%; color: #fff3cf; background: #4b2712; font-style: normal; font-weight: 800; }
.storage-drawer-backdrop { position: fixed; z-index: 1190; inset: 0; visibility: hidden; opacity: 0; background: rgba(8,5,3,.48); backdrop-filter: blur(2px); transition: opacity .2s, visibility .2s; }.storage-drawer-backdrop.open { visibility: visible; opacity: 1; }
.storage-drawer { position: fixed; z-index: 1201; top: 0; right: 0; bottom: 0; width: min(440px, 94vw); padding: 18px; overflow-y: auto; transform: translateX(105%); transition: transform .28s cubic-bezier(.22,.7,.2,1); color: #f6e2be; background: radial-gradient(circle at 100% 0, rgba(223,143,55,.17), transparent 37%), #20140d; border-left: 1px solid #9f5e2d; box-shadow: -20px 0 45px rgba(0,0,0,.45); }.storage-drawer.open { transform: translateX(0); }.storage-drawer header { display: flex; justify-content: space-between; gap: 10px; align-items: start; padding-bottom: 12px; border-bottom: 1px solid rgba(229,161,75,.34); }.storage-drawer header span { color: #d9a65e; font-weight: 800; letter-spacing: .1em; font-size: .6rem; }.storage-drawer header h2 { margin: 4px 0 0; color: #ffe3a4; font-size: 1rem; }.storage-drawer header h2 b { color: #f0aa52; }.storage-drawer header button { width: 32px; height: 32px; border: 1px solid #9f5e2d; border-radius: 50%; color: #ffe3a4; background: #432615; font: inherit; font-size: 1.2rem; cursor: pointer; }.storage-drawer .storage-hint { margin: 12px 0; padding: 9px 10px; border-left: 3px solid #d98b3d; border-radius: 5px; color: #d4ba96; background: rgba(255,224,165,.06); text-align: left; font-size: .72rem; line-height: 1.45; }.storage-drawer .storage-grid { display: grid; grid-template-columns: 1fr; gap: 8px; }.storage-drawer .storage-card { min-height: 72px; padding: 9px; grid-template-columns: 54px minmax(0, 1fr) auto; border-radius: 10px; }.storage-drawer .storage-art-preview { width: 54px; height: 54px; }.storage-drawer .storage-art-img-live { width: 49px; height: 49px; }.storage-drawer .storage-art-name { font-size: .76rem; }.storage-drawer .storage-art-meta { font-size: .62rem; }.storage-drawer .storage-card-action { padding: 6px 7px; border: 1px solid #9b5b2a; border-radius: 6px; color: #ffe0a1; background: #4a2a16; }

/* Nocne scenerie Osady są tylko tłem. Animacja żyje nad krajobrazem, pod działkami. */
.city-scenery-control { display: inline-flex; align-items: center; gap: 5px; padding: 0 7px; border: 1px solid rgba(225,154,71,.54); border-radius: 6px; color: #f5d49a; background: rgba(26,15,9,.56); font-size: .7rem; font-weight: 700; }.city-scenery-control select { max-width: 170px; padding: 5px; border: 0; background: transparent; color: inherit; font: inherit; }
.room-viewport.city-view[data-city-scenery="egypt-night"] { background-image: linear-gradient(180deg, rgba(4,11,27,.02), rgba(4,8,19,.28)), url('scenery-egypt-night.png') !important; }
.room-viewport.city-view[data-city-scenery="stonehenge-night"] { background-image: linear-gradient(180deg, rgba(3,11,24,.03), rgba(4,12,16,.28)), url('scenery-stonehenge-night-v2.png') !important; }
.room-viewport.city-view[data-city-scenery="iceland-night"] { background-image: linear-gradient(180deg, rgba(2,12,29,.02), rgba(3,9,20,.3)), url('scenery-iceland-night.png') !important; }
.room-viewport.city-view[data-city-scenery="vikings-night"] { background-image: linear-gradient(180deg, rgba(2,10,25,.02), rgba(3,8,18,.3)), url('scenery-vikings-night.png') !important; }
.room-viewport.city-view[data-city-scenery="andes-night"] { background-image: linear-gradient(180deg, rgba(4,10,27,.02), rgba(6,8,18,.28)), url('scenery-andes-night.png') !important; }
.room-viewport.city-view[data-city-scenery="kofun-night"] { background-image: linear-gradient(180deg, rgba(3,12,27,.02), rgba(3,11,16,.28)), url('scenery-kofun-night.png') !important; }
.room-viewport.city-view[data-room-theme="stonehenge"][data-city-scenery="day"] { background-image: linear-gradient(180deg, rgba(14,19,29,.03), rgba(11,19,12,.04) 54%, rgba(7,12,8,.2) 100%), url('miasto-anglia-v2.png') !important; background-position: center 62%; }
.room-viewport.city-view[data-city-scenery$="night"]::after { background: radial-gradient(circle at 18% 18%, rgba(174,217,255,.2), transparent 2px), radial-gradient(circle at 76% 13%, rgba(239,226,166,.25), transparent 2px), linear-gradient(90deg, rgba(3,5,12,.2), transparent 15% 85%, rgba(3,5,12,.2)), linear-gradient(0deg, rgba(3,5,12,.25), transparent 30%); background-size: 140px 140px, 180px 180px, auto, auto; animation: cityNightShimmer 9s ease-in-out infinite alternate; }
@keyframes cityNightShimmer { from { opacity: .54; background-position: 0 0, 30px 20px, 0 0, 0 0; } to { opacity: .9; background-position: 18px -12px, 0 4px, 0 0, 0 0; } }
.shop-scenery-preview { display: block; width: 100%; height: 118px; margin-bottom: 9px; border: 1px solid rgba(229,169,99,.45); border-radius: 8px; object-fit: cover; object-position: center; }

/* Wyprawy: czas i plan są osobnymi, czytelnymi decyzjami. */
.expeditions-grid { grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: 14px; }.expedition-card { min-height: 455px; padding: 14px; border-width: 1px; }.expedition-card > p { min-height: 42px; }.expedition-choice-row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 8px 0; }.expedition-strategy-label { display: grid; gap: 5px; color: #e9c581; font-size: .67rem; font-weight: 800; }.expedition-strategy-label select { width: 100%; padding: 8px; font-size: .68rem; }.expedition-reward-preview { min-height: 94px; }.expedition-card .exp-btn { margin-top: auto; }

/* Publiczne profile i rankingi kategorii. */
#social-hub { display: grid; gap: 14px; }.public-profile-card { display: grid; grid-template-columns: 80px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 15px; border: 1px solid #9b6331; border-radius: 12px; color: #f5dfb8; background: radial-gradient(circle at 0 0, rgba(221,148,53,.16), transparent 35%), linear-gradient(145deg, #3c2516, #1b110c); }.public-profile-avatar .npc-portrait { width: 70px; height: 96px; border-radius: 9px; }.public-profile-card span { color: #d9a65f; font-size: .6rem; font-weight: 800; letter-spacing: .11em; }.public-profile-card h3 { margin: 4px 0; color: #ffe3a5; font-size: 1.05rem; }.public-profile-card p { margin: 0; color: #c7aa84; font-size: .72rem; }.public-profile-stats { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }.public-profile-stats b { padding: 5px 7px; border-radius: 5px; color: #f9d799; background: rgba(8,5,3,.3); font-size: .66rem; }.public-profile-actions { display: grid; gap: 7px; justify-items: end; }.public-profile-actions code { padding: 6px 7px; border: 1px dashed #a8733a; border-radius: 5px; color: #f0c573; font-size: .64rem; }.public-profile-actions button, .social-ranking-card button { border: 1px solid #a96a30; border-radius: 5px; color: #ffe0a2; background: #492917; font: inherit; font-size: .64rem; cursor: pointer; }.public-profile-actions button { padding: 7px 9px; }.social-explainer { padding: 11px 13px; border-left: 3px solid #d88a3d; border-radius: 7px; color: #cdb08a; background: rgba(224,151,60,.08); }.social-explainer b { color: #f2c775; }.social-explainer p { margin: 4px 0 0; font-size: .72rem; line-height: 1.45; }.social-ranking-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(245px, 1fr)); gap: 11px; }.social-ranking-card { padding: 11px; border: 1px solid #764820; border-radius: 9px; color: #d6bb94; background: linear-gradient(145deg, #362115, #1b100b); }.social-ranking-card header { display: grid; grid-template-columns: 34px 1fr auto; gap: 7px; align-items: center; }.social-ranking-card header > span { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 50%; background: #583318; }.social-ranking-card h4 { margin: 0; color: #f5cd85; font-size: .76rem; }.social-ranking-card header small, .social-ranking-card > small { color: #ab8b67; font-size: .58rem; }.social-ranking-card header > b { color: #ffdc90; font-size: .84rem; }.social-ranking-card > strong { display: block; margin: 10px 0 0; color: #fff0bd; font-size: 1.05rem; }.social-ranking-card ol { margin: 9px 0 0; padding: 0; list-style: none; }.social-ranking-card li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 5px; align-items: center; padding: 5px 0; border-top: 1px solid rgba(224,157,75,.14); font-size: .61rem; }.social-ranking-card li button { overflow: hidden; padding: 3px 4px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }.social-ranking-card li span { color: #e8c780; }.social-ranking-card .social-self { color: #ffe3a2; font-weight: 800; }

.social-visit-preview, .social-own-preview { display: grid; grid-template-columns: 66px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid #9d6630; border-radius: 10px; color: #e6cda5; background: linear-gradient(135deg, rgba(96,53,23,.56), rgba(25,14,9,.92)); }.social-visit-preview .npc-portrait { width: 58px; height: 88px; border-radius: 8px; }.social-visit-preview span, .social-own-preview span { color: #d8a85c; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }.social-visit-preview h4, .social-own-preview h4 { margin: 3px 0; color: #ffe4a7; font-size: .9rem; }.social-visit-preview p { margin: 0; color: #bfa17d; font-size: .7rem; }.social-visit-preview ul { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 8px 0 0; padding: 0; list-style: none; font-size: .67rem; }.social-visit-preview button, .social-own-preview button { padding: 7px 9px; border: 1px solid #bb7a36; border-radius: 6px; color: #ffebb9; background: #613418; font: inherit; font-size: .66rem; font-weight: 700; cursor: pointer; }.social-own-preview { grid-template-columns: 1fr; }.social-own-preview header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.social-own-preview ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(125px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }.social-own-preview li { display: flex; min-width: 0; align-items: center; gap: 7px; padding: 6px; border: 1px solid rgba(215,156,74,.3); border-radius: 6px; background: rgba(12,7,4,.32); font-size: .65rem; }.social-own-preview li img { width: 34px; height: 34px; object-fit: contain; }.social-own-preview li span { overflow: hidden; color: #e6c991; letter-spacing: 0; text-overflow: ellipsis; white-space: nowrap; }.social-own-preview li.social-preview-empty { display: block; grid-column: 1 / -1; color: #a88762; }

/* Czytelne decyzje: teren, stanowiska i panel badacza. */
.player-command-panel { display: grid; gap: 8px; padding: 8px !important; }.player-status-card, .resource-stock { padding: 9px; border: 1px solid rgba(224,155,68,.32); border-radius: 9px; background: linear-gradient(145deg, rgba(76,45,23,.72), rgba(25,15,9,.82)); }.player-status-card .watch-ad-btn { width: 100%; margin-top: 8px; padding: 7px; font-size: .68rem; }.research-points { margin-top: 6px; color: #bce7cc; font-size: .68rem; }.resource-stock-title { margin-bottom: 7px; color: #e9bd71; font-size: .62rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.resources-grid { margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; }.res-item { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: 5px; padding: 5px 6px !important; border: 1px solid rgba(218,151,67,.14); border-radius: 5px; background: rgba(12,7,4,.28) !important; font-size: .61rem !important; }.res-item span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.res-item b { color: #ffe2a1; font-size: .68rem; }.res-item.wide { grid-column: 1 / -1; }
.field-card-label { display: block; margin-bottom: 5px; color: #eab467 !important; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }.dig-inspector-heading { align-items: center; }.dig-inspector-heading p { color: #bfa17d !important; }.radar-control, .research-survey-box, .inspector-box { display: grid; align-content: start; gap: 6px; }.radar-control .radar-btn { min-height: 38px; font-size: .73rem; }.radar-control small, .research-survey-box > span:not(.field-card-label) { color: #d8b987 !important; font-size: .7rem; }.inspector-box strong { color: #ffdf9c !important; font-size: .85rem; }.inspector-box p { margin: 0; color: #c7aa82 !important; font-size: .72rem; line-height: 1.4; }.inspector-box small { color: #e8ba68 !important; font-size: .65rem; }.legend { display: grid; grid-template-columns: auto 1fr; gap: 8px 22px; align-items: center; }.legend h3 { grid-column: 1 / -1; margin: 0; }.legend ul { display: grid; grid-template-columns: repeat(4, minmax(110px, 1fr)); gap: 5px; margin: 0; }.legend li { margin: 0; font-size: .67rem; }.dig-reward-key { margin: 0; padding: 0; border: 0; }
.station-workflow, .epigraphy-table-view { border-color: rgba(224,161,74,.58) !important; background: radial-gradient(circle at 100% 0, rgba(225,157,64,.13), transparent 34%), linear-gradient(145deg, rgba(67,41,22,.88), rgba(22,13,8,.93)) !important; }.station-workflow header, .station-work-header { margin-bottom: 10px; }.station-workflow header span, .station-work-header span { color: #e8b45e; font-size: .6rem; font-weight: 800; letter-spacing: .11em; }.station-workflow h3, .station-work-header h3 { margin: 3px 0; color: #ffe3a4; font-size: 1rem; }.station-work-header p { margin: 0; color: #c4a782; font-size: .72rem; line-height: 1.4; }.station-work-summary { display: grid; grid-template-columns: auto 1fr; gap: 1px 8px; align-items: center; margin: 8px 0 10px; padding: 8px; border-left: 3px solid #d88d3e; border-radius: 6px; background: rgba(11,7,4,.35); }.station-work-summary b { grid-row: 1 / 3; color: #ffdd93; font-size: 1.4rem; }.station-work-summary span { color: #f2c678; font-size: .7rem; font-weight: 800; }.station-work-summary small { color: #bda17e; font-size: .64rem; }.station-workflow label { display: block; margin-bottom: 4px; color: #d9b276; font-size: .68rem; font-weight: 800; }.station-workflow select { margin-top: 0; }.station-workflow .shop-btn { min-height: 38px; }.station-work-select-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; margin: 10px 0; align-items: center; }.station-work-select-row .shop-btn { margin: 0; white-space: nowrap; }

@media (max-width: 900px) { .game-container { grid-template-columns: 260px minmax(0, 1fr); }.sidebar-brand { top: -14px; }.expedition-choice-row { grid-template-columns: 1fr; }.public-profile-card { grid-template-columns: 68px minmax(0, 1fr); }.public-profile-actions { grid-column: 1 / -1; justify-items: start; }.legend { grid-template-columns: 1fr; }.legend ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }.station-work-select-row { grid-template-columns: 1fr; }.station-work-select-row .shop-btn { width: 100%; } }
@media (max-width: 680px) { .game-container { display: block; height: auto; }.sidebar { position: static; height: auto; max-height: none; }.main-content { min-height: 100vh; }.storage-fab { right: 12px; bottom: 12px; }.city-scenery-control { width: 100%; justify-content: space-between; }.city-scenery-control select { max-width: 72%; } }

/* Dwie skórki premium gablot — różnią ramy oraz oświetlenie, nie układ sali. */
.showcase-frame-container.skin-nocturne { --case-edge: #9cb2dc; --case-glow: rgba(111,151,226,.7); --case-wash: rgba(140,177,255,.26); background: radial-gradient(ellipse at center 82%, rgba(53,86,145,.46), rgba(9,14,30,.7) 74%) !important; box-shadow: inset 0 0 36px rgba(112,150,230,.56); }.showcase-bg-image.skin-nocturne { filter: hue-rotate(164deg) saturate(.78) brightness(.77) drop-shadow(0 0 13px rgba(132,176,255,.88)); }
.showcase-frame-container.skin-aurora { --case-edge: #63e0bc; --case-glow: rgba(84,229,185,.72); --case-wash: rgba(124,242,205,.3); background: radial-gradient(ellipse at center 82%, rgba(43,166,135,.44), rgba(10,48,44,.55) 74%) !important; box-shadow: inset 0 0 38px rgba(89,230,188,.6); animation: auroraShowcase 4.5s ease-in-out infinite alternate; }.showcase-bg-image.skin-aurora { filter: hue-rotate(98deg) saturate(1.4) brightness(.95) drop-shadow(0 0 14px rgba(105,244,206,.92)); }@keyframes auroraShowcase { from { box-shadow: inset 0 0 27px rgba(89,230,188,.42); } to { box-shadow: inset 0 0 45px rgba(118,162,255,.65); } }
.shop-skin-preview.skin-nocturne img { filter: hue-rotate(162deg) saturate(.7) brightness(.76) drop-shadow(0 0 9px rgba(136,178,255,.82)); }.shop-skin-preview.skin-aurora img { filter: hue-rotate(96deg) saturate(1.45) brightness(.95) drop-shadow(0 0 9px rgba(102,241,203,.85)); }

/* Skórki Krypty kupowane za diamenty: każda ma własny materiał ramy, kolor
   światła i ruch obramowania, dzięki czemu nie są wariantami jednego filtra. */
.showcase-frame-container.skin-ruby-crypt { --case-edge: #ff6071; --case-glow: rgba(240,45,70,.76); --case-wash: rgba(255,78,104,.3); background: radial-gradient(ellipse at center 82%, rgba(113,10,29,.62), rgba(23,4,10,.86) 74%) !important; animation: rubyCryptPulse 2.8s ease-in-out infinite alternate; }.showcase-frame-container.skin-ruby-crypt::before { border-style: double; border-width: 4px; }.showcase-bg-image.skin-ruby-crypt { filter: sepia(.5) hue-rotate(325deg) saturate(1.8) brightness(.84) drop-shadow(0 0 14px rgba(255,55,83,.94)); }
.showcase-frame-container.skin-azure-crypt { --case-edge: #72dcff; --case-glow: rgba(48,172,255,.78); --case-wash: rgba(82,198,255,.27); background: radial-gradient(ellipse at center 82%, rgba(13,86,139,.55), rgba(3,20,43,.88) 74%) !important; }.showcase-frame-container.skin-azure-crypt::before { border-style: groove; border-width: 4px; box-shadow: inset 0 0 15px rgba(136,229,255,.9), 0 0 16px rgba(49,178,255,.82); }.showcase-bg-image.skin-azure-crypt { filter: hue-rotate(170deg) saturate(1.7) brightness(.86) drop-shadow(0 0 14px rgba(98,211,255,.96)); }
.showcase-frame-container.skin-verdant-crypt { --case-edge: #71f2a9; --case-glow: rgba(59,219,132,.78); --case-wash: rgba(94,255,173,.28); background: radial-gradient(ellipse at center 82%, rgba(11,104,64,.55), rgba(3,35,24,.88) 74%) !important; animation: verdantCryptPulse 3.7s ease-in-out infinite alternate; }.showcase-frame-container.skin-verdant-crypt::before { border-style: dashed; border-width: 3px; }.showcase-bg-image.skin-verdant-crypt { filter: hue-rotate(93deg) saturate(1.8) brightness(.88) drop-shadow(0 0 14px rgba(98,255,179,.94)); }
.showcase-frame-container.skin-prismatic-crypt { --case-edge: #efb4ff; --case-glow: rgba(195,100,255,.78); --case-wash: rgba(145,189,255,.3); background: radial-gradient(ellipse at center 82%, rgba(90,24,130,.56), rgba(17,5,32,.9) 74%) !important; animation: prismaticCryptShift 4.8s linear infinite; }.showcase-frame-container.skin-prismatic-crypt::before { border-width: 4px; border-image: linear-gradient(135deg, #ff6f9f, #7be8ff, #8cffbd, #f9dc72, #ff6f9f) 1; border-radius: 0; }.showcase-bg-image.skin-prismatic-crypt { filter: hue-rotate(235deg) saturate(1.85) brightness(.9) drop-shadow(0 0 16px rgba(214,132,255,.98)); }
.shop-skin-preview.skin-ruby-crypt img { filter: hue-rotate(330deg) saturate(1.7) drop-shadow(0 0 9px #ff536b); }.shop-skin-preview.skin-azure-crypt img { filter: hue-rotate(171deg) saturate(1.65) drop-shadow(0 0 9px #69d8ff); }.shop-skin-preview.skin-verdant-crypt img { filter: hue-rotate(96deg) saturate(1.7) drop-shadow(0 0 9px #6cffb0); }.shop-skin-preview.skin-prismatic-crypt img { filter: hue-rotate(235deg) saturate(1.75) drop-shadow(0 0 9px #deb1ff); }
@keyframes rubyCryptPulse { from { box-shadow: inset 0 0 22px rgba(242,41,69,.48), 0 0 0 2px #cf304d; } to { box-shadow: inset 0 0 46px rgba(255,74,100,.83), 0 0 17px rgba(255,67,93,.7), 0 0 0 2px #ff778a; } }
@keyframes verdantCryptPulse { from { box-shadow: inset 0 0 22px rgba(62,222,136,.46), 0 0 0 2px #3bb177; } to { box-shadow: inset 0 0 42px rgba(91,255,167,.8), 0 0 16px rgba(81,242,150,.66), 0 0 0 2px #8cffbd; } }
@keyframes prismaticCryptShift { 0%,100% { --case-edge: #ff9cb7; --case-glow: rgba(255,91,157,.72); } 33% { --case-edge: #7eeaff; --case-glow: rgba(83,190,255,.76); } 66% { --case-edge: #a990ff; --case-glow: rgba(176,104,255,.76); } }
.artifact-slot.unique-archive-slot { border-color: #d7a746 !important; background: radial-gradient(circle at 50% 22%, rgba(243,198,98,.32), transparent 43%), linear-gradient(145deg, #3e2713, #1b1009) !important; }.artifact-slot.unique-archive-slot.locked { grid-template-rows: 76px minmax(28px, auto) auto; border-color: #84602d !important; background: repeating-linear-gradient(135deg, #2c1d0e 0 10px, #21150a 10px 20px) !important; }.artifact-slot.unique-archive-slot.locked .unique-archive-image { display: grid; filter: grayscale(1) brightness(.48) contrast(1.08); opacity: .82; }.artifact-slot.unique-archive-slot.locked span { color: #c8a46c; }.artifact-slot.unique-archive-slot.locked small { color: #8f704c; font-size: .54rem; }

/* Album kolekcji: jeden osobny widok zamiast dawnej biblioteki kafelków. */
.collection-album-hero, .collection-album-page { border: 1px solid #8b5b2b; border-radius: 13px; background: radial-gradient(circle at 12% 0, rgba(240,192,99,.19), transparent 33%), linear-gradient(145deg, #3d2818, #18100b); box-shadow: 0 10px 24px rgba(0,0,0,.25); }
.collection-album-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px; }.collection-album-hero > div:first-child { max-width: 680px; }.collection-album-hero span, .collection-album-page header span { color: #e7b566; font-size: .63rem; font-weight: 800; letter-spacing: .13em; }.collection-album-hero h3, .collection-album-page h3 { margin: 4px 0 6px; color: #ffe5aa; font-size: 1.1rem; }.collection-album-hero p { margin: 0; color: #d0b38a; font-size: .75rem; line-height: 1.45; }.collection-album-totals { display: flex; gap: 7px; }.collection-album-totals b { display: grid; min-width: 84px; padding: 8px; border: 1px solid rgba(222,167,77,.47); border-radius: 8px; color: #ffe09b; background: rgba(11,7,4,.4); text-align: center; font-size: 1rem; }.collection-album-totals small { margin-top: 3px; color: #b99870; font-size: .55rem; font-weight: 600; }
.collection-location-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }.collection-location-tabs button { border: 1px solid #6e4827; border-radius: 999px; padding: 7px 10px; color: #d7b786; background: #25170e; font: inherit; font-size: .67rem; font-weight: 700; cursor: pointer; }.collection-location-tabs button.active { border-color: #e0aa4a; color: #fff0bd; background: #72421e; box-shadow: 0 0 12px rgba(229,170,72,.18); }
.collection-section-tabs, .catalog-category-tabs { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0; }.collection-section-tabs button, .catalog-category-tabs button { border: 1px solid #6e4827; border-radius: 7px; padding: 7px 10px; color: #d7b786; background: #25170e; font: inherit; font-size: .67rem; font-weight: 700; cursor: pointer; }.collection-section-tabs button.active, .catalog-category-tabs button.active { border-color: #e0aa4a; color: #fff0bd; background: #72421e; box-shadow: 0 0 12px rgba(229,170,72,.18); }
.artifact-catalog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(245px, 1fr)); gap: 10px; }.artifact-catalog-card { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 9px; min-height: 110px; padding: 9px; border: 1px solid #6b4827; border-radius: 9px; color: #e8d0a6; background: linear-gradient(145deg, rgba(61,39,21,.92), rgba(22,13,8,.94)); text-align: left; font: inherit; cursor: pointer; }.artifact-catalog-card.unlocked:hover { border-color: #d2a051; background: linear-gradient(145deg, #51331b, #24150c); }.artifact-catalog-card.locked { border-style: dashed; color: #977755; background: repeating-linear-gradient(135deg, #21150c 0 10px, #181008 10px 20px); cursor: default; }.artifact-catalog-visual { display: grid; width: 70px; height: 70px; place-items: center; align-self: center; border: 1px solid #83592d; border-radius: 7px; background: radial-gradient(circle, rgba(240,188,93,.16), rgba(22,13,8,.6)); }.artifact-catalog-visual strong { color: #bd9257; font-size: 2rem; }.artifact-catalog-image { width: 64px; height: 64px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0,0,0,.62)); }.artifact-catalog-card small { color: #d5a961; font-size: .55rem; font-weight: 800; }.artifact-catalog-card h4 { margin: 4px 0; color: #f4d08a; font-size: .72rem; }.artifact-catalog-card p { display: -webkit-box; margin: 0; overflow: hidden; color: #c4aa85; font-size: .61rem; line-height: 1.35; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }.artifact-catalog-card em { display: block; margin-top: 5px; overflow: hidden; color: #e3be77; font-size: .55rem; font-style: normal; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.collection-album-page { padding: 15px; }.collection-album-page > header { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(215,159,67,.3); }.collection-album-progress { width: min(280px, 36vw); height: 9px; overflow: hidden; border-radius: 999px; background: #190f09; }.collection-album-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #a95d26, #ffd273); box-shadow: 0 0 10px rgba(249,196,92,.6); }
.collection-album-sets { display: grid; gap: 10px; margin-top: 12px; }.collection-album-set { padding: 11px; border: 1px solid #684521; border-radius: 9px; background: rgba(13,8,5,.42); }.collection-album-set.ready { border-color: #c38b3f; }.collection-album-set.claimed { border-color: #4d8a66; box-shadow: inset 0 0 18px rgba(85,169,111,.09); }.collection-album-set-head { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; gap: 8px; align-items: center; }.collection-album-set-head h4 { margin: 0 0 2px; color: #f5cf87; font-size: .78rem; }.collection-album-set-head p { margin: 0; color: #ba9d79; font-size: .62rem; }.collection-album-set-head > b { color: #ffe1a4; font-size: .75rem; }
.collection-artifact-slots { display: grid; grid-template-columns: repeat(6, minmax(64px, 1fr)); gap: 7px; margin: 10px 0; }.collection-artifact-card { position: relative; display: grid; min-height: 76px; place-items: center; overflow: hidden; border: 1px dashed #644525; border-radius: 7px; background: repeating-linear-gradient(135deg, #21150c 0 9px, #181008 9px 18px); }.collection-artifact-card.restored { border-style: solid; border-color: #d9a54d; background: radial-gradient(circle at 50% 35%, rgba(244,203,112,.24), transparent 54%), #291a0e; }.collection-artifact-card.partial { border-color: #9b7841; background: #271b10; }.collection-artifact-image { width: 61px; height: 61px; object-fit: contain; opacity: .22; filter: grayscale(1) brightness(.75); }.collection-artifact-card.restored .collection-artifact-image { opacity: 1; filter: drop-shadow(0 4px 5px rgba(0,0,0,.6)); }.collection-artifact-card.partial .collection-artifact-image { opacity: .55; filter: grayscale(.7); }.collection-artifact-card i { position: absolute; right: 4px; bottom: 4px; min-width: 17px; min-height: 17px; display: grid; place-items: center; border: 1px solid #b48741; border-radius: 50%; color: #efcf8e; background: #301c0e; font-size: .53rem; font-style: normal; font-weight: 800; }.collection-artifact-card.restored i { color: #e4ffd7; border-color: #6ca574; background: #2b5b39; }
.collection-album-set footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.collection-reward-preview { display: flex; min-width: 0; align-items: center; gap: 7px; color: #d5b27d; font-size: .62rem; font-weight: 700; }.collection-reward-preview > span { display: grid; width: 29px; height: 29px; place-items: center; border: 1px dashed #ad7a39; border-radius: 50%; color: #efc875; }.collection-reward-image { width: 34px; height: 34px; object-fit: contain; filter: drop-shadow(0 3px 4px rgba(0,0,0,.6)); }.collection-album-set footer button { padding: 6px 9px; border: 1px solid #a76b2e; border-radius: 6px; color: #ffe7b4; background: #623719; font: inherit; font-size: .63rem; font-weight: 800; cursor: pointer; }.collection-album-set footer button:disabled { border-color: #52351e; color: #927353; background: #26180e; cursor: default; }
@media (max-width: 820px) { .collection-album-hero { align-items: stretch; flex-direction: column; }.collection-album-totals { justify-content: stretch; }.collection-album-totals b { flex: 1; }.collection-artifact-slots { grid-template-columns: repeat(3, minmax(64px, 1fr)); }.collection-album-page > header { align-items: stretch; flex-direction: column; }.collection-album-progress { width: 100%; } }

/* Prawdziwe modele gablot nie potrzebują białego tła ani filtrów kolorujących. */
.showcase-bg-image.skin-obsidian, .showcase-bg-image.skin-ruby-crypt, .showcase-bg-image.skin-azure-crypt, .showcase-bg-image.skin-verdant-crypt, .showcase-bg-image.skin-prismatic-crypt { opacity: 1; transform: scale(1.04); filter: none; }
.shop-skin-preview.skin-obsidian img, .shop-skin-preview.skin-ruby-crypt img, .shop-skin-preview.skin-azure-crypt img, .shop-skin-preview.skin-verdant-crypt img, .shop-skin-preview.skin-prismatic-crypt img { width: 106px; height: 104px; object-fit: contain; filter: none; }

/* Premium: pakiety zachowują ten sam rozmiar co zwykłe stacje. Poświata jest
   warstwą działki, a nie przyciętego sprite'a budynku. */
.city-plot.premium-station-pack .city-building.station-pack-sprite {
  isolation: isolate;
  border-radius: 26% 26% 19% 19%;
}
.city-plot.premium-station-pack .city-building.station-pack-sprite > img {
  mix-blend-mode: normal;
  opacity: 1;
  filter: drop-shadow(0 6px 5px rgba(14,8,3,.4));
  -webkit-mask-image: none;
  mask-image: none;
}
.city-plot.premium-station-pack .city-building.station-pack-asset > img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  filter: drop-shadow(0 7px 5px rgba(14, 8, 3, .46));
  transform: translateY(1px);
}
.city-plot.premium-station-pack .city-building.station-pack-sprite::before,
.city-plot.premium-station-pack .city-building.station-pack-sprite::after {
  display: none;
}
.city-plot.premium-station-pack::after {
  content: "";
  position: absolute;
  z-index: 1;
  left: 50%;
  top: 49%;
  width: 96%;
  height: 86%;
  border-radius: 48% 52% 44% 50%;
  background:
    radial-gradient(ellipse 23% 42% at 23% 70%, rgba(139,22,16,.42), transparent 76%),
    radial-gradient(ellipse 28% 38% at 66% 69%, rgba(231,78,26,.34), transparent 78%),
    radial-gradient(ellipse 18% 31% at 50% 33%, rgba(188,33,19,.2), transparent 80%);
  filter: blur(9px) saturate(1.18);
  mix-blend-mode: screen;
  opacity: .46;
  transform: translate(-50%, -50%) scale(.92, .88);
  transform-origin: 50% 76%;
  animation: stationEmberAura 6.8s ease-in-out infinite;
  pointer-events: none;
}
.city-plot.premium-station-pack .station-forge-glow { opacity: .72; }
@keyframes stationEmberAura {
  0%, 100% { transform: translate(-51%, -48%) scale(.9, .84) rotate(-1deg); opacity: .25; }
  42% { transform: translate(-49%, -52%) scale(1.01, 1.04) rotate(1deg); opacity: .56; }
  72% { transform: translate(-52%, -54%) scale(.95, 1.08) rotate(-1deg); opacity: .34; }
}

/* Pryzmatyczna krypta ma mieć spokojne, prawie niezauważalne przejście barw. */
.showcase-frame-container.skin-prismatic-crypt {
  --case-edge: #e7c8f3;
  --case-glow: rgba(190,159,225,.43);
  --case-wash: rgba(184,209,235,.18);
  animation: prismaticCryptShift 24s ease-in-out infinite;
}
.showcase-frame-container.skin-prismatic-crypt::before {
  border-image: linear-gradient(135deg, #e6bfd3, #bcddea, #c9d8d3, #ead9ad, #e6bfd3) 1;
}
.showcase-bg-image.skin-prismatic-crypt { filter: none; }
@keyframes prismaticCryptShift {
  0%, 100% { --case-edge: #e6bed7; --case-glow: rgba(225,161,192,.40); }
  33% { --case-edge: #bddbe8; --case-glow: rgba(150,201,227,.42); }
  66% { --case-edge: #cbbfea; --case-glow: rgba(185,163,226,.42); }
}

/* Tło jest elementem kolekcjonerskim: zostaje widoczne między gablotami,
   a podpis zawsze potwierdza aktywnie wybraną scenografię. */
.museum-vertical-hall {
  background-size: cover !important;
  background-position: center 44% !important;
  padding: 42px 28px 34px;
}
.museum-vertical-hall::before {
  background: linear-gradient(90deg, rgba(41,24,12,.08), transparent 19%, transparent 81%, rgba(41,24,12,.08)), linear-gradient(0deg, rgba(41,24,12,.12), transparent 48%);
}
.pedestals-vertical-grid { gap: 30px 26px; }
.pedestal-showcase-box { background: linear-gradient(135deg, rgba(35,23,13,.20), rgba(5,5,4,.05)); }
.museum-background-callout {
  position: absolute;
  z-index: 3;
  top: 12px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  border: 1px solid rgba(255,231,173,.66);
  border-radius: 7px;
  color: #fff0c9;
  background: rgba(30,17,8,.52);
  box-shadow: 0 4px 14px rgba(0,0,0,.22);
  backdrop-filter: blur(3px);
  text-shadow: 0 1px 2px #000;
}
.museum-background-callout > span { font-size: 1.05rem; }
.museum-background-callout small, .museum-background-callout strong { display: block; }
.museum-background-callout small { color: #e8c982; font-size: .5rem; letter-spacing: .08em; }
.museum-background-callout strong { font-size: .66rem; }

/* Unikaty zachowują pełną nieprzezroczystość i własny kontrast w każdej
   galerii, aby drobne złote detale nie znikały na tle sali. */
img.unique-artifact-image {
  mix-blend-mode: normal;
  opacity: 1;
  filter: brightness(1.12) saturate(1.12) contrast(1.04) drop-shadow(0 5px 7px rgba(0,0,0,.68));
}
.unique-relic-image.unique-artifact-image { width: 112px; height: 112px; }
.collection-reward-image.unique-artifact-image { mix-blend-mode: normal; }

/* Unikaty są teraz samodzielnymi ikonami, nie kadrami wspólnego arkusza. */
.collection-reward-preview .collection-reward-image.unique-artifact-image { width: 21px; height: 34px; object-fit: contain; }
.museum-exhibit-stage .museum-exhibit-image.unique-artifact-image { width: 58px; height: 96px; object-fit: contain; }

/* Sezon archeologiczny: trzy cele taktyczne i jednoznaczna informacja, co zrobić
   dalej; podium pozostaje widoczne bez zalewania gracza tabelami. */
.curator-score-hero { display: grid; grid-template-columns: auto 1fr; gap: 3px 14px; align-items: center; margin: 12px 0 9px; padding: 11px 13px; border: 1px solid rgba(232,178,80,.52); border-radius: 9px; background: linear-gradient(110deg, rgba(105,57,19,.58), rgba(29,17,9,.58)); }
.curator-score-hero > strong { grid-row: span 2; color: #ffe1a0; font-size: 1.35rem; }.curator-score-hero span { color: #e6c28e; font-size: .73rem; }.curator-score-hero span b, .curator-score-hero small b { color: #ffe2a2; }.curator-score-hero small { color: #cda879; font-size: .66rem; }
.curator-submit { grid-column: 1 / -1; justify-self: start; margin-top: 4px; padding: 7px 10px; border: 1px solid #dca14b; border-radius: 6px; color: #fff0c7; background: linear-gradient(135deg, #8f4c1e, #553015); font: inherit; font-size: .65rem; font-weight: 800; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.2); }.curator-submit:hover:not(:disabled) { border-color: #ffce70; filter: brightness(1.12); }.curator-submit:disabled { border-color: #5d4025; color: #987957; background: #25170d; cursor: not-allowed; }
.curator-combo-guide { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 9px 0 12px; }.curator-combo-guide article { min-height: 48px; }.curator-combo-guide article.ready { border-color: #56b987; background: linear-gradient(145deg, rgba(39,105,66,.48), rgba(14,43,30,.52)); }.curator-combo-guide b { font-size: .7rem; }.curator-combo-guide em { float: right; color: #f6ca77; font-style: normal; }.curator-combo-guide strong { color: #ffe0a0; }.curator-layout { grid-template-columns: minmax(0, 1.55fr) minmax(210px, .55fr); }.curator-rewards { margin-top: 11px; }
@media (max-width: 760px) { .curator-score-hero { grid-template-columns: 1fr; gap: 5px; }.curator-score-hero > strong { grid-row: auto; }.curator-combo-guide { grid-template-columns: 1fr; }.curator-layout { grid-template-columns: 1fr; } }

/* Osobny, pełnoekranowy widok sezonu archeologicznego. Muzeum nie miesza już
   wystawiania eksponatów z dobieraniem składu rankingu. */
.ranking-season-page { margin: 0; }
.ranking-combo-guide { display: grid; grid-template-columns: repeat(auto-fit, minmax(205px, 1fr)); gap: 9px; margin: 13px 0 10px; }
.ranking-combo-guide article { min-height: 58px; padding: 10px; border: 1px solid rgba(213,157,71,.46); border-left: 3px solid #d7a64d; border-radius: 7px; background: rgba(16,10,6,.35); }
.ranking-combo-guide b, .ranking-combo-guide span { display: block; }
.ranking-combo-guide b { color: #ffe2a1; font-size: .69rem; }.ranking-combo-guide span { margin-top: 4px; color: #c5a57d; font-size: .61rem; line-height: 1.35; }
.ranking-section-title { margin: 0 0 7px; color: #eac477; font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.ranking-exhibit-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ranking-exhibit-card { grid-template-columns: 54px minmax(0, 1fr); padding: 8px; }.ranking-exhibit-card img { width: 50px; height: 50px; }.ranking-exhibit-card.selected { border-color: #e2b460; background: linear-gradient(145deg, rgba(95,58,25,.42), rgba(17,10,6,.42)); }.ranking-exhibit-card .ranking-select-btn { margin-top: 6px; }
.ranking-candidates { margin-top: 15px; padding-top: 13px; border-top: 1px solid rgba(209,154,67,.38); }.ranking-candidates > header { display: flex; align-items: end; justify-content: space-between; gap: 12px; }.ranking-candidates header span { color: #e9b660; font-size: .58rem; font-weight: 800; letter-spacing: .1em; }.ranking-candidates h4 { margin: 3px 0 0; color: #ffe1a1; font-size: .86rem; }.ranking-candidates header small { max-width: 310px; color: #b99c75; font-size: .61rem; line-height: 1.35; text-align: right; }
.ranking-rewards { margin-top: 14px; padding: 10px; border: 1px solid rgba(209,154,67,.42); border-radius: 8px; background: rgba(10,6,4,.27); }.ranking-rewards > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #e8bd6a; font-size: .6rem; letter-spacing: .08em; }.ranking-rewards > header b { color: #ffe1a5; font-size: .63rem; letter-spacing: 0; }.ranking-rewards > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 8px; }.ranking-reward { display: flex; align-items: center; justify-content: space-between; gap: 7px; padding: 8px; border: 1px solid rgba(163,111,49,.46); border-radius: 6px; background: rgba(30,17,8,.35); }.ranking-reward.ready { border-color: #d5a34e; box-shadow: inset 0 0 14px rgba(223,173,78,.11); }.ranking-reward.claimed { border-color: #4b8c63; }.ranking-reward b, .ranking-reward span { display: block; }.ranking-reward b { color: #f4cf89; font-size: .62rem; }.ranking-reward span { margin-top: 3px; color: #bfa07a; font-size: .54rem; }.ranking-reward button { padding: 5px 7px; border: 1px solid #a76b2e; border-radius: 5px; color: #ffe7b4; background: #623719; font: inherit; font-size: .57rem; font-weight: 800; cursor: pointer; }.ranking-reward button:disabled { border-color: #51351e; color: #977755; background: #26180e; cursor: default; }
.ranking-candidate-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(225px, 1fr)); gap: 8px; margin-top: 10px; }.ranking-candidate-card { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 7px; align-items: center; padding: 8px; border: 1px solid rgba(177,118,50,.46); border-radius: 8px; background: rgba(12,8,5,.36); }.ranking-candidate-card.selected { border-color: #e3b35d; box-shadow: inset 0 0 15px rgba(221,169,77,.1); }.ranking-candidate-image { width: 50px; height: 50px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0,0,0,.68)); }.ranking-candidate-card small, .ranking-candidate-card b, .ranking-candidate-card span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.ranking-candidate-card small { color: #bc9462; font-size: .52rem; }.ranking-candidate-card b { margin: 3px 0; color: #f6d698; font-size: .64rem; }.ranking-candidate-card span { color: #d7b271; font-size: .55rem; }.ranking-candidate-card .ranking-select-btn { grid-column: 1 / -1; margin: 0; padding: 5px; font-size: .59rem; }
@media (max-width: 820px) { .ranking-combo-guide, .ranking-rewards > div { grid-template-columns: 1fr; }.ranking-candidates > header { align-items: start; flex-direction: column; }.ranking-candidates header small { text-align: left; }.ranking-exhibit-list { grid-template-columns: 1fr; } }

/* Podgląd skórki ma być czytelnym trybem tymczasowym, z wyjściem zawsze pod ręką. */
.skin-preview-bar { position: sticky; top: 8px; z-index: 80; display: flex; align-items: center; gap: 9px; width: min(850px, calc(100% - 22px)); margin: 8px auto; padding: 9px 12px; border: 1px solid #e4ad53; border-radius: 10px; color: #ffe9bc; background: linear-gradient(110deg, rgba(91,45,20,.97), rgba(31,17,10,.97)); box-shadow: 0 12px 28px rgba(0,0,0,.38); backdrop-filter: blur(7px); }.skin-preview-bar small { color: #d9b983; font-size: .68rem; }.skin-preview-bar button { margin-left: auto; padding: 7px 11px; border: 1px solid #f0c46d; border-radius: 6px; color: #2b1609; background: linear-gradient(135deg, #f5c574, #d98535); font: inherit; font-size: .68rem; font-weight: 900; cursor: pointer; white-space: nowrap; }

/* Arkusz portretów jest przygotowany w kadrach 4:5. Takie proporcje pokazują
   całą postać i eliminują poziome ściskanie widoczne w kartach wypraw. */
.npc-portrait { width: 72px; height: 90px; aspect-ratio: 4 / 5; background-size: 500% 200%; background-position-y: 0; }.npc-avatar-selection-grid .npc-portrait { width: 62px; height: 78px; }.npc-avatar-selection-grid .avatar-select-btn { min-height: 108px; }.archaeologist-card #sidebar-avatar, #sidebar-avatar { width: 68px; height: 85px; }.archaeologist-card #sidebar-avatar .npc-portrait { width: 68px; height: 85px; }.npc-portrait-small { width: 50px !important; height: 63px !important; aspect-ratio: 4 / 5; }.profile-avatar-option .npc-portrait { width: 50px; height: 63px; }.public-profile-avatar .npc-portrait { width: 72px; height: 90px; }.social-visit-preview .npc-portrait { width: 60px; height: 75px; }.social-friend-chip .npc-portrait { width: 32px; height: 40px; border-radius: 7px; }

/* Nocne scenerie: przesuwające się gwiazdy, puls świateł i podpis sceny. */
.room-viewport.city-view[data-city-scenery$="night"]::before { z-index: 2; transform: none; width: 100%; height: 100%; left: 0; top: 0; border: 0; background: radial-gradient(circle at 12% 15%, rgba(255,252,207,.95) 0 1px, transparent 2px), radial-gradient(circle at 27% 31%, rgba(210,238,255,.9) 0 1px, transparent 2px), radial-gradient(circle at 46% 12%, rgba(255,242,187,.95) 0 1px, transparent 2px), radial-gradient(circle at 69% 26%, rgba(211,238,255,.9) 0 1px, transparent 2px), radial-gradient(circle at 85% 11%, rgba(255,244,193,.9) 0 1px, transparent 2px), linear-gradient(122deg, transparent 0 42%, rgba(255,250,220,.78) 43% 43.2%, transparent 44% 100%), linear-gradient(180deg, rgba(5,10,27,.06), transparent 47%, rgba(3,5,15,.36)); background-size: 220px 170px, 260px 205px, 300px 190px, 240px 185px, 330px 220px, 520px 520px, 100% 100%; background-position: 0 0, 37px 24px, 90px 12px, 142px 49px, 20px 71px, -280px -160px, 0 0; opacity: .76; mix-blend-mode: screen; animation: nightSkyfall 15s linear infinite, nightStarTwinkle 4.6s ease-in-out infinite; }.room-viewport.city-view[data-city-scenery$="night"] .city-building:not(.decoration-asset) img { filter: brightness(1.1) saturate(1.09) drop-shadow(0 0 10px rgba(255,187,76,.34)); animation: nightBuildingGlow 3.6s ease-in-out infinite; }.room-viewport.city-view[data-city-scenery$="night"] .city-building-label { animation: nightLabelGlow 3.2s ease-in-out infinite; }.night-scenery-caption { position: absolute; z-index: 5; top: 15px; left: 50%; transform: translateX(-50%); padding: 7px 12px; border: 1px solid rgba(241,209,132,.7); border-radius: 99px; color: #fff1b4; background: rgba(10,13,29,.64); box-shadow: 0 0 18px rgba(123,177,255,.34); font-size: .67rem; font-weight: 900; letter-spacing: .06em; text-shadow: 0 0 9px #ffe9a9; white-space: nowrap; pointer-events: none; animation: nightCaptionGlow 2.8s ease-in-out infinite; }.night-scenery-caption[hidden] { display: none; }@keyframes nightSkyfall { to { background-position: 0 170px, 37px 229px, 90px 202px, 142px 234px, 20px 291px, 260px 520px, 0 0; } }@keyframes nightStarTwinkle { 50% { opacity: .98; } }@keyframes nightBuildingGlow { 50% { filter: brightness(1.22) saturate(1.18) drop-shadow(0 0 17px rgba(255,196,86,.62)); } }@keyframes nightLabelGlow { 50% { color: #fff3c0; box-shadow: 0 0 12px rgba(255,188,79,.55); } }@keyframes nightCaptionGlow { 50% { transform: translateX(-50%) translateY(-2px); box-shadow: 0 0 26px rgba(131,183,255,.65); } }

/* Gildia oraz dwa kanały czatu — lokalne dane są gotowe do podłączenia API. */
.guild-panel, .game-chat-panel { margin-top: 12px; padding: 12px; border: 1px solid rgba(207,143,57,.55); border-radius: 10px; background: linear-gradient(145deg, rgba(72,41,21,.78), rgba(21,12,8,.84)); }.guild-panel header, .game-chat-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; }.guild-panel header span, .game-chat-panel header span { color: #e7b967; font-size: .6rem; font-weight: 900; letter-spacing: .1em; }.guild-panel header b { color: #ffe2a5; }.guild-panel p { margin: 7px 0; color: #c9aa82; font-size: .69rem; line-height: 1.45; }.guild-panel > div, .game-chat-compose { display: flex; gap: 7px; }.guild-panel input, .game-chat-compose input, .game-chat-columns select { min-width: 0; padding: 7px 8px; border: 1px solid #8e5929; border-radius: 6px; color: #f4dbac; background: rgba(13,8,5,.74); font: inherit; font-size: .67rem; }.guild-panel input, .game-chat-compose input { flex: 1; }.guild-panel button, .game-chat-compose button { padding: 7px 10px; border: 1px solid #d69b47; border-radius: 6px; color: #fff0c9; background: #75401b; font: inherit; font-size: .65rem; font-weight: 800; cursor: pointer; }.game-chat-panel > header h4 { margin: 3px 0 0; color: #ffdfa1; }.game-chat-panel > header small { color: #b79871; font-size: .58rem; text-align: right; }.game-chat-columns { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 10px; }.game-chat-columns article { padding: 9px; border: 1px solid rgba(163,105,42,.45); border-radius: 7px; background: rgba(10,6,4,.32); }.game-chat-columns h5 { margin: 0 0 7px; color: #f3cb7e; }.game-chat-columns select { width: 100%; margin-bottom: 7px; }.game-chat-log { min-height: 114px; max-height: 164px; overflow: auto; padding: 5px 7px; border-radius: 5px; background: rgba(3,3,3,.18); }.game-chat-log p { display: grid; grid-template-columns: auto 1fr auto; gap: 6px; margin: 0; padding: 5px 0; border-bottom: 1px solid rgba(214,158,77,.12); color: #d8bb91; font-size: .63rem; line-height: 1.35; }.game-chat-log p:last-child { border-bottom: 0; }.game-chat-log p b { color: #f3d291; }.game-chat-log p small { color: #987d60; font-size: .53rem; }.game-chat-log .chat-empty { display: block; color: #9e805e; }.game-chat-compose { margin-top: 7px; }@media (max-width: 760px) { .skin-preview-bar { align-items: flex-start; flex-wrap: wrap; }.skin-preview-bar button { margin-left: 0; }.game-chat-columns { grid-template-columns: 1fr; }.game-chat-panel > header { align-items: flex-start; flex-direction: column; }.game-chat-panel > header small { text-align: left; } }

/* Noc nie może mieć pasów przez całą mapę. Zostają drobne gwiazdy w tle i
   krótkie, rzadkie meteory wysoko nad osadą. */
.room-viewport.city-view[data-city-scenery$="night"]::before { background: radial-gradient(circle at 8% 14%, rgba(255,250,204,.94) 0 1px, transparent 1.8px), radial-gradient(circle at 23% 29%, rgba(208,233,255,.82) 0 1px, transparent 1.6px), radial-gradient(circle at 38% 9%, rgba(255,248,203,.9) 0 .9px, transparent 1.7px), radial-gradient(circle at 56% 22%, rgba(207,230,255,.83) 0 1px, transparent 1.6px), radial-gradient(circle at 76% 15%, rgba(255,247,204,.9) 0 1px, transparent 1.7px), radial-gradient(circle at 91% 31%, rgba(208,233,255,.78) 0 1px, transparent 1.6px), linear-gradient(180deg, rgba(4,10,28,.06), transparent 50%, rgba(2,5,14,.34)); background-size: 330px 230px, 420px 290px, 370px 250px, 470px 310px, 390px 260px, 440px 300px, 100% 100%; background-position: 0 0, 43px 48px, 86px 13px, 140px 56px, 31px 82px, 118px 28px, 0 0; opacity: .58; mix-blend-mode: screen; animation: nightStarDrift 35s linear infinite, nightStarTwinkle 5.5s ease-in-out infinite; }.night-meteor-layer { position: absolute; z-index: 2; inset: 0 0 auto; height: 43%; overflow: hidden; pointer-events: none; }.night-meteor-layer[hidden] { display: none; }.night-meteor-layer i { position: absolute; width: 34px; height: 1px; border-radius: 999px; background: linear-gradient(90deg, transparent, rgba(255,246,204,.24), rgba(255,255,236,.96)); box-shadow: 0 0 5px rgba(233,245,255,.7); opacity: 0; transform: rotate(124deg); animation: distantMeteor 17s cubic-bezier(.25,.6,.45,1) infinite; }.night-meteor-layer i:nth-child(1) { top: 13%; left: 17%; animation-delay: -3s; }.night-meteor-layer i:nth-child(2) { top: 21%; left: 53%; animation-delay: -9s; }.night-meteor-layer i:nth-child(3) { top: 7%; left: 78%; animation-delay: -13s; }.night-meteor-layer i:nth-child(4) { top: 32%; left: 36%; animation-delay: -16s; }@keyframes nightStarDrift { to { background-position: 0 230px, 43px 338px, 86px 263px, 140px 366px, 31px 342px, 118px 328px, 0 0; } }@keyframes distantMeteor { 0%, 82% { opacity: 0; transform: translate3d(0,0,0) rotate(124deg) scale(.72); } 84% { opacity: .48; } 89% { opacity: .86; transform: translate3d(-54px,34px,0) rotate(124deg) scale(1); } 92%,100% { opacity: 0; transform: translate3d(-74px,47px,0) rotate(124deg) scale(.9); } }

/* Czat należy do całej gry, nie do jednej zakładki. */
.global-chat-dock { position: fixed; z-index: 1195; right: 20px; bottom: 78px; }.global-chat-toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 11px; border: 1px solid #dba554; border-radius: 99px; color: #fff0c8; background: linear-gradient(135deg, #75401e, #3b2111); box-shadow: 0 9px 22px rgba(0,0,0,.36); font: inherit; font-size: .7rem; font-weight: 900; cursor: pointer; }.global-chat-toggle span { font-size: 1rem; }.global-chat-toggle em { display: grid; min-width: 18px; height: 18px; place-items: center; border-radius: 50%; color: #2d170a; background: #f0bd68; font-size: .58rem; font-style: normal; }.global-chat-window { position: absolute; right: 0; bottom: 50px; width: min(355px, calc(100vw - 28px)); padding: 11px; border: 1px solid #d5a04e; border-radius: 12px; color: #f3ddb5; background: radial-gradient(circle at 90% 0, rgba(224,157,63,.18), transparent 31%), linear-gradient(145deg, #342012, #170d08); box-shadow: 0 20px 48px rgba(0,0,0,.58); }.global-chat-window[hidden] { display: none; }.global-chat-window header { display: flex; align-items: start; justify-content: space-between; gap: 8px; }.global-chat-window header span, .global-chat-window header b { display: block; }.global-chat-window header span { color: #e8b563; font-size: .55rem; font-weight: 900; letter-spacing: .1em; }.global-chat-window header b { margin-top: 3px; color: #ffe2a5; font-size: .76rem; }.global-chat-window header > button { width: 27px; height: 27px; border: 1px solid #9a5b2a; border-radius: 50%; color: #ffe1a3; background: #452616; font: inherit; font-size: 1rem; cursor: pointer; }.global-chat-window nav { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; margin: 10px 0 7px; }.global-chat-window nav button { padding: 6px; border: 1px solid #805027; border-radius: 6px; color: #cba77b; background: rgba(10,6,4,.45); font: inherit; font-size: .63rem; font-weight: 800; cursor: pointer; }.global-chat-window nav button.active { border-color: #e0ad57; color: #ffe7af; background: rgba(121,66,26,.58); }.global-chat-window select, .global-chat-compose input { width: 100%; min-width: 0; padding: 7px 8px; border: 1px solid #875127; border-radius: 6px; color: #f4dbac; background: rgba(12,7,4,.8); font: inherit; font-size: .67rem; }.global-chat-window select { margin-bottom: 7px; }.global-chat-log { min-height: 136px; max-height: 194px; overflow-y: auto; padding: 5px 7px; border: 1px solid rgba(180,112,42,.27); border-radius: 7px; background: rgba(5,3,2,.36); }.global-chat-log p { display: grid; grid-template-columns: auto 1fr auto; gap: 6px; margin: 0; padding: 5px 0; border-bottom: 1px solid rgba(218,160,74,.12); color: #dcc09a; font-size: .63rem; line-height: 1.35; }.global-chat-log p:last-child { border-bottom: 0; }.global-chat-log p b { color: #f5d291; }.global-chat-log p small { color: #9d8061; font-size: .52rem; }.global-chat-log .chat-empty { display: block; }.global-chat-compose { display: flex; gap: 6px; margin-top: 7px; }.global-chat-compose input { flex: 1; }.global-chat-compose button { padding: 7px 9px; border: 1px solid #d69b47; border-radius: 6px; color: #fff0c9; background: #75401b; font: inherit; font-size: .64rem; font-weight: 900; cursor: pointer; }.global-chat-window > small { display: block; margin-top: 7px; color: #a88967; font-size: .54rem; line-height: 1.35; }@media (max-width: 680px) { .global-chat-dock { right: 12px; bottom: 70px; }.global-chat-window { width: min(350px, calc(100vw - 24px)); } }

/* Własne komunikaty zastępują systemowe alerty: są czytelne, wyśrodkowane
   i zachowują kolory interfejsu gry. */
.game-notice-layer { position: fixed; z-index: 10050; inset: 0; display: grid; place-items: center; padding: 18px; pointer-events: none; opacity: 0; background: rgba(5, 3, 2, 0); transition: opacity .18s ease, background .18s ease; }
.game-notice-layer.visible { pointer-events: auto; opacity: 1; background: rgba(5, 3, 2, .58); backdrop-filter: blur(3px); }
.game-notice { width: min(470px, calc(100vw - 36px)); overflow: hidden; border: 1px solid #d69d49; border-radius: 14px; color: #f7dfb2; background: radial-gradient(circle at 92% 0, rgba(229,164,67,.2), transparent 31%), linear-gradient(145deg, #342012, #160d08); box-shadow: 0 24px 64px rgba(0,0,0,.65), inset 0 1px 0 rgba(255,224,160,.16); transform: translateY(12px) scale(.97); animation: gameNoticeIn .22s ease forwards; }
.game-notice header { display: flex; align-items: center; gap: 9px; padding: 12px 15px 10px; border-bottom: 1px solid rgba(218,159,74,.36); }.game-notice header i { display: grid; width: 29px; height: 29px; place-items: center; border: 1px solid rgba(245,194,95,.65); border-radius: 50%; font-style: normal; background: rgba(110,58,19,.52); }.game-notice header span { color: #f4cb81; font-size: .64rem; font-weight: 900; letter-spacing: .12em; }.game-notice p { margin: 0; padding: 14px 16px 8px; color: #ebd3a8; font-size: .84rem; line-height: 1.6; }.game-notice footer { display: flex; justify-content: flex-end; padding: 8px 15px 14px; }.game-notice button { min-width: 98px; padding: 8px 14px; border: 1px solid #e0a851; border-radius: 7px; color: #1e1108; background: linear-gradient(135deg, #f0bd68, #c9772e); font: inherit; font-size: .72rem; font-weight: 900; cursor: pointer; }.game-notice button:hover { filter: brightness(1.08); }.game-notice p br + br { display: none; }
@keyframes gameNoticeIn { to { transform: translateY(0) scale(1); } }

/* Ostatnia warstwa nocna: niewielkie meteory pozostają daleko w tle i nigdy
   nie są przycinane przez kontener scenerii. */
.room-viewport.city-view[data-city-scenery$="night"]::before { animation: nightStarDrift 42s linear infinite, nightStarTwinkle 6.5s ease-in-out infinite; }
.night-meteor-layer { height: 48%; overflow: visible; }
.night-meteor-layer i { width: 20px; height: 1px; background: linear-gradient(90deg, transparent, rgba(214,235,255,.1), rgba(255,252,226,.72)); box-shadow: 0 0 3px rgba(219,238,255,.42); transform: rotate(132deg); animation: distantMeteor 23s ease-in-out infinite; }
.night-meteor-layer i:nth-child(1) { top: 11%; left: 19%; animation-delay: -5s; }.night-meteor-layer i:nth-child(2) { top: 24%; left: 47%; animation-delay: -11s; }.night-meteor-layer i:nth-child(3) { top: 8%; left: 73%; animation-delay: -17s; }.night-meteor-layer i:nth-child(4) { top: 35%; left: 31%; animation-delay: -20s; }
@keyframes distantMeteor { 0%, 84% { opacity: 0; transform: translate3d(0,0,0) rotate(132deg) scale(.78); } 86% { opacity: .26; } 90% { opacity: .62; transform: translate3d(31px,24px,0) rotate(132deg) scale(1); } 93%, 100% { opacity: 0; transform: translate3d(42px,33px,0) rotate(132deg) scale(.84); } }

/* Ukryty pasek podglądu nie może rezerwować przestrzeni. Jest nieruchomy,
   ale pojawia się wyłącznie w czasie rzeczywistego podglądu. */
.skin-preview-bar[hidden] { display: none !important; }
.skin-preview-bar:not([hidden]) { position: fixed; top: 10px; left: 50%; z-index: 1200; margin: 0; transform: translateX(-50%); }

/* Mniejsze gabloty odsłaniają kupioną scenerię sali zamiast ją zasłaniać. */
.museum-vertical-hall { min-height: 650px; padding: 58px 38px 72px; background-position: center 48% !important; }
.pedestals-vertical-grid { width: min(1500px, 100%); margin: 0 auto; grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 22px 18px; }
.pedestal-showcase-box { width: 100%; max-width: 158px; height: 190px; justify-self: center; }
.pedestal-showcase-box .artifact-image, .pedestal-showcase-box img { max-height: 102px; max-width: 102px; }

/* Powitanie i formularz feedbacku są prywatnymi modalami interfejsu. */
.early-access-card, .feedback-card { position: relative; width: min(530px, calc(100vw - 36px)); padding: 28px; border: 1px solid #d69d49; border-radius: 15px; color: #f3ddb5; background: radial-gradient(circle at 92% 0, rgba(229,164,67,.2), transparent 30%), linear-gradient(145deg, #3b2414, #180e09); box-shadow: 0 26px 70px rgba(0,0,0,.66); }
.early-access-card > span, .feedback-card > span { color: #e7b967; font-size: .65rem; font-weight: 900; letter-spacing: .14em; }.early-access-card h2, .feedback-card h2 { margin: 7px 0 9px; color: #ffe0a0; }.early-access-card p, .feedback-card p { color: #d8bb91; line-height: 1.55; }.early-access-card > div, .feedback-card > div { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }.feedback-card label { display: block; margin-top: 14px; color: #f0ca83; font-size: .72rem; font-weight: 900; }.feedback-card textarea { width: 100%; min-height: 142px; margin-top: 7px; padding: 10px; resize: vertical; border: 1px solid #98612e; border-radius: 8px; color: #f3dfbb; background: rgba(9,5,3,.7); font: inherit; line-height: 1.45; }
@media (max-width: 720px) { .museum-vertical-hall { padding: 44px 16px 56px; }.pedestals-vertical-grid { grid-template-columns: repeat(auto-fill, minmax(122px, 1fr)); gap: 16px 12px; }.pedestal-showcase-box { max-width: 146px; height: 176px; } }

/* Proporcje sali: eksponat ma oddech wewnątrz gabloty, a nie przykrywa jej
   szkła. Przełącznik kompaktowy kurczy całą siatkę i odsłania tło sali. */
.pedestals-vertical-grid { width: min(1680px, 100%); grid-template-columns: repeat(auto-fill, minmax(176px, 1fr)); gap: 28px 24px; }
.pedestal-showcase-box { max-width: 198px; height: 246px; }
.pedestal-showcase-box .showcase-bg-image { width: 100%; height: 100%; max-width: none; max-height: none; }
.showcase-artifact-slot { width: 118px; height: 120px; bottom: 32%; }
.museum-exhibit-live-img { width: 74px; height: 74px; max-width: 74px; max-height: 74px; }
.pedestal-showcase-box .museum-exhibit-live-img { max-width: 74px; max-height: 74px; }
.online-museum-display-locked { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 14px; text-align: center; }
.online-museum-display-locked strong { font-size: .83rem; }.online-museum-display-locked span { font-weight: 900; color: #7a421d; }.online-museum-display-locked small { font-size: .66rem; line-height: 1.3; }.online-museum-display-locked .is-ready { color: #245c44; }.online-museum-display-locked .is-locked { color: #8a3427; }.online-museum-display-locked .skill-btn { margin-top: 3px; font-size: .67rem; }.online-museum-display-locked .skill-btn:disabled { opacity: .62; cursor: not-allowed; filter: grayscale(.25); }
.online-display-state { display: block; margin-top: 3px; color: #765036; font-size: .55rem; }.local-museum-display-notice { margin: 8px; font-size: .7rem; line-height: 1.35; text-align: center; }
.museum-vertical-hall.museum-case-compact { min-height: 590px; padding: 66px 30px 74px; }
.museum-case-compact .pedestals-vertical-grid { width: min(1420px, 100%); grid-template-columns: repeat(auto-fill, minmax(126px, 1fr)); gap: 17px 14px; }
.museum-case-compact .pedestal-showcase-box { max-width: 148px; height: 178px; }
.museum-case-compact .showcase-artifact-slot { width: 82px; height: 84px; bottom: 33%; }
.museum-case-compact .museum-exhibit-live-img { width: 56px; height: 56px; max-width: 56px; max-height: 56px; }
.museum-case-compact .pedestal-name { font-size: .61rem; }
@media (max-width: 720px) { .pedestals-vertical-grid { grid-template-columns: repeat(auto-fill, minmax(132px, 1fr)); gap: 18px 13px; }.pedestal-showcase-box { max-width: 154px; height: 190px; }.showcase-artifact-slot { width: 88px; height: 90px; }.museum-exhibit-live-img { width: 60px; height: 60px; }.museum-case-compact .pedestals-vertical-grid { grid-template-columns: repeat(auto-fill, minmax(112px, 1fr)); }.museum-case-compact .pedestal-showcase-box { max-width: 132px; height: 162px; }.museum-case-compact .museum-exhibit-live-img { width: 49px; height: 49px; } }

/* Drugi rząd nowego arkusza portretów musi zachować własne pozycje; wcześniej
   ogólna reguła proporcji nadpisywała je pierwszym wierszem. */
.npc-aurel { background-position: 0% 0%; }.npc-nura { background-position: 25% 0%; }.npc-theo { background-position: 50% 0%; }.npc-clara { background-position: 75% 0%; }.npc-otis { background-position: 100% 0%; }
.npc-kenji { background-position: 0% 100%; }.npc-astrid { background-position: 25% 100%; }.npc-amaru { background-position: 50% 100%; }.npc-yuki { background-position: 75% 100%; }.npc-samir { background-position: 100% 100%; }

/* Wszystkie sale i podglądy korzystają z tego samego komponentu gabloty.
   Wyższy punkt zaczepienia umieszcza obiekt optycznie w centrum szkła. */
.showcase-artifact-slot { bottom: 43%; }
.museum-case-compact .showcase-artifact-slot { bottom: 42%; }
@media (max-width: 720px) { .showcase-artifact-slot { bottom: 42%; }.museum-case-compact .showcase-artifact-slot { bottom: 41%; } }

/* Muzeum na telefonie: status online i selektory muszą zawijać się wewnątrz
   nagłówka zamiast poszerzać cały panel poza viewport. */
@media (max-width: 520px) {
  #tab-museum .museum-header { padding: 10px; }
  #tab-museum .museum-controls { display: grid; gap: 7px; min-width: 0; }
  #tab-museum .gabloty-counter { display: block; }
  #tab-museum .museum-prestige { white-space: normal; line-height: 1.35; }
  #tab-museum .showcase-skin-control {
    display: grid;
    grid-template-columns: minmax(82px, max-content) minmax(0, 1fr);
    width: 100%;
    min-width: 0;
  }
  #tab-museum .showcase-skin-control select { width: 100%; min-width: 0; }
  #tab-museum .museum-vertical-hall { padding-right: 10px; padding-left: 10px; }
}

/* Pasek kontaktów to skrót do profili publicznych — nie zabiera miejsca muzeum ani Osadzie. */
.social-friends-bar { padding: 10px 12px; border: 1px solid #815128; border-radius: 9px; background: linear-gradient(145deg, rgba(69,42,24,.86), rgba(25,15,10,.88)); }.social-friends-bar header { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #f4d18a; font-size: .72rem; }.social-friends-bar header small { color: #b8966d; }.social-friends-bar > div { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 9px; }.social-friend-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px 4px 4px; border: 1px solid rgba(211,147,67,.48); border-radius: 99px; color: #f4d6a0; background: rgba(16,10,7,.42); font: inherit; font-size: .64rem; cursor: pointer; }.social-friend-chip .npc-portrait { width: 28px; height: 28px; border-radius: 50%; }.social-friend-empty { margin: 0; color: #ba9b76; font-size: .67rem; }
