*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#080a0b}
body{font:14px Arial;color:#222}
.card{width:380px;margin:100px auto;padding:28px;background:#eee;border:1px solid #999;text-align:center;box-shadow:0 2px 10px #999}
.btn,button{display:inline-block;margin:8px;padding:9px 18px;border:1px solid #777;background:#ddd;color:#111;text-decoration:none;cursor:pointer}
input{display:block;width:100%;padding:10px;margin:10px 0}
.error{padding:10px;background:#f7d7d7;color:#900}

/* ===== L2Combats — утвержденный fantasy-дизайн ===== */
.fantasy-ui{
  min-width:1180px;
  min-height:100vh;
  padding:0 0 178px;
  background:#080a0b;
  color:#eee;
  font:14px Georgia,"Times New Roman",serif;
}

/* Шапка */
.fantasy-header{
  height:105px;
  padding:13px 28px 8px 330px;
  background:
    linear-gradient(90deg,rgba(22,12,8,.98),rgba(40,25,17,.92) 40%,rgba(12,12,12,.97)),
    #17110d;
  border-bottom:3px solid #8c6735;
  position:relative;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  box-shadow:0 3px 10px #000;
}
.logo{
  position:absolute;left:42px;top:14px;width:280px;text-align:center;
  color:#ead7a6;text-shadow:0 2px 2px #000;
}
.logo strong{display:block;font:46px Georgia;line-height:48px}
.logo span{font-size:17px}
.header-actions{display:flex;gap:4px;margin-left:auto}
.header-actions a{
  padding:9px 20px;border:1px solid #6c5a42;
  background:linear-gradient(#3b3834,#151515);
  box-shadow:inset 0 0 0 1px #111;
  color:#eee;text-decoration:none;text-shadow:0 1px #000;
}
.header-actions a:hover{filter:brightness(1.2)}
.gold-nav{
  height:39px;display:flex;justify-content:flex-end;align-items:center;
  padding:0 22px;background:#101010;border-bottom:2px solid #8c6735;
}
.gold-nav a{
  padding:0 13px;color:#e3c98c;text-decoration:none;
  border-right:1px solid #745f3d;text-shadow:0 1px #000;
}

/* Основные три колонки */
.fantasy-grid{
  display:grid;
  grid-template-columns:320px minmax(760px,1fr) 245px;
  gap:8px;padding:8px;max-width:none;margin:0 auto;
}
.dark-frame{
  background:#0c0d0d;
  border:3px ridge #6b5840;
  box-shadow:0 0 0 1px #050505,0 3px 12px #000;
}

/* Персонаж */
.hero-panel{min-height:690px}
.hero-name{height:45px;padding:11px 15px;font-size:19px;border-bottom:2px ridge #5b4b36}
.hero-name span{color:#7ca4ff}
.hero-hp{position:relative;height:20px;margin:0 12px 10px;border:2px ridge #66543b;background:#3a0909}
.hero-hp span{display:block;height:100%;background:linear-gradient(#e44343,#a50909)}
.hero-hp b{position:absolute;inset:0;text-align:center;font:12px Arial;line-height:16px;color:#fff}
.paperdoll{height:320px;display:grid;grid-template-columns:68px 1fr 68px;gap:5px;padding:5px 10px}
.slot-stack{display:flex;flex-direction:column;gap:5px}
.fslot{
  height:58px;display:flex;align-items:center;justify-content:center;text-align:center;
  font:10px Arial;color:#bdbdbd;border:2px ridge #77654d;
  background:linear-gradient(135deg,#444,#171717)
}
.fslot.tall{height:90px}
.warrior{
  border:3px ridge #76644c;background:radial-gradient(ellipse,#313131,#050505);
  display:flex;flex-direction:column;align-items:center;justify-content:center
}
.warrior-shape{font-size:150px;color:#aaa;transform:scaleX(.72);font-family:Georgia,serif;line-height:1;text-shadow:0 3px 7px #000}
.warrior small{color:#8c795c}
.hero-stats{padding:8px 18px 18px;font-size:16px}
.hero-stats div{display:flex;justify-content:space-between;line-height:22px}
.hero-stats a{display:block;color:#6aa8ff;margin:3px 0;text-decoration:none}
.hero-stats hr{border:0;border-top:1px solid #554837}

/* Центр: город ОБЯЗАТЕЛЬНО отдельным верхним блоком */
.world-panel{
  display:block !important;
  padding:0 !important;
  overflow:hidden;
  background:#0a0b0b;
}
.world-scene{
  display:block !important;
  position:relative;
  width:100%;
  height:535px;
  padding:0 !important;
  margin:0 !important;
  background:#111 url("city-bg.png") center center / cover no-repeat !important;
}
.world-scene:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.01) 68%,rgba(0,0,0,.13));
  pointer-events:none;z-index:1
}
.location{
  position:absolute;z-index:3;min-width:145px;padding:9px 15px;
  text-align:center;color:#f5dfad;text-decoration:none;
  font:bold 18px Georgia;background:linear-gradient(#2b2117,#090909);
  border:4px ridge #9a6d30;box-shadow:0 3px 8px #000;text-shadow:0 2px #000
}
.location:hover{filter:brightness(1.25)}
.loc-floor3{left:9%;top:20%}
.loc-tower{left:58%;top:25%}
.loc-floor2{left:10%;top:46%}
.loc-tavern{right:5%;top:49%}
.loc-club{left:8%;bottom:14%;font-size:22px}
.loc-newbie{left:43%;bottom:5%}
.loc-trade{right:20%;bottom:6%}

/* Пергамент строго ПОД городом */
.parchment{
  display:block !important;
  width:100% !important;
  min-height:145px;
  margin:0 !important;
  padding:14px 28px;
  color:#2b1c0e;
  background:linear-gradient(90deg,#b99a66,#e6cc99 12%,#dabb82 88%,#a98856);
  border-top:4px ridge #6c5030;
  font:16px Georgia;
}
.parchment p{margin:2px}
.parchment-actions{text-align:center;margin-top:12px}
.parchment-actions a{
  display:inline-block;min-width:135px;margin:2px;padding:8px 14px;
  color:#ead4a6;text-decoration:none;background:linear-gradient(#33291e,#0b0b0b);
  border:3px ridge #7a603d;font-weight:bold
}

/* Игроки справа */
.room-users{min-height:690px}
.room-users h3{margin:0;padding:12px 14px;color:#ead5a7;border-bottom:2px ridge #5c4a34;font-size:17px}
.room-users h3 span{float:right}
.player{padding:7px 15px;font-size:16px}
.player.online{color:#eee}.player.offline{color:#bbb}

/* Чат */
.fantasy-chat{
  position:fixed;left:8px;right:8px;bottom:5px;height:165px;
  display:grid;grid-template-columns:1fr 155px;grid-template-rows:1fr 38px;z-index:10
}
.chat-log{padding:8px 12px;background:#070c0f;overflow:auto;font:14px Arial;line-height:22px}
.chat-log time{color:#aaa;margin-right:8px}
.green{color:#16c989}.cyan{color:#35d7e9}.red{color:#f14a4a}.yellow{color:#d8c247}
.chat-channels{
  grid-row:1/3;grid-column:2;padding:8px 18px;border-left:2px ridge #5c4b36;
  background:#171717;display:flex;flex-direction:column;font-size:15px;line-height:22px;color:#d8c49c
}
.chat-compose{grid-column:1;display:flex;gap:6px;padding:4px;background:#111;border-top:2px ridge #5c4b36}
.chat-compose input{height:28px;margin:0;background:#0b1115;color:#eee;border:2px ridge #6b5b43}
.chat-compose button{height:28px;margin:0;padding:2px 24px;color:#ead4a5;background:#1d1812;border:2px ridge #765f3f}

/* Остальные страницы */
.subpage{background:#171819;color:#eee;padding:50px;font:14px Arial}
.subcard{max-width:700px;margin:auto;padding:25px;background:#171717;border:3px ridge #6b5840;color:#eee}
.inventory-empty{height:180px;margin:20px 0;padding:20px;border:1px dashed #777;color:#aaa}

@media(max-width:1250px){
  .fantasy-grid{grid-template-columns:285px minmax(600px,1fr) 220px}
  .location{font-size:15px;min-width:120px}
}

/* ===== V4: ornate header + decorative frames ===== */
.fantasy-header{
  height:112px;
  padding-left:345px;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(17,9,6,.96) 0%,rgba(30,17,11,.82) 32%,rgba(13,10,8,.82) 100%),
    url("city-bg.png") center 38% / cover no-repeat;
  border-top:1px solid #3a2919;
  border-bottom:5px ridge #8f6937;
  box-shadow:inset 0 -18px 30px rgba(0,0,0,.45),0 4px 14px #000;
}
.fantasy-header:before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.30));
  pointer-events:none;
}
.logo,.header-actions{z-index:2}
.logo{
  left:28px;top:9px;width:295px;height:88px;
  padding:8px 12px;
  background:linear-gradient(135deg,rgba(59,25,14,.94),rgba(16,12,10,.92));
  border:3px ridge #6e5030;
  box-shadow:inset 0 0 18px #000,0 3px 9px #000;
}
.logo strong{font-size:44px;color:#f0ddb0}
.logo span{display:block;color:#d5b878;letter-spacing:.5px}

.header-actions a{
  min-width:105px;text-align:center;
  border:3px ridge #655139;
  background:linear-gradient(#332b23,#0b0b0b);
  color:#f0e2c4;
}
.gold-nav{
  height:42px;
  background:linear-gradient(#181614,#080909);
  border-top:1px solid #3d3123;
  border-bottom:4px ridge #755936;
  box-shadow:0 3px 8px #000;
}
.gold-nav a{font-weight:bold;color:#e4c98e}

.dark-frame{
  position:relative;
  border:4px ridge #765b38;
  box-shadow:
    inset 0 0 0 1px #17110b,
    inset 0 0 18px rgba(0,0,0,.75),
    0 3px 12px #000;
}
.dark-frame:before{
  content:"";
  position:absolute;inset:3px;
  border:1px solid rgba(184,139,73,.24);
  pointer-events:none;
  z-index:8;
}
.hero-panel,.room-users{background:linear-gradient(90deg,#090a0a,#101010 55%,#080909)}
.hero-name,.room-users h3{
  background:linear-gradient(#191713,#090a0a);
  color:#ead7aa;
}
.fslot{
  border:3px ridge #806746;
  box-shadow:inset 0 0 12px rgba(0,0,0,.8);
}
.warrior{
  border:4px ridge #806746;
  box-shadow:inset 0 0 25px #000;
}
.world-panel{border-color:#80613a}
.world-scene{border-bottom:3px ridge #745632}
.location{
  border:5px ridge #9a6d30;
  box-shadow:inset 0 0 0 1px #39250f,0 4px 10px #000;
}
.parchment{
  border-top:5px ridge #77552f;
  box-shadow:inset 0 8px 18px rgba(87,52,19,.16);
}
.parchment-actions a{
  border:4px ridge #80613e;
  box-shadow:inset 0 0 8px #000;
}
.fantasy-chat{
  border:4px ridge #765b38;
  box-shadow:0 -3px 12px #000,inset 0 0 10px #000;
}
.chat-channels{background:linear-gradient(90deg,#191713,#0c0c0c)}

/* ===== V5: левая панель персонажа ===== */
.hero-panel{min-height:690px}
.hero-name{
  height:48px;padding:10px 14px;
  background:linear-gradient(#1c1915,#090909);
  border-bottom:3px ridge #735936;
  font-size:20px;
}
.hero-hp{
  height:22px;margin:0 11px 11px;
  border:3px ridge #765a37;
  box-shadow:inset 0 0 7px #000;
}
.hero-hp span{background:linear-gradient(#ef4141,#9d0505)}
.hero-hp b{line-height:17px;font-weight:bold}

.paperdoll{
  height:350px;
  grid-template-columns:70px minmax(125px,1fr) 70px;
  gap:6px;padding:7px 10px 4px;
}
.slot-stack{gap:6px}
.fslot{
  position:relative;
  height:61px;
  border:3px ridge #856944;
  background:
    linear-gradient(135deg,rgba(73,70,64,.75),rgba(17,17,17,.96));
  color:#c8c1b4;
  font:10px Arial;
  box-shadow:inset 0 0 15px #000;
}
.fslot:after{
  content:"";
  position:absolute;inset:3px;
  border:1px solid rgba(224,187,119,.10);
  pointer-events:none;
}
.fslot.tall{height:94px}

.warrior{
  position:relative;
  overflow:hidden;
  border:4px ridge #856944;
  background:
    radial-gradient(ellipse at 50% 38%,#242424 0,#111 45%,#050505 82%);
  box-shadow:inset 0 0 30px #000;
}
.warrior:before{
  content:"";position:absolute;left:12%;right:12%;bottom:35px;height:22px;
  background:radial-gradient(ellipse,rgba(200,174,124,.14),transparent 70%);
}
.warrior small{
  position:absolute;bottom:11px;left:0;right:0;
  text-align:center;color:#a98a58;letter-spacing:.4px;font-size:11px;
}

/* Воин рисуется CSS, поэтому отдельная картинка не нужна */
.fighter-silhouette{
  position:relative;
  width:112px;height:250px;
  margin-top:-12px;
  filter:drop-shadow(0 5px 5px #000);
}
.fighter-silhouette span{position:absolute;display:block;background:linear-gradient(90deg,#555,#a8a8a8 45%,#5d5d5d)}
.fighter-head{
  width:38px;height:44px;left:37px;top:12px;
  border-radius:46% 46% 42% 42%;
  clip-path:polygon(15% 12%,50% 0,85% 12%,94% 56%,74% 100%,26% 100%,6% 56%);
}
.fighter-neck{width:24px;height:19px;left:44px;top:49px;border-radius:4px}
.fighter-torso{
  width:72px;height:105px;left:20px;top:62px;
  clip-path:polygon(18% 0,82% 0,100% 25%,84% 100%,16% 100%,0 25%);
  border-radius:15px 15px 8px 8px;
}
.fighter-arm{width:23px;height:112px;top:69px;border-radius:13px}
.fighter-arm-left{left:6px;transform:rotate(7deg);transform-origin:top center}
.fighter-arm-right{right:6px;transform:rotate(-7deg);transform-origin:top center}
.fighter-leg{width:29px;height:94px;top:157px;border-radius:7px 7px 13px 13px}
.fighter-leg-left{left:24px;transform:rotate(2deg)}
.fighter-leg-right{right:24px;transform:rotate(-2deg)}

.hero-stats{
  padding:5px 17px 18px;
  font-size:16px;
}
.hero-stats div{line-height:23px}
.hero-stats b{color:#f0e6d1}
.hero-stats span{color:#f4f4f4}
.hero-stats a{color:#5ca5ff}
.hero-stats hr{border-top:1px solid #5f4a30;margin:8px 0}

/* ===== V6: утвержденная раскладка экипировки ===== */
.paperdoll{
  height:370px;
  grid-template-columns:70px minmax(125px,1fr) 70px;
  gap:6px;
  padding:7px 10px 4px;
}
.slot-stack{gap:5px}
.slot-stack-left .fslot,
.slot-stack-right .fslot{
  height:55px;
}
.slot-stack-left .fslot.tall{
  height:82px;
}
/* Три кольца — отдельные, более тонкие строки */
.slot-stack-right .ring-slot{
  height:34px;
  min-height:34px;
  font-size:9px;
  line-height:28px;
}
.slot-stack-right{
  gap:4px;
}
.warrior{
  min-height:355px;
}
.fighter-silhouette{
  margin-top:-4px;
}

/* ===== V7: чат прижат к низу, без пустой области ===== */
html,body{height:100%;min-height:100%;margin:0}
body.fantasy-ui{
  min-height:100vh;
  padding-bottom:0 !important;
  display:flex;
  flex-direction:column;
}
.fantasy-header,.gold-nav{flex:0 0 auto}
.fantasy-grid{
  flex:0 0 auto;
  width:100%;
}
/* Чат теперь часть потока страницы, а не fixed-слой */
.fantasy-chat{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:calc(100% - 16px);
  height:165px;
  min-height:165px;
  margin:0 8px 5px;
  flex:0 0 165px;
}
/* Если окно выше контента — свободное место остаётся НАД чатом,
   а сам чат всегда садится к нижней границе окна */
body.fantasy-ui .fantasy-chat{margin-top:auto}

/* ===== V8: перетаскиваемая верхняя граница чата ===== */
.chat-resizer{
  width:calc(100% - 16px);
  height:10px;
  margin:0 8px -2px;
  flex:0 0 10px;
  cursor:ns-resize;
  position:relative;
  z-index:20;
  background:linear-gradient(
    to bottom,
    transparent 0,
    transparent 3px,
    #4b3925 3px,
    #b18448 4px,
    #4b3925 5px,
    transparent 6px
  );
}
.chat-resizer:hover{
  background:linear-gradient(
    to bottom,
    transparent 0,
    transparent 2px,
    #7b5b31 2px,
    #e0b56c 4px,
    #7b5b31 6px,
    transparent 7px
  );
}
.chat-resizer:after{
  content:"⋮⋮";
  position:absolute;
  left:50%;
  top:-5px;
  transform:translateX(-50%) rotate(90deg);
  color:#d7b06e;
  font:14px Arial;
  text-shadow:0 1px #000;
}
body.chat-resizing{
  cursor:ns-resize !important;
  user-select:none !important;
}
.fantasy-chat{
  min-height:105px !important;
  max-height:420px;
}

/* ===== V9: фиксированный высокий чат ===== */
.chat-resizer{display:none !important}
.fantasy-chat{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:calc(100% - 16px) !important;
  height:255px !important;
  min-height:255px !important;
  max-height:255px !important;
  flex:0 0 255px !important;
  margin:8px 8px 5px !important;
}
body.fantasy-ui .fantasy-chat{margin-top:8px !important}

/* ===== V10: компактная статистика персонажа ===== */
.battle-record{align-items:center}
.battle-record-values{
  display:flex !important;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.record-item{
  display:inline-flex !important;
  align-items:center;
  gap:3px;
  white-space:nowrap;
  font:13px Georgia,"Times New Roman",serif;
}
.record-item i{
  display:inline-flex;
  width:15px;height:15px;
  align-items:center;justify-content:center;
  font-style:normal;font-size:11px;line-height:15px;
  border:1px solid #6e5737;
  background:#17130f;
  box-shadow:inset 0 0 4px #000;
}
.record-win i{color:#e4bc57}
.record-loss i{color:#b65c50}
.record-draw i{color:#aaa}


/* V12 equipment */
.equipment-final{height:390px;grid-template-columns:72px minmax(125px,1fr) 72px;gap:6px}
.equipment-final .fslot{color:#d6c7aa;text-decoration:none}
.equipment-final .fslot:hover,.ring-mini:hover{filter:brightness(1.25)}
.equipment-final .slot-stack-left .fslot{height:58px}.equipment-final .slot-stack-left .fslot.tall{height:82px}
.equipment-final .slot-stack-right .fslot{height:52px}.equipment-final .slot-stack-right .fslot.tall{height:72px}
.ring-row{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;height:34px}
.ring-mini{display:flex;align-items:center;justify-content:center;color:#e6cf9b;text-decoration:none;font:bold 11px Georgia;border:2px ridge #856944;background:radial-gradient(circle,#3a3328,#111 68%);box-shadow:inset 0 0 8px #000}
.inventory-grid-v12{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:18px 0}
.item-card-v12{padding:12px;border:3px ridge #765b38;background:#0d0e0e;color:#eee}
.item-card-v12 h3{margin:0 0 7px;color:#e5ca91;font:17px Georgia}.item-card-v12 small{color:#aaa}.item-card-v12 form{margin-top:8px}.item-card-v12 button{margin:0;padding:6px 12px;background:#1d1812;color:#ead4a5;border:2px ridge #765f3f}.equipped-note{color:#79c879;font-weight:bold}

/* ===== V13 Inventory ===== */
.inventory-v13{margin:0;min-width:1200px;background:#090a0a;color:#ddd;font:14px Georgia,"Times New Roman",serif}
.inv13-top{height:78px;display:flex;align-items:center;padding:8px 24px;background:linear-gradient(#26231f,#0b0b0b);border-bottom:4px ridge #735735}
.inv13-logo{width:285px;padding:7px 18px;border:3px ridge #765a38;color:#edd6a1;font:34px Georgia;background:#17110d}.inv13-logo small{display:block;text-align:center;font-size:12px}
.inv13-top nav{display:flex;gap:6px;margin-left:35px}.inv13-top nav a,.inv13-exit{padding:12px 25px;color:#ead6a9;text-decoration:none;border:3px ridge #625039;background:#171717}.inv13-top nav a.active{background:linear-gradient(#7a1d14,#2b0907);border-color:#9c5d3e}.inv13-exit{margin-left:auto}
.inv13-main{display:grid;grid-template-columns:520px 1fr;min-height:620px;border-bottom:4px ridge #665038}
.inv13-character{padding:12px 18px;border-right:4px ridge #665038;background:#0c0d0d}.inv13-name{font-size:20px;color:#eee}.inv13-name i{display:inline-block;width:10px;height:10px;border-radius:50%;background:#1bd33c}
.inv13-hp{position:relative;width:245px;height:20px;margin:8px 0;border:2px ridge #6d573b;background:#410606}.inv13-hp span{display:block;height:100%;background:linear-gradient(#e43d35,#9b0907)}.inv13-hp b{position:absolute;inset:0;text-align:center;line-height:16px}
.inv13-charbody{display:grid;grid-template-columns:86px 190px 86px;gap:6px}.inv13-slots{display:flex;flex-direction:column;gap:5px}.inv13-slots>div{height:59px;padding:4px;display:flex;align-items:center;justify-content:center;text-align:center;border:3px ridge #705a3d;background:linear-gradient(135deg,#333,#111);font-size:10px;color:#c9b994}
.inv13-man{height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:3px ridge #705a3d;background:radial-gradient(#242424,#050505)}.inv13-man span{font-size:170px;color:#555;transform:scaleX(.7)}.inv13-man small{color:#b89b67}.mini-rings{display:grid!important;grid-template-columns:repeat(3,1fr);gap:2px}.mini-rings b{border:1px solid #705a3d;padding:5px}
.inv13-stats{position:absolute;margin-left:375px;margin-top:-330px;width:130px;line-height:23px}.inv13-stats h3{border-bottom:1px solid #6a5538;color:#e8d4a6}.inv13-stats a{color:#58a6e7;text-decoration:none}.inv13-sets{margin-top:15px;border-top:1px solid #665038;padding-top:10px}.inv13-sets button{margin:8px 4px 8px 0;padding:7px 10px;background:#17130f;color:#e5c98d;border:2px ridge #705a3d}.inv13-sets em{display:block;padding:18px;border:1px solid #444;color:#888}
.inv13-bag{padding:10px;background:#0b0c0c}.inv13-tabs{display:grid;grid-template-columns:repeat(8,1fr)}.inv13-tabs button{margin:0;padding:12px 5px;background:#0c1820;color:#9cc5e5;border:2px ridge #4f4b43}.inv13-tabs button.active{background:#20180e;color:#f0d79d}
.inv13-mass{text-align:center;padding:8px;color:#e8c77f;font-weight:bold;border-bottom:1px solid #57452f}.inv13-filter{display:flex;justify-content:center;align-items:center;gap:8px;padding:8px}.inv13-filter input{width:300px;margin:0;padding:7px;background:#161616;color:#ddd;border:2px ridge #62513b}.inv13-filter button{margin:0;padding:6px 15px;background:#17130f;color:#e6cf9b;border:2px ridge #705a3d}
.inv13-grid{display:grid;grid-template-columns:repeat(12,minmax(58px,1fr));grid-auto-rows:76px;border-top:1px solid #3c3c3c;border-left:1px solid #3c3c3c}.inv13-item{position:relative;border-right:1px solid #3c3c3c;border-bottom:1px solid #3c3c3c;background:linear-gradient(135deg,#151515,#090909)}.inv13-item.is-equipped{box-shadow:inset 0 0 12px #6e572a}.inv13-icon{font-size:36px;text-align:center;line-height:72px;color:#c6b184;text-shadow:0 2px #000}.inv13-item .qty{position:absolute;right:4px;bottom:3px;color:#eee}.inv13-item form{position:absolute;inset:0}.inv13-item form button{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.inv13-tip{display:none;position:absolute;z-index:50;left:45px;top:45px;width:245px;padding:12px;background:#090a0a;border:4px ridge #745a39;box-shadow:0 4px 15px #000}.inv13-tip strong,.inv13-tip small,.inv13-tip em,.inv13-tip b{display:block;margin:4px}.inv13-tip strong{color:#edcf8d;font-size:16px}.inv13-tip b{color:#6fd37b}.inv13-item:hover .inv13-tip{display:block}
.inv13-bottom{display:grid;grid-template-columns:1fr 290px;min-height:230px;border-top:4px ridge #665038;background:#080a0b}.inv13-chat{padding:10px 18px;border-right:4px ridge #665038}.inv13-chat b{color:#e4c78e}.inv13-chat p{margin:7px 0;font-family:Arial}.inv13-chat time{color:#888}.inv13-chat span{color:#41cce0}.inv13-chat input{position:absolute;left:20px;right:315px;margin-top:75px;background:#111;color:#ddd;border:2px ridge #665038}.inv13-bottom aside{padding:12px 18px}.inv13-bottom aside b{color:#e4c78e}.inv13-bottom aside p{margin:10px 0}
/* ===== V14 Inventory layout refinement ===== */
.inventory-v13{min-width:1280px;overflow-x:auto}
.inv13-main{
  grid-template-columns:610px minmax(700px,1fr);
  min-height:650px;
}
.inv13-character{
  position:relative;
  padding:12px 14px;
  overflow:hidden;
}
.inv13-charbody{
  width:370px;
  grid-template-columns:92px 174px 92px;
  gap:6px;
}
.inv13-slots>div{
  height:62px;
  padding:4px 3px;
  font-size:10px;
  overflow:hidden;
  line-height:13px;
}
.inv13-man{
  height:338px;
}
.inv13-man span{
  font-size:182px;
}
.inv13-stats{
  position:absolute;
  left:398px;
  top:112px;
  width:190px;
  margin:0;
  line-height:22px;
  font-size:14px;
}
.inv13-stats h3{
  margin:12px 0 7px;
  padding-bottom:4px;
  white-space:nowrap;
}
.inv13-stats div{
  display:flex;
  justify-content:space-between;
  gap:8px;
}
.inv13-stats div b{
  white-space:nowrap;
}
.inv13-stats a{
  display:block;
  margin-top:5px;
  line-height:18px;
}
.inv13-sets{
  clear:both;
  width:370px;
  margin-top:14px;
}
.inv13-sets b{display:block;margin-bottom:4px}
.inv13-sets button{font-size:12px}
.mini-rings{
  height:34px!important;
  min-height:34px;
}
.mini-rings b{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0!important;
  font-size:10px;
}

/* Backpack remains large but cells are a little more compact */
.inv13-bag{min-width:0;padding:10px 12px}
.inv13-tabs{grid-template-columns:repeat(8,minmax(85px,1fr))}
.inv13-tabs button{font-size:13px;padding:11px 3px}
.inv13-grid{
  grid-template-columns:repeat(12,minmax(54px,1fr));
  grid-auto-rows:70px;
}
.inv13-icon{
  font-size:32px;
  line-height:66px;
}
.inv13-tip{
  width:260px;
  left:38px;
  top:38px;
}

/* Bottom area aligned with the two-column inventory */
.inv13-bottom{
  grid-template-columns:minmax(800px,1fr) 290px;
  min-height:210px;
}
.inv13-chat{
  position:relative;
  min-width:0;
}
.inv13-chat input{
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  width:auto;
  margin:0;
}
.inv13-bottom aside{min-width:290px}

@media(max-width:1450px){
  .inv13-main{grid-template-columns:570px minmax(680px,1fr)}
  .inv13-stats{left:382px;width:170px;font-size:13px}
  .inv13-charbody{width:355px;grid-template-columns:88px 167px 88px}
}


/* ===== V15 approved inventory composition ===== */
.inventory-v13{min-width:1360px;background:#090a0a}
.inv13-top{height:86px;padding:8px 18px;background:linear-gradient(#211d18,#090909);border-bottom:4px ridge #765936}
.inv13-logo{width:300px;font-size:36px}
.inv13-top nav{gap:4px;margin-left:28px}.inv13-top nav a{padding:12px 20px}
.inv13-main{grid-template-columns:590px minmax(760px,1fr);min-height:650px}
.inv13-character{position:relative;padding:12px 14px}
.inv13-name{font-size:22px}
.inv13-hp{width:360px;height:22px}
.inv13-charbody{width:370px;grid-template-columns:92px 174px 92px;gap:6px}
.inv13-man{height:365px}
.inv13-man span{font-size:190px}
.inv13-slots>div{height:65px}
.inv13-slots.right .mini-rings{height:38px!important;margin-top:-1px}
.inv13-slots.right .mini-rings b{font-size:12px}
.inv13-stats{
  left:395px;top:128px;width:175px;
  font-size:14px;line-height:23px;
}
.inv13-stats h3{margin:14px 0 8px;font-size:17px}
.inv13-stats div{display:flex;justify-content:space-between}
.inv13-sets{width:370px;margin-top:16px}
.inv13-bag{padding:10px 12px}
.inv13-grid{grid-template-columns:repeat(12,minmax(58px,1fr));grid-auto-rows:72px}
.inv13-bottom{
  height:250px;min-height:250px;
  grid-template-columns:minmax(900px,1fr) 290px;
  border-top:4px ridge #665038;
}
.inv13-chat{position:relative;padding:12px 18px 52px}
.inv13-chat p{margin:7px 0}
.inv13-compose{
  position:absolute;left:12px;right:12px;bottom:10px;
  display:grid;grid-template-columns:1fr 125px;gap:8px;
}
.inv13-compose input{
  position:static!important;left:auto!important;right:auto!important;bottom:auto!important;
  width:100%!important;margin:0!important;height:34px;
  background:#111;color:#ddd;border:2px ridge #665038;padding:6px 10px;
}
.inv13-compose button{
  margin:0;height:34px;background:#17130f;color:#e6cf9b;border:3px ridge #705a3d;
}
.inv13-bottom aside{padding:12px 18px;border-left:0}


/* ===== V16: единая левая панель game.php + inventory.php ===== */
.shared-character-panel .fslot,
.shared-character-panel .ring-mini{
  text-decoration:none;
}

/* На странице инвентаря используем буквально ту же hero-panel,
   только даём ей место внутри левой колонки. */
.inventory-v13 .inv13-main{
  grid-template-columns:320px minmax(900px,1fr) !important;
}
.inventory-v13 .inventory-character-column{
  width:320px;
  background:#090a0a;
  border-right:4px ridge #665038;
}
.inventory-v13 .shared-character-panel{
  width:100%;
  min-height:690px;
  border-left:0;
  border-top:0;
  border-right:0;
  box-shadow:none;
}
.inventory-v13 .shared-character-panel .paperdoll{
  height:390px;
}
.inventory-v13 .shared-character-panel .hero-stats{
  padding-bottom:12px;
}
.inventory-v13 .inventory-character-column .inv13-sets{
  width:auto;
  margin:0 10px 12px;
  padding-top:10px;
}
.inventory-v13 .inv13-bag{
  min-width:0;
}


/* ===== V17: рубашка + броня в одной визуальной ячейке ===== */
.armor-layer-slot{
  position:relative;
  flex-direction:column;
  line-height:12px;
}
.armor-layer-slot .layer-mark{
  display:block;
  margin-top:2px;
  color:#9f875e;
  font:8px Arial;
  white-space:nowrap;
}
/* Инвентарь использует ту же панель и ту же ширину, что первая страница */
.inventory-v13 .inventory-character-column{width:320px!important}
.inventory-v13 .shared-character-panel{width:320px!important}

/* ===== V18: сворачиваемые расширенные характеристики ===== */
.shared-character-panel{overflow:visible}
.hero-summary{padding-bottom:8px}
.advanced-stats{margin:0 10px 14px;border-top:2px ridge #6d5637;font:12px Arial;color:#ddd}
.stat-section{border-bottom:1px solid #493b2b;background:#0b0c0c}
.stat-section summary{list-style:none;cursor:pointer;padding:8px 8px;color:#e4c98e;font:bold 13px Georgia;background:linear-gradient(#191713,#0a0a0a);user-select:none}
.stat-section summary::-webkit-details-marker{display:none}
.stat-section summary span{float:right;color:#9b8157;transition:transform .15s}
.stat-section[open] summary span{transform:rotate(180deg)}
.stat-lines{padding:5px 8px 8px}
.stat-lines div{display:flex;justify-content:space-between;gap:10px;min-height:20px;line-height:20px;border-bottom:1px dotted #2d2d2d}
.stat-lines div:last-child{border-bottom:0}
.stat-lines b{font-weight:normal;color:#c8c8c8}
.stat-lines em{font-style:normal;color:#f0d8a2;white-space:nowrap}
.inventory-v13 .shared-character-panel{min-height:0!important}
/* ===== V19: чат всегда закреплён внизу окна ===== */

/* Главная страница */
body.fantasy-ui{
  padding-bottom:270px !important;
}
body.fantasy-ui .fantasy-chat{
  position:fixed !important;
  left:8px !important;
  right:8px !important;
  bottom:5px !important;
  width:auto !important;
  height:255px !important;
  min-height:255px !important;
  max-height:255px !important;
  margin:0 !important;
  z-index:1000 !important;
  box-shadow:0 -4px 16px rgba(0,0,0,.9), inset 0 0 10px #000;
}

/* Инвентарь: нижний чат + список игроков закреплены вместе */
body.inventory-v13{
  padding-bottom:260px !important;
}
body.inventory-v13 .inv13-bottom{
  position:fixed !important;
  left:8px !important;
  right:8px !important;
  bottom:5px !important;
  width:auto !important;
  height:245px !important;
  min-height:245px !important;
  z-index:1000 !important;
  background:#080a0b;
  border:4px ridge #665038;
  box-shadow:0 -4px 16px rgba(0,0,0,.9);
}
body.inventory-v13 .inv13-chat{
  height:100%;
  overflow:hidden;
}
body.inventory-v13 .inv13-bottom aside{
  height:100%;
  overflow:auto;
}

/* Контент не прячется за закреплённым чатом */
body.fantasy-ui .fantasy-grid{
  margin-bottom:0;
}
body.inventory-v13 .inv13-main{
  margin-bottom:0;
}


/* ===== V20: fixed + resizable chat ===== */
.fixed-chat-resizer{
  position:fixed;
  left:8px;
  right:8px;
  height:12px;
  z-index:1100;
  cursor:ns-resize;
  touch-action:none;
  background:
    linear-gradient(to bottom,
      transparent 0,transparent 3px,
      #4c3821 3px,#d0a35b 5px,#4c3821 7px,
      transparent 7px);
}
.fixed-chat-resizer::after{
  content:"⋯";
  position:absolute;
  left:50%; top:-8px;
  transform:translateX(-50%);
  color:#d9b36d;
  font:bold 18px Georgia;
  text-shadow:0 1px #000;
}
.fixed-chat-resizer:hover,
.fixed-chat-resizer:focus{
  outline:none;
  background:
    linear-gradient(to bottom,
      transparent 0,transparent 2px,
      #7b5a31 2px,#f0c778 5px,#7b5a31 8px,
      transparent 8px);
}
body.fixed-chat-dragging{
  cursor:ns-resize!important;
  user-select:none!important;
}

/* ===== V21 battle prototype ===== */
.battle-v21{margin:0;background:#090a0a;color:#ddd;font:15px Georgia}
.battle21-shell{max-width:1150px;margin:25px auto;border:4px ridge #765b38;background:#0d0e0e;padding:14px}
.battle21-head{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #665038;padding:0 5px 10px}.battle21-head a{color:#e4c98e}.battle21-head h1{margin:0;color:#e6ce99}
.battle21-fighters{display:grid;grid-template-columns:1fr 90px 1fr;gap:20px;text-align:center;padding:20px}.battle21-fighters section{border:3px ridge #705a3d;padding:12px;background:#0a0b0b}.battle21-vs{align-self:center;font:bold 30px Georgia;color:#d2a85d}
.battle21-hp{height:24px;position:relative;background:#3d0606;border:2px ridge #6f5739}.battle21-hp i{display:block;height:100%;background:linear-gradient(#e13b35,#9b0808)}.battle21-hp b{position:absolute;inset:0;line-height:21px;color:#fff}
.battle21-man{font-size:180px;color:#777;line-height:210px;transform:scaleX(.7)}.battle21-man.enemy{color:#666}
.battle21-controls{display:grid;grid-template-columns:1fr 1fr 180px;gap:18px;border-top:2px solid #665038;border-bottom:2px solid #665038;padding:15px}.battle21-controls h3{color:#e3c687}.battle21-controls label{display:block;margin:7px}.battle21-controls select{margin-left:8px;background:#111;color:#eee;border:2px ridge #705a3d;padding:5px}.battle21-controls button,.battle21-new button{background:#1b160f;color:#efd59c;border:3px ridge #765b38;font:bold 16px Georgia;padding:12px;align-self:center}
.battle21-blocks{display:grid;grid-template-columns:1fr 1fr}.battle21-log{padding:10px 18px;max-height:250px;overflow:auto}.battle21-log h3{color:#e3c687}.battle21-log p{margin:5px 0;border-bottom:1px dotted #333;padding-bottom:4px}.battle21-new{text-align:center;padding:15px}

/* ===== V22: BK-style battle in L2Combats theme ===== */
.battle-v22{margin:0;min-width:1250px;background:#0a0b0b;color:#ddd;font:14px Georgia,"Times New Roman",serif}
.battle22-top{height:76px;display:flex;align-items:center;gap:22px;padding:7px 18px;background:linear-gradient(#241d17,#080808);border-bottom:4px ridge #725536}
.battle22-logo{width:270px;padding:6px 15px;color:#ead39b;border:3px ridge #765a38;font-size:32px;background:#17110d}.battle22-logo small{display:block;text-align:center;font-size:12px}
.battle22-top nav{display:flex;gap:5px}.battle22-top a{color:#ead5a6;text-decoration:none}.battle22-top nav a,.battle22-exit{padding:11px 19px;border:3px ridge #655039;background:#171717}.battle22-top nav .active{background:#5c170f}.battle22-exit{margin-left:auto}
.battle22-arena{display:grid;grid-template-columns:285px minmax(650px,1fr) 285px;gap:12px;padding:12px;min-height:650px}
.battle22-side{border:3px ridge #735838;background:#0c0d0d;padding:9px}.battle22-name{font-size:18px;color:#ead5a7;border-bottom:1px solid #665039;padding:4px}.battle22-name span{color:#6ea4df}
.battle22-hp{height:20px;position:relative;margin:6px 3px;background:#410707;border:2px ridge #6c5538}.battle22-hp i{display:block;height:100%;background:linear-gradient(#e63e37,#9c0808)}.battle22-hp b{position:absolute;inset:0;text-align:center;line-height:17px;color:white}
.battle22-paper{display:grid;grid-template-columns:65px 1fr 65px;gap:5px;margin-top:9px}.battle22-mini-slots{display:flex;flex-direction:column;gap:5px}.battle22-mini-slots span{height:53px;display:flex;align-items:center;justify-content:center;text-align:center;font-size:9px;color:#cbb88d;border:2px ridge #71583a;background:linear-gradient(135deg,#292929,#0b0b0b)}
.battle22-man{height:300px;display:flex;align-items:center;justify-content:center;border:2px ridge #71583a;background:radial-gradient(#242424,#050505);font-size:170px;color:#777;transform:none}.battle22-man.enemy-man{color:#665f59}.battle22-damage{text-align:center;color:#d8c18d}
.battle22-center{border:3px ridge #735838;background:#0b0c0c;padding:12px}
.battle22-rounds{display:flex;justify-content:center;gap:3px;margin-bottom:8px}.battle22-rounds i{width:28px;height:18px;border:1px solid #4c4c4c;background:#191919;color:#777;text-align:center;font-style:normal;font-size:10px;line-height:18px}.battle22-rounds i.active{background:#76552d;color:#ffe0a0}
.battle22-controls{display:grid;grid-template-columns:1fr 1fr;gap:22px;max-width:650px;margin:0 auto}.battle22-choice h3{text-align:center;margin:4px;color:#e6ca91;border-bottom:1px solid #665039;padding:5px}.battle22-choice h3 small{font-size:11px}.battle22-choice fieldset{border:0;margin:0;padding:3px 0 8px}.battle22-choice legend{color:#9f875c;font-size:11px}.battle22-choice label{display:block;padding:4px 8px}.battle22-choice input{accent-color:#a27a3c}
.battle22-actionbar{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:18px;border-top:2px solid #665039;border-bottom:2px solid #665039;padding:8px}.battle22-actionbar button{padding:7px 18px;background:#20180f;color:#f0d59a;border:3px ridge #755b3c;font:bold 13px Georgia}
.battle22-mods{display:flex;justify-content:center;gap:14px;padding:8px;color:#d8c08c}.battle22-mods span{padding:3px 7px;border:1px solid #403628;background:#111}
.battle22-versus{text-align:center;padding:9px;border-top:1px solid #44382a;border-bottom:1px solid #44382a;color:#c8b58f}.battle22-versus b:first-child{color:#6fa8e8}.battle22-versus b:last-child{color:#e4a75d}
.battle22-log{max-width:780px;margin:10px auto 0;min-height:180px;max-height:300px;overflow:auto;padding:8px 12px;background:#090a0a;border-top:1px solid #3b3329}.battle22-log p{margin:5px 0;padding-bottom:4px;border-bottom:1px dotted #2c2c2c}
.battle22-footer{display:flex;justify-content:center;gap:30px;padding:9px;border-top:3px ridge #735838;background:#0b0c0c}.battle22-footer a{color:#e3c68c}

/* ===== V23: нормальный компактный интерфейс боя ===== */
.battle-v22{min-width:1180px}
.battle22-top{height:82px}
.battle22-arena{
  grid-template-columns:300px minmax(620px,820px) 300px !important;
  justify-content:space-between;
  align-items:start;
  gap:16px;
  min-height:610px;
  padding:12px 14px;
}
.battle22-side{
  min-height:570px;
  padding:10px;
}
.battle22-paper{
  grid-template-columns:70px 1fr 70px;
}
.battle22-mini-slots span{
  height:58px;
  font-size:10px;
}
.battle22-man{
  height:330px;
  font-size:185px;
  line-height:330px;
}
.battle22-center{
  width:100%;
  max-width:820px;
  min-height:565px;
  margin:0 auto;
  padding:14px 20px;
  box-sizing:border-box;
}
.battle22-rounds{
  margin:0 auto 14px;
  gap:4px;
}
.battle22-rounds i{
  width:34px;
  height:22px;
  line-height:22px;
  font-size:11px;
}
.battle22-controls{
  max-width:760px;
  grid-template-columns:1fr 1fr;
  gap:34px;
}
.battle22-choice h3{
  font-size:18px;
  padding:8px;
  margin-bottom:8px;
}
.battle22-choice fieldset{
  padding:4px 8px 10px;
}
.battle22-choice legend{
  font-size:13px;
}
.battle22-choice label{
  padding:6px 10px;
  font-size:14px;
  line-height:18px;
}
.battle22-choice input[type=radio],
.battle22-choice input[type=checkbox]{
  width:16px;
  height:16px;
  vertical-align:-3px;
  margin-right:8px;
}
.battle22-actionbar{
  margin-top:8px;
  padding:11px;
  gap:28px;
  font-size:16px;
}
.battle22-actionbar button{
  min-width:125px;
  padding:10px 22px;
  font-size:16px;
}
.battle22-mods{
  gap:8px;
  flex-wrap:wrap;
  padding:10px 4px;
}
.battle22-mods span{
  min-width:64px;
  text-align:center;
  font-size:13px;
}
.battle22-versus{
  margin-top:2px;
  padding:11px;
  font-size:14px;
}
.battle22-log{
  max-width:none;
  width:100%;
  min-height:150px;
  max-height:205px;
  margin:10px 0 0;
  box-sizing:border-box;
  border:2px ridge #55432d;
  padding:10px 14px;
}
.battle22-log p{
  font-size:13px;
  line-height:18px;
}
.battle22-footer{
  font-size:13px;
  padding:10px;
}

/* На 1366–1500px немного ужимаем боковые панели, но центр боя остаётся читаемым */
@media(max-width:1500px){
 .battle22-arena{grid-template-columns:260px minmax(600px,1fr) 260px}
 .battle22-paper{grid-template-columns:58px 1fr 58px}
 .battle22-mini-slots span{font-size:9px}
 .battle22-man{font-size:160px}
}

/* ===== V24: компактные атаки и готовые комбинации блока ===== */
.battle22-controls{
  max-width:620px!important;
  gap:18px!important;
}
.battle24-attack,.battle24-defence{
  min-width:0;
}
.battle22-choice h3{
  font-size:14px!important;
  padding:4px!important;
  margin:2px 0 5px!important;
}
.battle24-zone-list,.battle24-block-list{
  padding:2px 4px;
}
.battle24-zone-row{
  display:grid;
  grid-template-columns:54px 1fr;
  align-items:center;
  min-height:30px;
  font-size:13px;
}
.battle24-attack-picks{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  padding-right:8px;
}
.battle24-attack-picks label{
  margin:0!important;padding:0!important;
}
.battle24-attack-picks input,
.battle24-block-list input{
  width:15px!important;height:15px!important;margin:0 7px 0 0!important;
}
.battle24-block-list label{
  display:flex!important;
  align-items:center;
  min-height:30px;
  padding:0 5px!important;
  margin:0!important;
  font-size:13px!important;
}
.battle22-actionbar{
  margin-top:5px!important;
  padding:7px!important;
}

/* ===== V25: battle polish, shared chat, refresh, colored combat log ===== */
.battle22-rounds{display:none!important}
.battle-v22{padding-bottom:230px!important;overflow-x:hidden}
.battle22-arena{
  grid-template-columns:285px minmax(600px,820px) 285px!important;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.battle22-side{min-width:0;overflow:hidden}
.battle22-paper{grid-template-columns:62px minmax(100px,1fr) 62px!important}
.battle22-mini-slots span{max-width:100%;overflow:hidden;word-break:break-word}
.battle22-side.enemy{margin-right:0}
.battle25-refresh{
  min-width:38px!important;width:38px;height:38px;padding:0!important;
  font:bold 24px Georgia!important;line-height:30px;
  color:#e9cd92!important;background:#15120e!important;border:3px ridge #765b38!important;
  cursor:pointer;
}
.battle25-refresh:hover{filter:brightness(1.25)}
.battle-event-player_hit{color:#5fa9ff!important}
.battle-event-enemy_hit{color:#e5a44e!important}
.battle-event-crit{color:#ff4b45!important;font-weight:bold}
.battle-event-dodge{color:#70d8ff!important}
.battle-event-parry{color:#42d7d0!important}
.battle-event-block{color:#b8c2cc!important}
.battle-event-shield{color:#f0d080!important}
.battle-event-win{color:#75db75!important;font-weight:bold}
.battle-event-loss{color:#e57878!important;font-weight:bold}
.battle-event-system{color:#bdbdbd!important}
.battle25-chat{
  position:fixed!important;left:8px!important;right:8px!important;bottom:5px!important;
  height:210px!important;min-height:210px!important;max-height:210px!important;
  display:grid!important;grid-template-columns:minmax(700px,1fr) 260px!important;
  z-index:1000!important;background:#080a0b;border:4px ridge #665038;
  box-shadow:0 -4px 16px rgba(0,0,0,.9);
}
.battle25-chat .inv13-chat{position:relative;padding:10px 14px 50px;border-right:3px ridge #665038;overflow:hidden}
.battle25-chat .inv13-chat b,.battle25-chat aside b{color:#e4c78e}
.battle25-chat .inv13-chat p{margin:6px 0;font-family:Arial;font-size:13px}
.battle25-chat .inv13-chat time{color:#888}.battle25-chat .inv13-chat span{color:#41cce0}
.battle25-chat .inv13-compose{position:absolute;left:10px;right:10px;bottom:8px;display:grid;grid-template-columns:1fr 110px;gap:7px}
.battle25-chat .inv13-compose input{height:30px;background:#111;color:#ddd;border:2px ridge #665038;padding:4px 8px}
.battle25-chat .inv13-compose button{height:30px;background:#17130f;color:#e6cf9b;border:2px ridge #705a3d}
.battle25-chat aside{padding:10px 14px;overflow:auto}.battle25-chat aside p{margin:8px 0}
@media(max-width:1350px){
 .battle22-arena{grid-template-columns:245px minmax(560px,1fr) 245px!important}
 .battle22-paper{grid-template-columns:52px minmax(90px,1fr) 52px!important}
}

/* ===== V26 clean battle + chat/system log + AI ===== */
.battle-v22 .battle22-side,.battle-v22 .battle22-center{border:none!important;box-shadow:none!important;background:#0a0b0b!important}
.battle-v22 .battle22-paper,.battle-v22 .battle22-man,.battle-v22 .battle22-mini-slots span{border:none!important;box-shadow:none!important}
.battle-v22 .battle22-mini-slots span{background:linear-gradient(135deg,#202020,#0b0b0b)!important}
.battle-v22 .battle22-man{background:radial-gradient(#222,#090909)!important}
.battle22-log{display:none!important}
.battle26-chat{display:flex;flex-direction:column;min-width:0}
.battle26-tabs{height:34px;flex:0 0 34px;display:flex;border-bottom:2px ridge #665038;background:#0c0d0d}
.battle26-tabs button{min-width:135px;margin:0;padding:6px 15px;border:0;border-right:1px solid #4d3d2b;background:#111;color:#bda77c;font:bold 13px Georgia}
.battle26-tabs button.active{background:linear-gradient(#332617,#15110c);color:#f0d69d}
.battle26-tabs span{margin-left:5px;padding:1px 5px;border-radius:9px;background:#542017;color:#f1c0a7;font:10px Arial}
.battle26-pane{display:none;flex:1;min-height:0;overflow:auto;padding:8px 12px 48px}.battle26-pane.active{display:block}
.battle26-event{padding:6px 4px;border-bottom:1px solid #252525;font:13px Arial}.battle26-main{display:flex;gap:7px;align-items:baseline}
.battle26-main time{color:#777!important;font-size:11px}.battle26-main small{color:#9c8358;font-size:10px}.battle26-main b{font-weight:600}
.battle26-ai{margin:3px 0 0 68px;color:#a995c4;font:italic 12px Arial}
.battle26-event.battle-event-player_hit .battle26-main b{color:#5fa9ff}.battle26-event.battle-event-enemy_hit .battle26-main b{color:#e5a44e}
.battle26-event.battle-event-crit .battle26-main b{color:#ff4b45}.battle26-event.battle-event-dodge .battle26-main b{color:#70d8ff}
.battle26-event.battle-event-parry .battle26-main b{color:#42d7d0}.battle26-event.battle-event-block .battle26-main b{color:#b8c2cc}
.battle26-event.battle-event-shield .battle26-main b{color:#f0d080}.battle26-event.battle-event-win .battle26-main b{color:#75db75}
.battle26-event.battle-event-loss .battle26-main b{color:#e57878}.battle26-event.battle-event-system .battle26-main b{color:#bbb}

/* ===== V27: battle lock + 3 minute timeout ===== */
.battle27-locked{
  color:#8d806a!important;
  cursor:not-allowed!important;
  opacity:.72;
  text-decoration:none;
}
.battle22-top nav .battle27-locked{
  padding:11px 19px;
  border:3px ridge #4c4439;
  background:#111;
}
.battle27-timer{
  min-width:58px;
  padding:7px 8px;
  text-align:center;
  color:#e9cf98;
  background:#120e0a;
  border:2px ridge #6d5437;
  font:bold 13px Consolas,monospace;
}
.battle27-timer.warning{color:#ff7b68}

/* ===== V28 Arena ===== */
.arena-v28{margin:0;min-width:1100px;background:#090a0a;color:#ddd;font:14px Georgia}
.arena28-top{height:76px;display:flex;align-items:center;padding:7px 18px;background:linear-gradient(#241d17,#080808);border-bottom:4px ridge #725536}
.arena28-logo{width:270px;padding:6px 15px;color:#ead39b;border:3px ridge #765a38;font-size:32px;background:#17110d}.arena28-logo small{display:block;text-align:center;font-size:12px}
.arena28-top nav{display:flex;gap:5px;margin-left:24px}.arena28-top nav a,.arena28-back{padding:11px 19px;color:#ead5a6;text-decoration:none;border:3px ridge #655039;background:#171717}.arena28-top nav .active{background:#5c170f}.arena28-back{margin-left:auto}
.arena28-tabs{display:grid;grid-template-columns:80px repeat(7,1fr);align-items:stretch;border-bottom:3px ridge #705638;background:#101111}.arena28-tabs>b{padding:13px;color:#e5cb91}.arena28-tabs a{text-align:center;padding:13px 5px;color:#bfa979;text-decoration:none;border-left:1px solid #453a2c}.arena28-tabs a.active{background:linear-gradient(#3a2a17,#17110b);color:#f2d79a}
.arena28-content{max-width:1150px;margin:22px auto;padding:0 16px}.arena28-card{border:3px ridge #705638;background:#0d0e0e;padding:18px}.arena28-card h2{margin-top:0;color:#e4c98e}.arena28-card p{color:#aaa}
.arena28-opponent{display:flex;align-items:center;gap:16px;margin-top:20px;padding:14px;border-top:1px solid #4b3b29;border-bottom:1px solid #4b3b29}.arena28-opponent>span{font-size:42px;color:#a08c68}.arena28-opponent div{display:flex;flex-direction:column;gap:4px}.arena28-opponent div b{color:#e4cf9f}.arena28-opponent small{color:#888}.arena28-opponent a{margin-left:auto;padding:10px 18px;color:#f0d59a;text-decoration:none;background:#1d160f;border:3px ridge #765b38}
.arena28-empty{margin-top:18px;padding:28px;text-align:center;color:#777;border:1px solid #34302a;background:#0a0b0b}
.battle28-finished{position:fixed;left:50%;top:90px;transform:translateX(-50%);z-index:1300;padding:10px 22px;color:#f0d59a;background:#14100c;border:3px ridge #765b38;box-shadow:0 4px 15px #000}

/* ===== V29 progression, APs and mastery ===== */
.progression-summary{margin:6px 10px 10px;padding:8px;border-top:1px solid #5f4a30;border-bottom:1px solid #5f4a30;font:12px Arial}
.progression-summary div{display:flex;justify-content:space-between;line-height:20px}.progression-summary b{font-weight:normal;color:#c8c8c8}.progression-summary span{color:#f0d8a2}
.inline-plus{display:inline!important;margin:0 0 0 4px!important}
.inline-plus button{width:19px;height:19px;margin:0!important;padding:0!important;line-height:14px;background:#21180e;color:#efcf8e;border:2px ridge #765b38;font-weight:bold}
.mastery-lines em{display:flex;align-items:center}
.xp-table{width:100%;border-collapse:collapse;margin-top:18px}.xp-table th,.xp-table td{padding:8px 10px;border:1px solid #54432d;text-align:left}.xp-table th{color:#e7cb90;background:#17130f}.xp-table tr:nth-child(even){background:#111}

/* ===== V31 Skills ===== */
.skills-v31{margin:0;min-width:1100px;background:#090a0a;color:#ddd;font:14px Georgia}
.skills31-top{height:76px;display:flex;align-items:center;padding:7px 18px;background:linear-gradient(#241d17,#080808);border-bottom:4px ridge #725536}
.skills31-logo{width:270px;padding:6px 15px;color:#ead39b;border:3px ridge #765a38;font-size:32px;background:#17110d}.skills31-logo small{display:block;text-align:center;font-size:12px}
.skills31-top nav{display:flex;gap:5px;margin-left:24px}.skills31-top nav a,.skills31-back{padding:11px 19px;color:#ead5a6;text-decoration:none;border:3px ridge #655039;background:#171717}.skills31-top nav .active{background:#5c170f}.skills31-back{margin-left:auto}
.skills31-main{max-width:1050px;margin:22px auto;padding:0 16px;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.skills31-summary{grid-column:1/-1;padding:15px 20px;border:3px ridge #705638;background:#0d0e0e}.skills31-summary h1{margin:0 0 12px;color:#ead19a}.skills31-summary h1 span{color:#6fa4df}.skills31-summary>div{display:flex;justify-content:space-between;max-width:420px;line-height:24px}.skills31-summary strong{color:#f0cf8b}.skills31-summary p{color:#8e8e8e;margin-bottom:0}
.skills31-panel{border:3px ridge #705638;background:#0c0d0d;padding:12px}.skills31-panel h2{margin:0 0 9px;color:#e2c58b;font-size:18px;border-bottom:1px solid #59462f;padding-bottom:7px}
.skills31-row{display:grid;grid-template-columns:1fr 42px 34px;gap:7px;align-items:center;min-height:52px;padding:5px 3px;border-bottom:1px solid #292929}.skills31-row:last-child{border-bottom:0}.skills31-row b{display:block;color:#ddd}.skills31-row small{display:block;color:#777;font:11px Arial;margin-top:3px}.skills31-row>span{text-align:center;color:#f0d59b;font:bold 16px Georgia}
.skills31-row form{margin:0}.skills31-row button{width:30px;height:30px;margin:0;padding:0;background:#20170e;color:#efcf8e;border:3px ridge #765b38;font:bold 18px Georgia}.skills31-row button:disabled{opacity:.3;cursor:not-allowed}

/* ===== V32 stat bonuses ===== */
.skills31-row{min-height:66px}
.skills31-row small{line-height:15px;max-width:360px}

/* V33 techniques */
.skills33-tabs{display:flex;justify-content:center;border-bottom:3px ridge #665038;background:#0b0c0c}.skills33-tabs a{min-width:180px;text-align:center;padding:11px;color:#bda77b;text-decoration:none}.skills33-tabs a.active{background:#332417;color:#f0d69d}
.skills33-tech{max-width:1120px;margin:18px auto}.skills33-box{margin-bottom:14px;padding:12px;border:3px ridge #705638;background:#0c0d0d}.skills33-box h2{color:#e4c98e}.skills33-slots{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}.skills33-slots>div{height:70px;position:relative;display:flex;align-items:center;justify-content:center;text-align:center;border:2px ridge #594832;background:#111}.skills33-slots b{position:absolute;left:3px;top:2px;font-size:9px;color:#6e604b}.skills33-slots span{font-size:10px;color:#dbc492}.skills33-slots em{font-size:10px;color:#555}.skills33-slots form{position:absolute;right:1px;top:1px}.skills33-slots button{margin:0;padding:0;width:18px;height:18px}
.skills33-filter{display:flex;gap:5px;margin-bottom:10px}.skills33-filter button{margin:0;padding:7px 14px;background:#15120e;color:#d1ba88;border:2px ridge #655039}.skills33-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.skills33-grid article{min-height:220px;padding:10px;border:2px ridge #5d4931;background:#101111}.skills33-grid article.locked{opacity:.48}.tech-icon{font-size:28px;color:#d6b66e}.skills33-grid h3{color:#e5ca91;margin:6px 0}.skills33-grid p{min-height:45px;color:#aaa}.skills33-grid small{display:block;color:#777;margin-bottom:10px}.skills33-grid form{margin-top:8px}.skills33-grid button,.skills33-grid select{padding:6px;background:#17130f;color:#e6cf9b;border:2px ridge #705a3d}

/* V33 expanded library: 144 techniques + icons */
.skills34-tech{max-width:1480px;margin:14px auto;padding:0 12px}
.skills34-slots,.skills34-library{background:#0c0d0d;border:3px ridge #705638;padding:10px;margin-bottom:10px}
.skills34-slots h2{color:#e4c98e;margin:0 0 8px}.skills34-slots>div{display:grid;grid-template-columns:repeat(10,1fr);gap:5px}
.skills34-slots article{height:66px;position:relative;display:flex;align-items:center;justify-content:center;gap:4px;border:2px ridge #594832;background:#111}
.skills34-slots article img{width:38px;height:38px}.skills34-slots article span{font-size:9px;color:#dbc492}.skills34-slots article form{position:absolute;right:1px;top:1px}.skills34-slots article button{width:18px;height:18px;padding:0;margin:0}
.skills34-mode{display:flex;margin-bottom:7px}.skills34-mode button,.skills34-cats button{margin:2px;padding:6px 10px;background:#121313;color:#a99978;border:2px ridge #5d4a32;font:bold 11px Arial}.skills34-mode button.active,.skills34-cats button.active{background:#392617;color:#f0d49a}
.skills34-cats{display:flex;flex-wrap:wrap;border:1px solid #332b22;padding:4px;margin-bottom:7px}.skills34-search{width:100%;box-sizing:border-box;height:30px;background:#121313;color:#ddd;border:1px solid #54432e;padding:5px 9px;margin-bottom:8px}
.skills34-icons{display:grid;grid-template-columns:repeat(auto-fill,48px);gap:6px;align-items:start}.skills34-techicon{width:48px;height:48px;position:relative}.skills34-techicon>img{width:48px;height:48px;display:block}.skills34-techicon.locked>img{filter:grayscale(1);opacity:.28}
.skills34-techicon.available>img{box-shadow:0 0 8px rgba(207,168,92,.45)}.skills34-tip{display:none;position:absolute;left:52px;top:0;width:280px;z-index:100;padding:10px;background:#101111;border:3px ridge #705638;box-shadow:0 5px 18px #000}.skills34-techicon:hover .skills34-tip{display:block}.skills34-techicon:nth-child(n+18) .skills34-tip{top:auto;bottom:0}
.skills34-tip h3{margin:0 0 6px;color:#e6ca91}.skills34-tip p{color:#bbb}.skills34-tip small{display:block;color:#888;margin:6px 0}.skills34-tip strong{display:block;color:#d0b476;margin-bottom:7px}.skills34-tip button,.skills34-tip select{padding:5px;background:#17130f;color:#e6cf9b;border:2px ridge #705a3d}

/* ===== V35 drag & drop techniques ===== */
.skills35-tech{max-width:1500px;margin:12px auto;padding:0 12px}.skills35-slots,.skills35-library{background:#090b0c;border:2px solid #76582f;padding:10px;margin-bottom:10px}
.skills35-slothead{display:flex;justify-content:space-between;align-items:center}.skills35-slothead h2{margin:0 0 8px;color:#e9cc8e}.skills35-slothead span{color:#a88b59;font-size:12px}
.skills35-slotgrid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.skills35-slot{height:68px;position:relative;display:flex;align-items:center;justify-content:center;gap:5px;border:2px solid #7a5a2d;background:linear-gradient(#151515,#090909)}.skills35-slot.dragover{box-shadow:inset 0 0 18px #d99d38;border-color:#f0c66e}.skills35-slot img{width:48px;height:48px;cursor:grab}.skills35-slot small{font-size:9px;color:#cdb77f;max-width:65px}.skills35-slot>b{color:#ddd}.skills35-slot button{position:absolute;right:2px;top:2px;width:18px;height:18px;padding:0;background:#260d0d;color:#e1a0a0;border:1px solid #744}
.skills35-toolbar{display:flex;justify-content:space-between;gap:10px}.skills35-mode button,.skills35-cats button{padding:7px 12px;margin:2px;background:#111;color:#bca779;border:1px solid #785a31}.skills35-mode button.active,.skills35-cats button.active{background:linear-gradient(#65451e,#2a1b0d);color:#ffe0a1}.skills35-toolbar input{width:310px;background:#101112;color:#ddd;border:1px solid #57452d;padding:7px}
.skills35-cats{display:flex;flex-wrap:wrap;margin:7px 0;border:1px solid #29241d;padding:4px}.skills35-icons{display:grid;grid-template-columns:repeat(auto-fill,54px);gap:6px}.skills35-icon{width:54px;height:54px;position:relative}.skills35-icon>img{width:52px;height:52px;border-radius:5px}.skills35-icon.available>img{cursor:grab;filter:saturate(1.35) brightness(1.12);box-shadow:0 0 8px #9d6c25}.skills35-icon.locked>img{filter:grayscale(1) brightness(.35);opacity:.65}
.skills35-tip{display:none;position:absolute;left:58px;top:0;width:290px;z-index:500;background:#0c0e0f;border:2px solid #89642f;padding:10px;box-shadow:0 7px 22px #000}.skills35-icon:hover .skills35-tip{display:block}.skills35-tip h3{margin:0 0 6px;color:#edcf8d}.skills35-tip p{color:#bbb}.skills35-tip ul{padding-left:18px;color:#aaa}.skills35-tip strong{color:#69d67a}.skills35-icon.locked .skills35-tip strong{color:#d56c63}.skills35-legend{margin-top:9px;padding:7px;color:#b69a67;border-top:1px solid #493a28;font-size:11px}

/* V35 BRIGHT approved icons */
.skills35-icon>img,.skills35-slot img,.battle34-tech img{object-fit:cover;border-radius:5px;}
.skills35-icon.available>img{filter:saturate(1.25) brightness(1.08);box-shadow:0 0 10px rgba(255,180,60,.65);}

/* ===== V36 equipped source state + battle techniques ===== */
.skills35-icon.equipped>img,.skills34-techicon.equipped>img{
 filter:grayscale(1) brightness(.35)!important;
 opacity:.65!important;
 box-shadow:none!important;
 cursor:not-allowed!important;
}
.skills35-icon.equipped::after,.skills34-techicon.equipped::after{
 content:"✓";position:absolute;right:2px;bottom:2px;z-index:4;width:15px;height:15px;
 border-radius:50%;background:#171717;border:1px solid #a9864d;color:#d9bb7e;
 text-align:center;line-height:14px;font:bold 10px Arial;
}
.battle36-techbar{
 grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;
 padding:7px 5px;margin-top:5px;border-top:1px solid #4b3a27;border-bottom:1px solid #4b3a27;background:#090a0a;
}
.battle36-techbar>b{color:#e2c589;margin-right:5px}
.battle36-no-tech{height:42px;display:flex!important;align-items:center!important;padding:0 7px!important;margin:0!important;border:1px solid #59472f;background:#111;color:#9d8a68;font-size:10px!important}
.battle36-tech{position:relative;width:46px;height:46px;padding:0!important;margin:0!important;border:2px solid #62491f;background:#111;cursor:pointer}
.battle36-tech input{position:absolute;left:1px;top:1px;z-index:3;margin:0!important;accent-color:#d39d42}
.battle36-tech img{width:44px;height:44px;display:block;object-fit:cover}
.battle36-tech small{position:absolute;right:2px;bottom:1px;background:#090909;color:#e6c783;padding:0 3px;font:9px Arial}
.battle36-tech:has(input:checked){border-color:#f0bf59;box-shadow:0 0 10px #b9781f}

/* V37 */
.battle22-modifiers,.battle22-statsbar,.battle22-bonusbar{display:none!important}
.battle37-auto{min-width:54px;height:38px;margin-left:5px;padding:0 10px!important;color:#e9cf98!important;background:#17110c!important;border:3px ridge #765b38!important;font:bold 12px Georgia!important;cursor:pointer}
.battle37-auto:hover{filter:brightness(1.25)}

/* ===== V38 battle technique tooltips ===== */
.battle36-tech{position:relative!important}
.battle38-tech-tip{
 display:none;position:absolute;left:50%;bottom:54px;transform:translateX(-50%);
 width:245px;z-index:2500;padding:9px 11px;text-align:left;
 background:linear-gradient(#17130f,#090a0a);border:2px solid #8a6632;
 box-shadow:0 7px 20px #000;color:#ddd;pointer-events:none;
}
.battle36-tech:hover .battle38-tech-tip{display:block}
.battle38-tech-tip::after{
 content:"";position:absolute;left:50%;bottom:-7px;margin-left:-6px;
 border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #8a6632;
}
.battle38-tech-tip b{display:block;color:#f0cf8b;font:bold 13px Georgia;margin-bottom:5px}
.battle38-tech-tip em{display:block;color:#ddd;font:normal 12px Arial;line-height:16px}
.battle38-tech-tip i{display:block;color:#8f8069;font:normal 10px Arial;margin-top:6px;border-top:1px solid #342b20;padding-top:5px}

/* HOME FIX */
.game-layout{display:grid!important;grid-template-columns:300px minmax(620px,1fr) 230px!important;gap:8px!important;width:100%!important;visibility:visible!important;opacity:1!important}
.world-panel{display:flex!important;flex-direction:column!important;min-width:0!important;visibility:visible!important;opacity:1!important;border:3px ridge #705638!important;background:#080a0a!important}
.world-scene{display:block!important;position:relative!important;height:500px!important;min-height:500px!important;background:url('city-bg.png') center/cover no-repeat!important;visibility:visible!important;opacity:1!important}
.world-scene .location{display:block!important;position:absolute!important;z-index:10!important;min-width:125px;padding:10px 14px;text-align:center;color:#f0d59a!important;text-decoration:none!important;background:#17120d!important;border:4px ridge #765b38!important;font:bold 17px Georgia!important}
.loc-floor3{left:9%;top:14%}.loc-floor2{left:10%;top:38%}.loc-tower{left:59%;top:18%}.loc-tavern{right:5%;top:42%}.loc-club{left:8%;bottom:12%}.loc-newbie{left:43%;bottom:6%}.loc-trade{left:64%;bottom:7%}
.parchment{display:block!important;visibility:visible!important;background:#dfbf80!important;color:#2d2012!important;padding:14px 20px!important;min-height:105px!important}.parchment p{margin:2px 0!important}.parchment-actions{display:flex!important;gap:6px!important;justify-content:center!important;margin-top:10px!important}.parchment-actions a{padding:8px 18px!important;background:#17120d!important;color:#ecd39a!important;text-decoration:none!important;border:3px ridge #705638!important}
.room-users,.fantasy-chat{visibility:visible!important;opacity:1!important}.room-users{display:block!important}.fantasy-chat{display:grid!important}

/* ===== V39 remove obsolete five-box combat modifier row ===== */
.battle22-modifiers,.battle22-statsbar,.battle22-bonusbar,
.battle23-modifiers,.battle24-modifiers,.battle25-modifiers,
.battle22-center>.battle-stats,.battle22-center>.combat-stats{display:none!important}

/* ===== V40 Knowledge Base ===== */
.knowledge40{margin:0;min-width:1100px;background:#090a0a;color:#ddd;font:14px Georgia}
.knowledge40-top{height:72px;display:flex;align-items:center;padding:7px 18px;background:linear-gradient(#241d17,#080808);border-bottom:4px ridge #725536}.knowledge40-logo{width:260px;padding:5px 14px;color:#ead39b;border:3px ridge #765a38;font-size:30px;background:#17110d}.knowledge40-logo small{display:block;text-align:center;font-size:11px}.knowledge40-top nav{display:flex;gap:5px;margin-left:20px}.knowledge40-top a{padding:10px 17px;color:#ead5a6;text-decoration:none;border:2px ridge #655039;background:#171717}.knowledge40-top>a{margin-left:auto}
.knowledge40-main{max-width:1300px;margin:18px auto;display:grid;grid-template-columns:210px 1fr;gap:12px}.knowledge40-menu,.knowledge40-content{border:3px ridge #705638;background:#0c0d0d;padding:13px}.knowledge40-menu h2,.knowledge40-content h1,.knowledge40-content h2{color:#e5ca90}.knowledge40-menu a{display:block;margin:4px 0;padding:8px;color:#bda77b;text-decoration:none;border:1px solid #43382a}.knowledge40-menu a.active{background:#332417;color:#f0d69d}
.knowledge40-current{display:flex;gap:24px;align-items:center;padding:10px;border:1px solid #5c472e;background:#13100c;color:#c9b48a}.knowledge40-current strong{color:#f0d28f}.knowledge40-note{color:#8e8371}
.knowledge40-table{width:100%;border-collapse:collapse}.knowledge40-table th,.knowledge40-table td{padding:7px 9px;border:1px solid #3c3328;text-align:center}.knowledge40-table th{background:#18130e;color:#e4c88e}.knowledge40-table tr:nth-child(even){background:#0f1010}.knowledge40-table .level-row{background:#2a1d10!important;color:#f0d49a;font-weight:bold}.knowledge40-table .passed td:first-child{color:#70cf7b}.knowledge40-info{padding:12px;border:1px solid #3d3429;background:#101111;line-height:20px;color:#bbb}
