.mrme-app{
  position:relative;
  left:50%;
  right:50%;
  margin-left:-50vw;
  margin-right:-50vw;
  width:100vw;
  max-width:100vw;
  --txt:#f7fbff;
  --muted:rgba(237,247,255,.75);
  --good:#7ee787;
  --bad:#ff7b72;
  --gold:#ffd166;
  --cyan:#65e4ff;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--txt);
}

.mrme-app *{
  box-sizing:border-box;
  -webkit-tap-highlight-color:transparent;
}

.mrme-game{
  width:100%;
  min-height:100dvh;
  background:#06121e;
  position:relative;
  overflow:hidden;
}

.mrme-board{
  position:relative;
  width:100%;
  height:100dvh;
  min-height:680px;
  overflow:hidden;
  background:#123;
  isolation:isolate;
}

.mrme-layer{
  position:absolute;
  inset:0;
}

/* Terrain */
.mrme-terrain{
  z-index:0;
  background:#07111d;
}

.mrme-app[data-view="city"] .mrme-terrain{
  background:#07111d;
  filter:none;
}
.mrme-terrain::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.04), transparent 45%),
    linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.18));
  pointer-events:none;
}

.mrme-terrain::after{
  display:none;
}


.mrme-svg{
  z-index:1;
  pointer-events:none;
}

.mrme-world-layer,
.mrme-city-layer{
  z-index:2;
}

.mrme-fx-layer{
  z-index:8;
  pointer-events:none;
}

.mrme-city-layer{
  display:none;
}

.mrme-app[data-view="city"] .mrme-world-layer{
  display:none;
}

.mrme-app[data-view="city"] .mrme-city-layer{
  display:block;
}

.mrme-app[data-view="city"] 


/* HUD */
.mrme-hud{
  position:absolute;
  z-index:10;
}

.mrme-hud-top{
  top:10px;
  left:10px;
  right:10px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  pointer-events:none;
}

.mrme-brand,
.mrme-mode,
.mrme-hud-left,
.mrme-hud-right,
.mrme-note-dock,
.mrme-pop,
.mrme-toast,
.mrme-camera-controls{
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  background:
    linear-gradient(180deg, rgba(74,49,25,.92), rgba(43,28,14,.92)),
    linear-gradient(145deg, rgba(255,255,255,.05), rgba(255,255,255,0));
  border:1px solid rgba(215,178,107,.45);
  box-shadow:
    0 14px 36px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,231,184,.12);
}

.mrme-brand,
.mrme-mode{
  pointer-events:auto;
  border-radius:12px;
  padding:7px 9px;
}

.mrme-brand b{
  display:block;
  font-size:14px;
  letter-spacing:.4px;
  color:#f7e6b2;
  text-shadow:0 2px 8px rgba(0,0,0,.4);
}

.mrme-brand span{
  display:block;
  font-size:10px;
  color:#e8d9b4;
  margin-top:2px;
}

.mrme-mode{
  display:flex;
  gap:6px;
}

.mrme-app button{
  border:1px solid rgba(241,211,140,.35);
  border-radius:10px;
  background:linear-gradient(180deg, #8c6134 0%, #6c4824 52%, #533317 100%);
  color:#fff5da;
  font-weight:900;
  padding:8px 10px;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,238,197,.18),0 6px 14px rgba(0,0,0,.22);
  font:inherit;
  font-size:12px;
}

