/* Package styles: collection. See /mnt/data/personas/carmack/research/audit-2026-09-26/REPORT.md.
   The Item Codex, a codex entry, the trophy case (Hall of Victims) and the public player card.
   Reuses the Bag's window, tabs, LCD and slot pieces from arcade.css. */

/* ---------- Shared: top nav, section labels, 3-up shelf ---------- */
.collection-nav { align-items: center; display: flex; justify-content: space-between; margin: -.2rem 0 .1rem; }
.collection-nav .arcade-back-link, .collection-nav-link { align-items: center; color: var(--arcade-cyan); display: inline-flex; font-family: 'VT323', monospace; font-size: 1.25rem; min-height: 44px; text-decoration: none; text-shadow: 0 0 6px rgba(83,224,255,.6); }
.collection-nav-link { color: var(--arcade-muted); font-size: 1.1rem; text-shadow: none; }
.collection-nav .arcade-back-link, .codex-entry .arcade-item-nav a, .profile-back { justify-content: center; min-width: 44px; }
.codex-entry .arcade-item-nav-links a { padding: 0 .5rem; }
.collection-label { color: var(--arcade-cyan); font-family: 'Silkscreen', monospace; font-size: .7rem; font-weight: 400; letter-spacing: .14em; margin: 0 0 .5rem; text-shadow: 0 0 6px rgba(83,224,255,.6); text-transform: uppercase; }

