/* ==========================================================================
   admin.css — Tela Admin (docs/ADMIN-V2-SPEC.md 3–6) e o mundo do jogador (faixa de buffs, banner,
   central de notificações, conta suspensa). Usa os tokens de css/styles.css (tema claro/escuro).
   ========================================================================== */

/* ---------- Mundo do jogador ---------- */
.world-top:empty { display: none; }
.world-top { display: flex; flex-direction: column; gap: .5rem; margin-bottom: 1rem; }

.world-strip {
  display: flex; align-items: center; gap: .6rem; width: 100%;
  padding: .45rem .75rem; border-radius: var(--r-md);
  border: 1px solid color-mix(in srgb, var(--brand) 45%, var(--line));
  background: color-mix(in srgb, var(--brand) 10%, var(--surface));
  color: var(--text); font: inherit; font-size: var(--fs-xs); text-align: left; cursor: pointer;
}
.world-strip > .icon { color: var(--brand-ink); flex: none; }
.world-strip > .icon:last-child { margin-left: auto; color: var(--muted); }
.world-strip-list { display: flex; flex-wrap: wrap; gap: .25rem .9rem; min-width: 0; }
.world-chip { display: inline-flex; align-items: center; gap: .3rem; white-space: nowrap; }
.world-chip .icon { width: 1em; height: 1em; color: var(--brand-ink); }

.world-banner {
  display: flex; align-items: flex-start; gap: .6rem;
  padding: .6rem .75rem; border-radius: var(--r-md);
  border: 1px solid var(--line); border-left: 3px solid var(--brand);
  background: var(--surface); font-size: var(--fs-sm);
}
.world-banner.is-warn { border-left-color: var(--medium); background: color-mix(in srgb, var(--medium) 10%, var(--surface)); }
.world-banner > .icon { margin-top: .15rem; color: var(--brand-ink); flex: none; }
.world-banner.is-warn > .icon { color: var(--medium); }
.world-banner-text { display: flex; flex-direction: column; gap: .15rem; min-width: 0; flex: 1; overflow-wrap: anywhere; }
.world-banner .icon-btn { width: 28px; height: 28px; margin: -.2rem -.3rem 0 0; }

.world-bell { position: relative; }
.world-bell .nav-badge { position: absolute; top: -2px; right: -4px; margin: 0; }

.world-list { display: flex; flex-direction: column; gap: .5rem; }
.world-item { padding: .6rem .75rem; border: 1px solid var(--line); border-radius: var(--r-md); display: flex; flex-direction: column; gap: .25rem; }
.world-item.is-unread { border-left: 3px solid var(--brand); }
.world-item.is-under { opacity: .7; }
.world-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; font-size: var(--fs-xs); }
.world-item-head .icon { color: var(--brand-ink); }
.world-item-head .hint { margin-left: auto; }
.world-kind { font-weight: 700; color: var(--muted); }
.world-bullets { list-style: disc; padding-left: 1.2rem; font-size: var(--fs-sm); display: flex; flex-direction: column; gap: .2rem; }
.world-text { font-size: var(--fs-sm); overflow-wrap: anywhere; }
.world-plan { display: flex; align-items: center; gap: .35rem; margin-bottom: .75rem; }
.world-staff { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; margin-bottom: .6rem; }
.world-staff .icon { color: var(--brand-ink); }
.world-line { display: flex; align-items: center; justify-content: center; gap: .3rem; }
.world-line .icon { width: 1em; height: 1em; color: var(--brand-ink); }

/* Conta suspensa: por cima de tudo, inclusive da tela de login. */
.net-banned { z-index: 1100; }

