/* =====================================================================
   BANGBOWBING OS — THE PAUSE MENU / INVENTORY (ledger item 36, §8 + §12)
   A full-screen sheet above the panels and below the toasts. Slots are
   112px with a 2px rarity frame; the detail card sits under the grid.
   ===================================================================== */

#pause {
  position: fixed;
  inset: 0;
  z-index: 800;                 /* above #panels (30) and #hud (40), below
                                   #toasts (900) — exactly as §8 asks */
  display: grid;
  place-items: center;
  padding: 16px;
  background: rgba(5, 4, 12, 0.72);
  -webkit-backdrop-filter: blur(10px) saturate(0.8);
  backdrop-filter: blur(10px) saturate(0.8);
  animation: pmIn 0.16s var(--ease);
}
#pause[hidden] { display: none; }
@keyframes pmIn { from { opacity: 0; } }

.pm-sheet {
  position: relative;
  display: flex;
  flex-direction: column;
  width: min(1060px, 100%);
  max-height: 100%;
  border-radius: 8px;
  background: linear-gradient(180deg, #22203a 0%, #171528 56px, #131120 100%);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    0 40px 110px rgba(0, 0, 0, 0.8);
  overflow: hidden;
}

/* ------------------------------------------------------------- header --- */
.pm-head {
  flex: 0 0 auto;
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: 14px 56px 12px 18px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.14);
}
.pm-title {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 17px;
  letter-spacing: 0.14em;
  color: #ffffff;
}
.pm-meta {
  margin-left: auto;
  display: flex;
  gap: 12px;
  font-family: var(--font-pixel);
  font-size: 9px;
  letter-spacing: 0.14em;
  color: #b7bdd6;               /* 8.9:1 on #171528 */
}
.pm-close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  font-size: 19px;
  line-height: 1;
  border-radius: 3px;
  color: #dfe3f4;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: pointer;
}
.pm-close:hover { background: #b0163a; border-color: #ff8d9f; color: #fff; }

/* --------------------------------------------------------------- body --- */
.pm-body {
  flex: 1 1 auto;
  min-height: 0;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 0;
}
.pm-stats {
  min-height: 0;
  overflow: auto;
  padding: 16px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.06));
}
.pm-main {
  min-height: 0;
  display: flex;
  flex-direction: column;
}