.hall-grid { display: grid; gap: .65rem .6rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.loyalty-main .hall-tile.trophy-card { background: none; border: 0; border-radius: 0; color: inherit; display: flex; flex-direction: column; min-width: 0; overflow: visible; text-decoration: none; }
.hall-art, .loyalty-main .hall-tile .trophy-art { aspect-ratio: 1; background: #0b1224; border: 0; border-radius: 6px; box-shadow: 0 0 0 2px var(--arcade-cyan), 0 0 12px rgba(83,224,255,.6); display: block; min-height: 0; object-fit: cover; width: 100%; }
.hall-art-missing, .loyalty-main .hall-tile .trophy-art-missing { align-items: center; color: #3a4866; display: flex; font-family: 'VT323', monospace; font-size: 2.4rem; justify-content: center; }
a.hall-tile:active .hall-art { transform: scale(.96); }
a.hall-tile:focus-visible { outline: 2px solid var(--arcade-cream); outline-offset: 4px; }
.hall-name { color: var(--arcade-cream); font-family: 'VT323', monospace; font-size: 1.15rem; line-height: 1; margin-top: .45rem; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.hall-meta { color: var(--arcade-cyan); font-family: 'VT323', monospace; font-size: .95rem; line-height: 1.05; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hall-provenance { color: #b98a3a; font-family: 'VT323', monospace; font-size: .9rem; letter-spacing: .04em; line-height: 1.05; text-transform: uppercase; }
.hall-note { color: var(--arcade-muted); font-family: 'VT323', monospace; font-size: .9rem; line-height: 1.05; }

/* ---------- Item Codex: a Bag-style collection book ---------- */
.codex-head { margin-bottom: .45rem; }
.codex-lcd b { font-size: 1.7rem; }
.codex-meter { background: repeating-linear-gradient(90deg, #2a1e08 0 calc(10% - 3px), transparent calc(10% - 3px) 10%); height: 10px; margin: 0 0 .8rem; position: relative; }
.codex-meter span { background: repeating-linear-gradient(90deg, #ffcf5a 0 calc(100% - 3px), transparent 0); box-shadow: 0 0 6px var(--arcade-amber), 0 0 14px rgba(255,191,63,.7); display: block; height: 100%; max-width: 100%; }
.codex-tabs a { align-items: center; flex-direction: column; min-width: 44px; font-size: 1.15rem; gap: .1rem; line-height: 1; padding: .45rem .15rem .3rem; }
.codex-tabs a small { color: inherit; font-size: .95rem; opacity: .75; }
.loyalty-main a.codex-card.bag-slot { align-items: initial; border-left-width: 1px; display: block; gap: 0; padding: 0; }
.codex-card[data-owned="false"] { opacity: 1; }
.codex-no { color: rgba(201,228,242,.55); font-family: 'VT323', monospace; font-size: .85rem; font-weight: 400; line-height: 1; position: absolute; right: 5px; text-shadow: 0 0 3px #000, 0 0 3px #000; top: 4px; z-index: 1; }
.codex-card .bag-worn { left: 4px; right: auto; top: auto; bottom: 4px; }
.codex-card.is-missing { background: radial-gradient(circle at 50% 40%, #0d1426, #05080f 80%); border-color: #1a2236; }
.codex-card.is-missing img { filter: grayscale(1) brightness(.2) contrast(1.9); }
.codex-card.is-missing .bag-gem { background: #2a3552; box-shadow: none; }
.codex-card.is-missing.bag-slot { animation: none; }
.codex-lock { bottom: 2px; color: rgba(83,224,255,.55); font-family: 'VT323', monospace; font-size: 1.35rem; font-weight: 400; line-height: 1; position: absolute; right: 6px; text-shadow: 0 0 6px rgba(83,224,255,.5); }

/* ---------- Codex entry: the item card, for a catalog entry ---------- */
.codex-entry .item-card-serial { font-size: 1.05rem; }
.codex-entry .is-missing .item-card-window .item-detail-artwork { filter: grayscale(1) brightness(.14) contrast(1.8); }
.codex-entry .is-missing .item-card-shine { display: none; }
.codex-missing-stamp { border: 3px solid rgba(83,224,255,.75); border-radius: 8px; color: #8ff0ff; font-family: 'Silkscreen', monospace; font-size: 1.35rem; left: 50%; letter-spacing: .12em; padding: .2rem .8rem; position: absolute; text-shadow: 0 0 10px rgba(83,224,255,.9); top: 50%; transform: translate(-50%,-50%) rotate(-10deg); white-space: nowrap; z-index: 3; }
.codex-unlock { background: #0a0f1c; border: 2px solid rgba(255,191,63,.65); box-shadow: 0 0 12px rgba(255,191,63,.2), inset 0 0 14px rgba(0,0,0,.6); display: grid; gap: .2rem; margin: 1.1rem 0 0; padding: .6rem .8rem .7rem; }
.codex-unlock span { color: var(--arcade-amber); font-family: 'Silkscreen', monospace; font-size: .7rem; letter-spacing: .14em; }
.loyalty-main .codex-unlock strong { color: var(--arcade-cream); font-family: 'VT323', monospace; font-size: 1.45rem; font-weight: 400; line-height: 1.05; text-transform: uppercase; }
.codex-copies { margin-top: 1.2rem; }
.codex-copies h2 { color: var(--arcade-cyan); font-family: 'Silkscreen', monospace; font-size: .7rem; font-weight: 400; letter-spacing: .14em; margin: 0 0 .4rem; text-shadow: 0 0 6px rgba(83,224,255,.6); text-transform: uppercase; }
.codex-unowned { color: var(--arcade-muted); font-family: 'VT323', monospace; font-size: 1.2rem; margin: 0; text-transform: uppercase; }
.codex-owned-items { border-top: 1px solid rgba(83,224,255,.25); list-style: none; margin: 0; padding: 0; }
.codex-owned-items li { border-bottom: 1px solid rgba(83,224,255,.25); }
.codex-owned-items a { align-items: center; color: var(--arcade-cream); display: flex; font-family: 'VT323', monospace; font-size: 1.25rem; gap: .6rem; min-height: 44px; text-decoration: none; text-transform: uppercase; }
.codex-owned-items a span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.codex-owned-items small { color: var(--arcade-amber); font-size: 1rem; }
.codex-owned-items b { color: var(--arcade-cyan); font-weight: 400; }

/* ---------- Trophy case: the Hall of Victims ---------- */
.hall { margin: 0 auto; max-width: 26rem; padding: .7rem .75rem 2rem; }
.hall-head { margin-bottom: .8rem; }
.bag-head.hall-head h1 { font-size: clamp(2.3rem, 11vw, 2.9rem); }
.hall .trophy-stage { margin: 0 0 1.2rem; }
.hall .trophy-shelf-empty { align-items: center; border: 1px dashed rgba(83,224,255,.35); border-radius: 12px; color: var(--arcade-muted); display: grid; font-family: 'VT323', monospace; font-size: 1.3rem; gap: .5rem; min-height: 11rem; padding: 1rem; place-content: center; text-align: center; text-transform: uppercase; }
.hall .trophy-shelf-empty p { margin: 0; }
.hall-empty-slots { margin-bottom: .8rem; }
.hall-empty-slots span { align-items: center; aspect-ratio: 1; border: 2px dashed rgba(83,224,255,.3); border-radius: 6px; color: rgba(83,224,255,.35); display: flex; font-family: 'VT323', monospace; font-size: 2.6rem; justify-content: center; }
.hall-empty-slots + .trophy-shelf-empty { border: 0; min-height: 0; padding: .2rem 0 0; }
.hall-actions { align-items: center; display: flex; flex-direction: column; gap: .5rem; margin-top: 1.1rem; }
.hall-actions .arcade-pill-primary, .hall-actions .arcade-pill-secondary { font-size: .8rem; letter-spacing: .1em; min-width: 12rem; }
.hall-attention { color: #ff8a98; font-family: 'VT323', monospace; font-size: 1.1rem; margin: 0; text-transform: uppercase; }
.hall-edit-bar { align-items: center; border: 2px solid rgba(255,191,63,.6); border-radius: 10px; box-shadow: 0 0 12px rgba(255,191,63,.2); display: flex; gap: .7rem; margin-bottom: 1rem; padding: .5rem .5rem .5rem .75rem; }
.hall .hall-edit-bar .trophy-flavor { color: var(--arcade-cream); flex: 1; font-family: 'VT323', monospace; font-size: 1.1rem; line-height: 1.05; margin: 0; }
.hall-done { flex: none; font-size: .8rem; letter-spacing: .1em; text-decoration: none; }
.hall .trophy-bench { margin: 0; }
.hall .trophy-bench-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hall .trophy-pick { background: none; border: 0; border-radius: 0; overflow: visible; }
.hall .trophy-pick.is-showing { box-shadow: none; }
.loyalty-main button.trophy-pick-action { align-content: start; background: none; border: 0; border-radius: 0; box-shadow: none; color: inherit; cursor: pointer; display: grid; font-family: 'VT323', monospace; gap: .2rem; min-height: 44px; padding: 0; text-align: left; width: 100%; }
.trophy-pick-action .hall-art { box-shadow: 0 0 0 1px #2a3552; filter: grayscale(.7) brightness(.6); }
.is-showing .trophy-pick-action .hall-art { box-shadow: 0 0 0 2px var(--arcade-cyan), 0 0 12px rgba(83,224,255,.6); filter: none; }
.loyalty-main .hall .trophy-pick-name { color: var(--arcade-cream); font-size: 1.1rem; font-weight: 400; line-height: 1; margin-top: .3rem; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.loyalty-main .hall .trophy-pick-state { border: 1.5px solid var(--arcade-amber); border-radius: 999px; color: var(--arcade-amber); font-family: 'VT323', monospace; font-size: .95rem; justify-self: stretch; letter-spacing: .02em; line-height: 1; padding: .2rem .3rem; text-align: center; text-transform: uppercase; }
.loyalty-main .hall .is-showing .trophy-pick-state { background: var(--arcade-cyan); border-color: var(--arcade-cyan); box-shadow: 0 0 8px rgba(83,224,255,.7); color: #03121a; }
.loyalty-main button.trophy-pick-action:focus-visible { outline: 2px solid var(--arcade-cream); outline-offset: 4px; }
.loyalty-main button.trophy-pick-action:active .hall-art { transform: scale(.96); }
.hall .trophy-bench-empty { color: var(--arcade-muted); font-family: 'VT323', monospace; font-size: 1.2rem; text-transform: uppercase; }
.hall .trophy-stale { border: 2px solid rgba(255,74,94,.7); border-radius: 10px; margin: 1.2rem 0 0; padding: .6rem .75rem; }
.hall .trophy-stale h2 { color: #ff8a98; text-shadow: 0 0 6px rgba(255,74,94,.6); }
.hall .trophy-stale p { color: var(--arcade-muted); font-family: 'VT323', monospace; font-size: 1.05rem; margin: 0 0 .5rem; }
.hall .trophy-stale ul { list-style: none; margin: 0; padding: 0; }
.hall .trophy-stale li { align-items: center; display: flex; gap: .6rem; justify-content: space-between; padding: .2rem 0; }
.hall .trophy-stale li span { color: var(--arcade-cream); font-family: 'VT323', monospace; font-size: 1.05rem; }
.loyalty-main .hall .trophy-stale button.arcade-pill-secondary { background: transparent; color: var(--arcade-cyan); cursor: pointer; flex: none; font-size: .75rem; }
.hall .bag-links .arcade-pill-secondary { text-transform: uppercase; }
.hall .bag-links .arcade-pill-primary { font-size: .65rem; min-height: 44px; padding: 0 1rem; text-decoration: none; }

/* ---------- Public player card ---------- */
.profile-page .profile-hero.arcade-portrait-stage { background: none; border: 0; border-radius: 0; display: block; padding: 0; }
.profile-back { background: rgba(6,9,16,.55); border-radius: 4px; color: var(--arcade-cyan); left: .6rem; padding: 0 .5rem; position: absolute; text-shadow: 0 0 6px rgba(83,224,255,.8); top: .7rem; z-index: 3; }
.profile-home .arcade-identity { right: 1rem; }
.profile-home .arcade-identity h1 { overflow-wrap: anywhere; }
.profile-home .arcade-identity-line .character-archetype { color: inherit; font: inherit; letter-spacing: 0; }
.profile-page .profile-home .profile-character-name { color: var(--arcade-cream); font-size: 1.05rem; margin: .1rem 0 0; opacity: .8; text-align: left; text-shadow: none; text-transform: uppercase; }
.profile-home .arcade-stats-row strong { font-weight: 400; }
.profile-duel { gap: .6rem; padding: .55rem .55rem .55rem .8rem; }
.profile-duel .arcade-challenger-name { font-size: 1.05rem; }
.profile-duel .arcade-pill-primary { flex: none; font-size: .8rem; letter-spacing: .1em; padding: 0 1rem; text-decoration: none; }
.profile-own-actions { display: grid; gap: .6rem; grid-template-columns: 1fr 1fr; }
.profile-own-actions .arcade-pill-secondary { font-size: .72rem; text-decoration: none; }
.profile-home .arcade-section-heading { margin-bottom: .5rem; }
.profile-home .arcade-section-heading h2 { font-size: .7rem; }
.profile-home .arcade-section-heading a { align-items: center; display: inline-flex; justify-content: flex-end; min-height: 44px; min-width: 44px; margin: -.8rem 0 -.6rem; }
.profile-page .profile-trophies { margin: 0; }
.profile-home .trophy-shelf-empty { border: 1px dashed rgba(83,224,255,.3); border-radius: 8px; color: var(--arcade-muted); font-family: 'VT323', monospace; font-size: 1.15rem; margin: 0; min-height: 0; padding: .9rem; text-align: center; text-transform: uppercase; }
.profile-page .profile-badges { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: .7rem 0 0; padding: 0; }
.profile-page .profile-badges li { border: 1.5px solid var(--arcade-amber); border-radius: 999px; box-shadow: 0 0 6px rgba(255,191,63,.35); color: var(--arcade-amber); font-family: 'VT323', monospace; font-size: 1rem; line-height: 1; margin: 0; padding: .25rem .6rem; text-transform: uppercase; }

.profile-gear-row { display: grid; gap: .45rem; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.profile-gear-slot { min-width: 0; }
.profile-gear-slot img, .profile-gear-blank { aspect-ratio: 1; background: radial-gradient(circle at 50% 40%, #121a2e, #070b16 75%); border: 1px solid rgba(255,191,63,.7); border-radius: 6px; box-shadow: 0 0 10px rgba(255,191,63,.3); display: block; object-fit: cover; width: 100%; }
.profile-gear-blank { align-items: center; color: #3a4866; display: flex; font-size: 1.6rem; justify-content: center; }
.profile-gear-slot .equipped-item-name { -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: var(--arcade-amber); display: -webkit-box; font-family: 'VT323', monospace; font-size: .9rem; line-height: 1; margin-top: .3rem; overflow: hidden; text-align: center; text-transform: uppercase; }

.profile-nights .night-streak { color: var(--arcade-amber); font-family: 'VT323', monospace; font-size: 1.05rem; font-weight: 400; text-transform: uppercase; }
.profile-page .profile-nights .night-strip { display: grid; gap: .35rem; grid-template-columns: repeat(7, minmax(0, 1fr)); list-style: none; margin: 0; padding: 0; }
.profile-page .profile-nights .night-mark { align-items: center; background: none; border: 0; border-radius: 0; display: flex; flex-direction: column; gap: .25rem; padding: 0; }
.profile-page .profile-nights .night-mark-day { color: var(--arcade-muted); font-family: 'Silkscreen', monospace; font-size: .6rem; font-weight: 400; letter-spacing: .04em; }
.profile-page .profile-nights .night-mark-dot { background: #2a1e08; border: 0; border-radius: 3px; box-shadow: none; height: 14px; width: 100%; }
.profile-page .profile-nights .night-mark-filled .night-mark-dot { background: #ffcf5a; box-shadow: 0 0 6px var(--arcade-amber), 0 0 14px rgba(255,191,63,.7); }
.profile-page .profile-nights .night-mark-date { color: var(--arcade-cream); font-family: 'VT323', monospace; font-size: 1.05rem; font-weight: 400; line-height: 1; }
.profile-page .profile-nights .night-mark-empty .night-mark-date { opacity: .5; }

.profile-page .profile-showcase { margin: 0; }
.profile-page .profile-showcase-grid { gap: .45rem; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0; }
.profile-page .profile-showcase .codex-no { display: none; }