.mrme-app button:hover,
.mrme-app button.active{
  background:linear-gradient(180deg, #b58549 0%, #8c6134 55%, #6f451f 100%);
  color:#fff8e8;
  transform:translateY(-1px);
}

.mrme-app button:disabled{
  opacity:.45;
  cursor:not-allowed;
}

.mrme-hud-left{
  left:10px;
  top:74px;
  z-index:9;
  border-radius:14px;
  padding:8px;
  max-width:220px;
}

.mrme-hud-right{
  right:10px;
  top:74px;
  z-index:9;
  border-radius:14px;
  padding:8px;
  width:240px;
  max-height:30dvh;
  overflow:auto;
}

.mrme-hud-left:empty,
.mrme-hud-right:empty{
  display:none;
}

.mrme-statline{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.mrme-mini{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:5px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.24);
  border:1px solid rgba(255,255,255,.1);
  font-size:11px;
  font-weight:800;
}

.mrme-mini b{
  color:var(--cyan);
}

/* World map */
.mrme-region{
  position:absolute;
  transform:translate(-50%,-50%);
  border-radius:46% 54% 58% 42%;
  padding:18px 22px;
  min-width:120px;
  text-align:center;
  font-weight:900;
  color:rgba(255,255,255,.78);
  text-shadow:0 2px 8px rgba(0,0,0,.35);
  border:1px solid rgba(255,255,255,.14);
  box-shadow:inset 0 0 30px rgba(255,255,255,.08),0 12px 28px rgba(0,0,0,.16);
  pointer-events:none;
}

.mrme-region small{
  display:block;
  font-size:11px;
  opacity:.8;
}

.mrme-forest{background:rgba(46,125,65,.38);}
.mrme-mountain{background:rgba(104,86,70,.43);}
.mrme-lake{background:rgba(52,143,210,.45);}
.mrme-field{background:rgba(180,147,63,.35);}
.mrme-ruins{background:rgba(126,91,170,.36);}

.mrme-city-token{
  position:absolute;
  transform:translate(-50%,-50%);
  width:86px;
  height:86px;
  border-radius:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  cursor:pointer;
  border:3px solid var(--owner,#fff);
  background:linear-gradient(145deg,#ffd166,#ef476f);
  box-shadow:0 16px 34px rgba(0,0,0,.38),0 0 0 8px rgba(255,255,255,.06);
  transition:transform .12s ease,filter .12s ease;
}

.mrme-city-token:hover{
  transform:translate(-50%,-50%) scale(1.06);
  filter:saturate(1.2);
}

.mrme-city-token.owned{
  background:linear-gradient(145deg,#7ee787,#38bdf8);
}

.mrme-city-token.enemy{
  background:linear-gradient(145deg,#ff7b72,#f97316);
}

.mrme-city-icon{
  font-size:29px;
  line-height:1;
}

.mrme-city-name{
  position:absolute;
  top:82px;
  left:50%;
  transform:translateX(-50%);
  white-space:nowrap;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(0,0,0,.42);
  font-size:11px;
  font-weight:900;
}

.mrme-city-hp{
  position:absolute;
  left:10px;
  right:10px;
  bottom:7px;
  height:6px;
  border-radius:999px;
  background:rgba(0,0,0,.35);
  overflow:hidden;
}

.mrme-city-hp i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#7ee787,#ffd166,#ff7b72);
}

.mrme-army-line{
  stroke:rgba(255,255,255,.65);
  stroke-width:.35;
  stroke-dasharray:1 1;
  filter:drop-shadow(0 0 5px rgba(255,255,255,.55));
  animation:mrmeDash 1.2s linear infinite;
}

@keyframes mrmeDash{
  to{stroke-dashoffset:-6;}
}

.mrme-army-token{
  position:absolute;
  transform:translate(-50%,-50%);
  padding:6px 8px;
  border-radius:999px;
  background:rgba(4,10,18,.82);
  border:1px solid rgba(255,255,255,.24);
  box-shadow:0 8px 20px rgba(0,0,0,.28);
  font-size:12px;
  font-weight:900;
}

.mrme-army-token b{
  color:var(--gold);
}

.mrme-army-svg{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
}

/* City view */
.mrme-city-ground,
.mrme-city-grid,
.mrme-build-area{
  position:absolute;
  left:var(--mrme-city-x, 50%);
  top:var(--mrme-city-y, 50%);
  width:88vmin;
  height:64vmin;
  max-width:1280px;
  max-height:820px;
  min-width:720px;
  min-height:500px;
  transform:translate(-50%,-48%);
}

.mrme-city-ground{
  display:none!important;
}

.mrme-city-road{
  display:none!important;
}

.mrme-city-core{
  position:absolute;
  left:50%;
  top:47%;
  transform:translate(-50%,-50%);
  font-size:48px;
  z-index:1;
  filter:drop-shadow(0 10px 18px rgba(0,0,0,.45));
  pointer-events:none;
}

.mrme-city-grid{
  z-index:1;
  pointer-events:none;
  border-radius:18px;
  background-image:
    linear-gradient(rgba(255,255,255,.13) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.13) 1px, transparent 1px);
  background-size:10% 14.285%, 10% 14.285%;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.12),
    0 8px 24px rgba(0,0,0,.12);
}

.mrme-build-area{
  z-index:3;
  pointer-events:none;
}

.mrme-build-click-layer{
  position:absolute;
  inset:0;
  z-index:0;
  display:grid;
  grid-template-columns:repeat(10,1fr);
  grid-template-rows:repeat(7,1fr);
  pointer-events:auto;
  cursor:cell;
}

.mrme-build-click-layer:hover{
  background:rgba(101,228,255,.04);
}

.mrme-grid-cell{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.06)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.mrme-grid-cell:hover{
  background:rgba(101,228,255,.16)!important;
  outline:2px solid rgba(101,228,255,.55);
  outline-offset:-2px;
}

/* Buildings */
.mrme-building{
  position:absolute;
  z-index:5;
  transform:translate(-50%,-50%);
  width:var(--cell-w,72px)!important;
  height:var(--cell-h,72px)!important;
  min-height:0!important;
  border-radius:16px!important;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2px;
  text-align:center;
  background:linear-gradient(180deg, rgba(164,133,88,.96), rgba(110,79,46,.96));
  border:2px solid rgba(243,218,157,.34);
  box-shadow:0 10px 20px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,239,198,.15);
  cursor:pointer;
  pointer-events:auto;
}

.mrme-building.city_hall{
  width:calc(var(--cell-w,72px) * 1.8)!important;
  height:calc(var(--cell-h,72px) * 1.45)!important;
  background:linear-gradient(180deg, rgba(182,188,198,.96), rgba(109,118,132,.96));
  border-color:rgba(244,223,174,.42);
}

.mrme-building.farm{
  background:linear-gradient(180deg, rgba(166,150,80,.96), rgba(103,120,42,.96));
}

.mrme-building.wall{
  width:var(--cell-w,72px)!important;
  height:var(--cell-h,72px)!important;
  border-radius:10px!important;
  background:linear-gradient(180deg, rgba(148,149,153,.96), rgba(92,93,100,.96))!important;
  border-color:rgba(255,255,255,.28)!important;
}

.mrme-building.wall .lbl{
  display:none;
}

.mrme-building.queued{
  background:linear-gradient(180deg, rgba(191,165,112,.86), rgba(113,83,48,.86))!important;
  border-style:dashed;
  border-color:rgba(255,229,170,.55)!important;
  opacity:.92;
}

.mrme-building .ico{
  font-size:calc(min(var(--cell-w,72px), var(--cell-h,72px)) * .42)!important;
  filter:drop-shadow(0 2px 4px rgba(0,0,0,.25));
}

.mrme-building .lbl{
  font-size:10px!important;
  line-height:1.05!important;
  color:#fff6e0;
  text-shadow:0 1px 3px rgba(0,0,0,.35);
}

.mrme-blueprint{
  position:absolute;
  z-index:7;
  transform:translate(-50%,-50%);
  width:var(--cell-w,72px);
  height:var(--cell-h,72px);
  border-radius:14px;
  border:2px dashed rgba(101,228,255,.95);
  background:rgba(101,228,255,.22);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  pointer-events:none;
  box-shadow:0 0 22px rgba(101,228,255,.45);
}

.mrme-blueprint .ico{
  font-size:24px;
  opacity:.85;
}

.mrme-blueprint .lbl{
  font-size:9px;
  font-weight:900;
  color:#eaffff;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
}

/* Production / units */
.mrme-progress{
  position:absolute;
  left:9px;
  right:9px;
  bottom:6px;
  height:7px;
  background:rgba(0,0,0,.25);
  border-radius:999px;
  overflow:hidden;
}

.mrme-cardline .mrme-progress{
  position:relative;
  left:auto;
  right:auto;
  bottom:auto;
  margin-top:8px;
  width:100%;
}

.mrme-progress i{
  display:block;
  height:100%;
  background:linear-gradient(90deg,#65e4ff,#ffd166);
  width:0;
}

.mrme-time{
  position:absolute;
  top:-11px;
  right:-8px;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(0,0,0,.68);
  border:1px solid rgba(255,255,255,.16);
  font-size:11px;
  font-weight:900;
  color:#fff;
}

.mrme-worker{
  position:absolute;
  transform:translate(-50%,-50%);
  font-size:26px;
  filter:drop-shadow(0 6px 8px rgba(0,0,0,.45));
  animation:mrmeWork 2s ease-in-out infinite;
}

.mrme-worker:nth-child(2n){
  animation-delay:.5s;
}

@keyframes mrmeWork{
  50%{transform:translate(-50%,-62%);}
}

.mrme-unit-prod{
  z-index:8!important;
  width:calc(var(--cell-w,72px) * .62)!important;
  height:calc(var(--cell-h,72px) * .62)!important;
  border-radius:12px!important;
  transform:translate(-50%,-50%) scale(.92);
  background:linear-gradient(145deg,rgba(56,189,248,.88),rgba(79,70,229,.82))!important;
  pointer-events:auto;
}

.mrme-unit-prod.ready{
  background:linear-gradient(145deg,#7ee787,#ffd166)!important;
  color:#102014;
  animation:mrmeReadyPulse 1s ease-in-out infinite;
}

@keyframes mrmeReadyPulse{
  50%{transform:translate(-50%,-55%) scale(1.04);}
}

.mrme-unit-prod .ico{
  font-size:18px!important;
}

.mrme-unit-prod .lbl{
  font-size:8px!important;
}

.mrme-prod-notes,
.mrme-prod-stats{
  font-size:9px;
  font-weight:900;
  line-height:1.1;
  padding:0 4px;
  color:rgba(255,255,255,.86);
}

.mrme-unit-prod.ready .mrme-prod-notes{
  color:#1f2937;
}

.mrme-unit-prod.ready .mrme-time{
  right:24px;
}

.mrme-collect-btn{
  position:absolute;
  left:-8px;
  top:-8px;
  width:28px;
  height:28px;
  border-radius:999px!important;
  padding:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px!important;
  background:linear-gradient(135deg,#7ee787,#22c55e)!important;
  color:#102014!important;
  border:2px solid rgba(255,255,255,.5)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.28);
  z-index:3;
}

.mrme-army-idle{
  position:absolute;
  z-index:6;
  transform:translate(-50%,-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(4,10,18,.72);
  border:1px solid rgba(255,255,255,.22);
  box-shadow:0 8px 18px rgba(0,0,0,.35);
  animation:mrmeIdleSoldier 2.2s ease-in-out infinite;
  pointer-events:auto;
  cursor:pointer;
}

.mrme-army-idle span{
  font-size:27px;
}

.mrme-army-idle b{
  position:absolute;
  right:-7px;
  top:-7px;
  min-width:22px;
  height:22px;
  border-radius:999px;
  background:#ffd166;
  color:#111827;
  font-size:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(0,0,0,.18);
}

@keyframes mrmeIdleSoldier{
  50%{transform:translate(-50%,-58%);}
}

/* Notes dock */
.mrme-note-dock{
  position:absolute;
  z-index:11;
  left:50%;
  bottom:8px;
  transform:translateX(-50%);
  width:min(700px, calc(100vw - 16px));
  border-radius:14px;
  padding:6px 8px;
  display:flex;
  align-items:center;
  gap:5px;
  overflow:auto;
}

.mrme-note-title{
  font-size:11px;
  color:var(--muted);
  font-weight:900;
  white-space:nowrap;
}

.mrme-note{
  display:inline-flex;
  align-items:center;
  gap:3px;
  border-radius:10px;
  padding:5px 7px;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.12);
  font-size:10px;
  font-weight:1000;
  cursor:pointer;
  white-space:nowrap;
}

.mrme-note.selected{
  background:linear-gradient(135deg,#ffd166,#fb7185);
  color:#111;
}

.mrme-note.zero{
  opacity:.35;
}

.mrme-note b{
  font-size:10px;
  color:var(--gold);
}

.mrme-note.selected b{
  color:#111;
}

.mrme-note-dock .mrme-clear-notes{
  padding:5px 8px!important;
  font-size:11px!important;
}

/* Feed hidden */
.mrme-feed{
  display:none!important;
}

/* Popup / toast */
.mrme-toast{
  position:absolute;
  z-index:9999;
  left:50%;
  top:88px;
  transform:translateX(-50%);
  padding:10px 14px;
  border-radius:999px;
  font-weight:900;
  opacity:0;
  pointer-events:none;
  transition:.18s;
}

.mrme-toast.show{
  opacity:1;
}

.mrme-toast.bad{
  color:#fff;
  background:rgba(150,25,25,.75);
}

.mrme-pop{
  position:absolute;
  z-index:20;
  width:min(390px,calc(100vw - 24px));
  border-radius:22px;
  padding:12px;
  max-height:64dvh;
  overflow:auto;
}

.mrme-pop-close{
  position:sticky;
  top:0;
  float:right;
  margin:-4px -4px 4px 8px;
  width:34px;
  height:34px;
  border-radius:999px!important;
  padding:0!important;
  background:rgba(0,0,0,.35)!important;
  font-size:18px!important;
}

.mrme-pop h3{
  margin:0 0 7px;
  font-size:18px;
}

.mrme-pop p{
  margin:0 0 9px;
  color:var(--muted);
  font-size:13px;
}

.mrme-pop .row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:9px;
  flex-wrap:wrap;
}

.mrme-pop .grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:7px;
}

.mrme-cardline{
  padding:7px;
  border-radius:12px;
  background:linear-gradient(180deg, rgba(255,244,220,.06), rgba(0,0,0,.08));
  border:1px solid rgba(232,201,136,.18);
  margin:5px 0;
}

.mrme-cardline b{
  display:block;
  font-size:12px;
}

.mrme-cardline small{
  display:block;
  color:var(--muted);
  font-size:10px;
  margin-top:2px;
}

.mrme-pop input[type="number"],
.mrme-pop input[type="text"]{
  width:100%;
  padding:9px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(0,0,0,.25);
  color:#fff;
}

.mrme-unit-send{
  display:grid;
  grid-template-columns:1fr 72px;
  gap:6px;
  align-items:center;
}

/* Join */
.mrme-join{
  position:absolute;
  z-index:40;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:radial-gradient(circle at 50% 35%,rgba(45,89,132,.7),rgba(1,7,14,.86));
  backdrop-filter:blur(10px);
}

.mrme-join[hidden]{
  display:none;
}

.mrme-join-card{
  width:min(460px,92vw);
  padding:24px;
  border-radius:28px;
  background:linear-gradient(145deg,rgba(17,45,74,.92),rgba(57,30,95,.88));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 28px 80px rgba(0,0,0,.42);
  text-align:center;
}

.mrme-join-card h1{
  margin:0 0 8px;
  font-size:38px;
}

.mrme-join-card p{
  margin:0 0 14px;
  color:var(--muted);
}

.mrme-join-card small{
  display:block;
  color:var(--muted);
  margin-top:10px;
}

.mrme-name{
  width:100%;
  padding:13px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.25);
  color:#fff;
  margin-bottom:10px;
  text-align:center;
  font-size:16px;
}

.mrme-join-btn{
  width:100%;
  font-size:16px!important;
  padding:13px!important;
  background:linear-gradient(135deg,#1988ff,#7c3aed)!important;
}

.mrme-danger{color:var(--bad);}
.mrme-good{color:var(--good);}
.mrme-gold{color:var(--gold);}

/* Camera */
.mrme-camera-layer{
  position:absolute;
  left:0!important;
  top:0!important;
  width:var(--mrme-world-w, 100vw)!important;
  height:var(--mrme-world-h, 100dvh)!important;
  transform-origin:0 0!important;
  will-change:transform;
  overflow:hidden;
}

.mrme-camera-controls{
  position:absolute;
  z-index:12;
  right:14px;
  bottom:82px;
  display:flex;
  gap:6px;
  padding:6px;
  border-radius:12px;
}

.mrme-camera-controls button{
  width:34px;
  height:34px;
  padding:0!important;
  border-radius:12px!important;
  font-size:15px!important;
}

.mrme-board.camera-dragging{
  cursor:grabbing;
}

.mrme-app[data-view="world"] .mrme-board{
  cursor:grab;
}


.mrme-camera-controls{
  display:flex;
}

.mrme-camera-layer .mrme-region,
.mrme-camera-layer .mrme-city-token,
.mrme-camera-layer .mrme-army-token{
  z-index:2;
}

/* Mobile */
@media(max-width:760px){
  .mrme-board{
    min-height:100dvh;
  }

  .mrme-hud-top{
    top:8px;
    left:8px;
    right:8px;
    align-items:flex-start;
  }

  .mrme-brand{
    padding:8px 9px;
  }

  .mrme-brand b{
    font-size:14px;
  }

  .mrme-brand span{
    display:none;
  }

  .mrme-mode{
    padding:6px;
    gap:4px;
  }

  .mrme-app button{
    padding:7px 8px;
    font-size:11px;
  }

  .mrme-hud-left{
    top:64px;
    left:8px;
    max-width:calc(100vw - 16px);
    padding:7px;
  }

  .mrme-hud-right{
    top:110px;
    right:8px;
    left:8px;
    width:auto;
    max-height:22dvh;
    padding:7px;
  }

  .mrme-city-token{
    width:66px;
    height:66px;
    border-radius:22px;
  }

  .mrme-city-icon{
    font-size:23px;
  }

  .mrme-city-name{
    top:64px;
    font-size:10px;
  }

  .mrme-region{
    min-width:88px;
    padding:12px 14px;
    font-size:12px;
  }

  .mrme-city-ground,
  .mrme-city-grid,
  .mrme-build-area{
    min-width:420px;
    min-height:360px;
  }

  

  .mrme-building{
    width:var(--cell-w,72px)!important;
    height:var(--cell-h,64px)!important;
  }

  .mrme-building.city_hall{
    width:calc(var(--cell-w,72px) * 1.8)!important;
    height:calc(var(--cell-h,64px) * 1.45)!important;
  }

  .mrme-building .ico{
    font-size:22px!important;
  }

  .mrme-building .lbl{
    font-size:9px!important;
  }

  .mrme-pop{
    max-height:58dvh;
  }

  .mrme-pop .grid{
    grid-template-columns:1fr;
  }

  .mrme-note-dock{
    bottom:8px;
    width:min(680px, calc(100vw - 16px));
    padding:6px 8px;
  }

  .mrme-camera-controls{
    right:8px;
    bottom:72px;
  }
}



.mrme-route-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  z-index:18;
  pointer-events:none;
  overflow:visible;
}

.mrme-army-line-base{
  stroke:rgba(255,255,255,.22);
  stroke-width:.45;
  stroke-linecap:round;
  stroke-dasharray:1.2 1.4;
}

.mrme-army-line-active{
  stroke:var(--route-color, #ffe066);
  stroke-width:1.15;
  stroke-linecap:round;
  stroke-dasharray:3 1.6;
  filter:
    drop-shadow(0 0 2px rgba(0,0,0,.85))
    drop-shadow(0 0 6px rgba(255,235,120,.95));
  animation:mrme-route-flow .9s linear infinite;
}

.mrme-route-target{
  fill:#fff3a0;
  filter:
    drop-shadow(0 0 2px rgba(0,0,0,.85))
    drop-shadow(0 0 6px rgba(255,230,120,.95));
}

@keyframes mrme-route-flow{
  from{ stroke-dashoffset:0; }
  to{ stroke-dashoffset:-12; }
}

.mrme-city-token{
  z-index:25;
}

.mrme-army-token{
  z-index:35;
}

@keyframes mrme-route-flow{
  from{ stroke-dashoffset:0; }
  to{ stroke-dashoffset:-10; }
}

.mrme-city-token{
  z-index:25;
}

.mrme-army-token{
  z-index:35;
}

/*-------- map --------*/

.mrme-world-scenery{
  display:none!important;
}

.mrme-scenery-forest{
  position:absolute;
  transform:translate(-50%,-50%);
  border-radius:42% 58% 46% 54%;
  background:
    radial-gradient(circle at 30% 35%, rgba(78,140,75,.95) 0 35%, transparent 36%),
    radial-gradient(circle at 60% 38%, rgba(59,120,58,.96) 0 30%, transparent 31%),
    radial-gradient(circle at 48% 65%, rgba(37,92,45,.96) 0 38%, transparent 39%);
  filter:drop-shadow(0 8px 10px rgba(0,0,0,.18));
  opacity:.95;
}

.mrme-scenery-mountain{
  position:absolute;
  transform:translate(-50%,-50%) rotate(var(--rot,0deg));
  clip-path:none!important;
  border-radius:45% 55% 48% 52%;
  background:
    radial-gradient(ellipse at 50% 28%, rgba(235,240,230,.85) 0 10%, transparent 11%),
    radial-gradient(ellipse at 35% 62%, rgba(102,120,86,.95) 0 38%, transparent 39%),
    radial-gradient(ellipse at 64% 62%, rgba(70,92,68,.95) 0 42%, transparent 43%),
    radial-gradient(ellipse at 50% 78%, rgba(42,74,45,.65) 0 55%, transparent 56%);
  box-shadow:0 10px 22px rgba(0,0,0,.16);
  opacity:.72;
  pointer-events:none;
}

.mrme-scenery-lake{
  position:absolute;
  transform:translate(-50%,-50%);
  border-radius:47% 53% 44% 56%;
  background:
    radial-gradient(circle at 35% 30%, rgba(180,235,255,.8) 0 12%, transparent 13%),
    linear-gradient(180deg, rgba(72,165,220,.95), rgba(29,102,168,.98));
  border:1px solid rgba(255,255,255,.18);
  box-shadow:inset 0 0 18px rgba(255,255,255,.22), 0 10px 18px rgba(0,0,0,.14);
  opacity:.96;
}

.mrme-river-svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  overflow:visible;
}

.mrme-river-line{
  fill:none;
  stroke:rgba(91, 190, 220, .72);
  stroke-width:1.15;
  stroke-linecap:round;
  stroke-linejoin:round;
  opacity:.9;
  filter:drop-shadow(0 0 4px rgba(180,240,255,.6));
}

.mrme-map-surface{
  position:absolute;
  inset:0;
  z-index:0;
  background-image:var(--mrme-world-bg);
  background-size:100% 100%;
  background-position:center center;
  background-repeat:no-repeat;
  pointer-events:none;
}

.mrme-map-surface::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,255,255,.03), transparent 42%),
    linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.18));
  pointer-events:none;
}
.mrme-city-ground,
.mrme-city-road{
  display:none!important;
}

