/* Панель склада продвинутой партии (22.10): деньги, вкладки, слоты, склад 5x5, карточка вещи, «Не влезло».
   Цвета и рисунки — переменные --a-* и --i-*, их ставит advinv.js из таблицы advdecor.js по теме оформления.
   Правило раскладки: рамки — border-image, и содержимое лежит строго ВНУТРИ границы рамки (срез и ширина рамки взяты из
   измерения картинки), поэтому налезть на рамку ему нечем. Значок валюты и цифры стоят по измеренным окнам плашки. */

#advInv {
  --r-common: #9aa1ab; --r-unc: #3fb36b; --r-rare: #4f8fee; --r-epic: #a76df2; --r-leg: #f0902a; --r-story: #e8c24c;
  position: fixed; top: 0; right: 0; bottom: 0; width: 372px; z-index: 41; box-sizing: border-box;
  padding: 10px 10px 10px 0; color: var(--a-tx); font: 13px/1.35 "Segoe UI", system-ui, sans-serif;
  visibility: hidden; transform: translateX(105%);
}
#advInv[hidden] { display: none; }
@media (min-width: 1024px) {
  body.has-adv-panel #advInv { visibility: visible; transform: none; }
  body.has-adv-panel #topbar:not([hidden]) { width: calc(100% - var(--nav-w) - 372px); }
  body.has-adv-panel #topbar:not([hidden]) ~ .igra-main { width: calc(100% - var(--nav-w) - 372px); }
}
@media (max-width: 1023.98px) {
  #advInv { width: min(94vw, 400px); z-index: 62; padding: 8px 8px 8px 0; transition: transform .22s ease, visibility 0s linear .22s; }
  #advInv.is-open { visibility: visible; transform: none; transition: transform .22s ease; }
  .ainv-backdrop { position: fixed; inset: 0; z-index: 61; background: rgba(6, 5, 10, .6); }
  .ainv-backdrop[hidden] { display: none; }
}
@media (prefers-reduced-motion: reduce) { #advInv { transition: none !important; } }

/* Рамка панели. Ширины сторон = срез × масштаб темы (advdecor.frameCss): внутри остаётся ровно то, что рамка оставила. */
.ainv-frame {
  box-sizing: border-box; height: 100%; position: relative;
  border: solid transparent; border-width: var(--frame-w);
  border-image: var(--i-frame) var(--frame-slice) fill / var(--frame-w) stretch;
  /* фон — узор в padding-box и сплошной цвет темы, заходящий под внутреннюю половину рамки (--fu-*, advinv.js): иначе сквозь
     полупрозрачный внутренний край картинки рамки видно то, что под панелью. Отдельного background-color нет: он взял бы
     обрезку нижнего слоя и залил бы всю рамку вместе с внешними углами. */
  background: var(--i-tile) 0 0 / 300px padding-box padding-box,
    linear-gradient(var(--a-bg), var(--a-bg)) var(--fu-l, 0px) var(--fu-t, 0px) / calc(100% - var(--fu-l, 0px) - var(--fu-r, 0px)) calc(100% - var(--fu-t, 0px) - var(--fu-b, 0px)) no-repeat border-box border-box;
  border-radius: var(--prad, 0);
  filter: drop-shadow(0 6px 24px rgba(0, 0, 0, .6));
}
.ainv-in {
  box-sizing: border-box; height: 100%; overflow-y: auto; overflow-x: hidden; padding: 6px 6px 10px; position: relative;
  scrollbar-width: thin; scrollbar-color: var(--a-bd) transparent;
  background: color-mix(in srgb, var(--a-tint) 55%, transparent); border-radius: calc(var(--prad, 0px) * .7);
}
.ainv-close { position: absolute; top: 6px; right: 6px; z-index: 3; width: 32px; height: 32px; display: inline-grid; place-items: center; border-radius: 9px; border: 1px solid var(--a-bd); background: var(--a-tint); color: var(--a-tx); cursor: pointer; }

/* Деньги: плашка (border-image на подложке) + значок в круглом окне + цифры в прямоугольном. Положения — переменные --coin-*, --win-*. */
.ainv-money { margin: 2px 0 6px; }
.ainv-plate { position: relative; height: var(--plate-h); }
.ainv-plate-bg {
  position: absolute; inset: 0; box-sizing: border-box; border: solid transparent; border-width: var(--plate-bw);
  border-image: var(--i-plate) var(--plate-slice) / var(--plate-bw) stretch; pointer-events: none;
}
.ainv-coin { position: absolute; left: var(--coin-x); top: var(--coin-y); width: var(--coin-d); height: var(--coin-d); object-fit: contain; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .55)); user-select: none; }
.ainv-ring { position: absolute; left: var(--ring-x); top: var(--ring-y); width: var(--ring-d); height: var(--ring-d); pointer-events: none; }
.ainv-win { position: absolute; left: var(--win-x); top: var(--win-y); width: var(--win-w); height: var(--win-h); box-sizing: border-box; display: flex; align-items: center; padding-left: var(--win-pad); overflow: hidden; }
.ainv-val { font: 700 calc(var(--win-fs) * var(--len-k, 1)) / 1 Consolas, "Cascadia Mono", "Courier New", monospace; color: var(--a-val); letter-spacing: 1px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ainv-cur { display: flex; align-items: baseline; gap: 8px; margin: 3px 2px 0; font-size: 11px; color: var(--a-tx2); min-height: 16px; }
.ainv-cur-name { letter-spacing: 1.6px; text-transform: uppercase; color: var(--a-tx3); font-size: 10px; }
.ainv-delta.is-plus { color: #5fd08a; font-weight: 600; }
.ainv-delta.is-minus { color: var(--a-rose); font-weight: 600; }

/* Вкладки */
.ainv-tabs { display: flex; gap: 6px; margin: 6px 0 8px; }
.ainv-tab { flex: 1; display: flex; align-items: center; justify-content: center; gap: 7px; height: 36px; border-radius: 9px; font: 600 13px/1 inherit; font-family: inherit; color: var(--a-tx2); background: var(--a-tint); border: 1px solid var(--a-bd); cursor: pointer; }
.ainv-tab[aria-selected="true"] { color: var(--a-tx); border-color: var(--a-g2); background: color-mix(in srgb, var(--a-g) 30%, var(--a-tint)); box-shadow: 0 0 10px color-mix(in srgb, var(--a-g2) 40%, transparent); }
.ainv-tab-n { display: inline-grid; place-items: center; min-width: 17px; height: 17px; padding: 0 5px; box-sizing: border-box; border-radius: 9px; font-size: 10px; line-height: 1; background: var(--a-rose); color: #fff; }

/* Заголовки секций */
.ainv-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 8px 2px 6px; min-height: 26px; }
.ainv-head h3 { display: flex; align-items: center; gap: 4px; margin: 0; font-size: 12px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase; color: var(--a-tx2); }
.ainv-head-r { display: flex; align-items: center; gap: 8px; }
.ainv-count { font-size: 11px; color: var(--a-tx3); white-space: nowrap; }

/* Клетки */
.ainv-cell {
  --c: var(--a-bd); position: relative; display: block; box-sizing: border-box; padding: 0; margin: 0; min-width: 0; min-height: 0;
  border-radius: 8px; border: 1.5px solid var(--c); background: var(--a-tint); color: var(--a-tx); font: inherit; cursor: default;
}
.ainv-cell.r-common { --c: var(--r-common); } .ainv-cell.r-unc { --c: var(--r-unc); } .ainv-cell.r-rare { --c: var(--r-rare); }
.ainv-cell.r-epic { --c: var(--r-epic); } .ainv-cell.r-leg { --c: var(--r-leg); } .ainv-cell.r-story { --c: var(--r-story); }
.ainv-cell.is-empty { border-style: dashed; border-color: color-mix(in srgb, var(--a-bd) 75%, transparent); background: color-mix(in srgb, var(--a-tint) 70%, transparent); }
.ainv-cell.is-locked {
  display: grid; place-items: center; color: var(--a-tx3); border-style: solid; border-color: color-mix(in srgb, var(--a-bd) 55%, transparent);
  background: repeating-linear-gradient(135deg, var(--a-tint) 0 6px, color-mix(in srgb, var(--a-tint) 70%, #000) 6px 12px);
}
.ainv-cell.is-locked svg { width: 46%; height: 46%; max-width: 20px; max-height: 20px; }
.ainv-cell.is-item { cursor: pointer; background: color-mix(in srgb, var(--c) 22%, var(--a-tint)); box-shadow: inset 0 0 10px color-mix(in srgb, var(--c) 40%, transparent); }
.ainv-cell.is-item:focus-visible { outline: 2px solid var(--a-g2); outline-offset: 1px; }
.ainv-cell.is-sel { outline: 2px solid var(--a-g2); outline-offset: 1px; }
.ainv-cell.is-drag { opacity: .45; }
.ainv-cell.is-empty.is-over, .ainv-slot.is-over .ainv-cell { outline: 2px dashed var(--a-g2); outline-offset: 1px; }
.ainv-pic { position: absolute; inset: 11%; display: grid; place-items: center; pointer-events: none; }
.ainv-pic img { grid-area: 1 / 1; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0, 0, 0, .5)); }
.ainv-pic img[hidden] { display: none; }
.ainv-stub { grid-area: 1 / 1; display: grid; place-items: center; width: 100%; height: 100%; color: var(--c); opacity: .9; }
.ainv-stub[hidden] { display: none; }
.ainv-stub svg { width: 64%; height: auto; max-height: 64%; }
.ainv-pic.is-wait .ainv-stub { animation: ainv-pulse 1.4s ease-in-out infinite; }
@keyframes ainv-pulse { 50% { opacity: .45; } }
@media (prefers-reduced-motion: reduce) { .ainv-pic.is-wait .ainv-stub { animation: none; } }
.ainv-cnt { position: absolute; right: 4px; top: 3px; font: 700 10px/1 Consolas, monospace; color: #fff; text-shadow: 0 1px 2px #000, 0 0 3px #000; pointer-events: none; }
.ainv-rar { position: absolute; left: 18%; right: 18%; bottom: 3px; height: 3px; border-radius: 2px; background: var(--c); pointer-events: none; }

.ainv-slots { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 5px; }
.ainv-slot { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; }
.ainv-slot .ainv-cell { width: 100%; aspect-ratio: 1; }
.ainv-slot-cap { font-size: 9px; line-height: 1; letter-spacing: .4px; text-transform: uppercase; color: var(--a-tx3); white-space: nowrap; }

.ainv-grid {
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); grid-template-rows: repeat(5, minmax(0, 1fr)); gap: 5px; padding: 7px; box-sizing: border-box;
  aspect-ratio: 1 / 1; border-radius: 12px; background: color-mix(in srgb, var(--a-tint) 60%, transparent); border: 1px solid color-mix(in srgb, var(--a-bd) 60%, transparent);
}

/* Карточка вещи: цвет редкости — имя и левая кромка */
.ainv-card { --c: var(--a-bd); margin: 8px 0 0; padding: 9px 11px; border-radius: 10px; background: var(--a-tint); border: 1px solid var(--a-bd); border-left: 3px solid var(--c); }
.ainv-card.r-common { --c: var(--r-common); } .ainv-card.r-unc { --c: var(--r-unc); } .ainv-card.r-rare { --c: var(--r-rare); }
.ainv-card.r-epic { --c: var(--r-epic); } .ainv-card.r-leg { --c: var(--r-leg); } .ainv-card.r-story { --c: var(--r-story); }
.ainv-card-top { display: flex; align-items: center; gap: 10px; }
.ainv-card-top .ainv-pic { position: relative; inset: auto; flex: none; width: 44px; height: 44px; border-radius: 8px; background: color-mix(in srgb, var(--c) 18%, var(--a-bg)); border: 1px solid var(--c); box-sizing: border-box; padding: 4px; }
.ainv-card-t { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-width: 0; }
.ainv-card-name { font-size: 14px; color: var(--c); filter: brightness(.85) contrast(1.1); overflow-wrap: anywhere; }
.ainv-chip { font-size: 10px; letter-spacing: .8px; text-transform: uppercase; padding: 1px 7px; border-radius: 9px; border: 1px solid var(--c); color: var(--c); }
.ainv-card small { font-size: 10.5px; color: var(--a-tx3); text-transform: uppercase; letter-spacing: .6px; }
.ainv-card p { margin: 5px 0 0; font-size: 12px; color: var(--a-tx2); }
.ainv-stats { color: var(--a-tx) !important; font-weight: 600; }
.ainv-fx { color: var(--a-g2) !important; }
.ainv-note { color: var(--a-tx3) !important; font-size: 11px !important; }
.ainv-actions { display: flex; gap: 6px; margin-top: 9px; flex-wrap: wrap; }
.ainv-btn { height: 28px; padding: 0 10px; border-radius: 7px; font: 600 12px/1 "Segoe UI", system-ui, sans-serif; border: 1px solid var(--a-g); color: var(--a-tx); background: color-mix(in srgb, var(--a-g) 30%, var(--a-tint)); cursor: pointer; }
.ainv-btn.is-bad { border-color: var(--a-rose); background: transparent; }
.ainv-btn.is-small { height: 24px; padding: 0 8px; font-size: 11px; }
.ainv-btn:disabled { opacity: .5; cursor: default; }
/* заявки игрока (этап 2 «На сцене»): значок «капля +N» на лечебной вещи, выбор цели, очередь со следующим ходом. Без opacity на
   состояниях (закон читаемости): занятая кнопка - пунктир, цвет текста тот же */
.ainv-heal { position: absolute; left: 3px; top: 3px; display: inline-flex; align-items: center; gap: 1px; padding: 1px 3px; border-radius: 4px; background: #14110f; color: #fff; font: 700 10px/1 Consolas, monospace; pointer-events: none; }
.ainv-heal svg { fill: #ff8f8f; stroke: #ff8f8f; }
.ainv-btn.is-off { border-style: dashed; cursor: default; }
.ainv-targets { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ainv-queue { margin-top: 10px; padding: 8px 10px; border: 1px solid var(--a-bd); border-radius: 9px; background: var(--a-tint); font-family: "Segoe UI", system-ui, sans-serif; }
.ainv-queue-h { display: block; margin-bottom: 6px; font-size: 12px; color: var(--a-tx); }
.ainv-queue-r { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 0; font-size: 12px; color: var(--a-tx); }

/* Разделитель: по ширине содержимого, по центру; сдвиг --div-dx выравнивает рисунок, у которого центр масс не в середине */
.ainv-div { display: block; position: relative; height: var(--div-h); margin: 8px 0 6px; overflow: hidden; }
.ainv-div::before { content: ""; position: absolute; inset: 0; background: var(--i-div) center / var(--div-size) no-repeat; transform: translateX(var(--div-dx, 0)); }

/* «Не влезло»: цвета темы, полоса обрезана скруглением блока */
.ainv-quar { position: relative; overflow: hidden; border-radius: 10px; padding: 0 9px 9px; box-sizing: border-box; background: color-mix(in srgb, var(--a-tint) 80%, var(--a-rose) 14%); border: 1px solid color-mix(in srgb, var(--a-rose) 55%, transparent); }
.ainv-quar-strip { display: block; height: 6px; margin: 0 -9px 3px; background: repeating-linear-gradient(135deg, var(--a-g2) 0 8px, color-mix(in srgb, var(--a-g) 22%, var(--a-bg)) 8px 16px); opacity: .85; }
.ainv-quar .ainv-head h3 { color: var(--a-rose); }
.ainv-qrow { display: flex; align-items: center; gap: 9px; padding: 5px 6px; margin-top: 5px; border-radius: 8px; background: color-mix(in srgb, var(--a-tint) 70%, transparent); }
.ainv-qrow .ainv-cell { width: 40px; height: 40px; flex: none; }
.ainv-qinfo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ainv-qinfo b { font-size: 12.5px; color: var(--c, var(--a-tx)); filter: brightness(.85); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ainv-qrow.r-common { --c: var(--r-common); } .ainv-qrow.r-unc { --c: var(--r-unc); } .ainv-qrow.r-rare { --c: var(--r-rare); }
.ainv-qrow.r-epic { --c: var(--r-epic); } .ainv-qrow.r-leg { --c: var(--r-leg); } .ainv-qrow.r-story { --c: var(--r-story); }
.ainv-qinfo small { font-size: 10.5px; color: var(--a-tx3); text-transform: uppercase; letter-spacing: .6px; }
.ainv-qbtns { display: flex; flex-direction: column; gap: 4px; }
.ainv-qbtns .ainv-btn { height: 25px; padding: 0 9px; }

.ainv-empty { margin: 10px 4px; font-size: 12px; color: var(--a-tx2); }
.ainv-msg { margin: 8px 2px 0; padding: 6px 9px; border-radius: 8px; font-size: 12px; color: var(--a-tx); border: 1px solid var(--a-rose); background: color-mix(in srgb, var(--a-rose) 14%, var(--a-tint)); }

/* Лорбук: рамка по срезам lore (завитки не перекрыты) */
.ainv-book {
  box-sizing: border-box; min-height: 320px; border: solid transparent; border-width: var(--lore-w);
  border-image: var(--i-lore) var(--lore-slice) fill / var(--lore-w) stretch; background: var(--a-bg) var(--i-tile) 0 0 / 300px; background-clip: padding-box;
}
.ainv-book.is-solo { min-height: 0; }
.ainv-book-in { padding: 4px 4px 6px; font-family: Georgia, "Times New Roman", serif; background: color-mix(in srgb, var(--a-tint) 80%, transparent); }
.ainv-book h2 { margin: 0; font-size: 20px; line-height: 1.1; color: var(--a-tx); letter-spacing: .5px; }
.ainv-book-sub { margin: 3px 0 8px; font: 11px "Segoe UI", system-ui, sans-serif; color: var(--a-tx3); letter-spacing: 1.2px; text-transform: uppercase; }
.ainv-notes { list-style: none; margin: 0 0 10px; padding: 0; border-radius: 9px; overflow: hidden; border: 1px solid var(--a-bd); font-family: "Segoe UI", system-ui, sans-serif; }
.ainv-notes:empty { display: none; }
.ainv-notes li { padding: 7px 10px; font-size: 13px; background: var(--a-tint); border-bottom: 1px solid color-mix(in srgb, var(--a-bd) 50%, transparent); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ainv-notes li:last-child { border: 0; }
.ainv-notes li.is-pinned::before { content: "★ "; color: var(--a-g2); }

/* Кнопка «Склад» в шапке партии на телефоне: значок и сумма */
.adv-panel .ainv-toggle { position: absolute; right: 8px; top: 6px; z-index: 2; }
@media (max-width: 1023.98px) { .adv-panel-head { padding-right: 112px; } }
.ainv-toggle { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--border, #444); background: var(--bg-card, rgba(0,0,0,.35)); color: inherit; font: 600 13px/1 inherit; font-family: inherit; cursor: pointer; }
.ainv-toggle[hidden] { display: none; }
@media (min-width: 1024px) { .ainv-toggle { display: none; } }

@media (min-width: 1024px) { .ainv-close { display: none; } }
/* На телефоне кнопка «×» стоит над плашкой денег, а не поверх угла окна с цифрами (замер izmer.py 22.10: на 390 она налезала на окно). */
@media (max-width: 1023.98px) { .ainv-in { padding-top: 44px; } }

/* Рисунок темы на месте блока, которого нет (30.10): у Проводника или когда игрок выключил вещи/лорбук. Занимает остаток панели, не пустое поле. */
.ainv-in.has-art { display: flex; flex-direction: column; }
.ainv-art { flex: 1 1 auto; min-height: 150px; display: grid; place-items: center; padding: 14px 10px; margin-top: 8px; }
.ainv-art .adv-art-svg { width: min(100%, 300px); height: auto; max-height: 100%; opacity: .9; }
