/*
 * OblivionZ — site skin (2026-10-07 "clean" pass).
 * Neutral near-black surfaces, ONE brand accent (the red of the OBLIVIONZ sign in the
 * game's wallpaper), green only for "online / success". No noise, glow, tape or clipped
 * corners — the game art carries the mood, the UI stays out of its way.
 *
 * Token names are historical: --oz-toxic is "the accent" (it was toxic green), and
 * --oz-amber* / --adm-* are aliases kept because templates use them in inline styles.
 */

:root{
  --oz-bg: #0b0c0e;
  --oz-bg-raised: #121317;
  --oz-bg-elev: #17191e;
  --oz-bg-inset: #0e0f12;
  --oz-line: #23252b;
  --oz-line-soft: #1a1c21;
  --oz-line-strong: #33363e;
  --oz-ink: #ecedef;
  --oz-ink-dim: #a3a6ae;
  --oz-ink-faint: #6c6f78;

  --oz-accent-rgb: 230, 57, 45;
  --oz-toxic: rgb(var(--oz-accent-rgb));
  --oz-toxic-bright: #f05a4f;
  --oz-toxic-dim: #5a1d19;
  --oz-toxic-glow: rgba(var(--oz-accent-rgb), .22);
  --oz-blood: #b91c1c;
  --oz-blood-bright: #ef4444;
  --oz-blood-dim: #4c1010;
  --oz-ok-rgb: 52, 199, 108;
  --oz-ok: rgb(var(--oz-ok-rgb));
  --oz-warn: #f59e0b;
  --oz-hazard: #facc15;
  --oz-gold: #fbbf24;
  --oz-gp: #22d3ee;
  --oz-on-accent: #fff;

  /* legacy aliases */
  --oz-accent: var(--oz-toxic);
  --oz-amber: var(--oz-toxic);
  --oz-amber-bright: var(--oz-toxic-bright);
  --oz-amber-dim: var(--oz-toxic-dim);
  --oz-primary-color: var(--oz-toxic);
  --oz-border-color: var(--oz-line);

  --oz-font-display: "Barlow Condensed", "Bahnschrift", "Arial Narrow", sans-serif;
  --oz-font-body: "Inter", "Segoe UI", system-ui, sans-serif;
  --oz-font-mono: "JetBrains Mono", "Cascadia Code", Consolas, monospace;

  --oz-radius: 10px;
  --oz-radius-sm: 7px;
  --oz-shadow: 0 16px 40px -20px rgba(0,0,0,.8);
  --oz-ease: cubic-bezier(.2,.8,.2,1);
  --oz-tape: var(--oz-line);
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
html, body{ margin: 0; color: var(--oz-ink); font-family: var(--oz-font-body); }
body{ min-height: 100vh; background: var(--oz-bg); line-height: 1.6; -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4{ font-weight: 700; text-wrap: balance; margin: 0; line-height: 1.15; }
h1, h2{ font-family: var(--oz-font-display); text-transform: uppercase; letter-spacing: .01em; line-height: 1.02; }
h3, h4{ font-family: var(--oz-font-body); font-weight: 600; letter-spacing: -.01em; }
p{ margin: 0; }
a{ color: inherit; }
img{ max-width: 100%; }
::selection{ background: var(--oz-toxic); color: #fff; }
:focus-visible{ outline: 2px solid var(--oz-toxic); outline-offset: 2px; }
::-webkit-scrollbar{ width: 10px; height: 10px; }
::-webkit-scrollbar-track{ background: var(--oz-bg); }
::-webkit-scrollbar-thumb{ background: var(--oz-line-strong); border-radius: 10px; border: 2px solid var(--oz-bg); }

.oz-eyebrow{ display: inline-block; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--oz-toxic); }
.oz-accent, .oz-toxic{ color: var(--oz-toxic); }
.oz-blood-text{ color: var(--oz-toxic); }
.oz-muted{ color: var(--oz-ink-dim); }

/* retired decoration hooks (old markup may still emit them) */
#oz-grain, .oz-scanlines, .oz-vignette, .oz-ticker, .oz-tape, .oz-claw, .oz-moon, .oz-fog, #oz-embers, .oz-skyline{ display: none !important; }

/* ---------- announcement ---------- */
.oz-announce{ position: relative; z-index: 41; background: var(--oz-toxic); color: #fff; text-align: center; font-size: .84rem; font-weight: 500; padding: 8px 16px; }

/* ---------- header ---------- */
.oz-header{ position: sticky; top: 0; z-index: 40; background: rgba(11,12,14,.86); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-bottom: 1px solid var(--oz-line-soft); }
.oz-bar{ max-width: 1240px; margin: 0 auto; display: flex; align-items: center; gap: 32px; padding: 0 24px; height: 64px; }
.oz-wordmark{ display: flex; align-items: center; gap: 10px; font-family: var(--oz-font-display); font-weight: 700; font-size: 1.6rem; letter-spacing: .04em; text-decoration: none; white-space: nowrap; color: var(--oz-ink); text-transform: uppercase; line-height: 1; }
.oz-wordmark i{ color: var(--oz-toxic); font-style: normal; }
.oz-wordmark .oz-tag{ font-family: var(--oz-font-body); font-size: .6rem; font-weight: 600; color: var(--oz-ink-faint); border: 1px solid var(--oz-line); border-radius: 4px; padding: 2px 6px; margin-left: 4px; letter-spacing: .08em; }
.oz-logo-mark{ width: 26px; height: 26px; color: var(--oz-toxic); flex: none; }

.oz-nav{ display: flex; gap: 4px; flex: 1; align-self: stretch; }
.oz-nav > a{ position: relative; display: flex; align-items: center; font-size: .9rem; font-weight: 500; text-decoration: none; color: var(--oz-ink-dim); padding: 0 12px; transition: color .15s; }
.oz-nav > a::after{ content: ""; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; background: var(--oz-toxic); transform: scaleX(0); transition: transform .2s var(--oz-ease); }
.oz-nav > a:hover{ color: var(--oz-ink); }
.oz-nav > a.oz-active{ color: var(--oz-ink); }
.oz-nav > a.oz-active::after{ transform: scaleX(1); }
.oz-nav > a.oz-nav-market{ color: var(--oz-gold); }
.oz-nav > a.oz-nav-admin{ color: var(--oz-blood-bright); }
.oz-nav .oz-drop{ position: relative; }
.oz-nav .oz-drop > .oz-drop-menu{ display: none; position: absolute; top: 100%; left: 0; min-width: 190px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius-sm); padding: 6px; z-index: 30; }
.oz-nav .oz-drop:hover > .oz-drop-menu, .oz-nav .oz-drop:focus-within > .oz-drop-menu{ display: block; }
.oz-drop-menu a{ display: block; padding: 8px 10px; font-size: .84rem; color: var(--oz-ink-dim); text-decoration: none; border-radius: 4px; }
.oz-drop-menu a:hover{ color: var(--oz-ink); background: rgba(255,255,255,.04); }

.oz-auth{ display: flex; gap: 8px; align-items: center; margin-left: auto; }
.oz-auth form{ margin: 0; }
.oz-burger{ display: none; width: 40px; height: 40px; border: 1px solid var(--oz-line); border-radius: 8px; background: transparent; color: var(--oz-ink); cursor: pointer; align-items: center; justify-content: center; }
.oz-burger svg{ width: 20px; height: 20px; }

/* ---------- buttons ---------- */
.oz-btn{ display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--oz-font-body); font-size: .9rem; font-weight: 600; line-height: 1.2; padding: 11px 20px; border: 1px solid var(--oz-line-strong); border-radius: var(--oz-radius-sm); background: rgba(255,255,255,.03); color: var(--oz-ink); text-decoration: none; cursor: pointer; white-space: nowrap; transition: border-color .15s, color .15s, background .15s, transform .1s; }
.oz-btn:hover{ border-color: #4a4e57; background: rgba(255,255,255,.07); }
.oz-btn:active{ transform: translateY(1px); }
.oz-btn-primary, .oz-btn-blood{ background: var(--oz-toxic); border-color: var(--oz-toxic); color: #fff; }
.oz-btn-primary:hover, .oz-btn-blood:hover{ background: var(--oz-toxic-bright); border-color: var(--oz-toxic-bright); color: #fff; }
.oz-btn-danger{ border-color: rgba(239,68,68,.5); color: var(--oz-blood-bright); }
.oz-btn-danger:hover{ background: rgba(239,68,68,.12); border-color: var(--oz-blood-bright); color: #fca5a5; }
.oz-btn-ghost{ border-color: transparent; background: transparent; color: var(--oz-ink-dim); }
.oz-btn-ghost:hover{ color: var(--oz-ink); background: rgba(255,255,255,.05); border-color: transparent; }
.oz-btn-light{ background: #fff; border-color: #fff; color: #0b0c0e; }
.oz-btn-light:hover{ background: #e4e5e8; border-color: #e4e5e8; }
.oz-btn-block{ width: 100%; }
.oz-btn-lg{ padding: 14px 26px; font-size: .98rem; }
.oz-btn-sm{ padding: 7px 13px; font-size: .82rem; }
.oz-btn[disabled]{ opacity: .45; cursor: not-allowed; }
.oz-btn svg{ width: 17px; height: 17px; flex: none; }
.adm-main .oz-btn, .adm-modal .oz-btn, .adm-drawer .oz-btn, .adm-sel-bar .oz-btn{ font-size: .86rem; padding: 10px 18px; min-height: 40px; }
.adm-main .oz-btn-sm, .adm-main .adm-btn-sm{ min-height: 32px; padding: 7px 13px; font-size: .8rem; }
.adm-main .oz-btn-lg{ padding: 13px 26px; font-size: .95rem; }
.adm-main .oz-btn-ghost, .adm-modal .oz-btn-ghost{ border-color: var(--oz-line); background: rgba(255,255,255,.02); color: var(--oz-ink-dim); }
.adm-main .oz-btn-ghost:hover, .adm-modal .oz-btn-ghost:hover{ border-color: var(--oz-line-strong); background: rgba(255,255,255,.05); color: var(--oz-ink); }

.oz-user-chip{ display: flex; align-items: center; gap: 9px; font-size: .86rem; font-weight: 500; color: var(--oz-ink); border-radius: 999px; padding: 4px 12px 4px 4px; text-decoration: none; transition: background .15s; }
.oz-user-chip:hover{ background: rgba(255,255,255,.05); }
.oz-avatar{ width: 30px; height: 30px; border-radius: 50%; background: var(--oz-toxic); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .82rem; font-weight: 700; overflow: hidden; }
.oz-chip-gd{ font-family: var(--oz-font-mono); font-size: .72rem; color: var(--oz-gold); }

/* ---------- page shell ---------- */
.oz-wrap, .oz-container{ position: relative; max-width: 1240px; margin: 0 auto; padding: 0 24px; }
.oz-stripe{ height: 1px; background: var(--oz-line); }
.oz-block{ position: relative; padding: 88px 0; }
.oz-block + .oz-block{ padding-top: 0; }
.oz-block.oz-tight{ padding: 40px 0; }
.oz-block h2{ font-size: clamp(2rem, 3.6vw, 2.8rem); }
.oz-block-head{ display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 32px; flex-wrap: wrap; }
.oz-block-head h2{ margin-top: 8px; }
.oz-block-head p{ color: var(--oz-ink-dim); margin-top: 10px; max-width: 56ch; }
.oz-h1{ font-family: var(--oz-font-display); text-transform: uppercase; }
main{ position: relative; }

/* inner-page banner */
.oz-page-head{ position: relative; padding: 64px 0 40px; border-bottom: 1px solid var(--oz-line-soft); }
.oz-page-head h1{ font-size: clamp(2.4rem, 5vw, 3.6rem); margin-top: 8px; }
.oz-page-head p{ color: var(--oz-ink-dim); margin-top: 12px; max-width: 60ch; }
.oz-page-head .oz-wrap{ display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.oz-section{ position: relative; padding: 48px 0 88px; }
.oz-wrap.oz-section, .oz-container.oz-section{ padding-left: 24px; padding-right: 24px; }

/* ---------- hero ---------- */
.oz-hero{ position: relative; min-height: min(88vh, 780px); display: flex; align-items: center; padding: 96px 0 120px; overflow: hidden; isolation: isolate; }
.oz-hero-bg{ position: absolute; inset: 0; z-index: -1; }
.oz-hero-bg img{ width: 100%; height: 100%; object-fit: cover; object-position: 60% 40%; display: block; }
.oz-hero-bg::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(11,12,14,.94) 0%, rgba(11,12,14,.72) 38%, rgba(11,12,14,.15) 75%), linear-gradient(0deg, var(--oz-bg) 0%, rgba(11,12,14,0) 35%); }
.oz-hero-inner{ max-width: 620px; }
.oz-hero h1{ font-size: clamp(3rem, 7.4vw, 6rem); font-weight: 700; line-height: .92; margin: 16px 0 22px; }
.oz-hero h1 em{ font-style: normal; color: var(--oz-toxic); }
.oz-hero p.oz-lede{ font-size: 1.12rem; color: #c4c6cc; max-width: 48ch; margin-bottom: 34px; }
.oz-hero-actions{ display: flex; gap: 12px; flex-wrap: wrap; }
.oz-hero-meta{ display: flex; gap: 10px 22px; flex-wrap: wrap; align-items: center; margin-top: 30px; font-size: .86rem; color: var(--oz-ink-dim); }
.oz-hero-meta span{ display: inline-flex; align-items: center; gap: 8px; }
.oz-hero-meta svg{ width: 16px; height: 16px; color: var(--oz-ink-faint); }
.oz-hero-meta b{ color: var(--oz-ink); font-weight: 600; }

.oz-pill{ display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; font-size: .78rem; font-weight: 600; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); color: var(--oz-ink); }
.oz-pulse{ width: 8px; height: 8px; border-radius: 50%; background: currentColor; display: inline-block; flex: none; }
.oz-status-good, .oz-case-panel .oz-row b.oz-status-good{ color: var(--oz-ok); }
.oz-status-bad, .oz-case-panel .oz-row b.oz-status-bad{ color: var(--oz-blood-bright); }
.oz-status-warn, .oz-case-panel .oz-row b.oz-status-warn{ color: var(--oz-warn); }

/* legacy status panel */
.oz-case-panel{ position: relative; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); padding: 22px; font-size: .88rem; }
.oz-case-panel .oz-row{ display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--oz-line-soft); color: var(--oz-ink-dim); }
.oz-case-panel .oz-row:last-child{ border-bottom: none; }
.oz-case-panel .oz-row b{ color: var(--oz-ink); font-weight: 600; }
.oz-case-title{ margin-bottom: 8px; }

/* ---------- stats ---------- */
.oz-stat-row{ display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--oz-line); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); overflow: hidden; }
.oz-stat{ background: var(--oz-bg-raised); padding: 24px 26px; }
.oz-stat .oz-num{ font-family: var(--oz-font-display); font-size: 2.3rem; font-weight: 700; color: var(--oz-ink); font-variant-numeric: tabular-nums; line-height: 1; display: flex; align-items: center; gap: 10px; }
.oz-stat .oz-label{ font-size: .8rem; color: var(--oz-ink-faint); margin-top: 8px; }
.oz-stat.oz-gold .oz-num{ color: var(--oz-gold); }
.oz-stat.oz-gp .oz-num{ color: var(--oz-gp); }
.oz-stat.oz-red .oz-num{ color: var(--oz-toxic); }
.oz-stat .oz-num.oz-status-good{ color: var(--oz-ok); } .oz-stat .oz-num.oz-status-bad{ color: var(--oz-blood-bright); } .oz-stat .oz-num.oz-status-warn{ color: var(--oz-warn); }
.oz-hero + .oz-stats-band{ margin-top: -64px; position: relative; z-index: 3; }

/* ---------- cards ---------- */
.oz-grid-3{ display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.oz-grid-4{ display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.oz-grid-2{ display: grid; grid-template-columns: repeat(2,1fr); gap: 20px; }
.oz-card{ position: relative; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); padding: 26px; }
.oz-card h3{ font-size: 1.08rem; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.oz-card p{ color: var(--oz-ink-dim); font-size: .94rem; }
.oz-icon{ width: 22px; height: 22px; flex: none; color: var(--oz-toxic); }

.oz-feature{ transition: border-color .2s; }
.oz-feature:hover{ border-color: var(--oz-line-strong); }
.oz-feature-icon{ width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 18px; background: rgba(var(--oz-accent-rgb), .1); color: var(--oz-toxic); }
.oz-feature-icon svg{ width: 22px; height: 22px; }
.oz-feature .oz-feature-num{ display: none; }

.oz-dossier-card{ position: relative; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); display: flex; flex-direction: column; gap: 10px; padding: 0 0 20px; cursor: pointer; transition: border-color .2s, transform .25s var(--oz-ease); text-align: left; width: 100%; color: inherit; text-decoration: none; overflow: hidden; }
.oz-dossier-card > *:not(img):not(.oz-dossier-media){ margin-left: 20px; margin-right: 20px; }
.oz-dossier-card > .oz-tag:first-child, .oz-dossier-card > .oz-dossier-media + .oz-tag, .oz-dossier-card > img + .oz-tag{ margin-top: 10px; }
.oz-dossier-card:hover{ border-color: var(--oz-line-strong); transform: translateY(-3px); }
.oz-dossier-card img, .oz-dossier-media{ width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; transition: transform .5s var(--oz-ease); }
.oz-dossier-media{ background: url("/img/hero.jpg") center/cover; position: relative; }
.oz-dossier-media::after{ content: ""; position: absolute; inset: 0; background: rgba(11,12,14,.55); }
.oz-dossier-media svg{ display: none; }
.oz-dossier-card .oz-tag{ align-self: flex-start; font-size: .7rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.oz-tag-news{ color: var(--oz-ink-dim); }
.oz-tag-event{ color: var(--oz-toxic); }
.oz-tag-update{ color: var(--oz-ok); }
.oz-dossier-card h3{ font-size: 1.1rem; line-height: 1.35; }
.oz-dossier-card .oz-excerpt{ color: var(--oz-ink-dim); font-size: .9rem; }
.oz-dossier-card .oz-meta{ font-size: .8rem; color: var(--oz-ink-faint); margin-top: auto; padding-top: 4px; }

.oz-dispatch-list{ display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.oz-dispatch-list.oz-cols-3{ grid-template-columns: repeat(3, 1fr); }
.oz-dispatch-list.oz-cols-4{ grid-template-columns: repeat(4, 1fr); }
.oz-filters{ display: flex; gap: 4px; flex-wrap: wrap; padding: 4px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 10px; }
.oz-filter-btn{ font-size: .84rem; font-weight: 500; padding: 7px 14px; border: none; border-radius: 7px; background: transparent; color: var(--oz-ink-dim); cursor: pointer; text-decoration: none; display: inline-block; transition: color .15s, background .15s; }
.oz-filter-btn:hover{ color: var(--oz-ink); }
.oz-filter-btn.oz-active{ color: #fff; background: var(--oz-toxic); }

.oz-badge{ display: inline-block; font-size: .68rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; background: rgba(255,255,255,.06); color: var(--oz-ink-dim); }
.oz-badge-event{ color: var(--oz-toxic); background: rgba(var(--oz-accent-rgb), .12); }
.oz-badge-update{ color: var(--oz-ok); background: rgba(var(--oz-ok-rgb), .12); }
.oz-badge-notice{ color: var(--oz-gold); background: rgba(251,191,36,.12); }

.oz-article{ max-width: 820px; }
.oz-article h1, .oz-article h2{ font-size: clamp(2.2rem, 4.4vw, 3.2rem); margin-bottom: 12px; }
.oz-article .oz-meta{ font-size: .84rem; color: var(--oz-ink-faint); margin-bottom: 28px; }
.oz-article-cover{ width: 100%; display: block; border-radius: var(--oz-radius); margin-bottom: 32px; }
.oz-article-body{ max-width: 68ch; color: #c4c6cc; font-size: 1.04rem; line-height: 1.8; }
.oz-article-body p{ margin-bottom: 18px; }
.oz-article-body a{ color: var(--oz-toxic); }
.oz-article-body img{ border-radius: var(--oz-radius-sm); }

/* ---------- tables ---------- */
.oz-table-wrap{ overflow-x: auto; border: 1px solid var(--oz-line); border-radius: var(--oz-radius); background: var(--oz-bg-raised); }
.oz-table{ width: 100%; border-collapse: collapse; font-size: .9rem; min-width: 480px; }
.oz-table thead th{ text-align: left; font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--oz-ink-faint); padding: 14px 18px; border-bottom: 1px solid var(--oz-line); }
.oz-table tbody td{ padding: 14px 18px; border-bottom: 1px solid var(--oz-line-soft); font-variant-numeric: tabular-nums; color: var(--oz-ink); }
.oz-table tbody tr:last-child td{ border-bottom: none; }
.oz-table tbody tr:hover{ background: rgba(255,255,255,.025); }
.oz-table tbody td:first-child{ color: var(--oz-ink-dim); }
.oz-rank-1{ color: var(--oz-gold); font-weight: 700; }

/* ---------- forms ---------- */
.oz-auth-wrap{ position: relative; max-width: 460px; margin: 0 auto; padding: 64px 24px 80px; }
.oz-auth-wrap > h2, .oz-auth-wrap > h1{ font-size: 2.4rem; }
.oz-auth-card{ position: relative; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); padding: 32px; }
.oz-auth-split{ position: relative; display: grid; grid-template-columns: 1.1fr 1fr; min-height: calc(100vh - 64px); }
.oz-auth-art{ position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; padding: 56px; isolation: isolate; background: url("/img/hero.jpg") 30% center/cover; }
.oz-auth-art::before{ content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(11,12,14,.95) 0%, rgba(11,12,14,.35) 55%, rgba(11,12,14,.2) 100%); }
.oz-auth-art .oz-hero-scene{ display: none; }
.oz-auth-art h2{ font-size: clamp(2.4rem, 4vw, 3.4rem); margin: 10px 0 14px; }
.oz-auth-art p{ color: #c4c6cc; max-width: 42ch; }
.oz-auth-form{ display: flex; flex-direction: column; justify-content: center; padding: 56px; }
.oz-auth-form .oz-auth-inner{ width: 100%; max-width: 400px; margin: 0 auto; }
.oz-auth-form h1{ font-size: 2.6rem; margin: 8px 0 8px; }
.oz-auth-form .oz-sub{ color: var(--oz-ink-dim); margin-bottom: 28px; }
.oz-field{ margin-bottom: 18px; }
.oz-field-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.oz-field label{ display: block; font-size: .82rem; font-weight: 500; color: var(--oz-ink-dim); margin-bottom: 8px; }
.oz-field input, .oz-field select, .oz-field textarea{ width: 100%; min-height: 46px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line-strong); border-radius: var(--oz-radius-sm); color: var(--oz-ink); padding: 11px 14px; font-family: var(--oz-font-body); font-size: .94rem; transition: border-color .15s, box-shadow .15s; }
.oz-field textarea{ min-height: 130px; resize: vertical; }
.oz-field input::placeholder, .oz-field textarea::placeholder{ color: var(--oz-ink-faint); }
.oz-field input:focus, .oz-field select:focus, .oz-field textarea:focus{ border-color: var(--oz-toxic); outline: none; box-shadow: 0 0 0 3px rgba(var(--oz-accent-rgb), .18); }
.oz-field input:disabled{ opacity: .6; }
.oz-form-foot{ text-align: center; margin-top: 20px; font-size: .9rem; color: var(--oz-ink-dim); }
.oz-form-foot a{ color: var(--oz-ink); text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }
.oz-form-foot a:hover{ color: var(--oz-toxic); }
.oz-form-note{ font-size: .82rem; color: var(--oz-ink-faint); margin-top: 14px; }
.oz-notice{ display: flex; gap: 10px; align-items: flex-start; border: 1px solid rgba(var(--oz-ok-rgb), .3); border-radius: var(--oz-radius-sm); background: rgba(var(--oz-ok-rgb), .07); padding: 13px 16px; font-size: .9rem; color: #b7ecc9; margin-bottom: 20px; }
.oz-notice.oz-error{ border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08); color: #fca5a5; }

/* ---------- faq ---------- */
.oz-faq-item{ border-bottom: 1px solid var(--oz-line); }
.oz-faq-q{ width: 100%; text-align: left; background: none; border: none; color: var(--oz-ink); padding: 18px 2px; font-family: var(--oz-font-body); font-weight: 600; font-size: 1rem; display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; }
.oz-faq-q .oz-plus{ font-size: 1.3rem; font-weight: 400; color: var(--oz-ink-faint); transition: transform .2s; flex: none; }
.oz-faq-item.oz-open .oz-plus{ transform: rotate(45deg); color: var(--oz-toxic); }
.oz-faq-a{ max-height: 0; overflow: hidden; transition: max-height .25s ease; }
.oz-faq-item.oz-open .oz-faq-a{ max-height: 260px; }
.oz-faq-a p{ color: var(--oz-ink-dim); font-size: .94rem; padding: 0 2px 18px; max-width: 64ch; }
.oz-faq-a a{ color: var(--oz-toxic); }

/* ---------- steps (download) ---------- */
.oz-steps{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; counter-reset: oz-step; }
.oz-steps li{ counter-increment: oz-step; display: flex; gap: 14px; align-items: flex-start; color: var(--oz-ink-dim); font-size: .95rem; }
.oz-steps li::before{ content: counter(oz-step); flex: none; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .8rem; font-weight: 700; color: var(--oz-ink); background: var(--oz-bg-elev); border: 1px solid var(--oz-line-strong); }
.oz-steps a{ color: var(--oz-toxic); text-decoration: none; }
.oz-dl-card{ overflow: hidden; }
.oz-dl-alt{ display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px; }
.oz-version{ font-size: .74rem; font-weight: 600; color: var(--oz-ink-dim); background: rgba(255,255,255,.06); border-radius: 999px; padding: 3px 10px; }

/* ---------- dashboard ---------- */
.oz-dash-tabs{ display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 28px; border-bottom: 1px solid var(--oz-line); max-width: 100%; }
.oz-dash-tabs a{ font-size: .9rem; font-weight: 500; color: var(--oz-ink-dim); text-decoration: none; padding: 10px 14px; margin-bottom: -1px; border-bottom: 2px solid transparent; transition: color .15s, border-color .15s; }
.oz-dash-tabs a:hover{ color: var(--oz-ink); }
.oz-dash-tabs a.oz-active{ color: var(--oz-ink); border-bottom-color: var(--oz-toxic); }
.oz-profile-head{ display: flex; align-items: center; gap: 20px; padding: 24px; margin-bottom: 18px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); }
.oz-profile-head h2{ font-size: 2rem; }
.oz-avatar-lg{ width: 68px; height: 68px; flex: none; border-radius: 50%; background: var(--oz-toxic); color: #fff; display: flex; align-items: center; justify-content: center; font-family: var(--oz-font-display); font-size: 2rem; font-weight: 700; }
.oz-sub{ color: var(--oz-ink-dim); font-size: .9rem; margin-top: 4px; }
.oz-char-card h3{ justify-content: space-between; }
.oz-char-stats{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 18px; }
.oz-char-stats div{ background: var(--oz-bg-inset); border-radius: 8px; padding: 10px 12px; }
.oz-char-stats b{ display: block; font-family: var(--oz-font-display); font-size: 1.4rem; font-weight: 700; }
.oz-char-stats span{ font-size: .74rem; color: var(--oz-ink-faint); }
.oz-empty{ text-align: center; padding: 56px 20px; border: 1px dashed var(--oz-line-strong); border-radius: var(--oz-radius); color: var(--oz-ink-faint); }
.oz-empty svg{ width: 40px; height: 40px; color: var(--oz-ink-faint); margin-bottom: 12px; }

/* ---------- 404 / error ---------- */
.oz-error-page{ position: relative; text-align: center; padding: 120px 24px 130px; }
.oz-error-code{ font-family: var(--oz-font-display); font-weight: 700; font-size: clamp(6rem, 18vw, 11rem); line-height: .9; color: var(--oz-toxic); }
.oz-error-page h2{ font-size: 2rem; margin: 18px 0 10px; }
.oz-error-page p{ color: var(--oz-ink-dim); margin-bottom: 28px; }

/* ---------- CTA ---------- */
.oz-cta{ position: relative; overflow: hidden; isolation: isolate; border-radius: 14px; padding: 64px 48px; display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; background: url("/img/hero.jpg") center 35%/cover; }
.oz-cta::before{ content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(11,12,14,.95) 0%, rgba(11,12,14,.8) 50%, rgba(11,12,14,.55) 100%); }
.oz-cta h2{ font-size: clamp(2rem, 4vw, 3rem); margin: 8px 0 12px; }
.oz-cta p{ color: #c4c6cc; max-width: 52ch; }
.oz-cta .oz-hero-actions{ flex: none; }

/* ---------- footer ---------- */
.oz-footer{ position: relative; border-top: 1px solid var(--oz-line-soft); padding: 56px 0 28px; margin-top: 40px; }
.oz-foot-top{ display: grid; grid-template-columns: 1.6fr 1fr 1fr; gap: 40px; margin-bottom: 40px; }
.oz-foot-brand p{ color: var(--oz-ink-faint); font-size: .9rem; margin-top: 14px; max-width: 38ch; }
.oz-foot-col h4{ font-size: .8rem; font-weight: 600; color: var(--oz-ink); margin-bottom: 14px; }
.oz-foot-col a{ display: block; color: var(--oz-ink-faint); text-decoration: none; font-size: .9rem; padding: 4px 0; transition: color .15s; }
.oz-foot-col a:hover{ color: var(--oz-ink); }
.oz-social{ display: flex; gap: 8px; margin-top: 18px; }
.oz-social a{ width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.05); color: var(--oz-ink-dim); transition: color .15s, background .15s; }
.oz-social a:hover{ color: #fff; background: var(--oz-toxic); }
.oz-social svg{ width: 17px; height: 17px; }
.oz-foot-grid{ display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; padding-top: 22px; border-top: 1px solid var(--oz-line-soft); }
.oz-foot-links{ display: flex; gap: 18px; flex-wrap: wrap; }
.oz-foot-links a{ font-size: .8rem; color: var(--oz-ink-faint); text-decoration: none; }
.oz-foot-links a:hover{ color: var(--oz-ink); }
.oz-foot-legal{ font-size: .8rem; color: var(--oz-ink-faint); }

/* scroll reveal */
.oz-reveal{ opacity: 0; transform: translateY(14px); transition: opacity .6s var(--oz-ease), transform .6s var(--oz-ease); }
.oz-reveal.oz-in{ opacity: 1; transform: none; }

@media (max-width: 1080px){
  .oz-bar{ flex-wrap: wrap; gap: 12px; height: auto; min-height: 64px; padding-top: 12px; padding-bottom: 12px; }
  .oz-burger{ display: inline-flex; }
  .oz-nav{ display: none; order: 3; width: 100%; flex-direction: column; padding: 6px 0 4px; flex: none; }
  .oz-header.oz-nav-open .oz-nav{ display: flex; }
  .oz-nav > a{ padding: 11px 4px; }
  .oz-nav > a::after{ display: none; }
  .oz-nav > a.oz-active{ color: var(--oz-toxic); }
  .oz-auth{ gap: 6px; }
  .oz-dispatch-list.oz-cols-4{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px){
  .oz-hero{ min-height: 0; padding: 72px 0 112px; }
  .oz-hero-bg::after{ background: linear-gradient(0deg, var(--oz-bg) 0%, rgba(11,12,14,.75) 50%, rgba(11,12,14,.55) 100%); }
  .oz-stat-row, .oz-grid-4{ grid-template-columns: repeat(2,1fr); }
  .oz-grid-3, .oz-grid-2, .oz-dispatch-list, .oz-dispatch-list.oz-cols-3{ grid-template-columns: 1fr; }
  .oz-foot-top{ grid-template-columns: 1fr 1fr; }
  .oz-foot-brand{ grid-column: 1 / -1; }
  .oz-auth-split{ grid-template-columns: 1fr; }
  .oz-auth-art{ min-height: 240px; padding: 32px 24px; }
  .oz-auth-form{ padding: 40px 24px 56px; }
  .oz-char-stats{ grid-template-columns: repeat(2, 1fr); }
  .oz-cta{ padding: 44px 28px; }
}
@media (max-width: 560px){
  .oz-wrap, .oz-container{ padding: 0 16px; }
  .oz-wrap.oz-section, .oz-container.oz-section{ padding-left: 16px; padding-right: 16px; }
  .oz-bar{ padding-left: 16px; padding-right: 16px; }
  .oz-wordmark .oz-tag, .oz-user-chip .oz-chip-name{ display: none; }
  .oz-grid-4, .oz-dispatch-list.oz-cols-4{ grid-template-columns: 1fr; }
  .oz-stat{ padding: 18px; }
  .oz-stat .oz-num{ font-size: 1.8rem; }
  .oz-field-row{ grid-template-columns: 1fr; }
  .oz-block{ padding: 60px 0; }
  .oz-cta{ padding: 36px 20px; }
}
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{ animation: none !important; transition: none !important; }
  .oz-reveal{ opacity: 1; transform: none; }
}

/* biohazard glyph (still used by a couple of admin views as a mask) */
:root{
  --oz-biohazard: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'><defs><mask id='m'><rect x='-50' y='-50' width='100' height='100' fill='white'/><g fill='black'><circle cx='0' cy='-29' r='13'/><circle cx='25.11' cy='14.5' r='13'/><circle cx='-25.11' cy='14.5' r='13'/><circle r='6.5'/></g><g stroke='black' stroke-width='3'><line x1='0' y1='0' x2='0' y2='-20'/><line x1='0' y1='0' x2='17.3' y2='10'/><line x1='0' y1='0' x2='-17.3' y2='10'/></g></mask></defs><g mask='url(%23m)' fill='black'><circle cx='0' cy='-20' r='19'/><circle cx='17.32' cy='10' r='19'/><circle cx='-17.32' cy='10' r='19'/><circle r='16' fill='none' stroke='black' stroke-width='4'/></g></svg>");
}

/* ╔══════════════════════════════════════════════════════════
   ║  ADMIN PANEL
   ╚══════════════════════════════════════════════════════════ */

:root{
  --adm-sidebar-w: 256px;
  --adm-pad: 36px;          /* page gutter of the admin content column */
  --adm-gap: 24px;          /* space between cards / sections */
  --adm-blue: #38bdf8;
  --adm-blue-dim: #0c4a6e;
  --adm-green: var(--oz-ok);
  --adm-green-dim: var(--oz-toxic-dim);
  --adm-red: var(--oz-blood-bright);
  --adm-amber: var(--oz-warn);
  --adm-danger: var(--oz-blood-bright);
}

body.oz-admin{ background: var(--oz-bg); }
body.oz-admin .oz-vignette{ display: none; }

/* ── Layout ── */
.adm-layout{ position: relative; z-index: 2; display: grid; grid-template-columns: var(--adm-sidebar-w) minmax(0, 1fr); min-height: 100vh; }

/* ── Sidebar ── */
.adm-sidebar{ background: var(--oz-bg-inset); border-right: 1px solid var(--oz-line); display: flex; flex-direction: column; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.adm-brand{ display: flex; align-items: center; gap: 10px; padding: 20px 20px 16px; text-decoration: none; color: var(--oz-ink); font-family: var(--oz-font-display); font-weight: 700; font-size: 1.25rem; letter-spacing: .06em; text-transform: uppercase; }
.adm-brand i{ font-style: normal; color: var(--oz-toxic); }
.adm-brand .oz-logo-mark{ width: 26px; height: 26px; }
.adm-sidebar-head{ margin: 0 12px 6px; padding: 12px; border: 1px solid var(--oz-line); border-radius: 10px; background: rgba(255,255,255,.02); }
.adm-sidebar-head .oz-eyebrow{ font-size: .6rem; color: var(--oz-blood-bright); }
.adm-sidebar-user{ font-size: .88rem; font-weight: 600; color: var(--oz-ink); margin-top: 8px; display: flex; align-items: center; gap: 8px; }
.adm-sidebar-foot{ margin-top: auto; border-top: 1px solid var(--oz-line-soft); padding: 10px 12px; }
.adm-nav-group{ font-family: var(--oz-font-mono); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; color: var(--oz-ink-faint); padding: 14px 14px 6px; }

.adm-nav-list{ list-style: none; margin: 0; padding: 6px 12px; display: flex; flex-direction: column; gap: 2px; }
.adm-nav-link{ position: relative; display: flex; align-items: center; gap: 12px; font-size: .88rem; font-weight: 500; text-decoration: none; color: var(--oz-ink-dim); padding: 10px 12px; border: 1px solid transparent; border-radius: 8px; transition: color .15s, background .15s, border-color .15s; }
.adm-nav-link:hover{ color: var(--oz-ink); background: rgba(255,255,255,.04); }
.adm-nav-link.adm-active{ color: var(--oz-toxic); background: linear-gradient(90deg, rgba(var(--oz-accent-rgb), .12), rgba(var(--oz-accent-rgb), .02)); border-color: rgba(var(--oz-accent-rgb), .18); }
.adm-nav-link.adm-active::before{ content: ""; position: absolute; left: -12px; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--oz-toxic) ; }
.adm-nav-icon{ width: 18px; height: 18px; flex-shrink: 0; }

/* ── Main ──
   One spacing system for every admin page: the content column has the gutter, the page header
   bleeds to the column edges, and everything below it (sections, cards, grids, alerts) only spaces
   itself vertically. Pages used to mix two systems (.adm-header vs .adm-topbar + padded sections),
   which is why gutters and gaps differed from page to page. */
.adm-main{ padding: 0 var(--adm-pad) 80px; overflow-x: hidden; min-width: 0; }
.adm-main > *{ max-width: 1480px; }
.adm-topbar, .adm-header{ display: flex; align-items: flex-end; justify-content: space-between; gap: 18px 24px; flex-wrap: wrap; margin: 0 calc(-1 * var(--adm-pad)) 28px; max-width: none; padding: 34px var(--adm-pad) 26px; border-bottom: 1px solid var(--oz-line-soft); background: radial-gradient(500px 160px at 100% 0%, rgba(185,28,28,.10), transparent 70%); }
.adm-topbar > div:first-child, .adm-header > div:first-child{ min-width: 0; flex: 1 1 420px; }
.adm-header div, .adm-header form, .adm-status-card form{ flex-wrap: wrap; }
.adm-header > div:last-child:not(:first-child){ display: flex; gap: 10px; align-items: center; }
.adm-page-title, .adm-title{ font-size: 2rem; margin-top: 10px; line-height: 1.15; }
.adm-subtitle{ color: var(--oz-ink-dim); font-size: .92rem; line-height: 1.6; margin-top: 10px; max-width: 78ch; }
.adm-breadcrumb{ font-size: .8rem; font-weight: 500; color: var(--oz-ink-dim); text-decoration: none; }
.adm-breadcrumb:hover{ color: var(--oz-toxic); }
.adm-topbar-right{ display: flex; align-items: center; gap: 10px; font-size: .8rem; color: var(--oz-ink-dim); padding: 8px 14px; border: 1px solid var(--oz-line); border-radius: 999px; background: rgba(255,255,255,.02); }
/* a topbar-right that holds buttons/forms is just an action row, not a status pill */
.adm-topbar-right:has(.oz-btn){ padding: 0; border: none; background: none; gap: 10px; flex-wrap: wrap; }
.adm-topbar-right:has(.oz-btn) .oz-btn{ margin: 0; }
.adm-topbar-right form{ margin: 0; }
.adm-topbar-info{ color: var(--oz-ok); }

/* ── Sections ── */
.adm-section{ padding: 0; margin: 0 0 36px; }
.adm-section-head{ display: flex; align-items: center; justify-content: space-between; gap: 14px 20px; margin-bottom: 18px; flex-wrap: wrap; }
.adm-section-title{ font-family: var(--oz-font-display); font-size: 1.12rem; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; color: var(--oz-ink); margin-bottom: 18px; display: flex; align-items: center; gap: 10px; }
.adm-section-head .adm-section-title{ margin-bottom: 0; }
.adm-section-title::before{ content: ""; width: 4px; height: 16px; border-radius: 2px; background: var(--oz-toxic) ; }

/* ── Stat cards ── */
.adm-stat-grid{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; padding: 0; margin: 0 0 36px; }
.adm-stat-card{ position: relative; overflow: hidden; background: linear-gradient(180deg, var(--oz-bg-elev), var(--oz-bg-raised)); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); padding: 22px 24px; display: flex; align-items: center; gap: 18px; transition: border-color .2s, transform .2s; }
.adm-stat-card:hover{ border-color: var(--oz-line-strong); transform: translateY(-2px); }
.adm-stat-icon{ width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; border: 1px solid currentColor; }
.adm-stat-icon svg{ width: 22px; height: 22px; }
.adm-si-blue{ background: rgba(56,189,248,.08); color: var(--adm-blue); border-color: rgba(56,189,248,.25); }
.adm-si-green{ background: rgba(var(--oz-ok-rgb), .08); color: var(--oz-ok); border-color: rgba(var(--oz-ok-rgb), .25); }
.adm-si-amber{ background: rgba(245,158,11,.08); color: var(--oz-warn); border-color: rgba(245,158,11,.25); }
.adm-si-red{ background: rgba(239,68,68,.08); color: var(--oz-blood-bright); border-color: rgba(239,68,68,.25); }
.adm-stat-body{ min-width: 0; }
.adm-stat-num{ font-family: var(--oz-font-display); font-size: 2rem; font-weight: 600; color: var(--oz-ink); font-variant-numeric: tabular-nums; line-height: 1; }
.adm-stat-label{ font-size: .74rem; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--oz-ink-faint); margin-top: 8px; }
.adm-text-green{ color: var(--oz-ok); }
.adm-text-red{ color: var(--oz-blood-bright); }

/* ── Cards ──
   overflow stays VISIBLE: a card that clipped its content also clipped every dropdown opened inside
   it (the gift form's player picker opened "behind" the page). Only cards that hold a table directly
   clip, for the table's corners and horizontal scroll. */
.adm-card{ position: relative; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); margin-bottom: var(--adm-gap); }
.adm-card:has(> .adm-table, > .adm-table-wrap){ overflow: hidden; }
.adm-card:has(> .adm-table){ overflow-x: auto; }
.adm-card-head{ font-size: .76rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--oz-ink); padding: 15px 22px; border-bottom: 1px solid var(--oz-line-soft); background: var(--oz-bg-inset); border-radius: var(--oz-radius) var(--oz-radius) 0 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.adm-card-head:last-child{ border-bottom: none; border-radius: var(--oz-radius); }
.adm-card-body, .adm-card-pad{ padding: 22px 24px; }
.adm-card > form:not(.adm-filter-bar), .adm-card > .adm-form-grid{ padding: 22px 24px; }
.adm-card.adm-card-pad > form, .adm-card.adm-card-pad > .adm-form-grid{ padding: 0; }
.adm-card-foot{ display: flex; justify-content: flex-end; align-items: center; gap: 12px; flex-wrap: wrap; padding: 16px 24px; border-top: 1px solid var(--oz-line-soft); background: rgba(0,0,0,.18); border-radius: 0 0 var(--oz-radius) var(--oz-radius); }
/* a card's own title + intro line, for cards without a .adm-card-head bar */
.adm-card-title{ font-family: var(--oz-font-display); font-size: 1.15rem; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: var(--oz-ink); margin: 0 0 8px; }
.adm-card-desc{ font-size: .88rem; line-height: 1.6; color: var(--oz-ink-dim); margin: 0 0 20px; max-width: 90ch; }
.adm-card-desc b{ color: var(--oz-ink); }

/* ── Tables ── */
.adm-table-wrap{ overflow-x: auto; border: 1px solid var(--oz-line); border-radius: var(--oz-radius); background: var(--oz-bg-raised); }
.adm-card > .adm-table-wrap{ border: none; border-radius: 0; }
.adm-table{ width: 100%; border-collapse: collapse; font-size: .88rem; }
.adm-table thead th{ text-align: left; font-size: .7rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--oz-ink-faint); background: var(--oz-bg-inset); padding: 13px 16px; border-bottom: 1px solid var(--oz-line); white-space: nowrap; position: sticky; top: 0; z-index: 1; }
.adm-table tbody td{ padding: 14px 16px; border-bottom: 1px solid var(--oz-line-soft); color: var(--oz-ink); vertical-align: middle; line-height: 1.45; }
.adm-table tbody tr:last-child td{ border-bottom: none; }
.adm-table tbody tr{ transition: background .12s; }
.adm-table tbody tr:hover{ background: rgba(var(--oz-accent-rgb), .035); }
.adm-table code{ font-family: var(--oz-font-mono); font-size: .82rem; color: var(--oz-ink-dim); }
.adm-table-compact thead th{ padding: 12px 12px; }
.adm-table-compact tbody td{ padding: 12px 12px; }
.adm-ellipsis{ display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
.adm-clamp-2{ display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 2px; }
/* row actions: real (small, bordered) buttons with air between them, instead of bare words */
.adm-row-actions{ display: inline-flex; gap: 8px; align-items: center; justify-content: flex-end; flex-wrap: nowrap; }
.adm-row-actions form{ margin: 0; display: inline-flex; }
.adm-main .adm-table .oz-btn.oz-btn-sm, .adm-main .adm-row-actions .oz-btn{ min-height: 32px; padding: 6px 12px; font-size: .8rem; border-color: var(--oz-line-strong); background: rgba(255,255,255,.025); color: var(--oz-ink); }
.adm-main .adm-table .oz-btn.oz-btn-sm:hover, .adm-main .adm-row-actions .oz-btn:hover{ border-color: var(--oz-ink-dim); background: rgba(255,255,255,.06); }
.adm-main .adm-row-actions .oz-btn.oz-btn-danger, .adm-main .adm-table .oz-btn.oz-btn-danger{ color: var(--oz-blood-bright); border-color: rgba(239,68,68,.4); }
.adm-main .adm-row-actions .oz-btn.oz-btn-danger:hover, .adm-main .adm-table .oz-btn.oz-btn-danger:hover{ background: rgba(239,68,68,.12); border-color: var(--oz-blood-bright); color: #fca5a5; }
.adm-form-inline > .adm-form-group{ margin-bottom: 0; }

/* ── Badges ── */
.adm-badge{ display: inline-flex; align-items: center; gap: 5px; font-size: .68rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; padding: 4px 10px; border: 1px solid var(--oz-line); border-radius: 999px; white-space: nowrap; line-height: 1.2; }
.adm-badge-green{ color: var(--oz-ok); border-color: rgba(var(--oz-ok-rgb), .3); background: rgba(var(--oz-ok-rgb), .08); }
.adm-badge-red{ color: var(--oz-blood-bright); border-color: rgba(239,68,68,.35); background: rgba(239,68,68,.08); }
.adm-badge-amber{ color: var(--oz-warn); border-color: rgba(245,158,11,.35); background: rgba(245,158,11,.08); }
.adm-badge-dim{ color: var(--oz-ink-faint); border-color: var(--oz-line); }
.adm-badge-dev{ font-family: var(--oz-font-mono); font-size: .58rem; font-weight: 600; letter-spacing: .1em; padding: 2px 7px; border-radius: 999px; background: rgba(239,68,68,.12); color: var(--oz-blood-bright); border: 1px solid rgba(239,68,68,.35); }

/* ── Status dots ── */
.adm-online-dot{ width: 8px; height: 8px; background: var(--oz-ok); border-radius: 50%; display: inline-block ; animation: oz-pulse 1.8s infinite; color: var(--oz-ok); }
.adm-offline-dot{ width: 8px; height: 8px; background: var(--oz-ink-faint); border-radius: 50%; display: inline-block; }

/* ── User cell ── */
.adm-user-cell{ display: flex; align-items: center; gap: 10px; }
.adm-avatar-sm{ width: 28px; height: 28px; border-radius: 8px; background: var(--oz-toxic); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; font-family: var(--oz-font-display); flex-shrink: 0; }

.adm-link{ font-family: var(--oz-font-mono); font-size: .78rem; color: var(--oz-toxic); text-decoration: none; white-space: nowrap; }
.adm-link:hover{ color: var(--oz-toxic-bright); text-decoration: underline; }

.adm-mono{ font-family: var(--oz-font-mono) !important; font-size: .92em; }
.adm-dim{ color: var(--oz-ink-dim); }
.adm-amber{ color: var(--oz-gold); }
.adm-green{ color: var(--oz-ok); }
.adm-red{ color: var(--oz-blood-bright); }

/* ── Quick actions ── */
.adm-quick-grid{ display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }
.adm-quick-card{ display: flex; flex-direction: column; align-items: center; gap: 12px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: var(--oz-radius); padding: 26px; text-decoration: none; color: var(--oz-ink-dim); font-family: var(--oz-font-display); font-size: .88rem; letter-spacing: .08em; text-transform: uppercase; transition: border-color .2s, color .2s, transform .2s, box-shadow .2s; }
.adm-quick-card svg{ width: 30px; height: 30px; }
.adm-quick-card:hover{ border-color: var(--oz-toxic-dim); color: var(--oz-toxic); transform: translateY(-3px); box-shadow: 0 16px 30px -18px rgba(var(--oz-accent-rgb), .35); }

/* ── Flash / alerts ── */
.adm-flash, .adm-alert{ display: flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 14px 18px; font-size: .9rem; line-height: 1.5; border: 1px solid; border-left-width: 3px; border-radius: var(--oz-radius-sm); }
.adm-flash-success, .adm-alert-success{ color: var(--oz-ok); border-color: rgba(var(--oz-ok-rgb), .3); border-left-color: var(--oz-ok); background: rgba(var(--oz-ok-rgb), .06); }
.adm-flash-error, .adm-alert-danger{ color: #fca5a5; border-color: rgba(239,68,68,.35); border-left-color: var(--oz-blood-bright); background: rgba(239,68,68,.07); }
.adm-alert-info{ color: #bae6fd; border-color: rgba(56,189,248,.3); border-left-color: var(--adm-blue); background: rgba(56,189,248,.06); }

/* ── Detail page ── */
.adm-detail-grid{ display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: var(--adm-gap); padding: 0; margin: 0 0 36px; align-items: start; }
.adm-detail-grid-wide{ grid-template-columns: minmax(0,1fr) minmax(0,1.3fr); }
.adm-detail-left, .adm-detail-right{ min-width: 0; }
.adm-detail-left > .adm-card:last-child, .adm-detail-right > .adm-card:last-child{ margin-bottom: 0; }
.adm-info-row{ display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 12px 22px; border-bottom: 1px solid var(--oz-line-soft); font-size: .88rem; }
.adm-info-row:last-child{ border-bottom: none; }
.adm-info-row span{ color: var(--oz-ink-faint); font-size: .74rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.adm-info-row strong{ text-align: right; font-weight: 600; word-break: break-word; }

/* ── Action buttons ── */
.adm-action-form{ padding: 22px 24px; }
.adm-action-group{ display: flex; flex-wrap: wrap; gap: 10px; }
.adm-btn-sm{ font-size: .76rem !important; padding: 8px 14px !important; }
.adm-btn-green{ border-color: rgba(var(--oz-ok-rgb), .45) !important; color: var(--oz-ok) !important; }
.adm-btn-green:hover{ background: rgba(var(--oz-ok-rgb), .1) !important; }
.adm-btn-amber{ border-color: rgba(245,158,11,.5) !important; color: var(--oz-warn) !important; }
.adm-btn-amber:hover{ background: rgba(245,158,11,.1) !important; }
.adm-btn-blue{ border-color: rgba(56,189,248,.5) !important; color: var(--adm-blue) !important; }
.adm-btn-blue:hover{ background: rgba(56,189,248,.1) !important; }

/* ── Forms ── */
.adm-form-row{ display: flex; gap: 18px; flex-wrap: wrap; align-items: flex-end; }
.adm-form-row + .adm-form-row{ margin-top: 18px; }
.adm-form-row > .oz-field{ margin: 0; min-width: 180px; }
.adm-form-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 20px 22px; }
.adm-form-grid.full{ grid-template-columns: 1fr; }
.adm-form-group{ display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.adm-form-grid > .adm-form-group{ margin-bottom: 0; }
.adm-label, .adm-form-label{ display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: .8rem; font-weight: 600; letter-spacing: .01em; color: var(--oz-ink-dim); margin: 0; }
.adm-form-desc{ font-size: .8rem; line-height: 1.5; color: var(--oz-ink-faint); }
.adm-form-actions{ display: flex; justify-content: flex-end; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.adm-input, .adm-select{ width: 100%; min-height: 42px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: var(--oz-radius-sm); padding: 10px 13px; color: var(--oz-ink); font-family: var(--oz-font-body); font-size: .92rem; transition: border-color .15s, box-shadow .15s; box-sizing: border-box; }
textarea.adm-input{ min-height: 110px; }
input[type="file"].adm-input{ padding: 6px 8px 6px 6px; color: var(--oz-ink-dim); font-size: .86rem; cursor: pointer; }
input[type="file"].adm-input::file-selector-button{ margin-right: 12px; padding: 7px 14px; border: 1px solid var(--oz-line-strong); border-radius: 6px; background: var(--oz-bg-elev); color: var(--oz-ink); font-family: var(--oz-font-body); font-weight: 600; font-size: .82rem; cursor: pointer; transition: border-color .15s, background .15s; }
input[type="file"].adm-input::file-selector-button:hover{ border-color: var(--oz-toxic-dim); background: rgba(var(--oz-accent-rgb), .06); }
textarea.adm-input{ min-height: 110px; resize: vertical; line-height: 1.5; }
.adm-input:focus, .adm-select:focus{ outline: none; border-color: var(--oz-toxic); box-shadow: 0 0 0 3px rgba(var(--oz-accent-rgb), .14); }
.adm-select{ appearance: none; -webkit-appearance: none; padding-right: 34px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23a3a6ae' stroke-width='2.5'><polyline points='6 9 12 15 18 9'/></svg>"); background-repeat: no-repeat; background-position: right 12px center; }
.adm-select option{ background: var(--oz-bg-raised); color: var(--oz-ink); }
.adm-input-readonly{ background: var(--oz-bg-inset); border: 1px solid var(--oz-line-soft); color: var(--oz-gold); cursor: default; }

.adm-filter-bar{ padding: 16px 18px; overflow: visible; }
.adm-filter-group{ display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.adm-filter-group > .adm-input{ flex: 1 1 260px; width: auto; }
.adm-filter-group > .adm-select{ flex: 0 1 220px; width: auto; }

/* toggle switch */
.adm-toggle-label{ display: inline-flex; align-items: center; gap: 12px; cursor: pointer; color: var(--oz-ink-dim); font-size: .88rem; }
.adm-toggle-checkbox{ width: 44px; height: 24px; appearance: none; -webkit-appearance: none; background: var(--oz-line-strong); border-radius: 12px; position: relative; outline: none; cursor: pointer; transition: background .25s; flex: none; margin: 0; }
.adm-toggle-checkbox:checked{ background: var(--oz-toxic) ; }
.adm-toggle-checkbox::before{ content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%; top: 3px; left: 3px; background: #f4f5ef; transition: transform .25s var(--oz-ease); }
.adm-toggle-checkbox:checked::before{ transform: translateX(20px); background: #fff; }

/* tabs (settings / news) */
.adm-settings-tabs, .adm-sub-tabs{ display: flex; gap: 4px; flex-wrap: wrap; padding: 5px; margin-bottom: 22px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: 12px; width: fit-content; max-width: 100%; }
.adm-tab-btn, .adm-sub-tab{ padding: 9px 16px; border-radius: 8px; background: transparent; color: var(--oz-ink-dim); border: 1px solid transparent; cursor: pointer; font-family: var(--oz-font-body); font-weight: 500; font-size: .88rem; transition: color .15s, background .15s; }
.adm-tab-btn:hover, .adm-sub-tab:hover{ color: var(--oz-ink); background: rgba(255,255,255,.04); }
.adm-tab-btn.active, .adm-sub-tab.active{ background: var(--oz-toxic); color: #fff; font-weight: 600 ; }
.adm-settings-panel{ display: none; }
.adm-settings-panel.adm-card{ padding: 26px 28px; overflow: visible; }
.adm-settings-panel > h2, .adm-settings-panel > h3{ font-size: 1.15rem; margin-bottom: 22px; }
.adm-settings-panel.active{ display: block; animation: mktFadeIn .2s ease-out; }

/* launcher status card (news) */
.adm-status-card{ display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 20px; border-radius: var(--oz-radius); background: linear-gradient(120deg, rgba(var(--oz-accent-rgb), .05), transparent 60%), var(--oz-bg-raised); border: 1px solid var(--oz-line); margin-bottom: 22px; }
.adm-status-badge{ white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; padding: 5px 13px; border-radius: 999px; font-weight: 700; font-size: .74rem; letter-spacing: .05em; text-transform: uppercase; }
.adm-status-ONLINE, .adm-status-active{ background: rgba(var(--oz-ok-rgb), .12); color: var(--oz-ok); border: 1px solid rgba(var(--oz-ok-rgb), .35); }
.adm-status-PATCH{ background: rgba(245,158,11,.12); color: var(--oz-warn); border: 1px solid rgba(245,158,11,.4); }
.adm-status-OFFLINE, .adm-status-inactive{ background: rgba(239,68,68,.12); color: var(--oz-blood-bright); border: 1px solid rgba(239,68,68,.4); }
.adm-news-thumb{ width: 64px; height: 40px; object-fit: cover; border-radius: 6px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); display: block; }

/* ── Char rows ── */
.adm-char-row{ padding: 14px 22px; border-bottom: 1px solid var(--oz-line-soft); }
.adm-char-row:last-child{ border-bottom: none; }
.adm-char-meta{ display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.adm-char-name{ font-weight: 600; color: var(--oz-ink); }
.adm-char-stats{ display: flex; gap: 8px 18px; flex-wrap: wrap; font-size: .8rem; color: var(--oz-ink-dim); }

/* ── Search ── */
.adm-search-row{ display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; }

/* ── Item catalogue ── */
.adm-send-card{ margin: 0 0 32px; }
.adm-send-card form{ padding: 22px 24px; }
/* the gift / send form: who, what, how many - then the optional note - then the button */
.adm-send-grid{ display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.4fr) 130px; gap: 18px 20px; align-items: end; }
.adm-send-grid .oz-field{ margin: 0; min-width: 0; }
.adm-send-grid .adm-send-wide{ grid-column: span 2; }
.adm-send-foot{ display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--oz-line-soft); }
.adm-send-hint{ font-size: .84rem; color: var(--oz-ink-faint); }
.adm-item-toolbar{ display: flex; align-items: center; justify-content: space-between; gap: 14px 20px; flex-wrap: wrap; margin-bottom: 20px; }
.adm-item-toolbar form{ display: flex; gap: 10px; align-items: center; margin: 0; flex: 0 1 380px; }
.adm-item-toolbar form .adm-input{ flex: 1; }
.adm-item-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 16px; margin-top: 4px; }
/* pickers inside a side card (event rewards): smaller tiles so several fit per row */
.adm-item-grid-compact{ grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 12px; }
.adm-item-grid-compact .adm-item-icon-wrap{ aspect-ratio: 4 / 3; }
.adm-item-grid-compact .adm-item-info{ padding: 10px; gap: 6px; }
.adm-item-grid-compact .adm-item-name{ font-size: .78rem; }
.adm-item-card{ background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 10px; cursor: pointer; transition: border-color .15s, transform .15s; position: relative; overflow: hidden; display: flex; flex-direction: column; }
.adm-item-card:hover{ border-color: var(--oz-toxic-dim); transform: translateY(-2px); }
.adm-item-card.adm-item-selected{ border-color: var(--oz-toxic) !important; box-shadow: 0 0 0 2px rgba(var(--oz-accent-rgb), .25); }
.adm-item-icon-wrap{ background: radial-gradient(circle, rgba(255,255,255,.05), transparent 70%), var(--oz-bg-inset); aspect-ratio: 1; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--oz-line-soft); }
.adm-item-icon{ width: 100%; height: 100%; object-fit: contain; }
.adm-item-icon-fallback{ width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; font-size: 2rem; color: var(--oz-ink-faint); background: var(--oz-bg-inset); }
.adm-item-info{ padding: 12px 12px 14px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.adm-item-name{ font-size: .84rem; color: var(--oz-ink); font-weight: 600; line-height: 1.35; }
.adm-item-sub{ display: flex; gap: 6px 8px; align-items: center; flex-wrap: wrap; font-size: .76rem; }
.adm-item-stat{ font-size: .72rem; color: var(--oz-ink-faint); }
.adm-item-select-indicator{ position: absolute; top: 6px; right: 6px; width: 22px; height: 22px; border-radius: 6px; background: var(--oz-toxic); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; opacity: 0; transition: opacity .15s; }
.adm-item-selected .adm-item-select-indicator{ opacity: 1; }

/* ── Checkboxes ── */
.adm-chk{ appearance: none; -webkit-appearance: none; width: 17px; height: 17px; border: 1px solid var(--oz-line-strong); border-radius: 4px; background: var(--oz-bg-inset); cursor: pointer; position: relative; flex-shrink: 0; vertical-align: middle; margin: 0; transition: border-color .12s, background .12s; }
.adm-chk:hover{ border-color: var(--oz-toxic-dim); }
.adm-chk:checked{ background: var(--oz-toxic); border-color: var(--oz-toxic); }
.adm-chk:checked::after{ content: ''; position: absolute; left: 5px; top: 1px; width: 5px; height: 9px; border: 2px solid #fff; border-top: none; border-left: none; transform: rotate(45deg); }
.adm-chk:indeterminate{ background: rgba(var(--oz-accent-rgb), .25); border-color: var(--oz-toxic-dim); }
.adm-chk:indeterminate::after{ content: ''; position: absolute; left: 3px; top: 7px; width: 9px; height: 2px; background: var(--oz-toxic); }

.user-row{ cursor: pointer; }
.adm-row-selected{ background: rgba(var(--oz-accent-rgb), .07) !important; }
.adm-row-selected td{ border-bottom-color: rgba(var(--oz-accent-rgb), .18) !important; }

/* ── Selection bar ── */
.adm-sel-bar{ position: fixed; bottom: 16px; left: calc(var(--adm-sidebar-w) + 24px); right: 24px; z-index: 200; background: rgba(18,19,23,.94); backdrop-filter: blur(12px); border: 1px solid var(--oz-toxic-dim); border-radius: 14px; padding: 14px 20px; transform: translateY(140%); transition: transform .3s var(--oz-ease); box-shadow: 0 20px 50px rgba(0,0,0,.6); }
.adm-sel-bar-visible{ transform: translateY(0) !important; }
.adm-sel-bar-inner{ display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.adm-sel-info{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.adm-sel-count{ font-family: var(--oz-font-display); font-size: 1.6rem; color: var(--oz-toxic); font-weight: 700; line-height: 1; }
.adm-sel-label{ font-family: var(--oz-font-mono); font-size: .7rem; text-transform: uppercase; letter-spacing: .08em; color: var(--oz-ink-dim); margin-right: 4px; }
.adm-sel-chips{ display: flex; gap: 4px; flex-wrap: wrap; }
.adm-sel-chip{ font-family: var(--oz-font-mono); font-size: .68rem; padding: 2px 9px; border-radius: 999px; background: rgba(var(--oz-accent-rgb), .1); border: 1px solid rgba(var(--oz-accent-rgb), .3); color: var(--oz-toxic); }
.adm-sel-actions{ display: flex; gap: 8px; flex-shrink: 0; }

/* ── Item drawer ── */
.adm-drawer-overlay{ position: fixed; inset: 0; z-index: 300; background: rgba(0,0,0,.6); backdrop-filter: blur(3px); opacity: 0; pointer-events: none; transition: opacity .25s; }
.adm-drawer-overlay-visible{ opacity: 1; pointer-events: all; }
.adm-drawer{ position: fixed; top: 0; right: 0; bottom: 0; z-index: 301; width: 500px; max-width: 96vw; background: var(--oz-bg-raised); border-left: 1px solid var(--oz-line); display: flex; flex-direction: column; transform: translateX(100%); transition: transform .3s var(--oz-ease); box-shadow: -20px 0 50px rgba(0,0,0,.6); }
.adm-drawer-open{ transform: translateX(0) !important; }
.adm-drawer-head{ display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 20px; border-bottom: 1px solid var(--oz-line-soft); background: var(--oz-bg-inset); flex-shrink: 0; }
.adm-drawer-title{ font-size: 1.2rem; margin-top: 6px; line-height: 1; }
.adm-drawer-close{ width: 34px; height: 34px; background: none; border: 1px solid var(--oz-line); border-radius: 8px; color: var(--oz-ink-dim); cursor: pointer; font-size: .9rem; flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: border-color .15s, color .15s; }
.adm-drawer-close:hover{ border-color: var(--oz-blood-bright); color: var(--oz-blood-bright); }
.adm-drawer-targets{ padding: 12px 20px; border-bottom: 1px solid var(--oz-line-soft); background: rgba(var(--oz-accent-rgb), .03); flex-shrink: 0; }
.adm-drawer-target-label{ font-family: var(--oz-font-mono); font-size: .64rem; text-transform: uppercase; letter-spacing: .1em; color: var(--oz-ink-faint); margin-bottom: 6px; }
.adm-drawer-target-chips{ display: flex; gap: 4px; flex-wrap: wrap; }
.adm-drawer-filters{ padding: 12px 20px; border-bottom: 1px solid var(--oz-line-soft); flex-shrink: 0; display: flex; flex-direction: column; gap: 8px; }
.adm-drawer-cats{ display: flex; gap: 4px; flex-wrap: wrap; }
.adm-drawer-cat-btn{ font-family: var(--oz-font-mono); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; background: none; border: 1px solid var(--oz-line); border-radius: 999px; color: var(--oz-ink-dim); cursor: pointer; transition: border-color .12s, color .12s, background .12s; }
.adm-drawer-cat-btn:hover{ border-color: var(--oz-toxic-dim); color: var(--oz-ink); }
.adm-drawer-cat-btn.adm-active-cat{ border-color: var(--oz-toxic); color: #fff; background: var(--oz-toxic); }
.adm-drawer-items{ flex: 1; overflow-y: auto; padding: 6px 0; }
.adm-drawer-loading{ padding: 24px; text-align: center; font-family: var(--oz-font-mono); font-size: .8rem; color: var(--oz-ink-faint); }
.adm-drawer-item{ display: flex; align-items: center; gap: 12px; padding: 8px 20px; cursor: pointer; border-bottom: 1px solid var(--oz-line-soft); transition: background .1s; position: relative; }
.adm-drawer-item:hover{ background: rgba(var(--oz-accent-rgb), .04); }
.adm-drawer-item-sel{ background: rgba(var(--oz-accent-rgb), .1) !important; }
.adm-drawer-item-icon{ width: 46px; height: 46px; flex-shrink: 0; border-radius: 8px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line-soft); display: flex; align-items: center; justify-content: center; overflow: hidden; font-size: 1.2rem; color: var(--oz-ink-faint); }
.adm-drawer-item-icon img{ width: 100%; height: 100%; object-fit: contain; }
.adm-drawer-item-info{ flex: 1; min-width: 0; }
.adm-drawer-item-name{ font-size: .84rem; color: var(--oz-ink); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adm-drawer-item-sub{ font-family: var(--oz-font-mono); font-size: .64rem; color: var(--oz-ink-faint); margin-top: 2px; }
.adm-drawer-item-check{ width: 22px; height: 22px; border-radius: 6px; background: var(--oz-toxic); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; flex-shrink: 0; opacity: 0; transition: opacity .15s; }
.adm-drawer-item-sel .adm-drawer-item-check{ opacity: 1; }
.adm-drawer-foot{ border-top: 1px solid var(--oz-line); padding: 14px 20px; flex-shrink: 0; background: var(--oz-bg-inset); display: flex; flex-direction: column; gap: 10px; }
.adm-drawer-selected-item{ font-family: var(--oz-font-mono); font-size: .78rem; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; min-height: 24px; }

/* ── Toast ── */
.adm-toast{ position: fixed; bottom: 90px; left: 50%; z-index: 500; transform: translateX(-50%) translateY(20px); background: var(--oz-bg-elev); border: 1px solid var(--oz-line); border-radius: 10px; font-size: .86rem; padding: 12px 20px; max-width: 480px; text-align: center; opacity: 0; pointer-events: none; transition: opacity .25s, transform .25s; box-shadow: 0 12px 36px rgba(0,0,0,.6); }
.adm-toast-visible{ opacity: 1; pointer-events: all; transform: translateX(-50%) translateY(0); }
.adm-toast-success{ color: var(--oz-ok); border-color: rgba(var(--oz-ok-rgb), .35); }
.adm-toast-error{ color: var(--oz-blood-bright); border-color: rgba(239,68,68,.4); }
.adm-toast-warn{ color: var(--oz-warn); border-color: rgba(245,158,11,.4); }

/* ── Searchable user select ── */
.adm-user-select-container{ position: relative; width: 100%; }
.adm-user-select-trigger{ width: 100%; min-height: 42px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: var(--oz-radius-sm); color: var(--oz-ink); padding: 10px 13px; font-size: .92rem; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; user-select: none; transition: border-color .15s, box-shadow .15s; }
.adm-user-select-trigger > span:first-child{ min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.adm-user-select-trigger:hover{ border-color: var(--oz-toxic-dim); }
.adm-user-select-container.is-open .adm-user-select-trigger{ border-color: var(--oz-toxic); box-shadow: 0 0 0 3px rgba(var(--oz-accent-rgb), .14); }
.adm-select-arrow{ font-size: .65rem; color: var(--oz-ink-dim); flex: none; transition: transform .15s; }
.adm-user-select-container.is-open .adm-select-arrow{ transform: rotate(180deg); }
/* Opens OVER everything below it: the card around it no longer clips (see .adm-card), and the z-index
   lifts it above the item grid, whose cards form their own layers while they animate on hover. */
.adm-user-select-dropdown{ position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 400; background: var(--oz-bg-elev); border: 1px solid var(--oz-toxic-dim); border-radius: var(--oz-radius-sm); box-shadow: 0 24px 48px rgba(0,0,0,.75); display: none; flex-direction: column; overflow: hidden; }
.adm-user-select-dropdown.open{ display: flex; }
.adm-user-search-wrap{ padding: 10px; border-bottom: 1px solid var(--oz-line-soft); background: var(--oz-bg-inset); }
.adm-user-search-wrap input{ width: 100%; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 6px; color: var(--oz-ink); padding: 9px 11px; font-size: .88rem; outline: none; }
.adm-user-search-wrap input:focus{ border-color: var(--oz-toxic); }
.adm-user-options-list{ max-height: 300px; overflow-y: auto; display: flex; flex-direction: column; }
.adm-user-option{ padding: 11px 14px; border-bottom: 1px solid var(--oz-line-soft); cursor: pointer; font-size: .88rem; line-height: 1.4; transition: background .12s; }
.adm-user-option .adm-dim{ font-size: .78rem; margin-top: 2px; }
.adm-user-option.is-active{ background: rgba(var(--oz-accent-rgb), .08); }
.adm-user-empty{ padding: 14px; font-size: .84rem; color: var(--oz-ink-faint); text-align: center; display: none; }
.adm-user-option:last-child{ border-bottom: none; }
.adm-user-option:hover{ background: rgba(var(--oz-accent-rgb), .08); }
.adm-user-option.selected{ background: rgba(var(--oz-accent-rgb), .14); box-shadow: inset 3px 0 0 var(--oz-toxic); }
.adm-option-all{ background: rgba(var(--oz-accent-rgb), .04); border-bottom: 1px solid var(--oz-line); }

/* ── Event rewards ── */
.adm-event-reward-tag{ display: inline-flex; align-items: center; gap: 6px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: 6px; padding: 3px 8px; font-family: var(--oz-font-mono); font-size: .72rem; }
.adm-event-reward-icon{ width: 22px; height: 22px; object-fit: contain; flex-shrink: 0; }
.adm-event-selected-row{ display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 8px; padding: 6px 10px; }

/* ── Pagination ── */
.adm-pagination{ display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; padding: 14px 18px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: var(--oz-radius-sm); flex-wrap: wrap; }
.adm-card > .adm-pagination{ margin: 0; border: none; border-top: 1px solid var(--oz-line); border-radius: 0 0 var(--oz-radius) var(--oz-radius); }
.adm-pagination-info{ font-size: .82rem; color: var(--oz-ink-dim); }
.adm-pagination-controls{ display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }

@media (max-width: 1280px){
  :root{ --adm-pad: 28px; --adm-sidebar-w: 236px; }
  .adm-send-grid{ grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .adm-send-grid .adm-send-wide{ grid-column: 1 / -1; }
}
@media (max-width: 1100px){
  .adm-stat-grid{ grid-template-columns: repeat(2,1fr); }
  .adm-detail-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 960px){
  .adm-layout{ grid-template-columns: 1fr; }
  .adm-sidebar{ position: static; height: auto; }
  .adm-nav-list{ flex-direction: row; flex-wrap: wrap; }
  .adm-nav-link.adm-active::before{ display: none; }
  .adm-sidebar-foot{ margin-top: 0; }
  .adm-quick-grid{ grid-template-columns: 1fr 1fr; }
  .adm-form-grid{ grid-template-columns: 1fr; }
  .adm-sel-bar{ left: 12px; right: 12px; }
}
@media (max-width: 700px){
  .adm-send-grid{ grid-template-columns: 1fr; }
  .adm-send-grid .adm-send-wide{ grid-column: auto; }
}
@media (max-width: 560px){
  :root{ --adm-pad: 16px; --adm-gap: 18px; }
  .adm-topbar, .adm-header{ padding-top: 24px; padding-bottom: 18px; margin-bottom: 20px; }
  .adm-stat-grid{ grid-template-columns: 1fr; }
  .adm-card-body, .adm-card-pad, .adm-card > form:not(.adm-filter-bar), .adm-action-form{ padding: 18px; }
  .adm-main .oz-btn{ white-space: normal; }
}

/* ══════════════════════════════════════════════════════════════
   MARKET
══════════════════════════════════════════════════════════════ */
.mkt-badge-discount{ display: inline-block; white-space: nowrap; background: linear-gradient(135deg, #ef4444, #991b1b); color: #fff; font-family: var(--oz-font-mono); font-weight: 700; font-size: .68rem; padding: 3px 8px; border-radius: 6px; box-shadow: 0 4px 12px rgba(239,68,68,.35); letter-spacing: .04em; }
.mkt-badge-featured{ display: inline-block; background: var(--oz-toxic); color: #fff; font-family: var(--oz-font-mono); font-weight: 700; font-size: .68rem; padding: 3px 8px; border-radius: 6px; letter-spacing: .04em; box-shadow: 0 4px 12px var(--oz-toxic-glow); }

/* admin market table */
.mkt-admin-item{ display: flex; align-items: center; gap: 12px; min-width: 210px; }
.mkt-admin-item img, .mkt-admin-noicon{ width: 42px; height: 42px; flex: none; object-fit: contain; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: 8px; padding: 3px; }
.mkt-admin-noicon{ display: flex; align-items: center; justify-content: center; color: var(--oz-ink-faint); font-size: .8rem; }
.mkt-admin-name{ font-weight: 600; color: var(--oz-ink); line-height: 1.3; }
.mkt-admin-price{ white-space: nowrap; }
.mkt-admin-price > div + div{ margin-top: 3px; }
.mkt-admin-price .mkt-old-price{ margin-right: 4px; }

.mkt-calc-box{ background: rgba(251,191,36,.06); border: 1px solid rgba(251,191,36,.25); border-radius: 8px; padding: 12px; margin-top: 12px; }
.mkt-calc-title{ font-family: var(--oz-font-mono); font-size: .68rem; font-weight: 600; color: var(--oz-gold); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 4px; }
.mkt-calc-result{ font-size: .86rem; color: var(--oz-ink); line-height: 1.45; }

.mkt-hero-header{ position: relative; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px; overflow: hidden; background: radial-gradient(500px 200px at 100% 0%, rgba(185,28,28,.16), transparent 70%), radial-gradient(400px 200px at 0% 100%, rgba(var(--oz-accent-rgb), .08), transparent 70%), var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 16px; box-shadow: var(--oz-shadow); flex-wrap: wrap; }
.mkt-hero-header h1{ font-size: clamp(1.7rem, 3.4vw, 2.4rem) !important; font-weight: 700; }

.mkt-balance-card{ display: flex; align-items: center; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); border-radius: 12px; padding: 12px 20px; gap: 18px; }
.mkt-bal-item{ display: flex; flex-direction: column; }
.mkt-bal-label{ font-family: var(--oz-font-mono); font-size: .62rem; color: var(--oz-ink-faint); text-transform: uppercase; letter-spacing: .1em; }
.mkt-bal-val{ font-family: var(--oz-font-display); font-size: 1.3rem; font-weight: 600; }
.mkt-bal-val.gd{ color: var(--oz-gold); }
.mkt-bal-val.gp{ color: var(--oz-gp); }
.mkt-bal-divider{ width: 1px; height: 32px; background: var(--oz-line); }
.mkt-login-prompt{ display: flex; align-items: center; gap: 12px; color: var(--oz-ink-dim); font-size: .88rem; }

.mkt-toolbar{ display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 24px 0; flex-wrap: wrap; }
.mkt-categories{ display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.mkt-cat-tab{ padding: 8px 14px; background: var(--oz-bg-raised); border: 1px solid var(--oz-line); border-radius: 8px; color: var(--oz-ink-dim); font-size: .84rem; font-weight: 500; text-decoration: none; transition: color .15s, border-color .15s, background .15s; }
.mkt-cat-tab:hover{ color: var(--oz-ink); border-color: var(--oz-line-strong); }
.mkt-cat-active{ background: var(--oz-toxic) !important; color: #fff !important; border-color: var(--oz-toxic) !important; font-weight: 600 ; }
.mkt-onsale-btn{ padding: 8px 14px; background: rgba(239,68,68,.08); border: 1px solid rgba(239,68,68,.35); border-radius: 8px; color: var(--oz-blood-bright); font-size: .84rem; font-weight: 600; text-decoration: none; transition: all .2s; }
.mkt-onsale-btn:hover, .mkt-onsale-active{ background: var(--oz-blood) !important; color: #fff !important; border-color: var(--oz-blood-bright) !important; box-shadow: 0 4px 16px rgba(239,68,68,.35); }

.mkt-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 18px; }
.mkt-empty-box{ grid-column: 1 / -1; text-align: center; padding: 60px 20px; background: var(--oz-bg-raised); border: 1px dashed var(--oz-line-strong); border-radius: var(--oz-radius); }
.mkt-card{ position: relative; background: linear-gradient(180deg, var(--oz-bg-elev), var(--oz-bg-raised)); border: 1px solid var(--oz-line); border-radius: 14px; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; transition: transform .25s var(--oz-ease), border-color .25s, box-shadow .25s; overflow: hidden; }
.mkt-card:hover{ transform: translateY(-4px); border-color: var(--oz-toxic-dim); box-shadow: 0 20px 40px -18px rgba(var(--oz-accent-rgb), .25); }
.mkt-card-featured{ border-color: rgba(251,191,36,.35); background: linear-gradient(180deg, rgba(251,191,36,.07), var(--oz-bg-raised) 60%); }
.mkt-card-badges{ position: absolute; top: 12px; left: 12px; right: 12px; display: flex; align-items: center; justify-content: space-between; z-index: 2; }
.mkt-card-icon-wrap{ width: 100%; height: 130px; display: flex; align-items: center; justify-content: center; background: radial-gradient(circle at 50% 55%, rgba(var(--oz-accent-rgb), .08), transparent 65%), var(--oz-bg-inset); border: 1px solid var(--oz-line-soft); border-radius: 10px; margin-bottom: 14px; }
.mkt-card-icon{ max-width: 90%; max-height: 96px; object-fit: contain; filter: drop-shadow(0 6px 12px rgba(0,0,0,.6)); transition: transform .3s var(--oz-ease); }
.mkt-card:hover .mkt-card-icon{ transform: scale(1.06); }
.mkt-no-icon{ color: var(--oz-ink-faint); font-size: 12px; }
.mkt-card-body{ display: flex; flex-direction: column; flex-grow: 1; }
.mkt-card-cat{ font-family: var(--oz-font-mono); font-size: .64rem; color: var(--oz-toxic); text-transform: uppercase; letter-spacing: .12em; margin-bottom: 4px; }
.mkt-card-title{ font-family: var(--oz-font-display); font-size: 1.15rem; font-weight: 600; color: var(--oz-ink); margin: 0 0 6px; line-height: 1.25; text-transform: none; }
.mkt-card-lvl{ font-size: .76rem; color: var(--oz-ink-faint); margin-bottom: 12px; }
.mkt-card-pricing{ background: var(--oz-bg-inset); border: 1px solid var(--oz-line-soft); border-radius: 8px; padding: 9px 11px; margin-bottom: 14px; display: flex; flex-direction: column; gap: 4px; }
.mkt-price-line{ display: flex; align-items: center; gap: 8px; }
.mkt-curr-tag{ font-family: var(--oz-font-mono); font-size: .64rem; font-weight: 700; padding: 1px 6px; border-radius: 4px; }
.mkt-curr-tag.gd{ background: rgba(251,191,36,.15); color: var(--oz-gold); }
.mkt-curr-tag.gp{ background: rgba(34,211,238,.15); color: var(--oz-gp); }
.mkt-old-price{ font-size: .8rem; color: var(--oz-ink-faint); text-decoration: line-through; }
.mkt-new-price, .mkt-regular-price{ font-family: var(--oz-font-display); font-size: 1.05rem; font-weight: 600; }
.mkt-new-price.gd, .mkt-regular-price.gd{ color: var(--oz-gold); }
.mkt-new-price.gp, .mkt-regular-price.gp{ color: var(--oz-gp); }
.mkt-buy-btn{ margin-top: auto; }
.mkt-curr-option{ display: flex; align-items: center; gap: 10px; background: var(--oz-bg-inset); border: 1px solid var(--oz-line); padding: 12px 14px; border-radius: 8px; cursor: pointer; color: var(--oz-ink); font-size: 14px; transition: border-color .15s, background .15s; }
.mkt-curr-option:hover{ border-color: var(--oz-toxic-dim); background: rgba(var(--oz-accent-rgb), .05); }

/* ══════════════════════════════════════════════════════════════
   MODAL
══════════════════════════════════════════════════════════════ */
.adm-modal-backdrop{ position: fixed !important; inset: 0 !important; width: 100vw !important; height: 100vh !important; background: rgba(0,0,0,.75) !important; backdrop-filter: blur(6px) !important; -webkit-backdrop-filter: blur(6px) !important; z-index: 99999 !important; display: flex; align-items: center !important; justify-content: center !important; padding: 20px !important; box-sizing: border-box !important; animation: mktFadeIn .2s ease-out; }
.adm-modal-backdrop[style*="display: none"], .adm-modal-backdrop[style*="display:none"]{ display: none !important; }
.adm-modal{ position: relative; background: linear-gradient(180deg, var(--oz-bg-elev), var(--oz-bg-raised)) !important; border: 1px solid var(--oz-line-strong) !important; border-radius: 16px !important; box-shadow: 0 30px 70px rgba(0,0,0,.9) !important; width: 100% !important; max-width: 480px; max-height: 90vh; display: flex !important; flex-direction: column !important; overflow: hidden !important; animation: mktModalSlide .28s var(--oz-ease); margin: auto !important; }
@keyframes mktFadeIn{ from{ opacity: 0; } to{ opacity: 1; } }
@keyframes mktModalSlide{ from{ opacity: 0; transform: translateY(-20px) scale(.97); } to{ opacity: 1; transform: none; } }
.adm-modal-header{ display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 18px 20px !important; border-bottom: 1px solid var(--oz-line) !important; }
.adm-modal-title{ margin: 0 !important; font-family: var(--oz-font-display) !important; font-size: 1.2rem !important; font-weight: 600 !important; color: var(--oz-ink) !important; letter-spacing: .04em !important; text-transform: uppercase; }
.adm-modal-close{ background: transparent !important; border: none !important; color: var(--oz-ink-dim) !important; font-size: 1.6rem !important; line-height: 1 !important; cursor: pointer !important; padding: 0 4px !important; transition: color .15s !important; }
.adm-modal-close:hover{ color: var(--oz-blood-bright) !important; }
.adm-modal-body{ padding: 20px !important; overflow-y: auto !important; }
.adm-modal-footer{ display: flex !important; align-items: center !important; justify-content: flex-end !important; gap: 10px !important; padding: 16px 20px !important; background: var(--oz-bg-inset) !important; border-top: 1px solid var(--oz-line) !important; margin-top: 16px !important; }

/* ═══ 1+ ETKİNLİĞİ (admin/plus-events*) ═══ */
.pe-help{ margin-bottom: var(--adm-gap); font-size: .86rem; line-height: 1.6; }
.pe-event .pe-event-head{ text-transform: none; letter-spacing: 0; font-weight: 400; }
.pe-event-title{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: .95rem; }
.pe-dates{ font-size: .76rem; }
.pe-entries{ display: flex; flex-direction: column; }
.pe-entry{ display: grid; grid-template-columns: minmax(220px, 1.2fr) minmax(150px, .6fr) 2.5fr; gap: 14px; align-items: center; padding: 12px 22px; border-top: 1px solid var(--oz-line-soft); }
.pe-entry:first-child{ border-top: none; }
.pe-entry-full{ opacity: .6; }
.pe-entry-trigger{ display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .86rem; }
.pe-entry-limit{ font-size: .8rem; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.pe-entry-rewards{ display: flex; gap: 6px; flex-wrap: wrap; }
.pe-plus-tag{ display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 5px; background: var(--oz-blood-dim); color: #fff; border: 1px solid var(--oz-blood); font-family: var(--oz-font-mono); font-size: .72rem; font-weight: 700; white-space: nowrap; }

.pe-form-grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pe-form-grid .oz-field{ margin: 0; }
.pe-span-2{ grid-column: span 2; }
.pe-note{ font-size: .76rem; margin: 12px 0 0; }
.pe-warn-list{ margin: 6px 0 0 18px; }

.pe-entry-card{ padding: 16px 20px; }
.pe-entry-row{ display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.pe-entry-row .pe-plus-tag{ align-self: center; font-size: .8rem; padding: 4px 10px; }
.pe-trigger{ display: flex; flex-direction: column; gap: 6px; flex: 1 1 280px; min-width: 0; }
.pe-limit{ display: flex; flex-direction: column; gap: 6px; width: 170px; }
.pe-limit-note{ font-size: .7rem; min-height: 1em; }
.pe-field-label{ font-size: .7rem; letter-spacing: .06em; text-transform: uppercase; color: var(--oz-ink-dim); }

.pe-slots{ display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px; }
.pe-slot{ display: grid; grid-template-columns: 52px 1fr 76px 30px; align-items: center; gap: 6px; padding: 6px; border: 1px solid var(--oz-line-soft); border-radius: var(--oz-radius-sm); background: var(--oz-bg-inset); }
.pe-slot.filled{ border-color: var(--oz-line-strong); }
.pe-slot-label{ font-family: var(--oz-font-mono); font-size: .68rem; color: var(--oz-ink-faint); text-align: center; }
.pe-slot-pick{ display: flex; align-items: center; gap: 8px; min-width: 0; height: 40px; padding: 4px 8px; border: 1px dashed var(--oz-line-strong); border-radius: 6px; background: transparent; color: var(--oz-ink); cursor: pointer; text-align: left; font: inherit; font-size: .8rem; }
.pe-slot-pick:hover{ border-color: var(--oz-toxic); }
.pe-slot.filled .pe-slot-pick, .pe-trigger-pick.filled{ border-style: solid; background: var(--oz-bg-raised); }
.pe-trigger-pick{ height: 48px; font-size: .9rem; }
.pe-slot-icon{ width: 40px; height: 26px; object-fit: contain; flex: none; }
.pe-slot-name{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.pe-slot-id{ font-size: .68rem; flex: none; }
.pe-slot-empty{ color: var(--oz-ink-faint); }
.pe-slot-qty{ padding: 6px !important; text-align: center; }
.pe-slot-clear{ height: 30px; border: 1px solid var(--oz-line); border-radius: 6px; background: transparent; color: var(--oz-ink-dim); cursor: pointer; }
.pe-slot-clear:hover:not(:disabled){ color: var(--oz-blood-bright); border-color: var(--oz-blood); }
.pe-slot-clear:disabled, .pe-slot-qty:disabled{ opacity: .35; cursor: default; }

.pe-actions{ display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 4px 0 40px; }
.pe-fill{ flex: 1; }

.pe-modal{ position: fixed; inset: 0; z-index: 1000; background: rgba(0,0,0,.72); display: flex; align-items: center; justify-content: center; padding: 16px; }
.pe-modal[hidden]{ display: none; }
.pe-modal-box{ width: min(980px, 100%); max-height: 88vh; display: flex; flex-direction: column; background: var(--oz-bg-raised); border: 1px solid var(--oz-line-strong); border-radius: var(--oz-radius); box-shadow: var(--oz-shadow); }
.pe-modal-head{ display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--oz-line); }
.pe-modal-tools{ display: flex; gap: 14px; align-items: center; flex-wrap: wrap; padding: 12px 18px; }
.pe-modal-tools .adm-input{ flex: 1 1 260px; }
.pe-check{ display: inline-flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--oz-ink-dim); cursor: pointer; }
.pe-picker-grid{ display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 10px; padding: 0 18px; overflow-y: auto; }
.pe-pick-card{ display: flex; flex-direction: column; gap: 4px; padding: 8px; border: 1px solid var(--oz-line); border-radius: var(--oz-radius-sm); background: var(--oz-bg-inset); color: var(--oz-ink); cursor: pointer; text-align: left; font: inherit; }
.pe-pick-card:hover{ border-color: var(--oz-toxic); }
.pe-pick-art{ height: 64px; display: flex; align-items: center; justify-content: center; color: var(--oz-ink-faint); }
.pe-pick-art img{ max-width: 100%; max-height: 64px; object-fit: contain; }
.pe-pick-name{ font-size: .78rem; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pe-pick-sub{ font-size: .66rem; color: var(--oz-ink-faint); }
.pe-picker-foot{ padding: 10px 18px 14px; font-size: .74rem; }

@media (max-width: 960px){
  .pe-entry{ grid-template-columns: 1fr; gap: 8px; }
  .pe-form-grid{ grid-template-columns: 1fr; }
  .pe-span-2{ grid-column: auto; }
}
@media (max-width: 560px){
  .pe-slots{ grid-template-columns: 1fr; }
  .pe-slot{ grid-template-columns: 44px 1fr 64px 28px; }
  .pe-limit{ width: 100%; }
}