/* City view = πραγματικό zoom πάνω στο ίδιο world map */
/* City view = ίδιο world map, χωρίς να φαίνεται έξω από τον χάρτη */
.mrme-app[data-view="city"] .mrme-terrain{
  background:#06121e!important;
  background-image:none!important;
  filter:none!important;
}

.mrme-app[data-view="city"] .mrme-map-surface,
.mrme-app[data-view="world"] .mrme-map-surface{
  position:absolute;
  inset:0;
  z-index:0!important;
  background-image:var(--mrme-world-bg)!important;
  background-size:100% 100%!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  opacity:1!important;
  pointer-events:none;
}

.mrme-app[data-view="city"] .mrme-city-grid,
.mrme-app[data-view="city"] .mrme-build-area{
  width:var(--mrme-city-area-w, 360px)!important;
  height:var(--mrme-city-area-h, 250px)!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  left:var(--mrme-city-x, 50%)!important;
  top:var(--mrme-city-y, 50%)!important;
  transform:translate(-50%,-50%)!important;
}


.mrme-app[data-view="city"] .mrme-city-grid{
  z-index:1!important;
  background-color:rgba(255,255,255,.04)!important;
  background-image:
    linear-gradient(rgba(255,255,255,.28) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.28) 1px, transparent 1px)!important;
  background-size:10% 14.285%, 10% 14.285%!important;
  border:1px solid rgba(255,255,255,.32)!important;
  box-shadow:0 18px 55px rgba(0,0,0,.22)!important;
  overflow:hidden!important;
}