/* ---------- Casca e peças comuns do Admin ---------- */
.admin-tabs { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.admin-tabs::-webkit-scrollbar { display: none; }
.admin-tabs .tab { flex: none; }
.adm-badge {
  display: inline-flex; align-items: center; gap: .25rem;
  padding: .05rem .45rem; border-radius: 999px; border: 1px solid var(--line);
  font-size: .7rem; font-weight: 700; color: var(--muted); white-space: nowrap; vertical-align: middle;
}
.adm-badge .icon { width: 1em; height: 1em; }
.adm-badge.is-owner, .adm-badge.is-gm { color: var(--brand-ink); border-color: var(--brand); }
.adm-badge.is-pro { color: var(--text); border-color: var(--easy); }
.adm-badge.is-banned { color: var(--hard); border-color: var(--hard); }
.adm-dot { display: inline-block; width: .55rem; height: .55rem; border-radius: 50%; background: var(--line); flex: none; }
.adm-dot.is-on { background: var(--easy); }
.adm-link { background: none; border: 0; padding: 0; font: inherit; color: var(--text); cursor: pointer; text-align: left; }
.adm-link:hover b, .adm-link:hover { text-decoration: underline; }
.adm-wide { max-width: 980px; }
.adm-na { color: var(--muted); font-weight: 600; font-size: var(--fs-sm); }
.adm-sheet code, .adm-audit code { font-size: .85em; overflow-wrap: anywhere; }

.adm-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.adm-search { display: flex; flex-direction: column; gap: .6rem; margin-bottom: 1rem; }
.adm-search-box {
  display: flex; align-items: center; gap: .5rem; max-width: 560px;
  padding: 0 .6rem; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface);
}
.adm-search-box .icon { color: var(--muted); flex: none; }
.adm-search-box input[type="search"]:not([type="checkbox"]):not([type="radio"]):not([type="file"]) { border: 0; background: transparent; box-shadow: none; padding-left: 0; flex: 1; min-width: 0; }

/* ---------- Lista de contas ---------- */
.adm-list { display: flex; flex-direction: column; gap: .4rem; max-width: 980px; }
.adm-row {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .15rem 1rem; width: 100%;
  padding: .6rem .8rem; border: 1px solid var(--line); border-radius: var(--r-md);
  background: var(--surface); color: var(--text); font: inherit; text-align: left; cursor: pointer;
}
.adm-row:hover { border-color: var(--muted); }
.adm-row-main { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem; min-width: 0; }
.adm-row-sub { grid-column: 1; font-size: var(--fs-xs); color: var(--muted); overflow-wrap: anywhere; }
.adm-row-meta { font-size: var(--fs-xs); color: var(--muted); }
.adm-row > .adm-row-meta { grid-column: 2; grid-row: 1 / span 2; align-self: center; text-align: right; }
.adm-empty { padding: 1rem 0; }
.adm-more { margin-top: .75rem; }

/* ---------- Ficha da conta ---------- */
.adm-sheet .modal-body { min-height: 50vh; }
@media (min-width: 641px) { .adm-sheet .modal-body { height: min(68vh, 640px); } }
.adm-sheet-head { margin-bottom: .5rem; }
.adm-sheet-id { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.adm-sheet-tabs { overflow-x: auto; margin-bottom: .75rem; }
.adm-sheet-tabs .tab { flex: none; padding: .5rem .7rem; font-size: var(--fs-sm); }
.adm-kvs { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .6rem 1rem; }
.adm-kv { display: flex; flex-direction: column; gap: .1rem; min-width: 0; }
.adm-kv b { font-weight: 600; overflow-wrap: anywhere; }
.adm-kv .icon { width: 1em; height: 1em; vertical-align: -.1em; margin-right: .2rem; }
.adm-ban {
  display: flex; align-items: center; gap: .4rem; margin: .75rem 0;
  padding: .5rem .7rem; border-radius: var(--r-sm);
  color: var(--hard); background: color-mix(in srgb, var(--hard) 10%, transparent); font-size: var(--fs-sm);
}
.adm-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .5rem .6rem; margin: .5rem 0; }
.adm-form-col { flex-direction: column; align-items: stretch; }
.adm-form-col > .adm-form { margin: 0; }
.adm-form > .hint { flex: 1 1 200px; }
.adm-field { display: flex; flex-direction: column; gap: .2rem; font-size: var(--fs-xs); color: var(--muted); font-weight: 700; }
.adm-field input:not([type="checkbox"]), .adm-field select { min-width: 7rem; }
.adm-field input, .adm-field select, .adm-field textarea { font-weight: 400; color: var(--text); }
.adm-field textarea { min-height: 3.5rem; resize: vertical; }
.adm-field small { font-weight: 400; }
.adm-check { display: inline-flex; align-items: center; gap: .35rem; font-size: var(--fs-xs); color: var(--muted); min-height: 32px; }
.adm-inline { display: flex; gap: .35rem; }
.adm-inline input { width: 6rem; min-width: 0 !important; }
.adm-mini-list { display: flex; flex-wrap: wrap; gap: .3rem .9rem; font-size: var(--fs-sm); }
.adm-inv { display: flex; flex-direction: column; margin-bottom: .5rem; }
.adm-inv li { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .3rem 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
.adm-inv li span { min-width: 0; overflow-wrap: anywhere; }
.adm-msgs, .adm-audit, .adm-events { display: flex; flex-direction: column; gap: .5rem; }
.adm-msgs > li, .adm-audit > li { padding: .5rem .7rem; border: 1px solid var(--line); border-radius: var(--r-md); }
.adm-msg-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem .75rem; }
.adm-audit-detail { list-style: disc; padding-left: 1.1rem; font-size: var(--fs-xs); color: var(--muted); overflow-wrap: anywhere; }

