:root{
  --bg:#071525;--bg2:#0f172a;--card:rgba(255,255,255,.09);--card2:rgba(255,255,255,.14);
  --text:#f8fafc;--muted:#cbd5e1;--primary:#22d3ee;--yellow:#facc15;--border:rgba(255,255,255,.15);
  --green:#34d399;--red:#fb7185;--radius:22px;--shadow:0 24px 80px rgba(0,0,0,.34)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,Arial,sans-serif;background:radial-gradient(circle at 0% 0%,rgba(34,211,238,.24),transparent 32%),radial-gradient(circle at 100% 0%,rgba(250,204,21,.17),transparent 28%),linear-gradient(135deg,var(--bg),var(--bg2));color:var(--text);min-height:100vh}a{color:inherit;text-decoration:none}.wrap{width:min(1160px,calc(100% - 28px));margin:auto}.topbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0}.brand{display:flex;gap:12px;align-items:center;font-weight:900;font-size:1.25rem;letter-spacing:-.04em}.brand-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#22d3ee,#facc15);box-shadow:0 16px 34px rgba(34,211,238,.22)}.nav{display:flex;gap:14px;align-items:center;color:var(--muted);font-size:.94rem}.nav a:hover{color:var(--primary)}.hamb{display:none;background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:12px;padding:10px}.btn{border:0;border-radius:999px;padding:12px 18px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg,#22d3ee,#38bdf8);color:#06202f;box-shadow:0 14px 30px rgba(34,211,238,.24)}.btn-ghost{background:rgba(255,255,255,.09);color:var(--text);border:1px solid var(--border)}.hero{display:grid;grid-template-columns:1.04fr .96fr;gap:34px;align-items:center;padding:42px 0}.badge{display:inline-flex;gap:8px;align-items:center;background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.30);color:#fde68a;border-radius:999px;padding:8px 13px;font-weight:800;font-size:.9rem;margin-bottom:18px}h1{font-size:clamp(2.35rem,6vw,4.9rem);line-height:.96;letter-spacing:-.075em;margin:0 0 20px}p{line-height:1.65}.lead{font-size:1.08rem;color:var(--muted);max-width:650px;margin-bottom:26px}.actions{display:flex;gap:12px;flex-wrap:wrap}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:26px}.metric,.card,.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);backdrop-filter:blur(12px)}.metric{padding:15px}.metric strong{display:block;color:var(--yellow);font-size:1.35rem}.metric span{color:var(--muted);font-size:.84rem}.map{position:relative;min-height:510px;border-radius:30px;background:linear-gradient(160deg,rgba(255,255,255,.13),rgba(255,255,255,.04));border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;padding:22px}.map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:42px 42px;opacity:.35}.panel{position:relative;z-index:2;padding:15px;background:rgba(7,21,37,.72)}.resources{display:flex;gap:8px;margin-top:10px}.resource{flex:1;background:rgba(255,255,255,.08);border-radius:14px;padding:10px;text-align:center;color:var(--muted);font-size:.82rem}.resource b{display:block;color:var(--yellow);margin-top:4px}.island{position:absolute;z-index:3;width:112px;min-height:112px;border-radius:34% 66% 45% 55%;background:linear-gradient(135deg,#22c55e,#84cc16);border:4px solid rgba(255,255,255,.18);display:grid;place-items:center;text-align:center;padding:12px;cursor:pointer;box-shadow:0 22px 44px rgba(0,0,0,.28);transition:.2s}.island:hover{transform:translateY(-8px) scale(1.03);filter:brightness(1.12)}.island span{display:block;font-size:2rem}.island small{font-weight:900;font-size:.78rem;color:#052e16}.i1{left:9%;top:34%}.i2{right:12%;top:28%;background:linear-gradient(135deg,#facc15,#fb923c)}.i3{left:38%;top:55%;background:linear-gradient(135deg,#a78bfa,#f0abfc)}.i4{right:22%;bottom:10%;background:linear-gradient(135deg,#fb923c,#f97316)}.i5{left:18%;bottom:10%;background:linear-gradient(135deg,#2dd4bf,#14b8a6)}.ship{position:absolute;z-index:4;left:48%;top:40%;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.16);border:1px solid var(--border);font-size:2rem;box-shadow:0 18px 40px rgba(0,0,0,.28);animation:float 4s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}.section{padding:36px 0}.section-head{margin-bottom:18px}.section-head h2{font-size:clamp(1.75rem,4vw,3rem);letter-spacing:-.05em;margin:0 0 8px}.section-head p{color:var(--muted);max-width:760px}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.card{padding:18px}.card h3{margin:0 0 8px;letter-spacing:-.03em}.card p{color:var(--muted);font-size:.92rem;margin:0 0 14px}.big-icon{font-size:2rem;margin-bottom:9px}.progress{height:9px;background:rgba(255,255,255,.1);border-radius:999px;overflow:hidden}.progress div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#facc15)}.row{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.82rem;margin-bottom:8px}.pill{display:inline-flex;padding:7px 9px;border-radius:999px;background:rgba(255,255,255,.09);color:var(--muted);font-size:.78rem;font-weight:800;margin:2px}.login-box{width:min(460px,100%);margin:40px auto}.form label{display:block;font-weight:800;margin:12px 0 6px}.form input,.form select{width:100%;border:1px solid var(--border);background:rgba(255,255,255,.08);border-radius:14px;padding:13px;color:var(--text)}.alert{background:rgba(251,113,133,.14);border:1px solid rgba(251,113,133,.32);border-radius:16px;padding:12px;margin:12px 0;color:#fecdd3}.success{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.32);color:#bbf7d0}.table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:18px}.table th,.table td{padding:13px;border-bottom:1px solid var(--border);text-align:left}.table th{color:#fde68a;background:rgba(255,255,255,.08)}.cta{text-align:center;background:linear-gradient(135deg,rgba(34,211,238,.18),rgba(255,255,255,.07));border:1px solid var(--border);border-radius:30px;padding:32px;margin:36px 0;box-shadow:var(--shadow)}.footer{padding:24px 0 40px;text-align:center;color:var(--muted);font-size:.9rem}.modal-backdrop{display:none;position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.66);align-items:center;justify-content:center;padding:16px}.modal{width:min(520px,100%);background:#0f172a;border:1px solid var(--border);border-radius:24px;padding:24px;box-shadow:var(--shadow)}.modal button.close{float:right;background:transparent;border:0;color:var(--text);font-size:1.5rem;cursor:pointer}.print-only{display:none}@media print{body{background:#fff;color:#111}.topbar,.actions,.footer,.btn{display:none}.card,.panel,.metric,.cta{border:1px solid #ccc;background:#fff;color:#111;box-shadow:none}.print-only{display:block}.table th{background:#eee;color:#111}}@media(max-width:960px){.hero,.grid-2{grid-template-columns:1fr}.grid-5,.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}.nav{display:none}.hamb{display:inline-block}.nav-open{display:flex;position:absolute;right:14px;top:74px;z-index:10;flex-direction:column;background:#0f172a;border:1px solid var(--border);border-radius:18px;padding:16px;box-shadow:var(--shadow)}}@media(max-width:620px){.metrics,.grid-5,.grid-4{grid-template-columns:1fr}.map{min-height:430px}.island{width:86px;min-height:86px;border-radius:30px;padding:8px}.island span{font-size:1.5rem}.island small{font-size:.64rem}.ship{width:56px;height:56px;font-size:1.55rem}.resources{flex-direction:column}}



/* Cidade do aluno com imagens 01 a 06
   Base de cálculo: imagem 01 em 1792x1024. As posições abaixo usam porcentagem do quadro,
   então continuam encaixadas quando a tela muda de tamanho. */
.city-map{
  position:relative;
  width:100%;
  aspect-ratio:1792/1024;
  min-height:0!important;
  padding:0!important;
  overflow:hidden;
  border-radius:30px;
  background:#071525;
}
.city-map:before{display:none!important;}
.city-bg{
  position:absolute;
  inset:0;
  z-index:1;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  display:block;
  user-select:none;
  pointer-events:none;
}
.city-panel{
  position:absolute!important;
  z-index:8!important;
  left:2.2%;
  top:2.5%;
  width:min(400px, 43%);
  padding:14px!important;
  background:rgba(7,21,37,.68)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.28);
}
.city-panel .resources{gap:7px}.city-panel .resource{padding:8px;font-size:.78rem}
.build-slot{
  position:absolute;
  z-index:6;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  cursor:pointer;
  width:var(--w);
  transform:translate(-50%,-100%);
  display:block;
  filter:drop-shadow(0 15px 16px rgba(0,0,0,.34));
  transition:transform .18s ease, filter .18s ease;
}
.build-slot:hover{
  transform:translate(-50%,-106%) scale(1.04);
  filter:drop-shadow(0 20px 22px rgba(0,0,0,.42)) brightness(1.05);
}
.build-slot img{
  width:100%;
  height:auto;
  display:block;
  pointer-events:none;
}
.build-slot span{
  position:absolute;
  left:50%;
  bottom:-18px;
  transform:translateX(-50%);
  white-space:nowrap;
  font-size:.66rem;
  font-weight:900;
  color:#fff;
  background:rgba(7,21,37,.72);
  border:1px solid rgba(255,255,255,.22);
  padding:4px 8px;
  border-radius:999px;
  backdrop-filter:blur(8px);
}
/* Coordenadas calculadas sobre a imagem 01:
   b1: slot esquerdo (Leitura)     x=24%, y=52%, largura=13.2%
   b2: slot central superior       x=55%, y=40%, largura=11.0%
   b3: slot direito médio          x=72%, y=48%, largura=12.7%
   b4: slot superior/esquerdo      x=39%, y=41%, largura=12.0%
   b5: slot direito inferior       x=75%, y=66%, largura=13.0%
*/
.b1{left:24%;top:52%;--w:13.2%;}  /* 02 - Biblioteca/Leitura */
.b2{left:55%;top:40%;--w:11.0%;}  /* 03 - Matemática */
.b3{left:72%;top:48%;--w:12.7%;}  /* 04 - Escrita */
.b4{left:39%;top:41%;--w:12.0%;}  /* 05 - Atenção */
.b5{left:75%;top:66%;--w:13.0%;}  /* 06 - Mundo */
.build-preview{
  width:100%;
  max-height:118px;
  object-fit:contain;
  margin:-4px auto 10px;
  display:block;
  filter:drop-shadow(0 12px 18px rgba(0,0,0,.25));
}
.island-detail-card{overflow:hidden;}
@media(max-width:960px){
  .city-panel{width:min(360px, 48%);padding:11px!important}.city-panel .resource{font-size:.7rem;padding:7px}.build-slot span{display:none}
  .b1{--w:14.2%}.b2{--w:11.8%}.b3{--w:13.5%}.b4{--w:12.8%}.b5{--w:13.8%}
}
@media(max-width:620px){
  .city-panel{left:2%;top:2%;width:50%;padding:9px!important}.city-panel strong{font-size:.82rem}.city-panel .resources{display:none}
  .build-slot{filter:drop-shadow(0 10px 12px rgba(0,0,0,.34))}
  .b1{--w:15.2%}.b2{--w:12.8%}.b3{--w:14.5%}.b4{--w:13.8%}.b5{--w:14.8%}
}

/* Correção visual: painel de moedas/energia/estrelas sem corte e hero mais seguro em celulares */
.city-panel{
  width:clamp(220px, 45%, 390px)!important;
  max-width:calc(100% - 18px)!important;
  overflow:visible!important;
}
.city-panel .resources{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px!important;
  width:100%;
}
.city-panel .resource{
  min-width:0!important;
  overflow:hidden!important;
  white-space:normal!important;
  text-overflow:clip!important;
  padding:7px 5px!important;
  font-size:.68rem!important;
  line-height:1.15!important;
}
.city-panel .resource b{
  font-size:.82rem!important;
  line-height:1.1!important;
}
.table{display:block;overflow-x:auto;white-space:nowrap}.table thead,.table tbody{display:table;width:100%}
.form select{color:var(--text);background:#111827}.form option{color:#111;background:#fff}
@media(max-width:1120px){
  .hero{grid-template-columns:1fr!important;gap:22px!important}.city-map{max-width:860px;margin:0 auto}.lead{max-width:880px}
}
@media(max-width:760px){
  .wrap{width:min(100% - 18px,1160px)!important;overflow:hidden}.hero{padding:24px 0!important}h1{font-size:clamp(2rem,13vw,3.4rem)!important}.lead{font-size:1rem!important}.metrics{grid-template-columns:1fr!important}.city-panel{width:clamp(170px,43%,300px)!important;padding:8px!important;border-radius:16px!important}.city-panel strong{font-size:.76rem!important}.city-panel .resources{gap:4px!important;margin-top:6px!important}.city-panel .resource{font-size:.52rem!important;padding:4px 3px!important;border-radius:10px!important}.city-panel .resource b{font-size:.64rem!important}.city-map{border-radius:20px!important}.build-slot span{display:none!important}
}
@media(max-width:420px){
  .city-panel{width:42%!important;min-width:150px!important}.city-panel .resource{font-size:.48rem!important;padding:3px 2px!important}.city-panel .resource b{font-size:.58rem!important}
}

/* Personagens / classes BNCC */
.personagem-card{position:relative;overflow:hidden}.personagem-avatar{width:66px;height:66px;border-radius:22px;display:grid;place-items:center;background:rgba(34,211,238,.13);border:1px solid var(--border);font-size:2.1rem;margin-bottom:10px}.bonus-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.bonus-row span{display:inline-flex;align-items:center;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);border-radius:999px;padding:6px 9px;font-size:.78rem;font-weight:800;color:var(--muted)}.compact-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:14px}.compact-form label{grid-column:1/-1;margin-bottom:-6px}.compact-form select{min-height:44px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form textarea{width:100%;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.08);color:var(--text);padding:12px;outline:none}.form textarea:focus{border-color:rgba(34,211,238,.7)}
@media(max-width:760px){.compact-form{grid-template-columns:1fr}.grid-2{grid-template-columns:1fr}.personagem-avatar{width:58px;height:58px;font-size:1.8rem}}

/* Stamina topo — carregada por require_once stamina.php */
.stamina-top{
  width:100%;
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(135deg,rgba(34,211,238,.14),rgba(255,255,255,.06));
  box-shadow:0 16px 40px rgba(0,0,0,.20);
  position:relative;
  z-index:8;
}
.stamina-user{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:900;color:var(--text)}
.stamina-user strong{color:var(--yellow);font-size:1.1rem}
.stamina-track{height:13px;background:rgba(255,255,255,.12);border-radius:999px;overflow:hidden;margin:10px 0 8px;border:1px solid rgba(255,255,255,.09)}
.stamina-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#34d399,#facc15);box-shadow:0 0 18px rgba(34,211,238,.35);transition:width .25s ease}
.stamina-meta{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;gap:8px;color:var(--muted);font-size:.82rem}
button[disabled]{opacity:.55;cursor:not-allowed;transform:none!important}
@media(max-width:620px){.stamina-top{padding:10px;border-radius:14px}.stamina-meta{grid-template-columns:repeat(2,1fr);font-size:.74rem}.stamina-user{font-size:.86rem}.stamina-user strong{font-size:1rem}}

/* Games BNCC por construção */
.construction-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 16px}.construction-tabs .tab{border:1px solid var(--border);background:rgba(255,255,255,.07);border-radius:999px;padding:9px 12px;color:var(--muted);font-weight:800;font-size:.86rem}.construction-tabs .tab.active{background:linear-gradient(135deg,rgba(34,211,238,.25),rgba(250,204,21,.14));color:var(--text);border-color:rgba(34,211,238,.42)}.game-construcao-head{display:grid;grid-template-columns:150px 1fr;gap:18px;align-items:center;margin-bottom:16px}.game-construcao-head img{width:150px;max-height:128px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.28))}.game-card{position:relative;overflow:hidden}.game-topline{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.game-question{background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.24);border-radius:16px;padding:12px;margin:12px 0;font-weight:900;line-height:1.45}.game-form{display:grid;gap:8px;margin-top:10px}.game-option{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--border);background:rgba(255,255,255,.06);border-radius:14px;padding:10px;cursor:pointer}.game-option:hover{border-color:rgba(34,211,238,.45);background:rgba(34,211,238,.08)}.game-option input{margin-top:3px}.game-reward{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px;color:var(--muted);font-size:.82rem}.game-reward span{background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:999px;padding:6px 9px;font-weight:800}.build-slot{cursor:pointer}.build-slot:focus-visible{outline:3px solid rgba(34,211,238,.7);outline-offset:3px;border-radius:18px}
@media(max-width:760px){.game-construcao-head{grid-template-columns:1fr;text-align:center}.game-construcao-head img{margin:auto}.construction-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}.construction-tabs .tab{white-space:nowrap}.games-grid{grid-template-columns:1fr!important}}

/* Ajuste de CRUD/tabelas: card encaixado, scroll horizontal só no wrapper e botões sem quebrar layout. */
.table-wrap{width:100%;overflow-x:auto;border-radius:18px;border:1px solid var(--border);background:rgba(255,255,255,.035)}
.table{display:table;width:100%;min-width:760px;border-collapse:collapse;white-space:normal;margin:0}
.table thead,.table tbody{display:table-header-group;width:auto}.table tbody{display:table-row-group}.table tr{display:table-row}.table th,.table td{display:table-cell;vertical-align:middle}.table td .btn,.table td form .btn{padding:8px 12px;font-size:.86rem}.table td form{margin:4px 0 0}
@media(max-width:720px){.table{min-width:920px}.table-wrap{margin-inline:-2px}.table th,.table td{padding:10px 11px}.table td .btn{white-space:nowrap}}

/* Inventário e equipamentos */
.inventory-hero{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}.equipment-slots{margin-top:16px}.equipment-slot{min-height:210px;text-align:center;position:relative}.equipment-slot.empty{opacity:.82}.slot-label{display:inline-flex;margin-bottom:8px;padding:6px 10px;border-radius:999px;background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.25);color:#fde68a;font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.item-icon{font-size:2.25rem;display:block;margin:8px 0}.muted-icon{opacity:.45}.item-head{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.item-card{position:relative;overflow:hidden}.item-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,#94a3b8,#e2e8f0)}.raridade-incomum:before{background:linear-gradient(90deg,#22c55e,#bbf7d0)}.raridade-raro:before{background:linear-gradient(90deg,#38bdf8,#0ea5e9)}.raridade-epico:before{background:linear-gradient(90deg,#a78bfa,#e879f9)}.raridade-lendario:before{background:linear-gradient(90deg,#facc15,#fb923c)}.item-bonuses{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:12px}.item-bonuses span{background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:10px;padding:7px 8px;font-size:.78rem;color:var(--muted);font-weight:800}.personagem-avatar{font-size:2.5rem}.inventory-grid .btn[disabled]{opacity:.7;cursor:not-allowed}.compact-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
@media(max-width:760px){.inventory-hero{grid-template-columns:1fr;text-align:center}.item-bonuses{grid-template-columns:repeat(2,1fr)}}

.loot-preview {
    margin-top: 12px;
    padding: 12px;
    border: 1px solid rgba(250, 204, 21, .24);
    background: rgba(250, 204, 21, .08);
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.loot-preview strong { color: #fde68a; font-size: .88rem; }
.loot-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 7px 10px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.13);
    background: rgba(255,255,255,.08);
    color: #f8fafc;
    font-size: .82rem;
    font-weight: 800;
}

/* ===== Inventário estilo MMORPG/WYD: matriz com itens de tamanhos variáveis ===== */
.inventory-layout {
    display: grid;
    grid-template-columns: minmax(240px, 320px) 1fr;
    gap: 18px;
    align-items: start;
}

.equipment-paperdoll h3,
.inventory-bag-card h3 { margin-top: 0; }

.paperdoll-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.paper-slot {
    min-height: 132px;
    border: 1px solid rgba(255,255,255,0.18);
    border-radius: 18px;
    padding: 12px;
    background: rgba(255,255,255,0.055);
    display: flex;
    flex-direction: column;
    gap: 6px;
    justify-content: center;
}

.paper-slot.filled {
    background: linear-gradient(135deg, rgba(34,211,238,0.14), rgba(250,204,21,0.08));
}