.mrme-app[data-view="city"] .mrme-build-area{
  z-index:3!important;
  background:transparent!important;
}

.mrme-city-core,
.mrme-city-focus-point{
  display:none!important;
 
}



/* === Unified world canvas / AoE-style camera === */

.mrme-camera-layer{
  background:#06121e;
}

.mrme-world-grid{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background-image:
    linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
  background-size:
    var(--mrme-world-cell-w, 64px) var(--mrme-world-cell-h, 64px),
    var(--mrme-world-cell-w, 64px) var(--mrme-world-cell-h, 64px);
  opacity:.18;
}

.mrme-app[data-view="city"] .mrme-world-grid{
  opacity:.22;
}

.mrme-city-token{
  width:var(--mrme-world-cell-w, 72px)!important;
  height:var(--mrme-world-cell-h, 72px)!important;
  border-radius:22%!important;
  padding:0!important;
}

.mrme-city-icon{
  font-size:clamp(18px, calc(var(--mrme-world-cell-w, 72px) * .42), 32px)!important;
}

.mrme-city-name{
  top:calc(100% + 4px)!important;
  font-size:clamp(8px, calc(var(--mrme-world-cell-w, 72px) * .16), 11px)!important;
  max-width:160px;
  overflow:hidden;
  text-overflow:ellipsis;
}