/* ---- stats ---- */
.pm-id { display: flex; align-items: center; gap: 11px; margin-bottom: 13px; }
.pm-face, .pm-faceimg {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border-radius: 5px;
  object-fit: cover;
  background: linear-gradient(180deg, #4b3d8f, #241b46);
  border: 1px solid rgba(255, 255, 255, 0.3);
}
.pm-faceletter { font-family: var(--font-display); font-weight: 700; font-size: 22px; color: #fff; }
.pm-idcol { min-width: 0; }
.pm-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.06em;
  color: #ffffff;
  overflow-wrap: anywhere;
}
.pm-lv {
  margin-top: 3px;
  font-family: var(--font-pixel);
  font-size: 9px;
  letter-spacing: 0.12em;
  color: #ffc98a;               /* 9.4:1 on #171528 */
}
.pm-xp {
  height: 9px;
  border-radius: 999px;
  background: #0b0916;
  border: 1px solid rgba(0, 0, 0, 0.7);
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.8);
  overflow: hidden;
}
.pm-xp i {
  display: block;
  height: 100%;
  width: 0;
  border-radius: 999px;
  background: linear-gradient(180deg, #b6f4ff, #2e9bff);
  box-shadow: 0 0 12px rgba(79, 201, 245, 0.7);
  transition: width 0.4s var(--ease);
}
.pm-xptext { margin: 6px 0 14px; font-size: 11.5px; color: #c4cade; }

.pm-rows { display: grid; grid-template-columns: 1fr auto; gap: 6px 10px; margin: 0 0 16px; }
.pm-rows dt {
  font-family: var(--font-pixel);
  font-size: 8px;
  letter-spacing: 0.14em;
  align-self: center;
  color: #b7bdd6;
}
.pm-rows dd {
  margin: 0;
  text-align: right;
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: #ffffff;
}

.pm-guest { margin-bottom: 14px; }
.pm-guest-copy { margin: 0 0 11px; font-size: 12px; line-height: 1.5; color: #dfe3f4; }
.pm-guest-btns { display: grid; gap: 7px; }

.pm-actions { display: grid; gap: 7px; }
.pm-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 30px;
  padding: 6px 10px;
  border-radius: 3px;
  font-size: 12.5px;
  text-align: left;
  color: #eef1fb;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
  border: 1px solid rgba(255, 255, 255, 0.2);
  cursor: pointer;
}
.pm-btn:hover { background: rgba(255, 255, 255, 0.16); border-color: rgba(127, 227, 255, 0.55); }
.pm-btn.primary {
  justify-content: center;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: #17110a;
  background: linear-gradient(180deg, #ffd2a1, var(--tang));
  border-color: rgba(255, 255, 255, 0.45);
}
.pm-btn.danger:hover { background: #7a0f28; border-color: #ff8d9f; }
.pm-grow { flex: 1 1 auto; }
.pm-tag, .pm-caret { font-size: 11px; color: #b7bdd6; }
.pm-socials { display: grid; gap: 5px; padding: 4px 0 4px 10px; }
.pm-social {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 8px;
  border-radius: 3px;
  font-size: 12px;
  color: #dfe3f4;
  text-decoration: none;
  border: 1px solid transparent;
}
.pm-social:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.2); }
.pm-social .ico { width: 20px; height: 20px; }

/* ---------------------------------------------------------- the grid --- */
.pm-grid {
  /* Half-Life stacked text menu — one column, six entries */
  display: grid;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 10px 14px 12px;
}
.pm-slot {
  position: relative;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 8px;
  min-height: 112px;
  padding: 12px 8px;
  border-radius: 6px;
  cursor: pointer;
  --rar: var(--rar-common);
  color: #eef1fb;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--rar) 16%, #1d1b30), #161424);
  border: 2px solid color-mix(in srgb, var(--rar) 72%, transparent);
  transition: transform 0.14s var(--ease), box-shadow 0.14s var(--ease);
}
.pm-slot.rar-rare { --rar: var(--rar-rare); }
.pm-slot.rar-epic { --rar: var(--rar-epic); }
.pm-slot.rar-legendary { --rar: var(--rar-legendary); }
.pm-slot:hover, .pm-slot.on {
  transform: translateY(-2px);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.6),
              0 0 0 1px color-mix(in srgb, var(--rar) 90%, #fff);
}
.pm-slot.on { outline: 2px solid var(--aqua-lt); outline-offset: 1px; }
.pm-slot-name {
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  text-align: center;
  color: #ffffff;
}
/* Q14b: no icon art in the grid — a text-only rarity tag stands in for it */
.pm-slot-rartag {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.1em;
  color: var(--rar);
  filter: brightness(1.35);
}
.pm-slot.is-running::after {
  content: "";
  position: absolute;
  left: 8px;
  top: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--lime);
  box-shadow: 0 0 8px rgba(126, 224, 106, 0.9);
}
.pm-chip {
  position: absolute;
  top: -1px;
  right: -1px;
  padding: 2px 6px;
  border-radius: 0 4px 0 6px;
  font-family: var(--font-ui);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #ffffff;
  background: #b0163a;          /* white on this is 6.1:1 */
}
.pm-slot.is-live .pm-chip { background: #c3102e; }

.pm-slot.empty {
  cursor: default;
  background: rgba(255, 255, 255, 0.02);
  border: 2px dashed rgba(255, 255, 255, 0.16);
  box-shadow: none;
  transform: none;
}
.pm-slot-soon {
  font-family: var(--font-pixel);
  font-size: 8px;
  letter-spacing: 0.12em;
  color: #9aa2bd;               /* 6.3:1 on the sheet */
  text-align: center;
}

/* ------------------------------------------------------ the detail card - */
.pm-detail {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 13px 16px;
  border-top: 1px solid rgba(255, 255, 255, 0.14);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.26), rgba(0, 0, 0, 0.1));
}
.pm-detail:empty { display: none; }
.pm-detail-art {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  border-radius: 5px;
  --rar: var(--rar-common);
  background: linear-gradient(180deg, color-mix(in srgb, var(--rar) 20%, #1d1b30), #161424);
  border: 1px solid color-mix(in srgb, var(--rar) 66%, transparent);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  color: var(--rar);
  filter: brightness(1.35);
  text-align: center;
}
.pm-detail-art.rar-rare { --rar: var(--rar-rare); }
.pm-detail-art.rar-epic { --rar: var(--rar-epic); }
.pm-detail-art.rar-legendary { --rar: var(--rar-legendary); }
.pm-detail-col { flex: 1 1 auto; min-width: 0; }
.pm-detail-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pm-detail-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  color: #ffffff;
}
.pm-detail-rar {
  --rar: var(--rar-common);
  font-family: var(--font-pixel);
  font-size: 8px;
  letter-spacing: 0.12em;
  padding: 2px 6px;
  border-radius: 999px;
  color: #100d1c;
  background: var(--rar);
}
.pm-detail-rar.rar-rare { --rar: var(--rar-rare); }
.pm-detail-rar.rar-epic { --rar: var(--rar-epic); }
.pm-detail-rar.rar-legendary { --rar: var(--rar-legendary); }
.pm-detail-stat {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 2px 7px;
  border-radius: 999px;
  color: #ffffff;
  background: #b0163a;
}
.pm-detail-blurb {
  margin: 4px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: #dfe3f4;               /* 13.1:1 */
}
.pm-detail-go {
  flex: 0 0 auto;
  font-family: var(--font-pixel);
  font-size: 8px;
  letter-spacing: 0.14em;
  color: #9aa2bd;
}

/* ------------------------------------------------------------- phones --- */
@media (max-width: 759px) {
  #pause { padding: 0; }
  .pm-sheet { width: 100%; height: 100%; max-height: none; border-radius: 0; border: 0; }
  .pm-head { padding: max(12px, env(safe-area-inset-top)) 50px 10px 14px; }
  .pm-title { font-size: 15px; }
  .pm-meta { display: none; }
  /* the stats panel collapses to a header ROW above the grid (§8) */
  .pm-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .pm-stats {
    overflow: visible;
    padding: 12px 14px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
  }
  .pm-id { margin-bottom: 10px; }
  .pm-face, .pm-faceimg { width: 44px; height: 44px; }
  .pm-rows {
    grid-template-columns: repeat(4, 1fr);
    grid-auto-flow: column;
    grid-template-rows: auto auto;
    gap: 2px 8px;
    margin-bottom: 12px;
  }
  .pm-rows dt { text-align: center; }
  .pm-rows dd { text-align: center; font-size: 12.5px; }
  .pm-actions { grid-template-columns: repeat(2, 1fr); }
  .pm-actions .pm-socials { grid-column: 1 / -1; }
  .pm-grid { grid-template-columns: fr; gap: 7px; padding: 12px; }
  .pm-slot { min-height: 96px; padding: 10px 6px; }
  .pm-slot-name { font-size: 11px; }
  .pm-detail { padding: 11px 13px; padding-bottom: max(11px, env(safe-area-inset-bottom)); }
  .pm-detail-art { width: 44px; height: 44px; }
  .pm-detail-go { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  #pause { animation: none; }
  .pm-slot, .pm-xp i { transition: none; }
}

/* =====================================================================
   PIPBOY / FALLOUT PASS — terminal green over the bodega (Sep 19 rethink)
   ===================================================================== */
#pause {
  background: rgba(2, 12, 6, 0.78);
  -webkit-backdrop-filter: blur(6px) saturate(0.6);
  backdrop-filter: blur(6px) saturate(0.6);
}
.pm-sheet {
  background:
    linear-gradient(180deg, rgba(18, 42, 24, 0.96) 0%, rgba(6, 16, 10, 0.98) 100%);
  border: 2px solid rgba(70, 255, 120, 0.45);
  box-shadow:
    inset 0 0 40px rgba(40, 255, 100, 0.08),
    0 0 0 1px rgba(0, 0, 0, 0.8),
    0 30px 90px rgba(0, 0, 0, 0.85);
  border-radius: 4px;
  font-family: var(--font-pixel), ui-monospace, monospace;
}
.pm-head {
  border-bottom: 1px solid rgba(70, 255, 120, 0.28);
  background: rgba(0, 0, 0, 0.28);
}
.pm-title {
  color: #7dff9a;
  letter-spacing: 0.12em;
  text-shadow: 0 0 12px rgba(70, 255, 120, 0.45);
  font-size: 15px;
}
.pm-meta { color: #3f9a58; }
.pm-slot {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(70, 255, 120, 0.28);
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 6px 8px;
  min-height: 104px;
}
.pm-slot:hover, .pm-slot[aria-selected="true"] {
  border-color: #7dff9a;
  background: rgba(40, 120, 60, 0.28);
  box-shadow: inset 0 0 18px rgba(70, 255, 120, 0.18);
}
.pm-slot-ico { display: grid; place-items: center; width: 40px; height: 40px; }
.pm-slot-ico .ico, .pm-slot-ico img { width: 36px; height: 36px; }
.pm-slot-name {
  color: #b8ffc9;
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
}
.pm-slot-rartag { display: none !important; }
.pm-slot.empty {
  border-style: dashed;
  opacity: 0.35;
}
.pm-stats, .pm-detail {
  color: #8fdba0;
  border-color: rgba(70, 255, 120, 0.22);
}
.pm-btn {
  border: 1px solid rgba(70, 255, 120, 0.35);
  background: rgba(0, 0, 0, 0.4);
  color: #9effb4;
}
.pm-btn:hover { border-color: #7dff9a; background: rgba(40, 100, 55, 0.4); }
.pm-close {
  color: #7dff9a;
  border-color: rgba(70, 255, 120, 0.4);
  background: rgba(0, 0, 0, 0.45);
}


/* PLAY AS ANON polish */
.pm-guest-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.pm-guest-btns .pm-btn.primary {
  background: linear-gradient(180deg, #ff7aa8, #ff4d8a);
  border-color: rgba(255,255,255,0.35);
  color: #fff;
  box-shadow: 0 0 18px rgba(255, 77, 138, 0.35);
}