.paper-slot .slot-label {
    font-size: .74rem;
    color: var(--muted, #cbd5e1);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 800;
}

.paper-icon,
.matrix-icon { font-size: 1.9rem; line-height: 1; }
.muted-icon { opacity: .45; }

.mini-btn {
    border: 1px solid rgba(255,255,255,0.18);
    background: rgba(255,255,255,0.10);
    color: inherit;
    border-radius: 999px;
    padding: 6px 10px;
    font-size: .74rem;
    font-weight: 800;
    cursor: pointer;
}
.mini-btn:disabled { opacity: .6; cursor: not-allowed; }

.inventory-bag-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: start;
    margin-bottom: 14px;
}
.inventory-bag-head p { margin: 4px 0 0; color: var(--muted, #cbd5e1); }

.inventory-matrix {
    position: relative;
    display: grid;
    grid-template-columns: repeat(var(--cols), minmax(44px, 1fr));
    grid-template-rows: repeat(var(--rows), 76px);
    gap: 6px;
    padding: 10px;
    border-radius: 22px;
    border: 1px solid rgba(255,255,255,0.16);
    background: radial-gradient(circle at top left, rgba(34,211,238,0.12), transparent 30%), rgba(2, 6, 23, 0.42);
    overflow: auto;
}

.inv-cell {
    border: 1px solid rgba(148,163,184,0.28);
    border-radius: 12px;
    background: rgba(15,23,42,0.52);
    min-width: 44px;
}

.matrix-item {
    z-index: 2;
    border: 2px solid rgba(255,255,255,0.25);
    border-radius: 16px;
    padding: 9px;
    background: linear-gradient(135deg, rgba(30,41,59,.95), rgba(15,23,42,.92));
    box-shadow: 0 16px 34px rgba(0,0,0,.28);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
}

.matrix-item strong {
    font-size: .83rem;
    line-height: 1.15;
    white-space: normal;
}
.matrix-item small { color: var(--muted, #cbd5e1); font-weight: 800; }
.matrix-item.equipped { outline: 2px solid rgba(250,204,21,.78); }
.matrix-item.raridade-comum { border-color: rgba(148,163,184,.45); }
.matrix-item.raridade-incomum { border-color: rgba(52,211,153,.65); }
.matrix-item.raridade-raro { border-color: rgba(96,165,250,.75); }
.matrix-item.raridade-epico { border-color: rgba(168,85,247,.75); }
.matrix-item.raridade-lendario { border-color: rgba(250,204,21,.85); }

.game-stage-preview,
.game-objective {
    border: 1px solid rgba(255,255,255,0.14);
    background: rgba(255,255,255,0.06);
    border-radius: 16px;
    padding: 12px;
    color: var(--muted, #cbd5e1);
    margin: 12px 0;
    line-height: 1.55;
}

.game-start-card {
    display: grid;
    grid-template-columns: minmax(220px, 360px) 1fr;
    gap: 22px;
    align-items: center;
}
.game-start-art {
    border-radius: 22px;
    background: radial-gradient(circle at center, rgba(34,211,238,.14), transparent 55%), rgba(255,255,255,.04);
    display: grid;
    place-items: center;
    min-height: 260px;
    overflow: hidden;
}
.game-start-art img { max-width: 100%; max-height: 300px; object-fit: contain; }
.game-play-card { max-width: 780px; margin: 0 auto; }
.game-question.large { font-size: 1.2rem; padding: 18px; }
.play-form .game-option { padding: 14px; }
.game-reward.big { margin: 14px 0; }

@media (max-width: 900px) {
    .inventory-layout,
    .game-start-card { grid-template-columns: 1fr; }
    .inventory-matrix {
        grid-template-columns: repeat(var(--cols), 52px);
        grid-template-rows: repeat(var(--rows), 68px);
    }
}

@media (max-width: 560px) {
    .paperdoll-grid { grid-template-columns: 1fr; }
    .inventory-matrix {
        grid-template-columns: repeat(var(--cols), 46px);
        grid-template-rows: repeat(var(--rows), 62px);
        gap: 5px;
    }
    .matrix-item { padding: 6px; }
    .matrix-icon { font-size: 1.3rem; }
    .matrix-item strong { font-size: .70rem; }
    .matrix-item small { display:none; }
}


.matrix-item { cursor: grab; position: relative; }
.matrix-item:active { cursor: grabbing; }
.matrix-item.dragging { opacity: .55; transform: scale(.98); }
.inv-cell.drop-hover { outline: 2px solid rgba(34,211,238,.85); outline-offset: -2px; background: rgba(34,211,238,.18); }
.matrix-item.drop-hover-item { outline: 2px solid rgba(250,204,21,.95); }
.matrix-icon { font-size: 1.9rem; line-height: 1; }
.matrix-item[data-w="2"], .matrix-item[data-h="2"], .matrix-item[data-w="3"], .matrix-item[data-h="3"] { align-items: flex-start; justify-content: space-between; }
.matrix-item[data-w="2"] .matrix-icon, .matrix-item[data-h="2"] .matrix-icon, .matrix-item[data-w="3"] .matrix-icon, .matrix-item[data-h="3"] .matrix-icon { font-size: 2.35rem; }
.matrix-item[data-w="3"] .matrix-icon, .matrix-item[data-h="3"] .matrix-icon { font-size: 2.8rem; }

.rpg-tooltip {
    position: fixed;
    z-index: 9999;
    width: min(310px, calc(100vw - 24px));
    pointer-events: none;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .14s ease, transform .14s ease;
    background: linear-gradient(160deg, rgba(15,23,42,.98), rgba(2,6,23,.98));
    border: 1px solid rgba(250,204,21,.45);
    border-radius: 16px;
    box-shadow: 0 24px 70px rgba(0,0,0,.55);
    padding: 12px;
    color: var(--text, #f8fafc);
    text-align: left;
}
.matrix-item:hover .rpg-tooltip,
.matrix-item:focus-within .rpg-tooltip,
.paper-slot:hover .rpg-tooltip,
.paper-slot:focus-within .rpg-tooltip {
    opacity: 1;
    transform: translateY(0);
}
.tooltip-title { display:flex; align-items:center; gap:8px; font-weight:900; margin-bottom:6px; }
.tooltip-title span { font-size:1.45rem; }
.tooltip-meta, .tooltip-foot { color: var(--muted, #cbd5e1); font-size:.78rem; font-weight:800; margin-bottom:8px; }
.rpg-tooltip p { margin: 8px 0; color: var(--muted, #cbd5e1); line-height:1.45; font-size:.86rem; }
.tooltip-bonuses { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:8px; }
.tooltip-bonuses span { border:1px solid rgba(255,255,255,.14); background:rgba(255,255,255,.08); border-radius:9px; padding:5px 6px; font-size:.72rem; font-weight:900; color:#e2e8f0; }

.inventory-instructions { color: var(--muted, #cbd5e1); font-size:.86rem; margin-top:8px; }

/* Correção avançada: equipamentos também entram no drag/drop */
.paper-slot { position: relative; }
.paper-equipped {
    display: flex;
    flex-direction: column;
    gap: 5px;
    cursor: grab;
    user-select: none;
}
.paper-equipped:active { cursor: grabbing; }
.paper-slot.drop-hover-equip {
    outline: 2px solid rgba(34,211,238,.95);
    outline-offset: -3px;
    background: rgba(34,211,238,.16);
}
.paper-slot.drop-hover-invalid {
    outline: 2px solid rgba(248,113,113,.95);
    outline-offset: -3px;
    background: rgba(248,113,113,.12);
}
.inventory-matrix.drop-hover-bag {
    outline: 2px solid rgba(250,204,21,.65);
    outline-offset: 4px;
}
.matrix-item.dragging,
.paper-equipped.dragging { opacity: .45; filter: saturate(.7); }

/* Mapa da ilha em tela cheia — inspirado em tela de cidade/MMORPG */
.city-map-preview{
  cursor:zoom-in;
}
.map-open-full{
  position:absolute;
  right:14px;
  top:14px;
  z-index:12;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(7,21,37,.70);
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  font-size:.78rem;
  backdrop-filter:blur(10px);
  box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.map-open-full:hover{transform:translateY(-1px);border-color:rgba(34,211,238,.55)}
.mapa-fullscreen-shell{
  position:fixed;
  inset:0;
  z-index:300;
  background:#06111f;
  overflow:hidden;
}
.mapa-fullscreen-shell:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:radial-gradient(circle at 30% 20%,rgba(34,211,238,.18),transparent 34%),linear-gradient(135deg,#06111f,#091827 55%,#030712);
}
.mapa-fullscreen-hud{
  position:absolute;
  z-index:20;
  left:18px;
  right:18px;
  top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:22px;
  background:rgba(7,21,37,.66);
  padding:12px 14px;
  backdrop-filter:blur(14px);
  box-shadow:0 18px 44px rgba(0,0,0,.28);
}
.mapa-fullscreen-hud strong{display:block;font-size:1.05rem;letter-spacing:-.02em}.mapa-fullscreen-hud span{color:var(--muted);font-size:.84rem}.mapa-fullscreen-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.city-map-fullscreen{
  position:absolute!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  aspect-ratio:auto!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#071525!important;
  cursor:default!important;
}
.city-map-fullscreen .city-bg{
  object-fit:fill!important;
}
.city-map-fullscreen .build-slot{
  z-index:15;
}
.city-map-fullscreen .build-slot span{
  display:block!important;
  bottom:-22px;
  font-size:.82rem;
  padding:6px 10px;
  background:rgba(7,21,37,.80);
}
.city-map-fullscreen .build-slot:hover{
  transform:translate(-50%,-108%) scale(1.08);
}
.city-map-fullscreen .b1{--w:10.8%;}
.city-map-fullscreen .b2{--w:9.4%;}
.city-map-fullscreen .b3{--w:10.2%;}
.city-map-fullscreen .b4{--w:9.8%;}
.city-map-fullscreen .b5{--w:10.6%;}
.mapa-fullscreen-tip{
  position:absolute;
  z-index:20;
  left:50%;
  bottom:14px;
  transform:translateX(-50%);
  max-width:min(680px,calc(100% - 28px));
  text-align:center;
  color:rgba(255,255,255,.78);
  background:rgba(7,21,37,.58);
  border:1px solid rgba(255,255,255,.16);
  border-radius:999px;
  padding:8px 12px;
  font-size:.78rem;
  backdrop-filter:blur(12px);
}
@media(max-width:760px){
  .map-open-full{right:8px;top:8px;font-size:.68rem;padding:7px 9px}.mapa-fullscreen-hud{left:8px;right:8px;top:8px;align-items:flex-start;flex-direction:column;border-radius:18px;padding:10px}.mapa-fullscreen-actions{justify-content:flex-start}.city-map-fullscreen .build-slot span{font-size:.64rem;bottom:-18px;padding:4px 7px}.city-map-fullscreen .b1{--w:14.8%;}.city-map-fullscreen .b2{--w:12.8%;}.city-map-fullscreen .b3{--w:14.0%;}.city-map-fullscreen .b4{--w:13.2%;}.city-map-fullscreen .b5{--w:14.3%;}.mapa-fullscreen-tip{font-size:.68rem;border-radius:14px;bottom:8px}
}

/* === Mapa fullscreen: modais contextuais e sidebar gamer de atributos === */
.city-map-fullscreen.with-sidebar,
.mapa-fullscreen-hud.with-sidebar,
.mapa-fullscreen-tip.with-sidebar {
    margin-left: 116px;
}

.city-map-fullscreen .build-slot {
    border: 0;
    cursor: pointer;
    background: transparent;
    font: inherit;
}

.game-sidebar {
    position: fixed;
    z-index: 75;
    left: 16px;
    top: 96px;
    width: 238px;
    max-width: calc(100vw - 32px);
    background: linear-gradient(180deg, rgba(16, 43, 58, .94), rgba(7, 18, 32, .96));
    border: 1px solid rgba(113, 227, 255, .22);
    box-shadow: 0 22px 80px rgba(0, 0, 0, .42), inset 0 1px 0 rgba(255,255,255,.08);
    border-radius: 22px;
    padding: 14px;
    color: #f8fafc;
    transition: transform .22s ease, opacity .22s ease;
    backdrop-filter: blur(14px);
}

.sidebar-chevron {
    position: absolute;
    top: 50%;
    right: -20px;
    transform: translateY(-50%);
    width: 38px;
    height: 74px;
    border: 1px solid rgba(113, 227, 255, .28);
    border-left: 0;
    color: #7dd3fc;
    background: linear-gradient(180deg, #132c3d, #06131f);
    border-radius: 0 18px 18px 0;
    font-weight: 900;
    font-size: 1.2rem;
    cursor: pointer;
    box-shadow: 10px 0 28px rgba(0,0,0,.35);
}

.sidebar-collapsed .game-sidebar {
    transform: translateX(-230px);
}
.sidebar-collapsed .sidebar-chevron {
    right: -42px;
}
.sidebar-collapsed .sidebar-chevron { transform: translateY(-50%) rotate(180deg); }

.sidebar-avatar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 12px;
}
.avatar-orb {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    display: grid;
    place-items: center;
    font-size: 1.7rem;
    background: radial-gradient(circle at 30% 25%, #67e8f9, #164e63 62%, #0f172a);
    border: 1px solid rgba(125, 211, 252, .38);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.2);
}
.sidebar-avatar strong { display: block; font-size: .98rem; }
.sidebar-avatar span { display: block; color: #b6c7d6; font-size: .78rem; margin-top: 3px; }
.sidebar-attrs { display: grid; gap: 8px; }
.attr-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
    padding: 9px 10px;
    border-radius: 14px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.08);
}
.attr-row span { color: #d7e5ef; font-weight: 800; font-size: .83rem; }
.attr-row b {
    min-width: 36px;
    text-align: center;
    padding: 4px 8px;
    border-radius: 999px;
    background: rgba(250, 204, 21, .16);
    color: #fde047;
}
.sidebar-link {
    display: block;
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 14px;
    background: rgba(34, 211, 238, .09);
    border: 1px solid rgba(34, 211, 238, .15);
    font-weight: 900;
}

.build-modal {
    position: fixed;
    inset: 0;
    z-index: 100;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: radial-gradient(circle at center, rgba(14, 165, 233, .16), rgba(0,0,0,.78));
    backdrop-filter: blur(8px);
}
.build-modal.is-open { display: flex; }
.build-modal-card {
    width: min(880px, 100%);
    max-height: min(760px, calc(100vh - 40px));
    overflow: auto;
    border-radius: 28px;
    padding: 22px;
    border: 1px solid rgba(125, 211, 252, .28);
    background: linear-gradient(180deg, rgba(18, 42, 59, .98), rgba(6, 18, 31, .98));
    box-shadow: 0 34px 120px rgba(0,0,0,.60), inset 0 1px 0 rgba(255,255,255,.08);
    position: relative;
}
.modal-x {
    position: absolute;
    right: 16px;
    top: 14px;
    width: 42px;
    height: 42px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.14);
    background: rgba(255,255,255,.08);
    color: #fff;
    font-size: 1.5rem;
    cursor: pointer;
}
.build-modal-head {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 20px;
    align-items: center;
    padding-right: 44px;
}
.build-modal-head img {
    width: 100%;
    max-height: 180px;
    object-fit: contain;
    filter: drop-shadow(0 18px 30px rgba(0,0,0,.45));
}
.build-modal-head h2 {
    margin: 12px 0 8px;
    font-size: clamp(2rem, 4vw, 3.1rem);
    letter-spacing: -.05em;
}
.build-modal-head p { color: #cbd5e1; line-height: 1.65; margin: 0; }
.build-modal-games {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 20px;
}
.build-modal-games article {
    border-radius: 18px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.07);
}
.build-modal-games strong { display: block; font-size: 1rem; margin-bottom: 7px; }
.build-modal-games span { display: block; color: #cbd5e1; font-size: .84rem; min-height: 36px; margin-bottom: 12px; }

@media (max-width: 920px) {
    .city-map-fullscreen.with-sidebar,
    .mapa-fullscreen-hud.with-sidebar,
    .mapa-fullscreen-tip.with-sidebar { margin-left: 0; }
    .game-sidebar { top: auto; bottom: 18px; left: 12px; width: min(270px, calc(100vw - 64px)); transform: translateX(-250px); }
    .sidebar-chevron { right: -42px; }
    .sidebar-collapsed .game-sidebar { transform: translateX(-250px); }
    body:not(.sidebar-collapsed) .game-sidebar { transform: translateX(0); }
    .build-modal-head { grid-template-columns: 1fr; padding-right: 34px; }
    .build-modal-games { grid-template-columns: 1fr; }
}


/* ===== Menu pro gamer em duas camadas ===== */
.menu-pro-gamer{width:min(1180px,calc(100% - 28px));margin:14px auto 10px;border:1px solid rgba(103,232,249,.18);border-radius:24px;background:linear-gradient(180deg,rgba(10,28,42,.92),rgba(4,14,28,.78));box-shadow:0 24px 70px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.08);backdrop-filter:blur(18px);overflow:hidden}.menu-layer{display:flex;align-items:center}.menu-layer-top{justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-pro .brand-icon{width:38px;height:38px}.menu-user-chip{display:flex;align-items:center;gap:10px;color:#e5eef9;font-weight:800}.menu-avatar{width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,rgba(34,211,238,.28),rgba(250,204,21,.22));border:1px solid rgba(255,255,255,.14)}.menu-sair{padding:9px 15px}.menu-layer-nav{padding:8px 12px;gap:6px;overflow:auto;justify-content:center}.menu-layer-nav a{padding:9px 12px;border-radius:999px;color:#cfe7f5;white-space:nowrap;border:1px solid transparent}.menu-layer-nav a:hover,.menu-layer-nav a.active{color:#061320;background:linear-gradient(135deg,#22d3ee,#facc15);border-color:rgba(255,255,255,.18);box-shadow:0 10px 24px rgba(34,211,238,.16)}.menu-pro-hamb{display:none;margin:8px 16px}.footer-pro-full{width:100%;margin-top:48px;background:linear-gradient(180deg,rgba(3,13,25,.5),rgba(3,13,25,.95));border-top:1px solid rgba(34,211,238,.28);box-shadow:0 -20px 60px rgba(0,0,0,.24)}.footer-pro-inner{width:min(1180px,calc(100% - 28px));margin:0 auto;padding:28px 0;display:flex;justify-content:space-between;gap:24px;align-items:center}.footer-pro-inner p{color:var(--muted);margin:6px 0 0}.footer-links{display:flex;gap:10px;flex-wrap:wrap}.footer-links a{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09)}

/* ===== Painel do aluno moderno e dinâmico ===== */
.aluno-dashboard{padding-top:28px}.aluno-hero{display:grid;grid-template-columns:1fr 170px;gap:22px;align-items:center;padding:28px;border-radius:32px;position:relative;overflow:hidden;background:radial-gradient(circle at top left,rgba(34,211,238,.25),transparent 36%),linear-gradient(135deg,rgba(21,55,78,.86),rgba(13,26,45,.86))}.aluno-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:radial-gradient(circle,rgba(250,204,21,.18),transparent 64%)}.aluno-hero-main{position:relative;z-index:1}.aluno-hero h2{font-size:clamp(2.2rem,5vw,4.4rem);letter-spacing:-.07em;line-height:.94;margin:10px 0 14px}.aluno-hero p{max-width:760px;color:#d6e8f5;font-size:1.02rem}.aluno-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.aluno-level-orb{position:relative;z-index:1;width:148px;height:148px;border-radius:50%;display:grid;place-items:center;text-align:center;background:radial-gradient(circle at 35% 25%,#facc15,#22d3ee 42%,#0f2437 72%);box-shadow:0 20px 50px rgba(34,211,238,.18), inset 0 0 0 8px rgba(255,255,255,.08)}.aluno-level-orb span{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#06131f;font-weight:900}.aluno-level-orb strong{font-size:3rem;color:#06131f;line-height:.8}.aluno-level-orb small{font-weight:900;color:#082032}.aluno-kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:16px 0}.aluno-kpi{display:flex;gap:12px;align-items:center;min-height:92px;background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.05));border-radius:22px}.aluno-kpi>span{width:44px;height:44px;display:grid;place-items:center;border-radius:16px;background:rgba(34,211,238,.14);font-size:1.35rem}.aluno-kpi strong{display:block;font-size:1.65rem;color:#facc15;letter-spacing:-.04em}.aluno-kpi small{color:var(--muted);font-weight:800}.aluno-panel-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.aluno-card-destaque{border-radius:26px;background:linear-gradient(145deg,rgba(255,255,255,.10),rgba(255,255,255,.045))}.personagem-dashboard-head{display:flex;gap:16px;align-items:center}.personagem-avatar-xl{width:74px;height:74px;border-radius:24px;display:grid;place-items:center;font-size:2.1rem;background:linear-gradient(135deg,rgba(34,211,238,.25),rgba(250,204,21,.2));border:1px solid rgba(255,255,255,.14)}.atributos-lista{display:grid;gap:12px;margin-top:12px}.atributo-line{display:grid;grid-template-columns:110px 48px 1fr;gap:10px;align-items:center}.atributo-line span{font-weight:900}.atributo-line strong{color:#facc15}.atributo-bar{height:10px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden}.atributo-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#facc15)}.aluno-shortcuts{margin-top:18px}
@media(max-width:1050px){.aluno-kpi-grid{grid-template-columns:repeat(3,1fr)}.aluno-panel-grid{grid-template-columns:1fr}.menu-layer-nav{justify-content:flex-start}.footer-pro-inner{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.aluno-hero{grid-template-columns:1fr}.aluno-level-orb{width:120px;height:120px}.aluno-kpi-grid{grid-template-columns:1fr 1fr}.atributo-line{grid-template-columns:1fr 42px}.atributo-bar{grid-column:1/3}.menu-pro-gamer{border-radius:18px}.menu-layer-top{align-items:flex-start}.menu-user-chip{font-size:.85rem}.menu-layer-nav.nav{display:none}.menu-pro-hamb{display:inline-flex}.menu-layer-nav.nav-open{display:flex;position:static;box-shadow:none;border:0;background:transparent;border-radius:0;padding:8px 12px;flex-direction:column;align-items:stretch}.menu-layer-nav.nav-open a{text-align:center}}@media(max-width:480px){.aluno-kpi-grid{grid-template-columns:1fr}.aluno-hero{padding:20px}.aluno-hero h2{font-size:2.3rem}.personagem-dashboard-head{align-items:flex-start;flex-direction:column}}


/* Home profissional com background 10.png e remoção de ruído visual técnico */
body.page-home{
  background:
    linear-gradient(90deg, rgba(3,12,24,.96) 0%, rgba(3,12,24,.88) 38%, rgba(3,12,24,.52) 66%, rgba(3,12,24,.72) 100%),
    linear-gradient(180deg, rgba(3,12,24,.20), rgba(3,12,24,.96) 78%),
    url('../images/10.png') center top / cover no-repeat fixed;
}
body.page-home::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 18%, rgba(34,211,238,.20), transparent 26%),
    radial-gradient(circle at 78% 28%, rgba(250,204,21,.12), transparent 25%),
    linear-gradient(180deg, transparent 0%, rgba(3,12,24,.94) 82%);
}
body.page-home .wrap{position:relative;z-index:1;}
body.page-home .hero{
  min-height:calc(100vh - 250px);
  align-items:center;
  padding:58px 0 48px;
}
body.page-home .hero > div:first-child{
  padding:28px;
  border-radius:30px;
  background:linear-gradient(135deg, rgba(7,21,37,.58), rgba(7,21,37,.22));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 28px 90px rgba(0,0,0,.28);
  backdrop-filter:blur(8px);
}
body.page-home .badge{
  background:rgba(250,204,21,.16);
  border-color:rgba(250,204,21,.36);
  box-shadow:0 12px 36px rgba(250,204,21,.10);
}
body.page-home h1{
  text-shadow:0 14px 42px rgba(0,0,0,.45);
}
body.page-home .lead{
  color:#e2edf7;
  text-shadow:0 4px 18px rgba(0,0,0,.32);
}
body.page-home .metric,
body.page-home .card,
body.page-home .cta,
body.page-home .city-map{
  background:linear-gradient(145deg, rgba(8,25,41,.70), rgba(8,25,41,.42));
  border-color:rgba(255,255,255,.13);
  box-shadow:0 24px 80px rgba(0,0,0,.28);
}
body.page-home .home-features .section-head,
body.page-home .home-cta{
  backdrop-filter:blur(10px);
}
body.page-home .city-map-preview{
  box-shadow:0 32px 100px rgba(0,0,0,.42), 0 0 0 1px rgba(255,255,255,.08);
}
body.page-home .section-head h2,
body.page-home .cta h2{ text-shadow:0 10px 34px rgba(0,0,0,.36); }
@media(max-width:960px){
  body.page-home{background-attachment:scroll;background-position:center top;}
  body.page-home .hero{min-height:auto;padding:34px 0;}
  body.page-home .hero > div:first-child{padding:20px;border-radius:24px;}
}

/* Menu gamer dentro do mapa fullscreen - HUD inspirado no asset assets/images/40.png */
.fullscreen-game-menu{
    position:fixed;
    top:10px;
    left:50%;
    transform:translateX(-50%);
    z-index:75;
    width:min(1490px, calc(100vw - 28px));
    min-height:76px;
    display:grid;
    grid-template-columns:48px minmax(220px,300px) minmax(520px,1fr) auto 48px;
    align-items:center;
    gap:0;
    padding:0;
    color:#f8fafc;
    isolation:isolate;
    filter:drop-shadow(0 18px 34px rgba(0,0,0,.42));
}
.fullscreen-game-menu:before{
    content:"";
    position:absolute;
    inset:10px 38px 8px 38px;
    z-index:-1;
    border-radius:28px;
    background:
        radial-gradient(circle at 16% 15%,rgba(73,211,255,.20),transparent 28%),
        linear-gradient(180deg,rgba(7,50,82,.96),rgba(5,24,48,.98) 58%,rgba(3,17,36,.98));
    border:1px solid rgba(132,220,255,.38);
    box-shadow:
        inset 0 2px 0 rgba(255,255,255,.16),
        inset 0 -2px 0 rgba(0,0,0,.36),
        0 0 0 2px rgba(194,139,47,.45),
        0 16px 42px rgba(0,0,0,.38);
}
.fullscreen-game-menu:after{
    content:"";
    position:absolute;
    left:70px;
    right:70px;
    top:14px;
    height:1px;
    z-index:-1;
    background:linear-gradient(90deg,transparent,rgba(255,230,134,.76),rgba(125,211,252,.38),transparent);
}
.fullscreen-game-brand{
    min-width:0;
    height:64px;
    display:flex;
    align-items:center;
    gap:12px;
    padding:0 20px 0 12px;
    color:#f8fafc;
    text-decoration:none;
    border-radius:26px 10px 10px 26px;
    background:linear-gradient(90deg,rgba(11,71,91,.88),rgba(5,31,58,.54));
    border:1px solid rgba(255,211,100,.22);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.13);
}
.fullscreen-game-mark{
    width:50px;
    height:50px;
    flex:0 0 auto;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:
        radial-gradient(circle at 36% 25%,#c8fff0 0 13%,#30e6a2 32%,#0d987b 58%,#053546 100%);
    border:1px solid rgba(173,255,225,.44);
    box-shadow:0 0 20px rgba(42,255,197,.28), inset 0 2px 0 rgba(255,255,255,.28);
}
.fullscreen-game-mark span{font-size:1.45rem;filter:drop-shadow(0 3px 5px rgba(0,0,0,.32))}
.fullscreen-game-brand strong{display:block;color:#ffffff;font-weight:950;letter-spacing:-.035em;line-height:1.05;font-size:1.04rem;text-shadow:0 2px 10px rgba(0,0,0,.32)}
.fullscreen-game-brand small{display:block;color:#bff4ff;font-size:.80rem;margin-top:4px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700}
.fullscreen-game-links{
    min-width:0;
    height:74px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    padding:0 12px;
    border-left:1px solid rgba(132,220,255,.18);
    border-right:1px solid rgba(132,220,255,.18);
}
.game-hud-btn{
    appearance:none;
    border:0;
    min-width:74px;
    height:64px;
    padding:6px 9px;
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:3px;
    cursor:pointer;
    color:#f8fafc;
    text-decoration:none;
    border-radius:20px;
    background:linear-gradient(180deg,rgba(19,91,123,.36),rgba(4,22,45,.58));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.13), inset 0 -1px 0 rgba(0,0,0,.3);
    transition:transform .16s ease, filter .16s ease, background .16s ease;
}
.game-hud-btn:hover{transform:translateY(-2px);filter:brightness(1.12)}
.game-hud-btn.is-active,.game-hud-btn-world{
    background:
        radial-gradient(circle at 50% 18%,rgba(123,255,214,.30),transparent 46%),
        linear-gradient(180deg,rgba(20,116,148,.66),rgba(5,34,64,.82));
    outline:2px solid rgba(255,207,74,.58);
    box-shadow:0 0 20px rgba(250,204,21,.22), inset 0 1px 0 rgba(255,255,255,.20);
}
.game-hud-btn-world{min-width:92px;height:74px;margin-top:8px;border-radius:26px;position:relative;z-index:1}
.game-hud-btn-world .hud-icon{font-size:2rem}
.hud-icon{font-size:1.46rem;line-height:1;filter:drop-shadow(0 5px 7px rgba(0,0,0,.40))}
.hud-label{font-size:.76rem;line-height:1;color:#eaf6ff;font-weight:900;text-shadow:0 2px 6px rgba(0,0,0,.55);white-space:nowrap}
.coordinate-search.game-coordinate-search{
    flex:0 0 210px;
    height:50px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:5px 6px 5px 12px;
    margin:0 8px;
    border-radius:999px;
    background:linear-gradient(180deg,rgba(4,20,41,.82),rgba(3,12,29,.86));
    border:1px solid rgba(255,211,100,.34);
    box-shadow:inset 0 2px 10px rgba(0,0,0,.28);
}
.coordinate-pin{font-size:1.05rem;filter:drop-shadow(0 3px 6px rgba(0,0,0,.45))}
.coordinate-search.game-coordinate-search input{
    min-width:0;
    flex:1;
    width:auto;
    border:0;
    outline:0;
    background:transparent;
    color:#eaf3ff;
    padding:6px 4px;
    font-size:.94rem;
    font-weight:900;
    letter-spacing:.02em;
}
.coordinate-search.game-coordinate-search input::placeholder{color:#91a9bd}
.coordinate-search.game-coordinate-search button{
    width:38px;
    height:38px;
    padding:0;
    display:grid;
    place-items:center;
    border:0;
    border-radius:50%;
    background:linear-gradient(145deg,#45f1d0,#086681);
    color:#062236;
    font-size:1.05rem;
    cursor:pointer;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 12px rgba(0,0,0,.32);
}
.fullscreen-game-actions{
    height:64px;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    padding:0 12px 0 10px;
}
.fullscreen-resource{
    height:42px;
    min-width:72px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:0 12px;
    border-radius:999px;
    color:#fff7d8;
    background:linear-gradient(180deg,rgba(28,78,76,.78),rgba(5,30,45,.86));
    border:1px solid rgba(250,204,21,.35);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    font-weight:950;
    font-size:.92rem;
}
.fullscreen-resource i{
    width:24px;height:24px;display:grid;place-items:center;border-radius:50%;font-style:normal;
    color:#052e2b;background:#28e0ac;font-weight:950;margin-left:-2px;
}
.fullscreen-exit{
    height:46px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:0 18px;
    border-radius:999px;
    color:#ffd8d8;
    background:linear-gradient(180deg,rgba(103,45,62,.92),rgba(62,25,45,.96));
    border:1px solid rgba(255,145,114,.45);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
    font-weight:950;
    text-decoration:none;
}
.fullscreen-exit:hover{filter:brightness(1.12)}
.game-menu-collapse{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    border:1px solid rgba(132,220,255,.40);
    background:linear-gradient(180deg,rgba(14,72,110,.92),rgba(5,28,58,.96));
    color:#dff7ff;
    font-size:1.2rem;
    font-weight:950;
    cursor:pointer;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 10px 20px rgba(0,0,0,.30);
}
.game-menu-collapse-left{border-radius:16px 8px 8px 16px}
.game-menu-collapse-right{border-radius:8px 16px 16px 8px}
.mapa-fullscreen-hud.with-sidebar{top:96px !important;}
.city-map-fullscreen.with-sidebar{padding-top:84px;}
@media(max-width:1220px){
  .fullscreen-game-menu{grid-template-columns:44px minmax(178px,240px) minmax(480px,1fr) auto 44px;width:calc(100vw - 14px)}
  .fullscreen-game-brand{padding-right:14px}.fullscreen-game-actions{padding-right:8px}.game-hud-btn{min-width:62px}.hud-label{font-size:.70rem}.coordinate-search.game-coordinate-search{flex-basis:160px;margin:0 4px}.fullscreen-resource{min-width:56px}.fullscreen-exit{padding:0 12px}
}
@media(max-width:900px){
  .fullscreen-game-menu{
    top:8px;
    left:8px;
    right:8px;
    width:auto;
    transform:none;
    min-height:62px;
    grid-template-columns:42px minmax(0,1fr) auto 42px;
    grid-template-areas:"left brand actions right" "links links links links";
    row-gap:6px;
  }
  .fullscreen-game-menu:before{inset:6px 28px 6px 28px;border-radius:22px}
  .game-menu-collapse-left{grid-area:left;width:42px;height:42px}.game-menu-collapse-right{grid-area:right;width:42px;height:42px}
  .fullscreen-game-brand{grid-area:brand;height:50px;padding:0 10px;border-radius:18px;background:rgba(6,38,65,.54)}
  .fullscreen-game-mark{width:40px;height:40px}.fullscreen-game-mark span{font-size:1.2rem}
  .fullscreen-game-brand strong{font-size:.95rem}.fullscreen-game-brand small{font-size:.70rem;max-width:135px}
  .fullscreen-game-actions{grid-area:actions;height:50px;padding:0;gap:5px}
  .fullscreen-resource{height:36px;min-width:46px;padding:0 8px;font-size:.82rem}.fullscreen-resource i{display:none}.fullscreen-exit{height:38px;width:42px;padding:0;justify-content:center}.fullscreen-exit strong{display:none}
  .fullscreen-game-links{grid-area:links;height:56px;justify-content:flex-start;overflow:auto;flex-wrap:nowrap;padding:0 30px 4px 30px;border:0;scrollbar-width:none}.fullscreen-game-links::-webkit-scrollbar{display:none}
  .game-hud-btn{min-width:48px;width:48px;height:48px;border-radius:17px;padding:4px}.game-hud-btn-world{min-width:56px;width:56px;height:56px;margin-top:0;border-radius:20px}.game-hud-btn-world .hud-icon{font-size:1.55rem}.hud-icon{font-size:1.25rem}.hud-label{display:none}
  .coordinate-search.game-coordinate-search{flex:0 0 104px;height:42px;margin:0 2px;padding:4px 5px 4px 8px;border-radius:15px}.coordinate-pin{font-size:.95rem}.coordinate-search.game-coordinate-search input{font-size:.78rem;padding:4px 0}.coordinate-search.game-coordinate-search button{width:32px;height:32px;font-size:.9rem}
  .mapa-fullscreen-hud.with-sidebar{top:132px !important;}.city-map-fullscreen.with-sidebar{padding-top:122px;}
  body.game-menu-collapsed .fullscreen-game-menu{grid-template-areas:"left brand actions right";grid-template-rows:1fr;min-height:58px}
  body.game-menu-collapsed .fullscreen-game-links{display:none}
  body.game-menu-collapsed .game-menu-collapse-right{transform:rotate(180deg)}
  body.game-menu-collapsed .mapa-fullscreen-hud.with-sidebar{top:76px !important;}
  body.game-menu-collapsed .city-map-fullscreen.with-sidebar{padding-top:68px;}
}
@media(max-width:540px){
  .fullscreen-game-menu{left:6px;right:6px;grid-template-columns:38px minmax(0,1fr) auto 38px}
  .fullscreen-game-menu:before{inset:5px 24px 5px 24px;border-radius:20px}
  .game-menu-collapse{width:38px!important;height:38px!important;border-radius:12px;font-size:1rem}
  .fullscreen-game-brand{height:46px;gap:8px;padding:0 8px}.fullscreen-game-mark{width:36px;height:36px}.fullscreen-game-brand strong{font-size:.84rem}.fullscreen-game-brand small{display:none}
  .fullscreen-resource{min-width:38px;height:34px;padding:0 6px;gap:4px}.fullscreen-exit{width:38px;height:34px}.fullscreen-game-actions{gap:4px}
  .fullscreen-game-links{height:52px;padding-left:26px;padding-right:26px}.game-hud-btn{min-width:44px;width:44px;height:44px}.game-hud-btn-world{min-width:50px;width:50px;height:50px}.coordinate-search.game-coordinate-search{flex-basis:92px;height:40px}.coordinate-pin{display:none}
}
/* ===== Mundo / Ilhas / Fullscreen evolutivo ===== */
.hero-home-clean{background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.08)}
.muted{color:var(--muted,#9fb1c7);font-size:.92rem}.menu-inline-btn{appearance:none;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#eaf3ff;padding:10px 14px;border-radius:999px;font-weight:700;cursor:pointer}.menu-inline-btn:hover{background:rgba(255,255,255,.12)}
.coordinate-search{display:flex;align-items:center;gap:6px;background:rgba(2,8,23,.42);padding:5px;border:1px solid rgba(255,255,255,.12);border-radius:999px}.coordinate-search input{width:112px;border:0;outline:0;background:transparent;color:#eaf3ff;padding:6px 8px;font-weight:800}.coordinate-search input::placeholder{color:#98adc7}.coordinate-search button{border:0;border-radius:999px;padding:7px 10px;background:linear-gradient(135deg,#38bdf8,#facc15);color:#082f49;font-weight:900;cursor:pointer}
.fullscreen-map-scene .mapa-pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.city-map .build-slot small{display:block;font-size:.72rem;line-height:1.15;color:#eaf4ff;opacity:.9}.build-modal-wide .world-modal-card{width:min(1220px,94vw);max-height:min(86vh,900px)}.global-island-shell{position:relative;border-radius:24px;overflow:hidden;background:#061223;border:1px solid rgba(255,255,255,.08)}.global-island-image{display:block;width:100%;height:auto}.global-spot{position:absolute;width:48px;height:48px;border-radius:999px;border:none;box-shadow:0 10px 24px rgba(0,0,0,.35);font-size:1.15rem;background:linear-gradient(180deg,#ffe88b,#ffcf4a);cursor:pointer}.global-spot:hover{transform:scale(1.08)}.global-spot.spot-1{left:11%;bottom:16%}.global-spot.spot-2{left:25%;top:23%}.global-spot.spot-3{left:73%;top:19%}.global-spot.spot-4{left:23%;top:56%}.global-spot.spot-5{left:78%;top:29%}.global-spot.spot-6{left:73%;top:60%}.world-map-wrap{display:flex;flex-direction:column;gap:14px}.world-search-result{color:#eaf3ff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:16px;padding:12px 14px}.world-map-board{position:relative;overflow:auto;max-height:70vh;border-radius:24px;background:#061223;border:1px solid rgba(255,255,255,.08)}.world-map-bg{display:block;width:100%;min-height:560px;object-fit:cover;opacity:.95}.world-node{position:absolute;transform:translate(-50%,-50%);width:11px;height:11px;border-radius:50%;background:#a8d8ff;border:1px solid rgba(255,255,255,.6);box-shadow:0 0 0 2px rgba(0,0,0,.25);cursor:pointer}.world-node.is-cluster{background:#ffd15c;width:13px;height:13px}.world-node.is-current{background:#38ffb6;width:15px;height:15px;box-shadow:0 0 0 4px rgba(56,255,182,.22)}.world-node.is-searched{animation:searchedPulse .8s ease infinite}.world-coordinate-marker{position:absolute;z-index:5;transform:translate(-50%,-50%);width:34px;height:34px;border:3px solid #facc15;border-radius:50%;box-shadow:0 0 0 8px rgba(250,204,21,.16),0 0 28px rgba(250,204,21,.8);pointer-events:none}@keyframes searchedPulse{0%,100%{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(1.8)}}.world-map-legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;color:#eaf3ff;font-size:.95rem}.legend-dot{display:inline-block;width:11px;height:11px;border-radius:50%;margin-right:7px;vertical-align:middle}.legend-dot.normal{background:#a8d8ff}.legend-dot.cluster{background:#ffd15c}.legend-dot.current{background:#38ffb6}
@media (max-width: 900px){.fullscreen-game-links{display:flex;flex-wrap:wrap;gap:8px}.menu-inline-btn,.fullscreen-game-links a{font-size:.88rem;padding:8px 10px}.coordinate-search{width:100%;border-radius:14px}.coordinate-search input{width:100%;flex:1}.global-spot{width:42px;height:42px}}

/* === Inventário fullscreen aberto pela sidebar === */
body.page-inventario .menu-pro-gamer,
body.page-mapa .menu-pro-gamer {
    display: none;
}
body.page-inventario .wrap,
body.page-mapa .wrap {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
body.page-inventario main,
body.page-mapa main {
    padding: 0;
}
.inventario-fullscreen-shell {
    position: fixed;
    inset: 0;
    z-index: 310;
    overflow: hidden;
    background:
        radial-gradient(circle at 20% 12%, rgba(39, 214, 255, .18), transparent 32%),
        radial-gradient(circle at 90% 80%, rgba(250, 204, 21, .10), transparent 28%),
        linear-gradient(135deg, #041423 0%, #071b2d 48%, #030814 100%);
    color: #edf8ff;
}
.inventario-fullscreen-shell:before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('../images/30.png');
    background-size: cover;
    background-position: center;
    opacity: .18;
    filter: saturate(1.08) blur(.2px);
    pointer-events: none;
}
.inventario-fullscreen-container {
    position: absolute;
    z-index: 12;
    top: 104px;
    left: 16px;
    right: 16px;
    bottom: 16px;
    overflow: auto;
    padding: 12px 18px 28px;
    border-radius: 24px;
    border: 1px solid rgba(121, 219, 255, .20);
    background: linear-gradient(180deg, rgba(7, 23, 38, .82), rgba(4, 13, 25, .86));
    box-shadow: 0 22px 90px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
    backdrop-filter: blur(14px);
}
.inventario-fullscreen-container.with-sidebar {
    left: 270px;
}
.inventory-section-fullscreen {
    max-width: 1420px;
    margin: 0 auto;
    padding: 0;
}
.inventory-section-fullscreen .section-head {
    margin-bottom: 12px;
}
.inventory-section-fullscreen .section-head h2 {
    font-size: clamp(1.25rem, 2.2vw, 2rem);
}
.inventory-section-fullscreen .card {
    background: rgba(6, 23, 39, .76);
    border-color: rgba(133, 219, 255, .18);
}
.matrix-item,
.paper-equipped {
    touch-action: none;
    user-select: none;
}
.pointer-drag-ghost {
    position: fixed;
    z-index: 9999;
    pointer-events: none;
    opacity: .86;
    filter: drop-shadow(0 18px 32px rgba(0,0,0,.45));
    transform: translate3d(0,0,0);
}
.inventory-pointer-dragging {
    cursor: grabbing;
}
.drop-hover-bag {
    outline: 2px solid rgba(56, 189, 248, .70);
    outline-offset: 4px;
}
.inv-cell.drop-hover {
    box-shadow: inset 0 0 0 2px rgba(250, 204, 21, .72), 0 0 18px rgba(250, 204, 21, .28);
}
.paper-slot.drop-hover-equip {
    box-shadow: inset 0 0 0 2px rgba(45, 212, 191, .80), 0 0 20px rgba(45, 212, 191, .28);
}
.paper-slot.drop-hover-invalid {
    box-shadow: inset 0 0 0 2px rgba(248, 113, 113, .82), 0 0 20px rgba(248, 113, 113, .25);
}
.matrix-item.drop-hover-item {
    outline: 2px solid rgba(250, 204, 21, .85);
    outline-offset: 2px;
}
@media (max-width: 900px) {
    .inventario-fullscreen-container {
        top: 132px;
        left: 8px;
        right: 8px;
        bottom: 8px;
        border-radius: 18px;
        padding: 10px 10px 22px;
    }
    .inventario-fullscreen-container.with-sidebar {
        left: 8px;
    }
    body.game-menu-collapsed .inventario-fullscreen-container {
        top: 74px;
    }
    .inventory-layout {
        grid-template-columns: 1fr;
    }
}

/* Turma da Ilha do Saber no main da página principal */
.home-turma-section {
  margin-top: 26px;
}
.home-turma-card {
  position: relative;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid rgba(255,255,255,.16);
  background:
    radial-gradient(circle at 18% 10%, rgba(34,211,238,.20), transparent 34%),
    radial-gradient(circle at 82% 18%, rgba(250,204,21,.18), transparent 30%),
    rgba(255,255,255,.07);
  box-shadow: 0 26px 70px rgba(0,0,0,.28);
  padding: clamp(10px, 2.2vw, 22px);
}
.home-turma-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(135deg, rgba(255,255,255,.12), transparent 32%, rgba(34,211,238,.08));
}
.home-turma-card img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: auto;
  border-radius: 22px;
  object-fit: cover;
  background: #f7f7f7;
  box-shadow: 0 18px 42px rgba(0,0,0,.22);
}
@media (max-width: 760px) {
  .home-turma-section { margin-top: 18px; }
  .home-turma-card { border-radius: 20px; padding: 8px; }
  .home-turma-card img { border-radius: 16px; }
}

/* ==========================================================
   Revisão responsiva 014: menu sem sobreposição no celular/iPad
   e inventário com grid determinístico para mouse/touch.
   ========================================================== */
.fullscreen-game-menu,
.fullscreen-game-menu * {
  min-width: 0;
}

/* Em tablets e iPads o menu deixa de tentar caber em uma única linha.
   Isso elimina sobreposição entre brand, links, busca, recursos e sair. */
@media (max-width: 1180px) {
  .fullscreen-game-menu {
    top: 8px;
    left: 8px;
    right: 8px;
    width: auto;
    transform: none;
    grid-template-columns: 42px minmax(0, 1fr) auto 42px;
    grid-template-areas:
      "left brand actions right"
      "links links links links";
    row-gap: 6px;
    min-height: 118px;
  }
  .fullscreen-game-menu:before {
    inset: 6px 28px 6px 28px;
    border-radius: 22px;
  }
  .game-menu-collapse-left { grid-area: left; width: 42px; height: 42px; }
  .game-menu-collapse-right { grid-area: right; width: 42px; height: 42px; }
  .fullscreen-game-brand {
    grid-area: brand;
    height: 50px;
    padding: 0 10px;
    border-radius: 18px;
    background: rgba(6,38,65,.54);
  }
  .fullscreen-game-mark { width: 40px; height: 40px; }
  .fullscreen-game-brand strong { font-size: .95rem; }
  .fullscreen-game-brand small { font-size: .70rem; max-width: 170px; }
  .fullscreen-game-actions {
    grid-area: actions;
    height: 50px;
    padding: 0;
    gap: 5px;
    flex-wrap: nowrap;
  }
  .fullscreen-resource {
    height: 36px;
    min-width: 46px;
    padding: 0 8px;
    font-size: .82rem;
  }
  .fullscreen-resource i { display: none; }
  .fullscreen-exit {
    height: 38px;
    width: 42px;
    padding: 0;
    justify-content: center;
  }
  .fullscreen-exit strong { display: none; }
  .fullscreen-game-links {
    grid-area: links;
    height: 58px;
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 30px 5px 30px;
    border: 0;
    gap: 7px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .fullscreen-game-links::-webkit-scrollbar { display: none; }
  .game-hud-btn {
    flex: 0 0 50px;
    min-width: 50px;
    width: 50px;
    height: 50px;
    border-radius: 17px;
    padding: 4px;
  }
  .game-hud-btn-world {
    flex-basis: 58px;
    min-width: 58px;
    width: 58px;
    height: 56px;
    margin-top: 0;
    border-radius: 20px;
  }
  .hud-label { display: none; }
  .hud-icon { font-size: 1.27rem; }
  .game-hud-btn-world .hud-icon { font-size: 1.58rem; }
  .coordinate-search.game-coordinate-search {
    flex: 0 0 124px !important;
    width: 124px !important;
    height: 42px;
    margin: 4px 2px 0;
    padding: 4px 5px 4px 8px;
    border-radius: 15px;
  }
  .coordinate-search.game-coordinate-search input {
    width: 100%;
    flex: 1;
    font-size: .78rem;
    padding: 4px 0;
  }
  .coordinate-search.game-coordinate-search button {
    width: 32px;
    height: 32px;
    font-size: .9rem;
    flex: 0 0 32px;
  }
  .mapa-fullscreen-hud.with-sidebar { top: 132px !important; }
  .city-map-fullscreen.with-sidebar { padding-top: 122px; }
  .inventario-fullscreen-container { top: 132px; }

  body.game-menu-collapsed .fullscreen-game-menu {
    grid-template-areas: "left brand actions right";
    grid-template-rows: 1fr;
    min-height: 58px;
  }
  body.game-menu-collapsed .fullscreen-game-links { display: none !important; }
  body.game-menu-collapsed .game-menu-collapse-right { transform: rotate(180deg); }
  body.game-menu-collapsed .mapa-fullscreen-hud.with-sidebar { top: 76px !important; }
  body.game-menu-collapsed .city-map-fullscreen.with-sidebar { padding-top: 68px; }
  body.game-menu-collapsed .inventario-fullscreen-container { top: 74px; }
}

@media (min-width: 901px) and (max-width: 1180px) {
  body:not(.game-menu-collapsed) .inventario-fullscreen-container.with-sidebar {
    top: 132px;
  }
}

@media (max-width: 640px) {
  .fullscreen-game-menu {
    left: 6px;
    right: 6px;
    grid-template-columns: 38px minmax(0, 1fr) auto 38px;
  }
  .fullscreen-game-menu:before {
    inset: 5px 24px 5px 24px;
    border-radius: 20px;
  }
  .game-menu-collapse {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px;
    font-size: 1rem;
  }
  .fullscreen-game-brand {
    height: 46px;
    gap: 8px;
    padding: 0 8px;
  }
  .fullscreen-game-mark { width: 36px; height: 36px; }
  .fullscreen-game-brand strong { font-size: .84rem; }
  .fullscreen-game-brand small { display: none; }
  .fullscreen-resource {
    min-width: 34px;
    height: 34px;
    padding: 0 5px;
    gap: 3px;
  }
  .fullscreen-exit { width: 36px; height: 34px; }
  .fullscreen-game-actions { gap: 3px; }
  .fullscreen-game-links {
    height: 52px;
    padding-left: 26px;
    padding-right: 26px;
  }
  .game-hud-btn {
    flex-basis: 44px;
    min-width: 44px;
    width: 44px;
    height: 44px;
  }
  .game-hud-btn-world {
    flex-basis: 50px;
    min-width: 50px;
    width: 50px;
    height: 50px;
  }
  .coordinate-search.game-coordinate-search {
    flex-basis: 96px !important;
    width: 96px !important;
    height: 40px;
  }
  .coordinate-pin { display: none; }
}

.inventory-matrix {
  touch-action: none;
  overscroll-behavior: contain;
  grid-auto-flow: row;
}
.matrix-item,
.paper-equipped,
.pointer-drag-ghost {
  -webkit-user-drag: none;
}
.pointer-drag-ghost {
  background: linear-gradient(135deg, rgba(30,41,59,.98), rgba(15,23,42,.96));
  border-radius: 16px;
}
@media (max-width: 900px) {
  .inventory-matrix {
    min-width: calc(8 * 52px + 7 * 6px + 20px);
  }
  .inventory-bag-card {
    overflow-x: auto;
  }
}
@media (max-width: 560px) {
  .inventory-matrix {
    min-width: calc(8 * 46px + 7 * 5px + 20px);
  }
}

/* ===== HUD da cidade: fechar ao clicar no card ===== */
.mapa-fullscreen-hud{
  cursor:pointer;
  transition:opacity .18s ease, transform .18s ease, filter .18s ease;
}
.mapa-fullscreen-hud:hover{
  filter:brightness(1.08);
}
.mapa-fullscreen-hud.hud-card-hidden{
  opacity:0;
  pointer-events:none;
  transform:translateY(-8px) scale(.985);
}
.mapa-hud-reopen{
  position:absolute;
  z-index:26;
  left:18px;
  top:14px;
  min-width:46px;
  height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:0 12px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(7,21,37,.78);
  color:#eaf3ff;
  font-weight:950;
  cursor:pointer;
  backdrop-filter:blur(12px);
  box-shadow:0 14px 34px rgba(0,0,0,.28);
}
.mapa-hud-reopen:hover{filter:brightness(1.12)}
.mapa-hud-reopen.with-sidebar{top:96px !important;}
@media(max-width:900px){
  .mapa-hud-reopen.with-sidebar{top:132px !important;left:10px;height:38px;border-radius:14px;padding:0 10px;}
  .mapa-hud-reopen .mapa-hud-reopen-text{display:none;}
  body.game-menu-collapsed .mapa-hud-reopen.with-sidebar{top:76px !important;}
}

/* === Inventário lateral sobreposto: abre pela sidebar sem trocar de página === */
.sidebar-link-button{
    width:100%;
    text-align:left;
    font:inherit;
}
.inventory-dock-tab{
    position:fixed;
    right:0;
    top:50%;
    transform:translateY(-50%);
    z-index:1320;
    min-width:46px;
    height:148px;
    padding:10px 8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:7px;
    border:1px solid rgba(255,214,102,.54);
    border-right:0;
    border-radius:18px 0 0 18px;
    color:#f8fafc;
    cursor:pointer;
    background:linear-gradient(180deg,rgba(7,49,78,.96),rgba(10,24,48,.96));
    box-shadow:-12px 16px 38px rgba(0,0,0,.34), inset 1px 1px 0 rgba(255,255,255,.16);
}
.inventory-dock-tab span{font-size:1.35rem;line-height:1;}
.inventory-dock-tab strong{
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-size:.75rem;
    letter-spacing:.04em;
    text-transform:uppercase;
}
.inventory-dock-tab i{font-style:normal;color:#facc15;font-weight:900;}
.inventory-dock{
    position:fixed;
    top:86px;
    right:12px;
    bottom:16px;
    width:min(840px,calc(100vw - 292px));
    z-index:1400;
    transform:translateX(calc(100% + 32px));
    transition:transform .26s ease;
    border:1px solid rgba(255,214,102,.34);
    border-radius:26px;
    overflow:hidden;
    color:#f8fafc;
    background:
        radial-gradient(circle at top left,rgba(34,211,238,.16),transparent 30%),
        linear-gradient(160deg,rgba(4,28,54,.97),rgba(2,10,28,.97));
    box-shadow:-24px 28px 70px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.14);
    backdrop-filter:blur(16px);
}
body.inventory-overlay-open .inventory-dock{transform:translateX(0);}
body.inventory-overlay-open .inventory-dock-tab{opacity:0;pointer-events:none;}
.inventory-dock-backdrop{
    position:fixed;
    inset:0;
    z-index:1390;
    background:rgba(0,0,0,.18);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease;
}
body.inventory-overlay-open .inventory-dock-backdrop{opacity:1;pointer-events:auto;}
.inventory-dock-chevron{
    position:absolute;
    left:-1px;
    top:50%;
    transform:translate(-50%,-50%);
    z-index:4;
    width:42px;
    height:64px;
    border:1px solid rgba(255,214,102,.45);
    border-radius:16px;
    background:linear-gradient(180deg,#0f7490,#0b274c);
    color:#fff2a8;
    font-weight:1000;
    cursor:pointer;
    box-shadow:0 10px 28px rgba(0,0,0,.35);
}
.inventory-dock-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 22px 14px;
    border-bottom:1px solid rgba(255,255,255,.12);
    background:linear-gradient(90deg,rgba(255,214,102,.10),rgba(34,211,238,.07));
}
.inventory-dock-head h2{margin:6px 0 2px;font-size:1.35rem;}
.inventory-dock-head p{margin:0;color:#cbd5e1;font-size:.88rem;}
.inventory-dock-avatar{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;font-size:2rem;background:linear-gradient(145deg,#facc15,#fb923c);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 24px rgba(0,0,0,.3);}
.inventory-dock-scroll{height:calc(100% - 90px);overflow:auto;padding:18px;}
.inventory-dock .card{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.13);}
.inventory-dock-hero{margin-bottom:14px;grid-template-columns:auto 1fr;}
.inventory-overlay-layout{grid-template-columns:minmax(220px,280px) 1fr;gap:14px;}
.inventory-overlay-equipment .paperdoll-grid{grid-template-columns:1fr 1fr;gap:9px;}
.inventory-overlay-equipment .paper-slot{min-height:104px;padding:9px;border-radius:16px;}
.inventory-overlay-equipment .paper-icon{font-size:1.55rem;}
.inventory-overlay-bag .inventory-matrix{grid-template-columns:repeat(var(--cols),minmax(38px,1fr));grid-template-rows:repeat(var(--rows),62px);gap:5px;padding:8px;}
.inventory-overlay-bag .matrix-item{padding:6px;border-radius:13px;}
.inventory-overlay-bag .matrix-icon{font-size:1.45rem;}
.inventory-overlay-bag .matrix-item strong{font-size:.68rem;line-height:1.08;}
.inventory-overlay-bag .matrix-item small{font-size:.64rem;}
.inventory-dock-bonus{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px;}
.inventory-dock-bonus span{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.07);border-radius:14px;padding:10px 8px;font-size:.78rem;font-weight:900;text-align:center;}

body.game-menu-collapsed .inventory-dock{top:74px;}
@media(max-width:1180px){
    .inventory-dock{top:126px;right:10px;bottom:12px;width:min(760px,calc(100vw - 24px));}
    body.game-menu-collapsed .inventory-dock{top:74px;}
    .inventory-overlay-layout{grid-template-columns:1fr;}
    .inventory-overlay-equipment .paperdoll-grid{grid-template-columns:repeat(3,1fr);}
}
@media(max-width:760px){
    .inventory-dock-tab{height:58px;min-width:58px;bottom:92px;top:auto;transform:none;border-radius:18px 0 0 18px;}
    .inventory-dock-tab strong{display:none;}
    .inventory-dock-tab i{display:none;}
    .inventory-dock{top:78px;right:8px;left:8px;bottom:10px;width:auto;border-radius:22px;}
    body.game-menu-collapsed .inventory-dock{top:64px;}
    .inventory-dock-head{padding:14px 16px 12px;}
    .inventory-dock-head h2{font-size:1.08rem;}
    .inventory-dock-head p{font-size:.76rem;}
    .inventory-dock-scroll{height:calc(100% - 78px);padding:12px;}
    .inventory-dock-hero{display:none;}
    .inventory-overlay-equipment .paperdoll-grid{grid-template-columns:repeat(2,1fr);}
    .inventory-overlay-bag .inventory-matrix{grid-template-columns:repeat(var(--cols),44px);grid-template-rows:repeat(var(--rows),58px);overflow:auto;}
    .inventory-dock-bonus{grid-template-columns:repeat(2,1fr);}
    .inventory-dock-chevron{left:16px;top:18px;transform:none;width:38px;height:38px;border-radius:14px;}
}
@media(max-width:420px){
    .inventory-overlay-equipment .paperdoll-grid{grid-template-columns:1fr 1fr;}
    .inventory-overlay-bag .inventory-matrix{grid-template-columns:repeat(var(--cols),40px);grid-template-rows:repeat(var(--rows),54px);}
    .inventory-overlay-bag .matrix-item form{display:none;}
}

/* ==========================================================
   Revisão 015: responsividade determinística das construções
   O fundo 16:9 da cidade vira uma cena centralizada. Os botões
   são posicionados sobre a área real da imagem, não sobre o viewport.
   ========================================================== */
.city-map-fullscreen.with-sidebar{
  margin-left:0!important;
}
.city-map-fullscreen{
  --scene-ratio: 1.7768331562;
  --scene-w: min(100vw, calc(100vh * var(--scene-ratio)));
  --scene-h: min(100vh, calc(100vw / var(--scene-ratio)));
  --scene-left: calc((100vw - var(--scene-w)) / 2);
  --scene-top: calc((100vh - var(--scene-h)) / 2);
  background:
    radial-gradient(circle at center, rgba(40,126,150,.18), transparent 55%),
    #071525!important;
}
.city-map-fullscreen .city-bg{
  position:absolute!important;
  left:var(--scene-left)!important;
  top:var(--scene-top)!important;
  width:var(--scene-w)!important;
  height:var(--scene-h)!important;
  object-fit:contain!important;
  object-position:center center!important;
}
.city-map-fullscreen .build-slot{
  left:calc(var(--scene-left) + (var(--x) * var(--scene-w)))!important;
  top:calc(var(--scene-top) + (var(--y) * var(--scene-h)))!important;
  width:calc(var(--w) * var(--scene-w))!important;
  min-width:42px;
  max-width:190px;
  transform:translate(-50%,-100%);
  touch-action:manipulation;
}
.city-map-fullscreen .build-slot:hover{transform:translate(-50%,-106%) scale(1.04)}
.city-map-fullscreen .b1{--x:.24;--y:.52;--w:.108;}
.city-map-fullscreen .b2{--x:.55;--y:.40;--w:.094;}
.city-map-fullscreen .b3{--x:.72;--y:.48;--w:.102;}
.city-map-fullscreen .b4{--x:.39;--y:.41;--w:.098;}
.city-map-fullscreen .b5{--x:.75;--y:.66;--w:.106;}
.city-map-fullscreen .build-slot small{
  position:absolute;
  right:-4px;
  top:-8px;
  min-width:28px;
  padding:3px 6px;
  text-align:center;
  border-radius:999px;
  background:rgba(7,21,37,.82);
  border:1px solid rgba(255,255,255,.22);
  color:#eaf4ff;
  font-weight:900;
  font-size:.68rem;
  backdrop-filter:blur(8px);
}
@media (max-width:1180px){
  .city-map-fullscreen .b1{--x:.235;--y:.535;--w:.125;}
  .city-map-fullscreen .b2{--x:.552;--y:.415;--w:.108;}
  .city-map-fullscreen .b3{--x:.723;--y:.495;--w:.116;}
  .city-map-fullscreen .b4{--x:.392;--y:.425;--w:.112;}
  .city-map-fullscreen .b5{--x:.748;--y:.675;--w:.118;}
}
@media (max-width:760px){
  .city-map-fullscreen{
    --scene-w: min(100vw, calc((100vh - 76px) * var(--scene-ratio)));
    --scene-h: min(calc(100vh - 76px), calc(100vw / var(--scene-ratio)));
    --scene-top: max(74px, calc((100vh - var(--scene-h)) / 2));
  }
  body.game-menu-collapsed .city-map-fullscreen{
    --scene-w: min(100vw, calc((100vh - 28px) * var(--scene-ratio)));
    --scene-h: min(calc(100vh - 28px), calc(100vw / var(--scene-ratio)));
    --scene-top: max(28px, calc((100vh - var(--scene-h)) / 2));
  }
  .city-map-fullscreen .build-slot{
    min-width:48px;
    max-width:96px;
  }
  .city-map-fullscreen .build-slot span{display:none!important;}
  .city-map-fullscreen .build-slot small{font-size:.58rem;top:-9px;right:-7px;}
  .city-map-fullscreen .b1{--x:.238;--y:.545;--w:.145;}
  .city-map-fullscreen .b2{--x:.553;--y:.425;--w:.124;}
  .city-map-fullscreen .b3{--x:.718;--y:.505;--w:.132;}
  .city-map-fullscreen .b4{--x:.394;--y:.435;--w:.126;}
  .city-map-fullscreen .b5{--x:.746;--y:.688;--w:.138;}
}
@media (max-width:420px){
  .city-map-fullscreen .build-slot{min-width:44px;}
  .city-map-fullscreen .b1{--x:.24;--y:.55;--w:.155;}
  .city-map-fullscreen .b2{--x:.553;--y:.428;--w:.134;}
  .city-map-fullscreen .b3{--x:.716;--y:.51;--w:.142;}
  .city-map-fullscreen .b4{--x:.395;--y:.438;--w:.136;}
  .city-map-fullscreen .b5{--x:.744;--y:.692;--w:.148;}
}

/* Modais de construção: evolução por moedas, sem lista de expedições/jogos */
.build-upgrade-card{width:min(760px,94vw)}
.build-upgrade-panel{
  display:grid;
  grid-template-columns:112px 1fr;
  gap:18px;
  align-items:center;
  margin-top:18px;
  padding:18px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(135deg,rgba(34,211,238,.10),rgba(250,204,21,.08));
}
.build-level-ring{
  width:104px;height:104px;border-radius:50%;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 25%,#fff7c2,#facc15 48%,#a16207 100%);
  color:#132033;box-shadow:0 18px 38px rgba(0,0,0,.28), inset 0 2px 0 rgba(255,255,255,.5);
  border:3px solid rgba(255,255,255,.36);
}
.build-level-ring strong{font-size:2.3rem;line-height:1;font-weight:1000;display:block;align-self:end}
.build-level-ring span{font-size:.76rem;font-weight:900;align-self:start;text-transform:uppercase;letter-spacing:.08em}
.build-upgrade-info h3{margin:0 0 6px;font-size:1.25rem;letter-spacing:-.02em}.build-upgrade-info p{margin:0;color:#cbd5e1}.build-upgrade-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.build-upgrade-meta span{display:inline-flex;gap:5px;align-items:center;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-size:.86rem;color:#eaf4ff}.build-upgrade-form{grid-column:1 / -1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}.build-upgrade-form button:disabled{opacity:.55;filter:grayscale(.4);cursor:not-allowed;transform:none}.build-upgrade-form small{color:#fecaca;font-weight:800}.mapa-flash{position:fixed;z-index:140;left:50%;top:96px;transform:translateX(-50%);width:min(760px,calc(100vw - 28px));padding:12px 16px;border-radius:18px;font-weight:900;text-align:center;box-shadow:0 18px 44px rgba(0,0,0,.30);backdrop-filter:blur(14px)}.mapa-flash.sucesso{background:rgba(22,101,52,.82);border:1px solid rgba(134,239,172,.35);color:#ecfdf5}.mapa-flash.erro{background:rgba(127,29,29,.84);border:1px solid rgba(252,165,165,.35);color:#fff1f2}@media(max-width:760px){.build-upgrade-panel{grid-template-columns:1fr;text-align:center}.build-level-ring{margin:auto}.build-upgrade-form{justify-content:center}.mapa-flash{top:72px;font-size:.85rem}}

/* Home: imagem da Turma aplicada sobre fundo da ilha, sem card branco */
.home-turma-card{
  background-image:
    linear-gradient(180deg,rgba(4,14,28,.10),rgba(4,14,28,.28)),
    url('../images/20.png')!important;
  background-size:cover!important;
  background-position:center!important;
}
.home-turma-card img{
  background:transparent!important;
  object-fit:cover;
}

/* ==========================================================
   Revisão 016: fullscreen mobile sem esticar o background
   A cena da cidade agora é um palco real (.city-stage). A imagem
   mantém proporção original e as construções são ancoradas no palco,
   não no viewport. Em celular portrait, o mapa fica panorâmico com
   scroll horizontal, evitando compressão/esticamento.
   ========================================================== */
.city-map-fullscreen{
  --city-stage-top: 92px;
  --city-stage-bottom: 18px;
  position:absolute!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  padding:0!important;
  overflow:auto!important;
  overflow-y:hidden!important;
  display:block!important;
  background:#071525!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-x pan-y;
}
.city-map-fullscreen.with-sidebar{margin-left:0!important;padding-top:0!important;}
.city-map-fullscreen .city-stage{
  position:relative!important;
  height:calc(100vh - var(--city-stage-top) - var(--city-stage-bottom))!important;
  width:max-content!important;
  min-width:0!important;
  margin:var(--city-stage-top) auto var(--city-stage-bottom)!important;
  display:block!important;
  overflow:visible!important;
}
.city-map-fullscreen .city-stage > .city-bg{
  position:relative!important;
  inset:auto!important;
  left:auto!important;
  top:auto!important;
  width:auto!important;
  max-width:none!important;
  height:100%!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  display:block!important;
  user-select:none!important;
  pointer-events:none!important;
}
.city-map-fullscreen .city-stage > .build-slot{
  position:absolute!important;
  left:calc(var(--x) * 100%)!important;
  top:calc(var(--y) * 100%)!important;
  width:calc(var(--w) * 100%)!important;
  min-width:42px!important;
  max-width:190px!important;
  transform:translate(-50%,-100%)!important;
  z-index:15!important;
  touch-action:manipulation;
}
.city-map-fullscreen .city-stage > .build-slot:hover{transform:translate(-50%,-106%) scale(1.04)!important;}
.city-map-fullscreen .city-stage > .build-slot img{width:100%!important;height:auto!important;display:block!important;}
.city-map-fullscreen .city-stage > .build-slot span{
  display:block!important;
  bottom:-22px;
  font-size:.82rem;
  padding:6px 10px;
  background:rgba(7,21,37,.80);
}
.city-map-fullscreen .city-stage > .build-slot small{
  position:absolute;
  right:-4px;
  top:-8px;
  min-width:28px;
  padding:3px 6px;
  text-align:center;
  border-radius:999px;
  background:rgba(7,21,37,.82);
  border:1px solid rgba(255,255,255,.22);
  color:#eaf4ff;
  font-weight:900;
  font-size:.68rem;
  backdrop-filter:blur(8px);
}
.city-map-fullscreen .b1{--x:.240;--y:.520;--w:.108;}
.city-map-fullscreen .b2{--x:.550;--y:.400;--w:.094;}
.city-map-fullscreen .b3{--x:.720;--y:.480;--w:.102;}
.city-map-fullscreen .b4{--x:.390;--y:.410;--w:.098;}
.city-map-fullscreen .b5{--x:.750;--y:.660;--w:.106;}
@media(max-width:1180px){
  .city-map-fullscreen{--city-stage-top:126px;--city-stage-bottom:12px;}
  body.game-menu-collapsed .city-map-fullscreen{--city-stage-top:74px;}
  .city-map-fullscreen .b1{--x:.238;--y:.535;--w:.118;}
  .city-map-fullscreen .b2{--x:.552;--y:.415;--w:.102;}
  .city-map-fullscreen .b3{--x:.721;--y:.495;--w:.112;}
  .city-map-fullscreen .b4{--x:.392;--y:.425;--w:.106;}
  .city-map-fullscreen .b5{--x:.748;--y:.675;--w:.112;}
}
@media(max-width:760px){
  .city-map-fullscreen{--city-stage-top:118px;--city-stage-bottom:12px;}
  body.game-menu-collapsed .city-map-fullscreen{--city-stage-top:66px;}
  .city-map-fullscreen .city-stage{margin-left:0!important;margin-right:0!important;}
  .city-map-fullscreen .city-stage > .build-slot{min-width:48px!important;max-width:112px!important;}
  .city-map-fullscreen .city-stage > .build-slot span{display:none!important;}
  .city-map-fullscreen .city-stage > .build-slot small{font-size:.58rem;top:-9px;right:-7px;}
  .city-map-fullscreen .b1{--x:.238;--y:.545;--w:.092;}
  .city-map-fullscreen .b2{--x:.553;--y:.425;--w:.078;}
  .city-map-fullscreen .b3{--x:.718;--y:.505;--w:.086;}
  .city-map-fullscreen .b4{--x:.394;--y:.435;--w:.082;}
  .city-map-fullscreen .b5{--x:.746;--y:.688;--w:.088;}
}
@media(max-width:420px){
  .city-map-fullscreen{--city-stage-top:110px;--city-stage-bottom:10px;}
  body.game-menu-collapsed .city-map-fullscreen{--city-stage-top:62px;}
  .city-map-fullscreen .city-stage > .build-slot{min-width:44px!important;max-width:96px!important;}
}

/* Revisão 017: níveis pedagógicos 1 a 9 nas construções */
.build-skill-progression{
  grid-column:1 / -1;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  margin-top:2px;
}
.build-skill-progression>div{
  padding:12px 14px;
  border-radius:16px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(2,18,33,.38);
}
.build-skill-progression strong{display:block;margin-bottom:7px;color:#f8fafc;font-size:.9rem;}
.build-skill-progression ul{margin:0;padding-left:18px;color:#dbeafe;font-size:.84rem;line-height:1.35;}
.build-skill-progression li+li{margin-top:4px;}
@media(max-width:760px){.build-skill-progression{grid-template-columns:1fr;text-align:left}.build-skill-progression ul{font-size:.8rem}}

/* ==========================================================
   Revisão 018: transparência da Turma + slots fixos da cidade
   - Imagem 01/20/30 real: 1672x941.
   - Construções usam coordenadas canônicas do próprio dado via
     --x, --y e --w, sem variações por breakpoint.
   - Mobile não recalcula posição; só dá scroll horizontal no palco.
   ========================================================== */
.city-map{
  aspect-ratio:1672 / 941!important;
}
.city-map:not(.city-map-fullscreen) > .build-slot,
.city-map-preview > .build-slot{
  left:calc(var(--x) * 100%)!important;
  top:calc(var(--y) * 100%)!important;
  width:calc(var(--w) * 100%)!important;
  transform:translate(-50%,-100%)!important;
}
.city-map:not(.city-map-fullscreen) > .build-slot:hover,
.city-map-preview > .build-slot:hover{
  transform:translate(-50%,-106%) scale(1.04)!important;
}
.city-map-fullscreen .city-stage > .build-slot{
  left:calc(var(--x) * 100%)!important;
  top:calc(var(--y) * 100%)!important;
  width:calc(var(--w) * 100%)!important;
}
.city-map-fullscreen .city-stage{
  aspect-ratio:1672 / 941!important;
}
.city-map-fullscreen .city-stage > .city-bg{
  aspect-ratio:1672 / 941!important;
}
@media(max-width:1180px){
  .city-map-fullscreen .city-stage > .build-slot{
    left:calc(var(--x) * 100%)!important;
    top:calc(var(--y) * 100%)!important;
    width:calc(var(--w) * 100%)!important;
  }
}
@media(max-width:760px){
  .city-map-fullscreen .city-stage > .build-slot{
    left:calc(var(--x) * 100%)!important;
    top:calc(var(--y) * 100%)!important;
    width:calc(var(--w) * 100%)!important;
    min-width:42px!important;
    max-width:108px!important;
  }
}
.home-turma-card{
  background-image:
    linear-gradient(180deg,rgba(4,14,28,.12),rgba(4,14,28,.34)),
    url('../images/20.png')!important;
  background-size:cover!important;
  background-position:center!important;
  display:grid;
  place-items:center;
}
.home-turma-card img{
  width:min(100%, 980px)!important;
  max-height:none!important;
  object-fit:contain!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.28));
}

/* Expedições clicáveis e páginas de exploração de recursos */
.table-link,
.loot-table-link {
    color: #dff8ff;
    font-weight: 800;
    text-decoration: none;
    border-bottom: 1px solid rgba(117, 223, 255, .45);
}
.table-link:hover,
.loot-table-link:hover {
    color: #ffffff;
    border-bottom-color: #ffd66b;
}
.loot-pill-link {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.loot-pill-link:hover {
    transform: translateY(-1px);
    border-color: rgba(255, 215, 105, .72);
    background: rgba(255, 215, 105, .12);
}
.expedition-resource-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(280px, .8fr);
    gap: 18px;
    align-items: stretch;
}
.expedition-resource-hero {
    display: flex;
    align-items: center;
    gap: 22px;
    background:
        radial-gradient(circle at 12% 20%, rgba(255, 215, 105, .18), transparent 38%),
        linear-gradient(135deg, rgba(7, 39, 65, .96), rgba(12, 88, 102, .86));
}
.expedition-item-icon {
    width: 118px;
    height: 118px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    border-radius: 30px;
    font-size: 60px;
    background: linear-gradient(145deg, rgba(255, 218, 113, .96), rgba(34, 166, 191, .72));
    border: 1px solid rgba(255, 237, 175, .55);
    box-shadow: 0 16px 34px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.35);
}
.resource-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}
.expedition-route-card .stacked-actions {
    display: grid;
    gap: 10px;
    margin-top: 16px;
}
.resource-detail-grid {
    margin-top: 18px;
}
.bonus-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}
.bonus-mini {
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 16px;
    padding: 12px;
    background: rgba(255,255,255,.06);
    display: flex;
    justify-content: space-between;
    gap: 10px;
}
.bonus-mini.is-positive {
    border-color: rgba(255, 215, 105, .42);
    background: rgba(255, 215, 105, .10);
}
.resource-games-list {
    display: grid;
    gap: 10px;
    margin-top: 12px;
}
.resource-games-list a {
    display: flex;
    flex-direction: column;
    gap: 3px;
    text-decoration: none;
    padding: 12px;
    border-radius: 16px;
    border: 1px solid rgba(117, 223, 255, .22);
    background: rgba(4, 33, 55, .52);
    color: #ecfbff;
}
.resource-games-list a:hover {
    border-color: rgba(255, 215, 105, .6);
    background: rgba(255, 215, 105, .10);
}
.resource-games-list small {
    color: rgba(230, 247, 255, .72);
}
.island-resources-hero {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    background:
        radial-gradient(circle at 14% 15%, rgba(126, 232, 255, .18), transparent 36%),
        linear-gradient(135deg, rgba(6, 36, 60, .97), rgba(13, 84, 95, .88));
}
.island-resources-hero img {
    width: 100%;
    max-height: 160px;
    object-fit: contain;
    filter: drop-shadow(0 14px 22px rgba(0,0,0,.32));
}
.compact-section-head {
    margin-top: 24px;
    margin-bottom: 10px;
}
.expedition-resource-grid .expedition-resource-tile {
    text-decoration: none;
    color: inherit;
    display: block;
    transition: transform .15s ease, border-color .15s ease;
}
.expedition-resource-grid .expedition-resource-tile:hover {
    transform: translateY(-2px);
    border-color: rgba(255, 215, 105, .55);
}
.resource-tile-icon {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    border-radius: 20px;
    font-size: 34px;
    background: rgba(117, 223, 255, .12);
    border: 1px solid rgba(117, 223, 255, .2);
    margin-bottom: 10px;
}
.expedition-resource-tile .resource-tags span {
    font-size: 12px;
    padding: 6px 9px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,.13);
    background: rgba(255,255,255,.06);
}
@media (max-width: 760px) {
    .expedition-resource-layout,
    .island-resources-hero {
        grid-template-columns: 1fr;
    }
    .expedition-resource-hero {
        flex-direction: column;
        align-items: flex-start;
    }
    .expedition-item-icon {
        width: 92px;
        height: 92px;
        font-size: 48px;
        border-radius: 24px;
    }
    .bonus-grid {
        grid-template-columns: 1fr;
    }
    .island-resources-hero img {
        max-height: 130px;
    }
}

/* ===== Ajuste final: menu fullscreen sem sobreposição ===== */
.fullscreen-game-menu{
  width:min(1560px, calc(100vw - 20px));
  grid-template-columns:46px minmax(200px,260px) minmax(0,1fr) auto 46px;
  column-gap:8px;
}
.fullscreen-game-brand{
  min-width:0;
  overflow:hidden;
}
.fullscreen-game-brand-text{min-width:0;display:block;overflow:hidden}
.fullscreen-game-brand strong,
.fullscreen-game-brand small{display:block;overflow:hidden;text-overflow:ellipsis}
.fullscreen-game-links{
  min-width:0;
  justify-content:flex-start;
  overflow-x:auto;
  overflow-y:hidden;
  flex-wrap:nowrap;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
  padding:0 10px;
}
.fullscreen-game-links::-webkit-scrollbar{display:none}
.game-hud-btn,
.game-hud-btn-world,
.coordinate-search.game-coordinate-search{
  flex:0 0 auto;
}
.game-hud-btn{
  min-width:86px;
  width:auto;
}
.game-hud-btn-world{min-width:94px}
.hud-label{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.coordinate-search.game-coordinate-search{
  flex-basis:150px;
  min-width:150px;
  margin:0 6px;
}
.fullscreen-game-actions{
  flex:0 0 auto;
  min-width:max-content;
}

@media(max-width:1380px){
  .fullscreen-game-menu{
    grid-template-columns:42px minmax(170px,220px) minmax(0,1fr) auto 42px;
    width:calc(100vw - 14px);
  }
  .fullscreen-game-brand strong{font-size:.95rem}
  .fullscreen-game-brand small{font-size:.72rem}
  .game-hud-btn{min-width:74px;padding:6px 8px}
  .game-hud-btn-world{min-width:82px}
  .hud-label{font-size:.69rem}
  .coordinate-search.game-coordinate-search{flex-basis:132px;min-width:132px}
  .fullscreen-resource{min-width:52px;padding:0 10px;font-size:.86rem}
}

@media(max-width:1100px){
  .fullscreen-game-menu{
    grid-template-columns:40px minmax(150px,200px) minmax(0,1fr) auto 40px;
  }
  .game-hud-btn{min-width:66px}
  .game-hud-btn-world{min-width:72px}
  .hud-label{font-size:.65rem}
  .coordinate-search.game-coordinate-search{flex-basis:118px;min-width:118px}
}

@media(max-width:900px){
  .fullscreen-game-links{
    justify-content:flex-start;
    overflow-x:auto;
    flex-wrap:nowrap;
  }
}

/* ==========================================================
   AJUSTE FINAL 017 — HUD fullscreen desktop sem sobreposição
   Refatoração do menu superior no desktop:
   - usa flex controlado no desktop;
   - reduz largura mínima dos botões;
   - impede que textos invadam botões vizinhos;
   - mantém scroll horizontal seguro quando faltar espaço;
   - preserva o layout mobile abaixo de 900px.
   ========================================================== */
@media (min-width: 901px) {
  nav.fullscreen-game-menu.game-menu-v40 {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;

    top: 8px !important;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%) !important;

    width: min(1520px, calc(100vw - 96px)) !important;
    min-height: 72px !important;
    height: 72px !important;
    padding: 0 8px !important;

    grid-template-columns: none !important;
    grid-template-areas: none !important;
    overflow: visible !important;
  }

  nav.fullscreen-game-menu.game-menu-v40::before {
    inset: 7px 36px 7px 36px !important;
    border-radius: 24px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40::after {
    left: 72px !important;
    right: 72px !important;
    top: 12px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-menu-collapse {
    flex: 0 0 44px !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand {
    flex: 0 1 245px !important;
    min-width: 190px !important;
    max-width: 260px !important;
    height: 58px !important;
    padding: 0 12px !important;
    gap: 10px !important;
    overflow: hidden !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-mark {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand-text {
    min-width: 0 !important;
    overflow: hidden !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong,
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small {
    display: block !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong {
    font-size: .98rem !important;
    line-height: 1.05 !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small {
    max-width: 170px !important;
    font-size: .72rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    height: 62px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 4px !important;

    padding: 0 8px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    border-left: 1px solid rgba(132,220,255,.14) !important;
    border-right: 1px solid rgba(132,220,255,.14) !important;
    scrollbar-width: none !important;
    -webkit-overflow-scrolling: touch !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links::-webkit-scrollbar {
    display: none !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn {
    flex: 0 0 68px !important;
    width: 68px !important;
    min-width: 68px !important;
    height: 54px !important;
    padding: 4px 5px !important;
    border-radius: 17px !important;
    overflow: hidden !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world {
    flex-basis: 76px !important;
    width: 76px !important;
    min-width: 76px !important;
    height: 60px !important;
    margin-top: 0 !important;
    border-radius: 21px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .hud-icon {
    font-size: 1.34rem !important;
    line-height: 1 !important;
    flex: 0 0 auto !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world .hud-icon {
    font-size: 1.55rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .hud-label {
    display: block !important;
    max-width: 62px !important;
    width: 100% !important;
    font-size: .62rem !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    text-align: center !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search {
    flex: 0 0 138px !important;
    width: 138px !important;
    min-width: 138px !important;
    height: 42px !important;
    margin: 0 4px !important;
    padding: 4px 5px 4px 9px !important;
    border-radius: 999px !important;
    overflow: hidden !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search input {
    min-width: 0 !important;
    width: 100% !important;
    font-size: .78rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search button {
    flex: 0 0 32px !important;
    width: 32px !important;
    height: 32px !important;
    font-size: .9rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions {
    flex: 0 0 auto !important;
    min-width: max-content !important;
    height: 58px !important;
    padding: 0 6px !important;
    gap: 5px !important;
    overflow: visible !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource {
    height: 36px !important;
    min-width: 48px !important;
    padding: 0 9px !important;
    gap: 5px !important;
    font-size: .82rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource i {
    width: 20px !important;
    height: 20px !important;
    font-size: .8rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit {
    height: 40px !important;
    min-width: 84px !important;
    padding: 0 13px !important;
    gap: 6px !important;
    font-size: .88rem !important;
  }

  .mapa-fullscreen-hud.with-sidebar {
    top: 88px !important;
  }

  .city-map-fullscreen.with-sidebar {
    padding-top: 76px !important;
  }
}

@media (min-width: 901px) and (max-width: 1280px) {
  nav.fullscreen-game-menu.game-menu-v40 {
    width: calc(100vw - 24px) !important;
    gap: 5px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand {
    flex-basis: 205px !important;
    min-width: 170px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small {
    max-width: 130px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn {
    flex-basis: 58px !important;
    width: 58px !important;
    min-width: 58px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world {
    flex-basis: 64px !important;
    width: 64px !important;
    min-width: 64px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .hud-label {
    max-width: 54px !important;
    font-size: .55rem !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search {
    flex-basis: 112px !important;
    width: 112px !important;
    min-width: 112px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit {
    min-width: 48px !important;
    width: 48px !important;
    padding: 0 !important;
    justify-content: center !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit strong {
    display: none !important;
  }
}

@media (min-width: 901px) and (max-width: 1080px) {
  nav.fullscreen-game-menu.game-menu-v40 .hud-label {
    display: none !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn {
    flex-basis: 48px !important;
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
  }

  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world {
    flex-basis: 54px !important;
    width: 54px !important;
    min-width: 54px !important;
    height: 54px !important;
  }
}


/* ==========================================================
   Mundo real navegável — substitui modal estático de pontinhos
   ========================================================== */
.mundo-real-shell{
  width:min(1480px,calc(100% - 28px));
  margin:24px auto 40px;
  padding:0 0 20px;
}
.mundo-real-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,420px);
  gap:18px;
  align-items:end;
  margin-bottom:14px;
}
.mundo-real-top h1{font-size:clamp(2.2rem,4.4vw,4.8rem);margin:0 0 12px;letter-spacing:-.065em;line-height:.96}
.mundo-real-top p{color:#d9e9f8;max-width:780px;margin:0}
.mundo-real-controls{display:grid;gap:10px;justify-items:stretch}
.mundo-real-search{display:grid;gap:7px;padding:12px;border-radius:22px;background:rgba(7,21,37,.72);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 54px rgba(0,0,0,.24)}
.mundo-real-search label{font-weight:950;color:#fde68a;font-size:.88rem}
.mundo-real-search div{display:flex;gap:8px}
.mundo-real-search input{min-width:0;flex:1;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(2,8,23,.54);color:#eaf4ff;padding:12px;font-weight:900;outline:0}
.mundo-real-search button{border:0;border-radius:14px;padding:0 14px;background:linear-gradient(135deg,#38bdf8,#facc15);color:#072033;font-weight:950;cursor:pointer}
.mundo-real-info{margin:0 0 12px;padding:12px 14px;border-radius:18px;background:rgba(34,211,238,.10);border:1px solid rgba(34,211,238,.22);color:#dff7ff;font-weight:750}
.mundo-real-viewport{position:relative;height:72vh;min-height:560px;max-height:760px;overflow:auto;border-radius:30px;border:1px solid rgba(125,211,252,.22);background:#061223;box-shadow:0 30px 90px rgba(0,0,0,.38);cursor:grab;touch-action:none;overscroll-behavior:contain;scrollbar-color:rgba(125,211,252,.45) rgba(2,8,23,.4)}
.mundo-real-viewport.is-dragging{cursor:grabbing;user-select:none}
.mundo-real-canvas{position:relative;width:7800px;height:4300px;overflow:hidden;background:#08244a}
.mundo-real-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78;filter:saturate(1.12) contrast(1.04)}
.mundo-real-canvas:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:160px 160px;mix-blend-mode:screen;opacity:.38}
.mundo-ilha-real{position:absolute;z-index:2;transform:translate(-50%,-50%);width:118px;min-height:112px;display:grid;place-items:center;text-align:center;color:#f8fafc;text-decoration:none;filter:drop-shadow(0 18px 20px rgba(0,0,0,.45));transition:transform .16s ease,filter .16s ease;isolation:isolate}
.mundo-ilha-real:hover,.mundo-ilha-real.is-searched{z-index:5;transform:translate(-50%,-50%) scale(1.22);filter:drop-shadow(0 22px 28px rgba(0,0,0,.56)) brightness(1.1)}
.mundo-ilha-real.is-current:before,.mundo-ilha-real.is-searched:before{content:"";position:absolute;inset:20px 22px 18px;border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(52,255,182,.65),rgba(52,255,182,.16) 45%,transparent 68%);box-shadow:0 0 30px rgba(52,255,182,.66)}
.mundo-ilha-real.is-cluster:before{content:"";position:absolute;inset:24px;border-radius:50%;z-index:-1;background:radial-gradient(circle,rgba(250,204,21,.50),transparent 70%)}
.mundo-ilha-img{display:block;width:96px;height:70px;border-radius:50%;overflow:hidden;border:2px solid rgba(255,255,255,.52);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px rgba(0,0,0,.36);background:rgba(255,255,255,.12)}
.mundo-ilha-img img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;pointer-events:none}
.mundo-ilha-label{display:inline-flex;gap:4px;align-items:center;justify-content:center;margin-top:-6px;padding:5px 8px;border-radius:999px;background:rgba(2,8,23,.74);border:1px solid rgba(255,255,255,.15);box-shadow:0 8px 18px rgba(0,0,0,.25);font-size:.72rem;font-weight:950;white-space:nowrap}
.mundo-ilha-label small{font-size:.66rem;color:#c8eaff;font-weight:900}
.mundo-ilha-recurso{margin-top:3px;max-width:108px;padding:4px 7px;border-radius:999px;background:rgba(250,204,21,.14);border:1px solid rgba(250,204,21,.22);color:#fde68a;font-size:.58rem;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mundo-real-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;margin-top:12px;color:#d7e7f4;font-weight:850}.mundo-real-legend .dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px}.mundo-real-legend .normal{background:#9bdcff}.mundo-real-legend .cluster{background:#facc15}.mundo-real-legend .atual{background:#34d399;box-shadow:0 0 16px #34d399}
.ilha-real-page{width:min(1180px,calc(100% - 28px));margin:28px auto 50px}.ilha-real-hero{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:center;overflow:hidden}.ilha-real-hero h1{font-size:clamp(2.2rem,4.5vw,4.8rem);margin:0 0 12px}.ilha-real-hero img{width:100%;border-radius:28px;box-shadow:0 20px 60px rgba(0,0,0,.34)}.ilha-real-grid{margin-top:16px}.ilha-spots-reais{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.ilha-spot-real{display:grid;place-items:center;gap:4px;min-height:78px;border-radius:18px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07)}.ilha-spot-real strong{font-size:1.35rem;color:#fde68a}.ilha-spot-real small{font-weight:900;color:#cbd5e1}.ilha-spot-real.livre{background:rgba(52,211,153,.10);border-color:rgba(52,211,153,.22)}.ilha-spot-real.ocupado{background:rgba(250,204,21,.09);border-color:rgba(250,204,21,.20)}.ilha-spot-real.meu{outline:3px solid rgba(34,211,238,.55);box-shadow:0 0 24px rgba(34,211,238,.22)}
@media(max-width:900px){.mundo-real-top{grid-template-columns:1fr}.mundo-real-viewport{height:70vh;min-height:520px;border-radius:22px}.mundo-real-canvas{width:5200px;height:3100px}.mundo-ilha-real{width:96px}.mundo-ilha-img{width:78px;height:58px}.mundo-ilha-label{font-size:.62rem}.mundo-ilha-recurso{display:none}.ilha-real-hero{grid-template-columns:1fr}.ilha-spots-reais{grid-template-columns:repeat(2,1fr)}}
@media(max-width:540px){.mundo-real-shell{width:calc(100% - 14px);margin-top:14px}.mundo-real-search div{flex-direction:column}.mundo-real-search button{padding:12px}.mundo-real-viewport{height:68vh;min-height:470px}.mundo-real-canvas{width:4200px;height:2600px}.mundo-ilha-real{width:82px}.mundo-ilha-img{width:68px;height:50px}.mundo-ilha-label small{display:none}}

/* ==========================================================
   Ilha aberta pelo mundo: spots sobrepostos no mapa da ilha
   ========================================================== */
.ilha-fullscreen-real{
  width:min(1560px,calc(100% - 22px));
  margin:18px auto 46px;
}
.ilha-full-topbar{
  position:sticky;
  top:8px;
  z-index:20;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin-bottom:12px;
  padding:10px 12px;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(9,34,58,.86),rgba(4,16,35,.88));
  border:1px solid rgba(125,211,252,.20);
  box-shadow:0 18px 44px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(14px);
}
.ilha-full-title{min-width:0;text-align:center;display:grid;gap:3px;justify-items:center}
.ilha-full-title strong{font-size:clamp(1.15rem,2.4vw,2rem);font-weight:1000;line-height:1;letter-spacing:-.04em;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ilha-full-title small{color:#cfe1f4;font-weight:850;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.ilha-full-stage-wrap{
  border-radius:32px;
  overflow:auto;
  background:#061223;
  border:1px solid rgba(125,211,252,.20);
  box-shadow:0 30px 90px rgba(0,0,0,.34);
  overscroll-behavior:contain;
}
.ilha-full-stage{
  position:relative;
  width:min(100%,1500px);
  min-width:980px;
  margin:0 auto;
  aspect-ratio:1672/941;
  overflow:hidden;
  isolation:isolate;
  background:#08244a;
}
.ilha-full-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  user-select:none;
  pointer-events:none;
  filter:saturate(1.06) contrast(1.03);
}
.ilha-full-stage:after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:radial-gradient(circle at 50% 42%,transparent 0 44%,rgba(2,8,23,.10) 68%,rgba(2,8,23,.28) 100%);
}
.ilha-full-spot{
  position:absolute;
  left:var(--sx);
  top:var(--sy);
  z-index:5;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:82px;
  height:82px;
  text-decoration:none;
  color:#f8fafc;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.42));
  transition:transform .16s ease,filter .16s ease;
}
.ilha-full-spot:hover{transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 18px 22px rgba(0,0,0,.55)) brightness(1.08)}
.ilha-full-spot[aria-disabled="true"]{cursor:default}
.ilha-full-spot .spot-pin{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:50%;
  font-size:1.65rem;
  background:radial-gradient(circle at 35% 25%,#fff6b6,#facc15 38%,#af6b16 100%);
  border:3px solid rgba(255,255,255,.58);
  box-shadow:inset 0 2px 0 rgba(255,255,255,.42),0 0 0 6px rgba(2,8,23,.26),0 10px 20px rgba(0,0,0,.38);
}
.ilha-full-spot.livre .spot-pin{background:radial-gradient(circle at 35% 25%,#d8fff4,#34d399 45%,#047857 100%)}
.ilha-full-spot.ocupado .spot-pin{background:radial-gradient(circle at 35% 25%,#fff6b6,#f59e0b 45%,#7c2d12 100%)}
.ilha-full-spot.meu .spot-pin{background:radial-gradient(circle at 35% 25%,#e0fbff,#38bdf8 44%,#075985 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.42),0 0 0 7px rgba(34,211,238,.28),0 0 34px rgba(34,211,238,.74),0 10px 20px rgba(0,0,0,.38)}
.ilha-full-spot .spot-badge{
  position:absolute;
  left:50%;
  bottom:-13px;
  transform:translateX(-50%);
  min-width:86px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:5px 8px;
  border-radius:999px;
  background:rgba(2,8,23,.78);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:0 8px 18px rgba(0,0,0,.34);
  white-space:nowrap;
}
.ilha-full-spot .spot-badge strong{color:#fde68a;font-size:.92rem;line-height:1}
.ilha-full-spot .spot-badge small{color:#eaf4ff;font-size:.68rem;font-weight:950;line-height:1}
.ilha-full-card-info{
  position:absolute;
  right:18px;
  bottom:18px;
  z-index:6;
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
  max-width:min(520px,calc(100% - 36px));
}
.ilha-full-card-info span{
  display:inline-flex;
  align-items:center;
  padding:8px 11px;
  border-radius:999px;
  background:rgba(2,8,23,.68);
  border:1px solid rgba(255,255,255,.14);
  color:#eaf4ff;
  font-weight:950;
  box-shadow:0 10px 22px rgba(0,0,0,.24);
}
.ilha-full-bottom{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:14px;
}
@media(max-width:900px){
  .ilha-fullscreen-real{width:calc(100% - 12px);margin-top:10px}
  .ilha-full-topbar{grid-template-columns:1fr;justify-items:stretch;text-align:center;position:relative;top:auto;border-radius:18px}
  .ilha-full-topbar .btn{width:100%}
  .ilha-full-stage-wrap{border-radius:22px;-webkit-overflow-scrolling:touch}
  .ilha-full-stage{min-width:1120px}
  .ilha-full-spot{width:72px;height:72px}.ilha-full-spot .spot-pin{width:50px;height:50px;font-size:1.38rem}.ilha-full-spot .spot-badge{min-width:72px;padding:4px 7px}.ilha-full-spot .spot-badge small{display:none}
  .ilha-full-bottom{grid-template-columns:1fr}
}
@media(max-width:540px){
  .ilha-full-stage{min-width:980px}
  .ilha-full-card-info{left:12px;right:12px;bottom:12px;justify-content:center}.ilha-full-card-info span{font-size:.76rem;padding:6px 8px}
}

/* ==========================================================
   Revisão 017 — responsivo real + missões diárias
   - celular, iPad e desktop sem botões escapando do menu
   - imagens com transparência preservada
   - missão diária com visão infantil separada da visão professor
   ========================================================== */
html, body { max-width:100%; overflow-x:hidden; }
img { max-width:100%; image-rendering:auto; }
.build-slot,
.build-slot img,
.paper-equipped,
.matrix-item,
.home-turma-card img,
.global-island-image,
.ilha-full-bg,
.city-bg { background:transparent!important; }
.build-slot img,
.paper-equipped,
.matrix-item { object-fit:contain!important; }
.menu-pro-gamer { overflow:hidden!important; }
.menu-layer-nav { max-width:100%; overscroll-behavior-x:contain; scrollbar-width:none; }
.menu-layer-nav::-webkit-scrollbar{display:none;}
.menu-layer-nav a,
.btn,
.game-hud-btn,
.fullscreen-exit,
.fullscreen-resource { max-width:100%; overflow:hidden; text-overflow:ellipsis; }

@media(max-width:960px){
  .menu-layer-top{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center!important;}
  .brand-pro{min-width:0;overflow:hidden;}
  .brand-pro span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .menu-user-chip{min-width:0;max-width:100%;justify-content:flex-end;}
  .menu-user-chip > span:not(.menu-avatar){max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .menu-layer-nav.nav-open{max-height:calc(100vh - 150px);overflow:auto!important;}
}
@media(max-width:520px){
  .menu-layer-top{grid-template-columns:1fr;align-items:stretch!important;}
  .menu-user-chip{justify-content:space-between;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:16px;padding:8px;}
  .menu-sair{padding:8px 10px!important;}
}

/* Override final do HUD fullscreen. Reaplica depois das versões antigas do CSS. */
nav.fullscreen-game-menu.game-menu-v40,
.fullscreen-game-menu.game-menu-v40{
  position:fixed!important;
  z-index:80!important;
  top:8px!important;
  left:50%!important;
  right:auto!important;
  transform:translateX(-50%)!important;
  width:min(1320px, calc(100vw - 16px))!important;
  max-width:calc(100vw - 16px)!important;
  min-height:74px!important;
  display:grid!important;
  grid-template-columns:48px minmax(190px,260px) minmax(0,1fr) max-content 48px!important;
  grid-template-areas:"left brand links actions right"!important;
  align-items:center!important;
  gap:8px!important;
  padding:7px!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
nav.fullscreen-game-menu.game-menu-v40::before{inset:6px!important;}
nav.fullscreen-game-menu.game-menu-v40 .game-menu-collapse-left{grid-area:left!important;}
nav.fullscreen-game-menu.game-menu-v40 .game-menu-collapse-right{grid-area:right!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand{grid-area:brand!important;min-width:0!important;max-width:100%!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand-text{min-width:0!important;overflow:hidden!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{
  grid-area:links!important;
  min-width:0!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  justify-content:flex-start!important;
  flex-wrap:nowrap!important;
  scrollbar-width:none!important;
  -webkit-overflow-scrolling:touch!important;
}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links::-webkit-scrollbar{display:none!important;}
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn{flex:0 0 70px!important;min-width:70px!important;max-width:70px!important;}
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{flex:0 0 82px!important;min-width:82px!important;max-width:82px!important;}
nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search{flex:0 0 150px!important;width:150px!important;min-width:150px!important;max-width:150px!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions{grid-area:actions!important;min-width:0!important;max-width:260px!important;overflow:hidden!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource{min-width:54px!important;white-space:nowrap!important;}

@media(max-width:1180px){
  nav.fullscreen-game-menu.game-menu-v40,
  .fullscreen-game-menu.game-menu-v40{
    left:8px!important;right:8px!important;transform:none!important;width:auto!important;max-width:none!important;
    grid-template-columns:42px minmax(0,1fr) auto 42px!important;
    grid-template-areas:"left brand actions right" "links links links links"!important;
    grid-template-rows:50px 56px!important;
    min-height:118px!important;
    gap:6px!important;
  }
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{height:56px!important;padding:0 30px 5px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .hud-label{display:none!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn{flex:0 0 48px!important;min-width:48px!important;max-width:48px!important;height:48px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{flex:0 0 56px!important;min-width:56px!important;max-width:56px!important;height:54px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search{flex:0 0 112px!important;width:112px!important;min-width:112px!important;max-width:112px!important;height:42px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions{max-width:170px!important;}
  body.game-menu-collapsed nav.fullscreen-game-menu.game-menu-v40{grid-template-areas:"left brand actions right"!important;grid-template-rows:50px!important;min-height:62px!important;}
  body.game-menu-collapsed nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{display:none!important;}
}
@media(max-width:620px){
  nav.fullscreen-game-menu.game-menu-v40,
  .fullscreen-game-menu.game-menu-v40{left:6px!important;right:6px!important;grid-template-columns:38px minmax(0,1fr) auto 38px!important;padding:6px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand{height:44px!important;padding:0 7px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-mark{width:34px!important;height:34px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong{font-size:.82rem!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small{display:none!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{padding-left:22px!important;padding-right:22px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn{flex-basis:44px!important;min-width:44px!important;max-width:44px!important;height:44px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{flex-basis:50px!important;min-width:50px!important;max-width:50px!important;height:50px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .coordinate-search.game-coordinate-search{flex-basis:92px!important;width:92px!important;min-width:92px!important;max-width:92px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .coordinate-pin{display:none!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions{max-width:104px!important;gap:3px!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource{min-width:31px!important;padding:0 4px!important;font-size:.76rem!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource i{display:none!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit{width:34px!important;min-width:34px!important;padding:0!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit strong{display:none!important;}
}
@media(max-width:390px){
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions .fullscreen-resource:nth-child(2){display:none!important;}
  nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-actions{max-width:70px!important;}
}

/* Missões diárias */
.missoes-page .mission-head{max-width:920px;}
.mission-daily-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:16px;align-items:stretch;margin-bottom:20px;}
.mission-daily-card{position:relative;overflow:hidden;background:linear-gradient(135deg,rgba(34,211,238,.16),rgba(250,204,21,.10),rgba(255,255,255,.06));}
.mission-daily-card:before{content:"";position:absolute;inset:-60px auto auto -60px;width:190px;height:190px;border-radius:50%;background:rgba(34,211,238,.18);filter:blur(2px);}
.mission-daily-card.is-complete{outline:2px solid rgba(52,211,153,.32);}
.mission-daily-top{position:relative;display:flex;gap:16px;align-items:flex-start;}
.mission-orb{width:76px;height:76px;flex:0 0 auto;border-radius:26px;display:grid;place-items:center;font-size:2.25rem;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(34,211,238,.12));border:1px solid rgba(255,255,255,.16);box-shadow:0 16px 34px rgba(0,0,0,.20);}
.mission-daily-card h3{font-size:clamp(1.5rem,4vw,2.4rem);margin:8px 0 8px;letter-spacing:-.045em;}
.mission-reward-row{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0;}
.mission-action-form{margin-top:14px;}
.mission-status{margin-top:14px;}
.mission-student-note{display:block;margin-top:12px;color:var(--muted);font-weight:700;}
.mission-teacher-card{background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.05));}
.mission-teacher-list{display:grid;gap:10px;margin-top:12px;}
.mission-teacher-list div{padding:11px;border-radius:16px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.10);}
.mission-teacher-list strong{display:block;color:#fde68a;margin-bottom:4px;font-size:.82rem;}
.mission-teacher-list span{color:#eaf3ff;}
.mission-planner-card{margin:18px 0;}
.mission-library-grid .mission-mini-card{position:relative;min-height:220px;}
.mission-mini-card.is-active{outline:2px solid rgba(250,204,21,.42);}
.mission-mini-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:20px;background:rgba(255,255,255,.08);font-size:1.7rem;margin-bottom:10px;}
@media(max-width:900px){.mission-daily-grid{grid-template-columns:1fr;}.mission-teacher-card{order:2;}}
@media(max-width:560px){.mission-daily-top{flex-direction:column;}.mission-orb{width:64px;height:64px;font-size:1.9rem}.mission-reward-row .pill{font-size:.72rem;}.mission-library-grid{grid-template-columns:1fr!important;}}

/* ===== Admin CRUD: Habilidades BNCC e Itens com upload PNG ===== */
.admin-crud-page .section-head p{max-width:900px}.admin-item-grid{align-items:stretch}.admin-item-card{display:flex;flex-direction:column;gap:8px}.admin-item-preview{width:100%;aspect-ratio:1/1;display:grid;place-items:center;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);overflow:hidden}.admin-item-preview img{width:100%;height:100%;object-fit:contain;padding:12px}.admin-item-preview span{font-size:3rem}.admin-crud-form textarea{resize:vertical}.admin-upload-preview{display:flex;align-items:center;gap:10px;margin:8px 0 12px;padding:10px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10)}.admin-upload-preview img{width:74px;height:74px;object-fit:contain;border-radius:14px;background:rgba(0,0,0,.22);padding:6px}.admin-upload-preview span{font-size:.8rem;color:#dbeafe;word-break:break-all}.admin-filter-form{margin-bottom:14px}.admin-filter-form .grid-4{align-items:end}.alert.success{border-color:rgba(52,211,153,.35);background:rgba(20,83,45,.42);color:#dcfce7}.table td .btn{margin:2px 0}@media(max-width:760px){.admin-crud-form .grid-3,.admin-filter-form .grid-4{grid-template-columns:1fr!important}.admin-item-preview span{font-size:2.3rem}}


/* ===== Sidebar: bônus de atributos por itens equipados ===== */
.attr-row.has-bonus {
    border-color: rgba(52, 211, 153, .34);
    background: linear-gradient(90deg, rgba(52, 211, 153, .12), rgba(255,255,255,.07));
}
.attr-row b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
}
.attr-row b strong {
    font: inherit;
    color: inherit;
}
.attr-row b em {
    font-style: normal;
    color: #86efac;
    font-weight: 1000;
    font-size: .76rem;
    line-height: 1;
}
body.sidebar-collapsed .attr-row b em { display: none; }

/* Hotfix 021 - CRUD administrativo de missões e games */
.admin-crud-page .form label{display:grid;gap:6px;font-weight:800;color:#eaf4ff}
.admin-crud-page input,.admin-crud-page select,.admin-crud-page textarea{width:100%;box-sizing:border-box;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:rgba(2,8,23,.40);color:#f8fafc;padding:11px 12px;font:inherit;outline:none}
.admin-crud-page textarea{min-height:92px;resize:vertical}.admin-crud-page .table td{vertical-align:middle}.admin-crud-page .btn-sm{padding:7px 10px;font-size:.82rem;border-radius:10px}.admin-items-fieldset{margin:12px 0;padding:14px;border:1px solid rgba(255,255,255,.12)}.admin-items-fieldset legend{padding:0 8px;color:#fde68a;font-weight:900}.check-card{display:flex!important;align-items:center;gap:8px;padding:10px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.10)}.check-card input{width:auto!important}.check-card small{opacity:.72;margin-left:auto}
@media(max-width:760px){.admin-crud-page .grid-2,.admin-crud-page .grid-3,.admin-crud-page .grid-4{grid-template-columns:1fr!important}.admin-crud-page .table-wrap{overflow:auto}.check-card{font-size:.9rem}}

/* ==========================================================
   Mercadinho da Ilha — compra/venda por drag and drop
   ========================================================== */
.mercado-page{min-height:calc(100vh - 40px)}
.mercado-head{max-width:920px}.mercado-statusbar{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 14px}.mercado-statusbar span{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#eaf4ff;font-weight:900}.mercado-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:16px;align-items:start}.mercado-bag,.mercado-shop{min-height:520px;position:relative;overflow:visible}.mercado-bag:after,.mercado-shop:after{content:"";position:absolute;inset:12px;border:2px dashed rgba(255,255,255,.12);border-radius:24px;pointer-events:none;opacity:.45}.mercado-bag.is-drop-hover:after,.mercado-shop.is-drop-hover:after{border-color:#facc15;background:rgba(250,204,21,.08);opacity:1}.mercado-items-list{position:relative;z-index:2;display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:12px}.mercado-item-card{display:grid;grid-template-columns:54px 1fr;gap:10px;align-items:center;min-height:88px;padding:10px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));border:1px solid rgba(255,255,255,.12);cursor:grab;transition:transform .15s ease,border-color .15s ease,background .15s ease;position:relative}.mercado-item-card:hover{transform:translateY(-2px);border-color:rgba(250,204,21,.42);background:rgba(250,204,21,.10)}.mercado-item-card.is-dragging{opacity:.45;transform:scale(.97)}.mercado-item-thumb{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;background:rgba(34,211,238,.12);border:1px solid rgba(34,211,238,.22);font-size:1.8rem}.mercado-item-thumb img{max-width:48px;max-height:48px;object-fit:contain}.mercado-item-info{min-width:0}.mercado-item-info strong{display:block;color:#fff;font-size:.92rem;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mercado-item-info small{display:block;color:#cbd5e1;font-size:.72rem;margin-top:3px}.mercado-item-values{grid-column:1/-1;display:flex;gap:6px;flex-wrap:wrap}.mercado-item-values span{font-size:.72rem;padding:5px 8px;border-radius:999px;background:rgba(2,8,23,.42);border:1px solid rgba(255,255,255,.10);font-weight:900;color:#fef3c7}.mercado-item-card.tipo-alimento .mercado-item-thumb{background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.30)}.mercado-item-card.tipo-roupa .mercado-item-thumb{background:rgba(59,130,246,.12);border-color:rgba(59,130,246,.30)}.mercado-empty{padding:18px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);color:#cbd5e1}.mercado-hidden-form{display:none}.mercado-build-slot{z-index:18}.mercado-build-slot img{filter:drop-shadow(0 14px 18px rgba(0,0,0,.34))}.mercado-item-card::after{content:attr(data-tooltip);position:absolute;left:10px;right:10px;bottom:calc(100% + 8px);z-index:50;padding:10px 12px;border-radius:14px;background:rgba(2,8,23,.95);border:1px solid rgba(250,204,21,.22);color:#eaf4ff;white-space:pre-line;font-size:.76rem;line-height:1.35;box-shadow:0 16px 34px rgba(0,0,0,.35);opacity:0;pointer-events:none;transform:translateY(6px);transition:.14s ease}.mercado-item-card:hover::after{opacity:1;transform:translateY(0)}
@media(max-width:900px){.mercado-grid{grid-template-columns:1fr}.mercado-bag,.mercado-shop{min-height:360px}.mercado-items-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.mercado-item-card{grid-template-columns:46px 1fr}.mercado-item-thumb{width:46px;height:46px}}
@media(max-width:520px){.mercado-statusbar{gap:7px}.mercado-statusbar span{font-size:.8rem;padding:7px 9px}.mercado-items-list{grid-template-columns:1fr 1fr;gap:8px}.mercado-item-card{min-height:82px;padding:8px;border-radius:16px}.mercado-item-info strong{font-size:.8rem}.mercado-item-info small,.mercado-item-values span{font-size:.65rem}}
.mercado-consumir-form{grid-column:1/-1;margin:0}.mercado-consumir-form button{width:100%;border:0;border-radius:12px;padding:7px 10px;background:linear-gradient(135deg,#34d399,#facc15);color:#082f49;font-weight:1000;cursor:pointer}.mercado-consumir-form button:hover{filter:brightness(1.05)}

/* Mercadinho em slots estilo inventário */
.mercado-grid-slots{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
.mercado-slot-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.mercado-bag,.mercado-shop{min-height:auto!important;overflow:visible!important}
.mercado-bag:after,.mercado-shop:after{display:none!important}
.mercado-slot-matrix{margin-top:14px;grid-template-columns:repeat(var(--cols), minmax(48px,1fr));grid-template-rows:repeat(var(--rows), 74px);gap:7px;padding:12px;border-radius:22px;background:rgba(3,11,24,.28);border:1px solid rgba(255,255,255,.08)}
.mercado-slot-matrix.drop-hover-bag,.mercado-slot-matrix.is-drop-hover,.mercado-bag.is-drop-hover .mercado-slot-matrix,.mercado-shop.is-drop-hover .mercado-slot-matrix{outline:2px solid rgba(250,204,21,.8);box-shadow:0 0 0 4px rgba(250,204,21,.08) inset}
.mercado-slot-item{cursor:grab;padding:8px;border-radius:14px;overflow:visible;background:linear-gradient(180deg,rgba(30,64,104,.50),rgba(13,33,58,.72));border:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;justify-content:flex-start;gap:2px}
.mercado-slot-item:active{cursor:grabbing}.mercado-slot-item.is-dragging{opacity:.5;transform:scale(.98)}
.mercado-slot-item strong{font-size:.72rem;line-height:1.05;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mercado-slot-item small{font-size:.62rem;line-height:1.05;color:#d4dfed}
.mercado-slot-item .mercado-mini-meta{display:flex;flex-wrap:wrap;gap:4px;margin-top:auto}
.mercado-slot-item .mercado-mini-meta span{font-size:.58rem;font-weight:900;padding:3px 5px;border-radius:999px;background:rgba(2,8,23,.5);border:1px solid rgba(255,255,255,.08);color:#fde68a}
.mercado-matrix-icon{width:auto;height:auto;font-size:1.8rem;display:grid;place-items:center;margin-bottom:4px}
.mercado-matrix-icon img{max-width:36px;max-height:36px;object-fit:contain;display:block}
.mercado-slot-item[data-w="2"],.mercado-slot-item[data-h="2"],.mercado-slot-item[data-w="3"],.mercado-slot-item[data-h="3"]{align-items:flex-start}
.mercado-slot-item[data-w="2"] .mercado-matrix-icon img,.mercado-slot-item[data-h="2"] .mercado-matrix-icon img{max-width:42px;max-height:42px}
.mercado-slot-item[data-w="3"] .mercado-matrix-icon img,.mercado-slot-item[data-h="3"] .mercado-matrix-icon img{max-width:54px;max-height:54px}
.mercado-slot-item .rpg-tooltip{min-width:240px;max-width:300px}
.mercado-consumir-form{margin-top:4px}.mercado-consumir-form button{width:100%;border:0;border-radius:10px;padding:5px 6px;background:linear-gradient(135deg,#34d399,#facc15);color:#082f49;font-weight:1000;cursor:pointer;font-size:.68rem}
@media(max-width:980px){.mercado-grid-slots{grid-template-columns:1fr}.mercado-slot-matrix{grid-template-columns:repeat(var(--cols), minmax(36px,1fr));grid-template-rows:repeat(var(--rows), 64px)}}
@media(max-width:560px){.mercado-slot-matrix{grid-template-columns:repeat(var(--cols), 36px);grid-template-rows:repeat(var(--rows), 56px);overflow:auto;padding:8px}.mercado-slot-item{padding:5px;border-radius:10px}.mercado-slot-item strong{font-size:.58rem}.mercado-slot-item small{display:none}.mercado-slot-item .mercado-mini-meta span{font-size:.52rem;padding:2px 4px}.mercado-matrix-icon img{max-width:26px;max-height:26px}.mercado-consumir-form button{font-size:.58rem;padding:3px 4px}}

/* Hotfix 024 — mercadinho: slots vazios clicáveis/touch e drag real */
.mercado-slot-cell{position:relative;z-index:1;cursor:crosshair}
.mercado-slot-matrix[data-mercado-drop]{position:relative}
.mercado-slot-matrix.is-select-target{outline:2px solid rgba(34,211,238,.75);box-shadow:0 0 0 4px rgba(34,211,238,.08) inset,0 0 24px rgba(34,211,238,.14)}
.mercado-slot-matrix.is-drop-hover{outline:2px solid rgba(250,204,21,.95);box-shadow:0 0 0 5px rgba(250,204,21,.10) inset,0 0 26px rgba(250,204,21,.18)}
.mercado-slot-item.is-selected{outline:3px solid rgba(250,204,21,.96)!important;box-shadow:0 0 0 5px rgba(250,204,21,.12),0 18px 26px rgba(0,0,0,.32);transform:translateY(-2px)}
.mercado-slot-item.is-dragging{opacity:.48!important}
.mercado-slot-item .mercado-mini-meta span{white-space:nowrap}
.mercado-slot-item.tipo-alimento .mercado-mini-meta span:last-child{color:#bbf7d0;background:rgba(22,163,74,.18);border-color:rgba(34,197,94,.24)}
@media (hover:none){.mercado-slot-item .rpg-tooltip{display:none}.mercado-slot-item{touch-action:manipulation}.mercado-slot-cell{touch-action:manipulation}}


/* Montanhas da Ilha — expedição com timer e relatório */
.montanhas-page{min-height:calc(100vh - 40px)}
.montanhas-head{max-width:980px}
.montanhas-hero{display:grid;grid-template-columns:220px 1fr;gap:18px;align-items:center;margin-bottom:16px;background:linear-gradient(135deg,rgba(10,39,60,.88),rgba(35,30,46,.88))}
.montanhas-hero img{width:200px;height:200px;object-fit:contain;filter:drop-shadow(0 24px 24px rgba(0,0,0,.35))}
.montanhas-hero h3{font-size:clamp(1.6rem,3vw,2.4rem);margin:0 0 8px}
.montanhas-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.montanhas-tags span,.montanhas-deltas span,.oponente-attrs span,.oponente-equip small{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);font-weight:900;color:#eaf4ff}
.montanhas-timer-card{border-color:rgba(250,204,21,.35);background:linear-gradient(135deg,rgba(90,63,24,.44),rgba(12,24,44,.88))}
.montanhas-countdown{font-size:clamp(3rem,9vw,6.6rem);font-weight:1000;letter-spacing:-.08em;color:#fde68a;text-shadow:0 12px 28px rgba(0,0,0,.35);line-height:1;margin:16px 0}
.progress-line{height:14px;border-radius:999px;background:rgba(2,8,23,.55);overflow:hidden;border:1px solid rgba(255,255,255,.10)}
.progress-line i{display:block;height:100%;width:0;background:linear-gradient(90deg,#22d3ee,#facc15);border-radius:999px;transition:width .35s linear}
.montanhas-oponentes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.montanha-oponente{position:relative;overflow:visible;background:linear-gradient(180deg,rgba(18,35,58,.94),rgba(10,20,35,.96))}
.oponente-icone{width:72px;height:72px;display:grid;place-items:center;border-radius:22px;font-size:2.4rem;background:radial-gradient(circle at 35% 25%,rgba(250,204,21,.30),rgba(34,211,238,.12));border:1px solid rgba(250,204,21,.22);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 28px rgba(0,0,0,.22)}
.oponente-attrs{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}.oponente-attrs span{font-size:.78rem;padding:6px 8px}.oponente-attrs strong{color:#fde68a}
.oponente-equip{display:grid;gap:5px;margin:10px 0 14px}.oponente-equip small{border-radius:12px;justify-content:flex-start;font-size:.74rem}
.montanhas-relatorio{margin:16px 0}.montanhas-relatorio.venceu{border-color:rgba(52,211,153,.38)}.montanhas-relatorio.perdeu{border-color:rgba(248,113,113,.35)}
.montanhas-deltas{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.montanhas-deltas span{background:rgba(15,23,42,.45)}
.montanhas-build-slot{z-index:19}.montanhas-build-slot img{filter:drop-shadow(0 18px 22px rgba(0,0,0,.42))}
@media(max-width:760px){.montanhas-hero{grid-template-columns:1fr;text-align:center}.montanhas-hero img{margin:auto;width:170px;height:170px}.montanhas-tags{justify-content:center}.montanhas-countdown{font-size:4rem}}

/* 030 - Game Generator / presets BNCC */
.game-generator-admin .preset-overview{margin-bottom:18px}
.game-generator-admin .preset-overview .card{padding:16px;min-height:150px}
.game-generator-admin .preset-overview small{display:block;color:#7b8494;margin:4px 0 8px;font-weight:800}
.game-generator-form details.card{margin:16px 0;background:rgba(255,255,255,.78)}
.game-generator-form details summary{cursor:pointer;font-weight:900;color:#18385f;margin-bottom:12px}
.gamegen-start,.gamegen-play{background-size:cover;background-position:center;border-radius:28px;padding:34px;box-shadow:inset 0 0 0 9999px rgba(0,0,0,.05)}
.gamegen-start-card,.gamegen-play-card{background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.55)}
.gamegen-character-art{display:flex;align-items:flex-end;justify-content:center;min-height:320px;background:linear-gradient(180deg,rgba(135,216,255,.25),rgba(34,124,94,.18));border-radius:24px;overflow:hidden}
.gamegen-character-art img{max-height:360px;width:auto;max-width:100%;object-fit:contain;filter:drop-shadow(0 18px 18px rgba(0,0,0,.22))}
.gamegen-play-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.gamegen-play-character{width:140px;max-height:180px;object-fit:contain;filter:drop-shadow(0 14px 12px rgba(0,0,0,.22))}
.game-option-rich{display:flex;align-items:center;gap:12px}
.game-option-rich img{width:58px;height:58px;object-fit:contain;border-radius:14px;background:rgba(255,255,255,.65);border:1px solid rgba(30,60,100,.12)}
.compare-board{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.compare-board>div{background:#fff8df;border:2px dashed rgba(145,91,28,.35);border-radius:22px;padding:16px;text-align:center}
.compare-items{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;font-size:34px;margin-top:10px}
.pair-board,.classify-board{display:grid;gap:12px;margin:14px 0}
.pair-row,.classify-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(160px,1fr);gap:12px;align-items:center;background:rgba(255,248,225,.86);border:1px solid rgba(122,86,32,.2);border-radius:18px;padding:12px}
.pair-row span,.classify-row span{font-weight:900;color:#253a60;font-size:1.05rem}
.word-blocks{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.word-blocks span{background:#2f9ee5;color:white;border-radius:18px;padding:14px 20px;font-size:1.4rem;font-weight:900;border:4px solid rgba(255,255,255,.5);box-shadow:0 8px 14px rgba(0,0,0,.12)}
.answer-line input{margin-top:8px;font-size:1.2rem;font-weight:800;text-transform:uppercase}
.maze-board{display:flex;justify-content:center;margin:16px 0}.maze-grid{display:grid;grid-template-columns:repeat(3,74px);grid-auto-rows:74px;gap:8px;background:rgba(255,255,255,.75);padding:12px;border-radius:22px}.maze-grid span{display:flex;align-items:center;justify-content:center;background:#fff2c0;border-radius:16px;font-size:30px;border:2px solid rgba(85,71,40,.15)}
@media(max-width:760px){.gamegen-start,.gamegen-play{padding:18px;border-radius:18px}.gamegen-play-head{flex-direction:column}.gamegen-play-character{width:110px;align-self:center}.compare-board,.pair-row,.classify-row{grid-template-columns:1fr}.gamegen-character-art{min-height:220px}.gamegen-character-art img{max-height:260px}}
.personagem-avatar-img-xl{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 12px 12px rgba(0,0,0,.18));border-radius:24px;background:rgba(255,255,255,.35)}
.personagem-card-img{width:180px;height:180px;object-fit:contain;display:block;margin:0 auto 12px;filter:drop-shadow(0 12px 12px rgba(0,0,0,.16))}

/* Hotfix 031 — itens somente com PNG real: sem SVG, sem emoji/alt-icon como visual de asset */
.item-png-thumb,
.paper-icon-img,
.matrix-icon-img,
.item-head-img,
.tooltip-item-img,
.check-card-item-img,
.loot-pill-img,
.expedition-item-img,
.resource-tile-img,
.loot-table-img,
.mercado-matrix-img,
.admin-item-preview-img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 8px 12px rgba(0,0,0,.28));
}
.item-png-thumb-empty { display:block; width:100%; height:100%; border-radius:14px; background:rgba(255,255,255,.08); border:1px dashed rgba(255,255,255,.18); }
.paper-icon-img{width:46px;height:46px}.matrix-icon-img{width:58px;height:58px;margin:auto}.item-head-img{width:54px;height:54px}.tooltip-item-img{width:38px;height:38px;flex:0 0 38px}.check-card-item-png{display:flex;align-items:center;gap:10px}.check-card-item-img{width:42px;height:42px;flex:0 0 42px}.loot-pill-png{display:inline-flex;align-items:center;gap:8px}.loot-pill-img{width:34px;height:34px;flex:0 0 34px}.expedition-item-png{display:grid;place-items:center}.expedition-item-img{width:170px;height:170px}.resource-tile-png{display:grid;place-items:center}.resource-tile-img{width:76px;height:76px}.loot-table-png{display:inline-flex;align-items:center;gap:8px}.loot-table-img{width:36px;height:36px}.mercado-matrix-img{width:64px;height:64px}.admin-item-preview-img{width:104px;height:104px;margin:auto}.matrix-icon .matrix-icon-img,.matrix-icon .mercado-matrix-img{max-width:calc(100% - 8px);max-height:calc(100% - 8px)}.paper-equipped .paper-icon-img{width:52px;height:52px;margin:auto}.item-card .item-head{align-items:center}.admin-item-preview{display:grid;place-items:center;min-height:122px}.loot-preview{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tooltip-title{display:flex;align-items:center;gap:8px}

/* ==========================================================
   Hotfix 032 — assets PNG reais, mercadinho limpo e HUD sem reticências
   ========================================================== */
/* Reposiciona a Torre dos Números no círculo real da construção no mapa original. */
.b2{left:53.2%!important;top:39.2%!important;--w:10.8%!important;}

/* O menu deve mostrar os nomes completos. Mantém rolagem horizontal em telas estreitas,
   em vez de cortar títulos com reticências. */
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{
  overflow-x:auto!important;
  overflow-y:hidden!important;
  scrollbar-width:thin!important;
  justify-content:flex-start!important;
}
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn,
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{
  flex:0 0 auto!important;
  width:auto!important;
  min-width:max-content!important;
  max-width:none!important;
  padding:0 10px!important;
  gap:5px!important;
}
nav.fullscreen-game-menu.game-menu-v40 .hud-label,
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn span{
  display:inline-flex!important;
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small{
  text-overflow:clip!important;
}
@media(max-width:760px){
  nav.fullscreen-game-menu.game-menu-v40 .hud-label{font-size:.66rem!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn,
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{height:48px!important;min-width:max-content!important;padding:0 8px!important;}
}
@media(max-width:430px){
  nav.fullscreen-game-menu.game-menu-v40 .hud-label{font-size:.62rem!important;}
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn,
  nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{padding:0 7px!important;}
}

/* Mercadinho: cards 1x1, imagem PNG real, sem SVG, sem emoji/alt icon e sem sobreposição. */
.mercado-slot-matrix{
  grid-template-columns:repeat(var(--cols), minmax(54px,1fr))!important;
  grid-template-rows:repeat(var(--rows), 68px)!important;
  gap:7px!important;
  overflow:auto!important;
  max-height:min(72vh, 760px)!important;
  align-content:start!important;
}
.mercado-slot-cell{
  min-height:68px!important;
  border-radius:13px!important;
  background:rgba(15,23,42,.48)!important;
  border:1px solid rgba(148,163,184,.18)!important;
}
.mercado-slot-item{
  padding:5px!important;
  min-width:0!important;
  min-height:0!important;
  overflow:hidden!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  display:grid!important;
  grid-template-rows:1fr auto!important;
}
.mercado-slot-item strong,
.mercado-slot-item small{
  display:none!important;
}
.mercado-matrix-icon{
  width:100%!important;
  height:46px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.mercado-matrix-icon img,
.mercado-matrix-img{
  width:44px!important;
  height:44px!important;
  max-width:44px!important;
  max-height:44px!important;
  object-fit:contain!important;
  object-position:center!important;
  display:block!important;
}
.mercado-slot-item .mercado-mini-meta{
  width:100%!important;
  margin:0!important;
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:2px!important;
  flex-wrap:nowrap!important;
}
.mercado-slot-item .mercado-mini-meta span{
  font-size:.54rem!important;
  line-height:1!important;
  padding:2px 5px!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
.mercado-slot-item .mercado-mini-meta span + span{display:none!important;}
.mercado-slot-item .rpg-tooltip{z-index:1000!important;}
.item-png-thumb-empty{background:rgba(255,255,255,.04)!important;border:1px dashed rgba(255,255,255,.16)!important;}
@media(max-width:560px){
  .mercado-slot-matrix{grid-template-columns:repeat(var(--cols), 48px)!important;grid-template-rows:repeat(var(--rows), 60px)!important;}
  .mercado-slot-cell{min-height:60px!important;}
  .mercado-matrix-icon{height:39px!important;}
  .mercado-matrix-icon img,.mercado-matrix-img{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;}
  .mercado-slot-item .mercado-mini-meta span{font-size:.50rem!important;padding:2px 3px!important;}
}
.city-map-fullscreen .b2,
.city-map-preview .b2{
  --x:.532!important;
  --y:.392!important;
  --w:.108!important;
}

/* ==========================================================
   Hotfix 033 — base 029 + gerador 032 sem perda de assets
   ========================================================== */
/* HUD: não usar reticências em títulos do menu. O menu rola na horizontal quando precisar. */
nav.fullscreen-game-menu.game-menu-v40,
nav.fullscreen-game-menu.game-menu-v40 *{
  text-overflow:clip!important;
}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-links{
  min-width:0!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  justify-content:flex-start!important;
  gap:6px!important;
  scrollbar-width:thin!important;
}
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn,
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn-world{
  flex:0 0 auto!important;
  min-width:max-content!important;
  width:auto!important;
  max-width:none!important;
  padding-left:10px!important;
  padding-right:10px!important;
}
nav.fullscreen-game-menu.game-menu-v40 .hud-label,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small{
  overflow:visible!important;
  white-space:nowrap!important;
  max-width:none!important;
}

/* Torre dos Números alinhada ao círculo do mapa original 029. */
.city-map-fullscreen .b2,
.city-map-preview .b2,
.b2{
  --x:.532!important;
  --y:.392!important;
  --w:.108!important;
  left:53.2%!important;
  top:39.2%!important;
}

/* Mercadinho: grade limpa; cada item ocupa 1 célula, com 50%+ de slots livres. */
.mercado-grid-slots{grid-template-columns:minmax(360px,.92fr) minmax(520px,1.18fr)!important;align-items:start!important;}
.mercado-bag,.mercado-shop{overflow:visible!important;}
.mercado-slot-matrix{
  display:grid!important;
  grid-template-columns:repeat(var(--cols), minmax(58px, 1fr))!important;
  grid-template-rows:repeat(var(--rows), 72px)!important;
  gap:8px!important;
  padding:12px!important;
  max-height:min(74vh, 820px)!important;
  overflow:auto!important;
  align-content:start!important;
}
.mercado-slot-cell{
  min-height:72px!important;
  border-radius:14px!important;
  background:rgba(15,23,42,.48)!important;
  border:1px solid rgba(148,163,184,.20)!important;
}
.mercado-slot-item{
  display:grid!important;
  grid-template-rows:1fr auto!important;
  place-items:center!important;
  padding:4px!important;
  min-height:0!important;
  overflow:hidden!important;
  border-radius:14px!important;
  z-index:5!important;
}
.mercado-slot-item strong,
.mercado-slot-item small{display:none!important;}
.mercado-matrix-icon{
  width:100%!important;
  height:48px!important;
  margin:0!important;
  display:grid!important;
  place-items:center!important;
  overflow:hidden!important;
}
.mercado-matrix-icon img,
.mercado-matrix-img{
  width:46px!important;
  height:46px!important;
  max-width:46px!important;
  max-height:46px!important;
  object-fit:contain!important;
  object-position:center!important;
  display:block!important;
}
.mercado-slot-item .mercado-mini-meta{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  gap:2px!important;
  width:100%!important;
  margin:0!important;
  flex-wrap:nowrap!important;
}
.mercado-slot-item .mercado-mini-meta span{
  font-size:.55rem!important;
  line-height:1!important;
  padding:2px 5px!important;
  border-radius:999px!important;
  overflow:hidden!important;
}
.mercado-slot-item .mercado-mini-meta span + span{display:none!important;}
.item-png-thumb-empty{display:none!important;}
@media(max-width:900px){
  .mercado-grid-slots{grid-template-columns:1fr!important;}
}
@media(max-width:560px){
  .mercado-slot-matrix{grid-template-columns:repeat(var(--cols), 50px)!important;grid-template-rows:repeat(var(--rows), 62px)!important;}
  .mercado-slot-cell{min-height:62px!important;}
  .mercado-matrix-icon{height:40px!important;}
  .mercado-matrix-icon img,.mercado-matrix-img{width:39px!important;height:39px!important;max-width:39px!important;max-height:39px!important;}
  .mercado-slot-item .mercado-mini-meta span{font-size:.50rem!important;padding:2px 3px!important;}
}

/* ===== 033 - Compatibilidade assets 029 + hotfix visual ===== */
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand,
.fullscreen-game-brand{width:auto!important;min-width:230px!important;max-width:none!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand-text,
.fullscreen-game-brand-text{overflow:visible!important;min-width:0!important;max-width:none!important;}
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand strong,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small,
.fullscreen-game-brand strong,
.fullscreen-game-brand small{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;max-width:none!important;line-height:1.05!important;}
nav.fullscreen-game-menu.game-menu-v40 .game-hud-btn,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-resource,
nav.fullscreen-game-menu.game-menu-v40 .fullscreen-exit{white-space:nowrap!important;}
.mercado-grid-slots{grid-template-columns:minmax(0,1fr) minmax(0,1.18fr)!important;gap:18px!important;align-items:start!important;}
.mercado-bag,.mercado-shop{overflow:visible!important;}
.mercado-slot-matrix{display:grid!important;grid-template-columns:repeat(var(--cols), minmax(76px,1fr))!important;grid-template-rows:repeat(var(--rows), 92px)!important;gap:9px!important;padding:12px!important;overflow:auto!important;max-height:62vh!important;align-items:stretch!important;}
.mercado-slot-cell{min-height:92px!important;border-radius:16px!important;background:rgba(9,20,38,.42)!important;border:1px dashed rgba(148,163,184,.24)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)!important;}
.mercado-slot-item{height:92px!important;min-height:92px!important;max-height:92px!important;padding:6px!important;border-radius:16px!important;overflow:hidden!important;display:grid!important;grid-template-rows:1fr auto!important;align-items:center!important;justify-items:center!important;gap:3px!important;z-index:4!important;}
.mercado-slot-item strong,.mercado-slot-item small{display:none!important;}
.mercado-matrix-icon{width:100%!important;height:62px!important;margin:0!important;display:grid!important;place-items:center!important;}
.mercado-matrix-icon img,.mercado-matrix-img{display:block!important;width:58px!important;height:58px!important;max-width:58px!important;max-height:58px!important;object-fit:contain!important;}
.mercado-slot-item .mercado-mini-meta{width:100%!important;display:flex!important;justify-content:center!important;align-items:center!important;gap:3px!important;margin:0!important;}
.mercado-slot-item .mercado-mini-meta span{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;max-width:100%!important;overflow:visible!important;text-overflow:clip!important;font-size:.62rem!important;line-height:1!important;padding:4px 6px!important;}
.mercado-slot-item .mercado-mini-meta span + span{display:none!important;}
.mercado-slot-item .rpg-tooltip{z-index:10000!important;}
@media(max-width:980px){.mercado-grid-slots{grid-template-columns:1fr!important}.mercado-slot-matrix{grid-template-columns:repeat(var(--cols), 62px)!important;grid-template-rows:repeat(var(--rows),78px)!important}.mercado-slot-cell,.mercado-slot-item{min-height:78px!important;height:78px!important;max-height:78px!important}.mercado-matrix-icon{height:52px!important}.mercado-matrix-icon img,.mercado-matrix-img{width:48px!important;height:48px!important;max-width:48px!important;max-height:48px!important}}
@media(max-width:560px){nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand{min-width:0!important;width:100%!important}nav.fullscreen-game-menu.game-menu-v40 .fullscreen-game-brand small{display:block!important;font-size:.62rem!important}.mercado-slot-matrix{grid-template-columns:repeat(var(--cols), 52px)!important;grid-template-rows:repeat(var(--rows),68px)!important}.mercado-slot-cell,.mercado-slot-item{min-height:68px!important;height:68px!important;max-height:68px!important}.mercado-matrix-icon{height:44px!important}.mercado-matrix-icon img,.mercado-matrix-img{width:40px!important;height:40px!important;max-width:40px!important;max-height:40px!important}}
.city-map-fullscreen .b2{--x:.550!important;--y:.424!important;--w:.094!important;}

/* ===== Portal institucional ERP DS ===== */
.portal-welcome{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:28px;align-items:stretch;padding:clamp(28px,6vw,76px) 0 34px;min-height:62vh}
.portal-welcome-copy{display:flex;flex-direction:column;justify-content:center;max-width:760px}
.portal-welcome-copy h1{font-size:clamp(2.4rem,6vw,5.7rem);line-height:.96;letter-spacing:-.055em;margin:18px 0 22px;max-width:760px}
.portal-welcome-copy .lead{max-width:680px;font-size:clamp(1rem,1.7vw,1.28rem);line-height:1.65;color:rgba(226,239,251,.84)}
.portal-login-container{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:12px;padding:30px;border:1px solid rgba(116,215,233,.28);border-radius:28px;background:linear-gradient(145deg,rgba(15,45,71,.94),rgba(7,21,38,.94));box-shadow:0 24px 70px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.06)}
.portal-login-container-large{width:min(100%,520px);margin:48px auto;padding:clamp(28px,6vw,54px);align-items:stretch;text-align:center}
.portal-login-page{display:grid;place-items:center;min-height:68vh}
.portal-login-icon{font-size:2.3rem;display:block}
.portal-login-container h1,.portal-login-container h2{margin:0;color:#f6fbff}
.portal-login-container p{color:rgba(226,239,251,.82);line-height:1.6}
.portal-login-container small{color:rgba(194,215,232,.72);line-height:1.5}
.portal-login-button{width:100%;justify-content:center;margin-top:8px}
.portal-login-help{font-size:.92rem;margin:2px 0 8px}
.portal-instructions{padding-top:26px}
.portal-instructions .card{position:relative;padding-top:34px}
.portal-step{position:absolute;top:14px;right:18px;color:#7ee7e9;font-weight:800;letter-spacing:.08em}
.portal-security-note{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:30px 0 44px;padding:18px 22px;border:1px solid rgba(126,231,233,.2);border-radius:18px;background:rgba(8,30,49,.68);color:rgba(226,239,251,.82)}
.portal-security-note strong{color:#f4e28a}
@media(max-width:820px){.portal-welcome{grid-template-columns:1fr;min-height:auto;padding-top:38px}.portal-welcome-copy h1{font-size:clamp(2.7rem,12vw,4.4rem)}.portal-login-container{width:100%}.portal-login-container-large{margin:24px auto}}