.mrme-city-hp{
  left:10%!important;
  right:10%!important;
  bottom:8%!important;
  height:6px!important;
}

.mrme-map-surface{
  width:100%!important;
  height:100%!important;
  background-size:100% 100%!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}

/* City view: το grid της πόλης είναι ακριβώς το world-cell της πόλης */
.mrme-app[data-view="city"] .mrme-city-grid,
.mrme-app[data-view="city"] .mrme-build-area{
  width:var(--mrme-city-area-w, 64px)!important;
  height:var(--mrme-city-area-h, 64px)!important;
  min-width:0!important;
  min-height:0!important;
  max-width:none!important;
  max-height:none!important;
  left:var(--mrme-city-x, 50%)!important;
  top:var(--mrme-city-y, 50%)!important;
  transform:translate(-50%,-50%)!important;
}

.mrme-app[data-view="city"] .mrme-city-grid{
  z-index:4!important;
  background-color:rgba(255,255,255,.045)!important;
  background-image:
    linear-gradient(rgba(255,255,255,.42) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.42) 1px, transparent 1px)!important;
  background-size:10% 14.285%, 10% 14.285%!important;
  border:1px solid rgba(255,255,255,.52)!important;
  box-shadow:
    0 0 0 2px rgba(0,0,0,.22),
    0 18px 55px rgba(0,0,0,.28)!important;
}

