/* BNU Tap In — admin dashboard. Loads after styles.css + app.css. */
/* =====================================================================
   BNU Tap In — admin dashboard (test). Loads AFTER styles.css + app/app-test.css.
   Operator tool: dense, mono data, own chrome. Takes brand TOKENS + color bar +
   outlined type, and a data-color rule:
     brand hues  = categories (channel, sold/given, series)
     semantic    = only real alerts (low stock stays amber)
   ===================================================================== */
:root{
  --good:#9aa56a;            /* lightened band olive: reads as "good", stays in family */
  --good-dim:#2f3320;
  --cat-a:#c9ad8f;           /* cream  */
  --cat-b:#e8b4b8;           /* pink   */
  --cat-c:#9aa56a;           /* olive  */
}
.adm-main{padding-top:calc(88px + env(safe-area-inset-top,0px))}
.adm-sec{margin-left:auto;margin-right:auto;padding:0 var(--gutter,20px) 96px}
@media (min-width:900px){.adm-sec{--gutter:40px}}
.app-bottom-nav{z-index:150}
body{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}

/* ---- sign-in / not-admin ---- */
.auth-card{position:relative;overflow:hidden;border-radius:var(--card-radius);padding-top:46px}
.auth-card::before{content:"";position:absolute;top:0;left:0;right:0;height:6px;background:var(--bar)}
.auth-card h1{font-size:clamp(34px,7vw,44px);line-height:1}

/* ---- intro ---- */
.dash-intro h1{font-size:clamp(40px,7vw,84px);line-height:.94;margin-bottom:14px;max-width:14ch}
.dash-intro h1 span{color:transparent;-webkit-text-stroke:1.4px var(--fg-muted)}
.dash-intro h1::after{content:"";display:block;height:6px;width:min(200px,50%);margin-top:18px;background:var(--bar)}
.dash-intro p{margin-top:16px}

/* ---- surfaces use the radius token ---- */
.dash-hero-tile,.dash-kpi-grid,.dash-panel,.dash-modal{border-radius:var(--card-radius)}
.dash-chart-card,.dash-split-pill{border-radius:calc(var(--card-radius) - 6px)}
.dash-hero-tile__delta{color:var(--accent)}

/* ---- numbered panels (outlined, like account + app) ---- */
#admin-app{counter-reset:ap}
#admin-app .dash-panel{counter-increment:ap}
.dash-panel__title-group h2{display:flex;align-items:baseline;gap:12px}
.dash-panel__title-group h2::before{content:counter(ap,decimal-leading-zero);font-family:var(--font-display);font-size:30px;line-height:1;
  color:transparent;-webkit-text-stroke:1.2px var(--fg-muted)}

/* ---- charts in brand cream ---- */
.dash-chart-card .area-line{stroke:var(--accent)}
.dash-chart-card .end-dot{fill:var(--accent)}

/* ---- categories use brand hues; alerts keep semantic color ---- */
.dash-status--online{background:#33291f;color:var(--cat-a)}      .dash-status--online::before{background:var(--cat-a)}
.dash-status--inperson{background:#2a2f1b;color:var(--cat-c)}    .dash-status--inperson::before{background:var(--cat-c)}
.dash-status--given{background:#3b2c2e;color:var(--cat-b)}       .dash-status--given::before{background:var(--cat-b)}
.dash-status--claimed{background:var(--good-dim);color:var(--good)}
.dash-dist-bar__sold{background:var(--cat-a)}
.dash-dist-bar__given{background:var(--cat-b)}
.dash-dist-legend i[style*="var(--good)"]{background:var(--cat-a)!important}
.dash-dist-legend i[style*="var(--warn)"]{background:var(--cat-b)!important}
.dash-stock-bar__fill{background:var(--accent)}
/* .dash-low-flag stays amber: a true alert */


/* admin top bar spans the dashboard width, not the phone-app column */
#admin-topbar .app-topbar__inner{max-width:1320px;padding-left:clamp(20px,3vw,40px);padding-right:clamp(20px,3vw,40px)}
#admin-topbar .btn--text{background:none;border:0;padding:0;font:600 13px var(--font-body);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
#admin-topbar .dash-header-btn{white-space:nowrap}