/* ---------- Painel ---------- */
.adm-dash-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: .75rem; }
.adm-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .75rem; margin-bottom: 1rem; }
.adm-card {
  display: flex; flex-direction: column; gap: .2rem; min-width: 0;
  padding: .8rem 1rem; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface);
}
.adm-card > b { font-size: var(--fs-lg); font-weight: 700; display: flex; align-items: center; gap: .4rem; overflow-wrap: anywhere; }
.adm-usage { font-size: var(--fs-xs); font-weight: 600; }
.adm-na-note { display: flex; align-items: center; gap: .35rem; margin-bottom: 1rem; }
.adm-charts { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.adm-chart { margin: 0; padding: .8rem 1rem; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.adm-chart figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .5rem; font-weight: 700; font-size: var(--fs-sm); margin-bottom: .5rem; }
.adm-chart svg { display: block; width: 100%; height: 90px; overflow: visible; }
.adm-bar-hit { fill: transparent; }
.adm-bar-fill { fill: var(--brand); }
.adm-bar:hover .adm-bar-fill, .adm-bar:focus .adm-bar-fill { fill: var(--brand-ink); }
.adm-bar:hover .adm-bar-hit, .adm-bar:focus .adm-bar-hit { fill: color-mix(in srgb, var(--text) 6%, transparent); }
.adm-bar:focus { outline: none; }
.adm-axis { stroke: var(--line); stroke-width: 1; vector-effect: non-scaling-stroke; }
.adm-chart details { margin-top: .4rem; }
.adm-table { border-collapse: collapse; font-size: var(--fs-xs); margin-top: .3rem; }
.adm-table td { padding: .1rem .75rem .1rem 0; }
.adm-audit-panel { max-width: 980px; }
.adm-audit-panel .adm-chips { margin-bottom: .75rem; }

/* ---------- Pagantes ---------- */
.adm-paid { display: flex; flex-direction: column; }
.adm-paid-row { display: flex; flex-direction: column; gap: .15rem; padding: .6rem 0; border-bottom: 1px solid var(--line); }
.adm-paid-row:last-child { border-bottom: 0; }
.adm-row-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .3rem; }

/* ---------- Global ---------- */
.adm-segs { margin-bottom: 1rem; max-width: 100%; overflow-x: auto; }
.adm-event { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.adm-event > div { flex: 1 1 220px; min-width: 0; overflow-wrap: anywhere; }
.adm-event.is-cancelled, .adm-event.is-ended { opacity: .6; }
.adm-event.is-active > div b::before { content: '● '; color: var(--easy); }
.adm-shop { display: flex; flex-direction: column; margin: .75rem 0; }
.adm-shop-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .35rem .75rem; padding: .5rem 0; border-bottom: 1px solid var(--line); }
.adm-shop-row.is-hidden .adm-shop-name { opacity: .55; text-decoration: line-through; }
.adm-shop-name { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
.adm-price input { width: 7.5rem; min-width: 0 !important; }
.adm-sticky { position: sticky; bottom: 0; justify-content: flex-end; padding: .5rem 0; background: var(--surface); }

@media (max-width: 640px) {
  .adm-row { grid-template-columns: minmax(0, 1fr); }
  .adm-row > .adm-row-meta { grid-column: 1; grid-row: auto; text-align: left; }
  .adm-kvs { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .adm-cards { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: .5rem; }
  .adm-card { padding: .6rem .7rem; }
  .adm-card > b { font-size: var(--fs-md); }
}

/* Textos da equipe em inglês e espanhol (docs/archive/I18N-SPEC.md I8): campos opcionais recolhidos. */
.adm-langs { display: flex; flex-direction: column; gap: .5rem; }
.adm-langs > summary { cursor: pointer; font-size: var(--fs-xs); font-weight: 700; color: var(--muted); }
.adm-langs[open] { gap: .6rem; }