.mrme-app[data-view="city"] .mrme-build-area{
  z-index:5!important;
}

.mrme-app[data-view="city"] .mrme-build-click-layer{
  z-index:2!important;
}

.mrme-app[data-view="city"] .mrme-building{
  border-width:1px!important;
}

.mrme-app[data-view="city"] .mrme-building .lbl{
  font-size:9px!important;
}

.mrme-app[data-view="city"] .mrme-blueprint{
  border-width:1px!important;
}

/* City view: οι άλλες πόλεις να μη γίνονται τεράστιες από το camera zoom */
.mrme-app[data-view="city"] .mrme-city-token{
  transform:translate(-50%,-50%) scale(var(--mrme-city-token-scale, .12))!important;
  transform-origin:center center!important;
  z-index:4!important;
}

.mrme-app[data-view="city"] .mrme-city-token .mrme-city-icon{
  font-size:26px!important;
}

.mrme-app[data-view="city"] .mrme-city-token .mrme-city-name{
  font-size:10px!important;
  top:calc(100% + 4px)!important;
  white-space:nowrap!important;
}

/* Στρατός / εργάτες μέσα στην πόλη να είναι αναλογικοί με το grid */
.mrme-app[data-view="city"] .mrme-army-idle,
.mrme-app[data-view="city"] .mrme-worker{
  width:calc(var(--cell-w, 24px) * .75)!important;
  height:calc(var(--cell-h, 24px) * .75)!important;
  min-width:8px!important;
  min-height:8px!important;
  font-size:calc(var(--cell-w, 24px) * .34)!important;
  transform:translate(-50%,-50%)!important;
}

.mrme-app[data-view="city"] .mrme-army-idle span{
  font-size:calc(var(--cell-w, 24px) * .42)!important;
}

.mrme-app[data-view="city"] .mrme-army-idle b{
  font-size:calc(var(--cell-w, 24px) * .22)!important;
}


/* FIX: μέσα στην πόλη τα units/εργάτες να μη μεγαλώνουν από το camera zoom */
.mrme-app[data-view="city"] .mrme-army-idle,
.mrme-app[data-view="city"] .mrme-worker,
.mrme-app[data-view="city"] .mrme-unit-prod{
  transform:translate(-50%,-50%) scale(var(--mrme-city-object-scale, .12))!important;
  transform-origin:center center!important;
  z-index:30!important;
}

.mrme-app[data-view="city"] .mrme-army-idle{
  width:54px!important;
  height:54px!important;
  border-radius:50%!important;
}

.mrme-app[data-view="city"] .mrme-army-idle span{
  font-size:28px!important;
  line-height:1!important;
}

.mrme-app[data-view="city"] .mrme-army-idle b{
  font-size:12px!important;
}

.mrme-app[data-view="city"] .mrme-worker{
  width:42px!important;
  height:42px!important;
  font-size:24px!important;
}


/* FIX city view object scaling */
.mrme-app[data-view="city"] .mrme-army-idle,
.mrme-app[data-view="city"] .mrme-worker,
.mrme-app[data-view="city"] .mrme-unit-prod{
  transform:translate(-50%,-50%) scale(var(--mrme-city-object-scale, .12))!important;
  transform-origin:center center!important;
  z-index:30!important;
}

.mrme-app[data-view="city"] .mrme-army-idle{
  width:54px!important;
  height:54px!important;
  min-width:0!important;
  min-height:0!important;
  max-width:54px!important;
  max-height:54px!important;
  border-radius:50%!important;
}

.mrme-app[data-view="city"] .mrme-army-idle span{
  font-size:28px!important;
  line-height:1!important;
}

.mrme-app[data-view="city"] .mrme-army-idle b{
  font-size:12px!important;
}

.mrme-app[data-view="city"] .mrme-worker{
  width:42px!important;
  height:42px!important;
  font-size:24px!important;
}

.mrme-app[data-view="city"] .mrme-city-token{
  transform:translate(-50%,-50%) scale(var(--mrme-city-token-scale, .12))!important;
  transform-origin:center center!important;
}

/* === CLEAN CITY VIEW FINAL === */

.mrme-app[data-view="city"] .mrme-world-grid{
  opacity:.045!important;
}

.mrme-app[data-view="city"] .mrme-city-grid{
  z-index:2!important;
  pointer-events:none!important;
  border-radius:24px!important;
  overflow:hidden!important;

  background-color:rgba(7, 22, 18, .28)!important;
  background-image:
    linear-gradient(rgba(255,255,255,.20) var(--mrme-city-grid-line, 1px), transparent var(--mrme-city-grid-line, 1px)),
    linear-gradient(90deg, rgba(255,255,255,.20) var(--mrme-city-grid-line, 1px), transparent var(--mrme-city-grid-line, 1px))!important;
  background-size:
    10% 14.285%,
    10% 14.285%!important;

  border:calc(var(--mrme-city-grid-line, 1px) * 2) solid rgba(255,255,255,.28)!important;
  box-shadow:
    inset 0 0 0 calc(var(--mrme-city-grid-line, 1px) * 2) rgba(0,0,0,.22),
    0 0 0 calc(var(--mrme-city-grid-line, 1px) * 3) rgba(255,255,255,.08),
    0 18px 50px rgba(0,0,0,.25)!important;
}

.mrme-app[data-view="city"] .mrme-build-area{
  z-index:5!important;
  background:transparent!important;
}

.mrme-app[data-view="city"] .mrme-grid-cell{
  border:0!important;
  background:transparent!important;
}

.mrme-app[data-view="city"] .mrme-grid-cell:hover{
  background:rgba(101,228,255,.20)!important;
  outline:calc(var(--mrme-city-grid-line, 1px) * 3) solid rgba(101,228,255,.80)!important;
  outline-offset:calc(var(--mrme-city-grid-line, 1px) * -3)!important;
}

/* Κτίρια: χωρίς τεράστια γράμματα */
.mrme-app[data-view="city"] .mrme-building{
  width:calc(var(--cell-w, 72px) * .78)!important;
  height:calc(var(--cell-h, 72px) * .78)!important;
  border-radius:10px!important;
  z-index:20!important;
  box-shadow:
    0 4px 12px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.18)!important;
}

.mrme-app[data-view="city"] .mrme-building.city_hall{
  width:calc(var(--cell-w, 72px) * 1.15)!important;
  height:calc(var(--cell-h, 72px) * 1.05)!important;
  z-index:18!important;
}

.mrme-app[data-view="city"] .mrme-building .ico{
  font-size:calc(min(var(--cell-w,72px), var(--cell-h,72px)) * .46)!important;
}

.mrme-app[data-view="city"] .mrme-building .lbl{
  display:none!important;
}

/* Μόνο στο hover να δείχνει μικρό label */
.mrme-app[data-view="city"] .mrme-building:hover .lbl{
  display:block!important;
  position:absolute!important;
  left:50%!important;
  bottom:calc(100% + 4px)!important;
  transform:translateX(-50%) scale(var(--mrme-city-object-scale, .12))!important;
  transform-origin:bottom center!important;
  width:max-content!important;
  max-width:160px!important;
  padding:4px 7px!important;
  border-radius:999px!important;
  background:rgba(0,0,0,.72)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  color:#fff!important;
  font-size:12px!important;
  line-height:1.1!important;
  white-space:nowrap!important;
  z-index:60!important;
}

/* Units πιο καθαρά */
.mrme-app[data-view="city"] .mrme-army-idle,
.mrme-app[data-view="city"] .mrme-worker,
.mrme-app[data-view="city"] .mrme-unit-prod{
  transform:translate(-50%,-50%) scale(var(--mrme-city-object-scale, .12))!important;
  transform-origin:center center!important;
  z-index:35!important;
}

.mrme-app[data-view="city"] .mrme-army-idle{
  width:42px!important;
  height:42px!important;
  max-width:42px!important;
  max-height:42px!important;
  border-radius:50%!important;
  background:rgba(5,10,18,.82)!important;
  border:1px solid rgba(255,255,255,.20)!important;
}

.mrme-app[data-view="city"] .mrme-army-idle span{
  font-size:23px!important;
  line-height:1!important;
}

.mrme-app[data-view="city"] .mrme-army-idle b{
  font-size:11px!important;
}

.mrme-app[data-view="city"] .mrme-worker{
  width:34px!important;
  height:34px!important;
  font-size:21px!important;
}

/* Κρύβουμε πυρήνα/σημάδι πόλης */
.mrme-app[data-view="city"] .mrme-city-core,
.mrme-app[data-view="city"] .mrme-city-focus-point{
  display:none!important;
}