/* ADM-1. Components and shell only; legacy page content keeps its own CSS.
   Shared guest tokens come from wallet.css on .adm-theme. Distinct font family
   names prevent font registration from changing the protected tournament pult. */
@font-face { font-family:"VLP Admin Golos"; font-style:normal; font-weight:400 900; font-display:swap; src:url(/account-assets/fonts/golos-text-cyrillic.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"VLP Admin Golos"; font-style:normal; font-weight:400 900; font-display:swap; src:url(/account-assets/fonts/golos-text-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA, U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"VLP Admin Golos"; font-style:normal; font-weight:400 900; font-display:swap; src:url(/account-assets/fonts/golos-text-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
@font-face { font-family:"VLP Admin Oswald"; font-style:normal; font-weight:200 700; font-display:swap; src:url(/account-assets/fonts/oswald-cyrillic.woff2) format('woff2'); unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family:"VLP Admin Oswald"; font-style:normal; font-weight:200 700; font-display:swap; src:url(/account-assets/fonts/oswald-latin.woff2) format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family:"VLP Admin Oswald"; font-style:normal; font-weight:200 700; font-display:swap; src:url(/account-assets/fonts/oswald-latin-ext.woff2) format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF; }
.adm-theme { background:var(--g-bg); color:var(--g-ink); font:400 14px/1.45 "VLP Admin Golos","Segoe UI",sans-serif; }
.adm-theme *, .adm-theme *::before, .adm-theme *::after { box-sizing:border-box; }
.adm-theme [hidden] { display:none!important; }
.adm-theme :is(button,input,select,textarea) { font:inherit; color:inherit; }
.adm-theme a { color:inherit; text-decoration:none; }
.adm-theme button { cursor:pointer; }
.adm-theme :is(h1,h2,h3,p) { margin:0; letter-spacing:normal; }
.adm-theme :is(button,a,input,select,textarea):focus-visible { outline:2px solid var(--g-gold-hi); outline-offset:3px; }
.adm-theme :is(button,input,select,textarea):disabled { opacity:.5; cursor:not-allowed; }
.adm-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.adm-icon { width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.adm-theme .adm-button, .adm-theme .adm-icon-button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 16px; border:1px solid var(--g-line); border-radius:10px; background:var(--g-surface-2); color:var(--g-ink); font-size:14px; font-weight:600; line-height:20px; text-align:center; }
.adm-theme .adm-button:hover, .adm-theme .adm-icon-button:hover { border-color:var(--g-muted); }
.adm-theme .adm-button--gold { background:var(--g-gold); border-color:var(--g-gold); color:var(--g-bg); }
.adm-theme .adm-button--gold:hover { background:var(--g-gold-hi); border-color:var(--g-gold-hi); }
.adm-theme .adm-button--ghost { background:transparent; }
.adm-theme .adm-button--danger { color:var(--alarm-hi); border-color:var(--g-alarm); background:transparent; }
.adm-theme .adm-button--small { padding:5px 11px; font-size:12.5px; border-radius:8px; }
.adm-theme .adm-button--large { padding:15px 20px; font-size:15px; border-radius:12px; }
.adm-theme .adm-icon-button { width:40px; height:40px; padding:0; flex:none; }
.adm-theme .adm-field { display:grid; gap:6px; min-width:0; letter-spacing:normal; text-transform:none; }
.adm-field>span { font-size:12px; color:var(--g-muted); }
.adm-theme .adm-input { width:100%; height:44px; min-width:0; padding:0 12px; border:1px solid var(--g-line); border-radius:11px; background:var(--g-bg); color:var(--g-ink); font-size:15px; }
.adm-input:focus { border-color:var(--g-gold); }
.adm-input[aria-invalid="true"] { border-color:var(--g-alarm); }
.adm-theme textarea.adm-input { height:auto; min-height:74px; padding-block:10px; resize:vertical; }
.adm-card { min-width:0; background:var(--g-surface); border:1px solid var(--g-line-soft); border-radius:14px; padding:18px; display:grid; gap:14px; align-content:start; }
.adm-card :is(h2,h3) { font-size:16px; font-weight:700; }
.adm-eyebrow { font-size:10.5px; font-weight:600; letter-spacing:.14em!important; text-transform:uppercase; color:var(--g-faint); }
.adm-help { color:var(--g-faint); font-size:12px; overflow-wrap:anywhere; }
.adm-notice { display:flex; gap:10px; align-items:flex-start; border:1px solid var(--g-line); border-radius:11px; background:var(--g-surface-2); color:var(--g-muted); padding:11px 13px; font-size:13px; overflow-wrap:anywhere; }
.adm-notice .adm-icon { color:var(--g-gold); margin-top:1px; }
.adm-notice--error { border-color:var(--g-alarm); color:var(--alarm-hi); }
.adm-notice--success { border-color:var(--g-mint); color:var(--g-mint); }
.adm-chip { display:inline-flex; align-items:center; padding:6px 12px; border:1px solid var(--g-line); border-radius:999px; background:var(--g-surface); color:var(--g-muted); font-size:13px; font-weight:600; }
.adm-chip[aria-pressed="true"] { background:var(--g-gold-dim); border-color:var(--g-gold); color:var(--g-gold-hi); }
.adm-number { font-family:"VLP Admin Oswald",sans-serif; font-variant-numeric:tabular-nums; }
.adm-actions { display:flex; flex-wrap:wrap; gap:8px; }
.adm-brand { display:flex; align-items:center; gap:10px; padding:0 8px 16px; }
.adm-brand-mark { width:34px; height:34px; flex:none; display:grid; place-items:center; background:var(--g-gold-dim); border:1px solid var(--g-gold); border-radius:9px; color:var(--g-gold-hi); font:500 13px/1 "VLP Admin Oswald",sans-serif; letter-spacing:.06em; }
.adm-brand b { display:block; font-size:13px; letter-spacing:.06em; }
.adm-brand small { display:block; color:var(--g-faint); font-size:11px; }
/* admin-shell.js measures a banner when present; permanent pages have none. */
.admin-body { --adm-banner-height:0px; }
.admin-body>.local-banner { position:sticky; top:0; z-index:30; padding:9px 20px; text-align:center; background:var(--surface); color:var(--gold-hi); font:400 11px/1.4 "VLP Admin Golos","Segoe UI",sans-serif; letter-spacing:.04em; }
.admin-body .admin-shell { display:grid; grid-template-columns:236px minmax(0,1fr); width:100%; max-width:none; padding:0; margin:0; min-height:calc(100svh - var(--adm-banner-height)); }
.adm-side { position:sticky; top:var(--adm-banner-height); height:calc(100svh - var(--adm-banner-height)); padding:18px 12px 14px; border-right:1px solid var(--g-line-soft); display:flex; flex-direction:column; gap:4px; overflow-y:auto; }
.adm-nav-label { padding:14px 12px 6px; color:var(--g-faint); font-size:10.5px; font-weight:600; text-transform:uppercase; letter-spacing:.14em!important; }
.adm-nav-item { display:flex; align-items:center; gap:12px; min-height:42px; padding:10px 12px; border-radius:10px; font-size:14px; font-weight:600; position:relative; }
.adm-theme .adm-nav-item { color:var(--g-muted); }
.adm-theme .adm-nav-item:hover { background:var(--g-surface); color:var(--g-ink); }
.adm-theme .adm-nav-item[aria-current="page"] { background:var(--g-gold-dim); color:var(--g-gold-hi); }
.adm-side .adm-nav-item[aria-current="page"]::before { content:""; position:absolute; left:-12px; top:10px; bottom:10px; width:3px; border-radius:0 3px 3px 0; background:var(--g-gold); }
.adm-nav-short { display:none; }
.adm-side-foot { margin-top:auto; border-top:1px solid var(--g-line-soft); padding-top:12px; display:flex; gap:8px; align-items:center; }
.adm-avatar { width:36px; height:36px; flex:none; display:grid; place-items:center; border:1px solid var(--g-gold); background:var(--g-gold-dim); color:var(--g-gold-hi)!important; border-radius:50%; font-size:12px; font-weight:700; }
.adm-avatar--large { width:60px; height:60px; font-size:19px; }
.adm-who { min-width:0; flex:1; }
.adm-who b { display:block; font-size:13px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.adm-who small { display:block; font-size:11px; color:var(--g-faint); }
.adm-who a { color:var(--g-gold-hi); }
.adm-logout { margin:0; }
.adm-side-foot .adm-icon-button { width:30px; border:0; background:transparent; color:var(--g-muted); }
.adm-workspace { min-width:0; }
.adm-top { display:flex; align-items:center; gap:12px; min-height:62px; padding:10px 24px; border-bottom:1px solid var(--g-line-soft); position:sticky; top:var(--adm-banner-height); z-index:12; }
.adm-page-name { min-width:0; }
.adm-crumb { font-size:12.5px; color:var(--g-faint); }
.adm-top h2 { font-size:18px; font-weight:700; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
.adm-venue { border:1px solid var(--g-line); border-radius:999px; padding:5px 10px; font-size:12px; color:var(--g-muted); white-space:nowrap; }
.adm-search { margin:0 0 0 auto; display:flex; gap:8px; align-items:center; height:40px; flex:1 1 260px; max-width:380px; min-width:120px; border:1px solid var(--g-line); border-radius:11px; padding:0 8px; background:var(--g-bg); color:var(--g-faint); }
.adm-search:focus-within { border-color:var(--g-gold); }
.adm-search button { border:0; background:transparent; padding:2px; display:grid; place-items:center; color:var(--g-faint); }
.adm-search input { min-width:0; width:100%; flex:1; padding:0; border:0; background:transparent; font-size:14px; }
.adm-search input::placeholder { color:var(--g-faint); opacity:1; }
.adm-search kbd { font:500 11px/1 "VLP Admin Golos",sans-serif; border:1px solid var(--g-line); border-radius:5px; padding:3px 5px; }
.adm-top .adm-mobile-search { display:none; }
.admin-body .admin-main { padding:22px 24px 40px; max-width:1168px; margin:0; min-width:0; }
.admin-body :is(#staff-title,#audit-title) { scroll-margin-top:calc(var(--adm-banner-height) + 80px); }
.admin-body.adm-native-workspace .admin-main { padding:0; max-width:none; }
.adm-native-workspace .adm-side { z-index:3; }
.adm-bottom { display:none; }
.adm-identity { display:flex; gap:14px; align-items:center; min-width:0; }
.adm-identity>div { min-width:0; overflow-wrap:anywhere; }
.adm-identity h1 { font-size:18px; font-weight:700; line-height:1.3; }
.adm-identity small { display:block; color:var(--g-muted); font-size:13px; }
.adm-access-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; align-items:start; }
.adm-access>.adm-notice { margin-bottom:14px; }
.adm-access .adm-button { justify-self:start; white-space:normal; }
.adm-drawer, .adm-dialog { color:var(--g-ink); border:1px solid var(--g-line); }
.adm-drawer { position:fixed; inset:0 0 0 auto; margin:0; width:min(560px,100%); max-width:100%; height:100%; max-height:100%; border-radius:0; padding:0; background:var(--g-surface); overflow:auto; }
.adm-drawer[open] { display:flex; flex-direction:column; animation:adm-slide 220ms cubic-bezier(.2,.8,.25,1); }
.adm-drawer::backdrop, .adm-dialog::backdrop { background:color-mix(in srgb,var(--g-bg) 80%,transparent); }
.adm-drawer-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; border-bottom:1px solid var(--g-line-soft); flex:none; }
.adm-drawer-head h2 { font-size:17px; font-weight:700; }
.adm-drawer-body { display:grid; gap:18px; align-content:start; padding:18px 20px; }
.adm-camera { aspect-ratio:4/3; border:1px solid var(--g-line); border-radius:14px; background:var(--g-bg); overflow:hidden; }
.adm-camera video { display:block; width:100%; height:100%; object-fit:cover; }
.adm-scanner-status { font-size:13px; }
.adm-scanner-status[data-state="error"], .adm-scanner-status[data-state="invalid"] { color:var(--alarm-hi); }
.adm-scanner-status[data-state="scanning"], .adm-scanner-status[data-state="found"] { color:var(--g-mint); }
.adm-dialog { width:min(420px,calc(100% - 32px)); max-height:calc(100svh - 32px); border-radius:16px; padding:20px; background:var(--g-surface); }
.adm-dialog[open] { display:grid; gap:12px; animation:adm-pop 220ms cubic-bezier(.2,.8,.25,1); }
.adm-dialog h2 { font-size:17px; }
.adm-dialog p { color:var(--g-muted); }
.adm-dialog .adm-actions { justify-content:flex-end; }
.adm-toast { position:fixed; left:50%; bottom:22px; transform:translateX(-50%); z-index:25; max-width:calc(100% - 32px); padding:11px 16px; background:var(--g-raised); border:1px solid var(--g-line); border-radius:12px; font-weight:600; overflow-wrap:anywhere; }
.admin-body.adm-login-page .admin-shell { display:block; }
.admin-body.adm-login-page .admin-main { max-width:none; padding:0; }
.adm-login { min-height:calc(100svh - var(--adm-banner-height)); display:grid; place-items:center; padding:24px 16px; background:radial-gradient(80% 60% at 50% 0%,var(--g-gold-dim),transparent 60%),var(--g-bg); }
.adm-login-box { width:min(380px,100%); display:grid; gap:14px; }
.adm-login .adm-brand { justify-content:center; padding:0 0 8px; }
.adm-login h1 { font-size:20px; text-align:center; font-weight:700; line-height:1.4; }
.adm-login-form { display:grid; gap:14px; }
.adm-login-help { text-align:center; font-size:12px; color:var(--g-faint); }
.admin-body .skip-link { position:fixed; top:10px; left:20px; z-index:40; background:var(--cream); color:var(--bg); padding:12px 18px; border-radius:var(--radius); transform:translateY(-180%); }
.admin-body .skip-link:focus { transform:translateY(0); }
@keyframes adm-slide { from { opacity:0; transform:translateX(24px); } to { opacity:1; transform:none; } }
@keyframes adm-pop { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@media (min-width:641px) and (max-width:1100px) {
  .admin-body .admin-shell { grid-template-columns:84px minmax(0,1fr); }
  .adm-side { padding:14px 8px; }
  .adm-side .adm-brand { justify-content:center; padding:0 0 12px; }
  .adm-side .adm-brand>span:last-child, .adm-nav-label, .adm-who { display:none; }
  .adm-side .adm-nav-item { flex-direction:column; gap:4px; min-height:62px; justify-content:center; padding:6px 2px; font-size:11px; text-align:center; }
  .adm-side .adm-nav-full { display:none; }
  .adm-side .adm-nav-short { display:block; }
  .adm-side .adm-icon { width:21px; height:21px; }
  .adm-side .adm-nav-item[aria-current="page"]::before { left:-8px; }
  .adm-side-foot { flex-direction:column; }
  .adm-top { gap:10px; padding-inline:20px; }
}
@media (max-width:640px) {
  .admin-body>.local-banner { font-size:10px; padding:8px 12px; }
  .admin-body .admin-shell { grid-template-columns:minmax(0,1fr); }
  .adm-side { display:none; }
  .adm-top { min-height:56px; padding:8px 14px; gap:8px; }
  .adm-top h2 { font-size:17px; }
  .adm-top .adm-crumb, .adm-top .adm-venue, .adm-top .adm-search { display:none; }
  .adm-top .adm-button--gold { margin-left:auto; }
  .adm-top .adm-mobile-search { display:inline-flex; }
  .admin-body .admin-main { padding:16px 14px calc(96px + env(safe-area-inset-bottom,0px)); }
  .admin-body.adm-native-workspace .admin-main { padding-bottom:calc(80px + env(safe-area-inset-bottom,0px)); }
  .adm-native-workspace #crmStatus { bottom:calc(92px + env(safe-area-inset-bottom,0px)); }
  .adm-bottom { position:fixed; inset:auto 0 0; z-index:15; display:flex; border-top:1px solid var(--g-line-soft); padding:6px 4px calc(8px + env(safe-area-inset-bottom,0px)); }
  .adm-theme .adm-bottom-item { display:flex; flex:1; min-width:0; flex-direction:column; align-items:center; gap:3px; padding:6px 0; border:0; background:transparent; font-size:10.5px; font-weight:600; color:var(--g-faint); text-align:center; }
  .adm-bottom .adm-icon { width:21px; height:21px; }
  .adm-theme .adm-bottom-item[aria-current="page"] { color:var(--g-gold-hi); }
  .adm-access-grid { grid-template-columns:minmax(0,1fr); }
  .adm-drawer { width:100%; border:0; }
  .adm-drawer-head { padding-top:max(16px,env(safe-area-inset-top)); }
  .adm-drawer-body { padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .adm-toast { bottom:calc(92px + env(safe-area-inset-bottom,0px)); }
}
@media (pointer:coarse) {
  .adm-theme .adm-input, .adm-search input { font-size:16px; }
  .adm-theme .adm-button { padding:13px 16px; }
  .adm-theme .adm-icon-button { width:44px; height:44px; }
}
@media (prefers-reduced-motion:reduce) {
  .adm-theme *, .adm-theme *::before, .adm-theme *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}

/* ADM-R2 uses the shell tokens and components; no guest or timer selectors. */
.adm-team { display:grid; gap:18px; }
.adm-team h1 { font-size:24px; }
.adm-team h2 { font-size:19px; }
.adm-team h3, .adm-team-editor h3 { font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.adm-team [role=tabpanel] { display:grid; gap:16px; min-width:0; }
.adm-team-tabs { display:flex; gap:20px; border-bottom:1px solid var(--g-line); overflow-x:auto; }
.adm-team-tabs a { flex:none; padding:12px 0; color:var(--g-muted); text-decoration:none; border-bottom:2px solid transparent; font-size:14px; }
.adm-team-tabs a[aria-selected=true] { color:var(--g-gold-hi); border-color:var(--g-gold); }
.adm-team-toolbar { display:flex; gap:16px; justify-content:space-between; align-items:center; }
.adm-team-toolbar .adm-help { max-width:65ch; }
.adm-team-filter { max-width:420px; }
.adm-team-list, .adm-team-audit { display:grid; gap:12px; min-height:120px; }
.adm-team-role-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.adm-team-member { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr) auto minmax(130px,.8fr); gap:16px; align-items:center; }
.adm-team-identity { display:flex; gap:12px; align-items:center; min-width:0; }
.adm-team-identity>div { min-width:0; }
.adm-team-identity p, .adm-team-right-summary, .adm-team-row-action { min-width:0; overflow-wrap:anywhere; }
.adm-team-right-summary, .adm-team-row-action { display:grid; gap:6px; justify-items:start; }
.adm-team-badge { font-size:12px; border:1px solid var(--g-line); background:var(--g-surface-2); color:var(--g-ink); padding:4px 8px; border-radius:var(--g-r-item); }
.adm-team-role { display:grid; gap:14px; align-content:start; }
.adm-team-audit-filter { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; align-items:end; }
.adm-team-audit .adm-card { display:grid; gap:10px; overflow-wrap:anywhere; }
.adm-team-audit time { color:var(--g-muted); font-size:12px; font-variant-numeric:tabular-nums; }
.adm-team-editor .adm-drawer-body, .adm-team-form { display:grid; gap:16px; }
.adm-team-editor .adm-drawer-head>div { min-width:0; }
.adm-team-editor .adm-drawer-head h2 { overflow-wrap:anywhere; }
.adm-team-editor .adm-notice { overflow-wrap:anywhere; }
.adm-team-editor .adm-team-permissions { min-width:0; padding:0; border:0; margin:0 0 18px; }
.adm-team-permissions legend { color:var(--g-gold-hi); font-size:13px; font-weight:600; padding-bottom:8px; }
.adm-team-permission { display:grid; grid-template-columns:minmax(0,1fr) minmax(140px,.8fr); gap:6px 12px; align-items:center; padding:12px 0; border-bottom:1px solid var(--g-line-soft); }
.adm-team-permission label { display:grid; gap:4px; font-size:13px; text-align:left; }
.adm-team-permission>small { grid-column:1/-1; }
.adm-team-permission input[type=checkbox] { justify-self:end; width:22px; height:22px; accent-color:var(--g-gold); }
.adm-team-permission input[type=checkbox]:focus-visible { outline:2px solid var(--g-gold-hi); outline-offset:4px; }
.adm-team-access { display:grid; gap:12px; }
.adm-team-editor [data-current-version] { max-height:280px; overflow:auto; font-size:13px; }
.adm-team-editor [data-current-version] ul { padding-left:20px; }
.adm-team-editor [hidden], .adm-team [hidden] { display:none!important; }
.adm-top .adm-search-method { min-width:0; max-width:125px; background:var(--g-surface); color:var(--g-ink); border:0; padding:8px 4px; font-size:12px; }
.adm-top .adm-search-method:focus-visible { outline:2px solid var(--g-gold-hi); }
.adm-top .adm-search { min-width:220px; }
@media (max-width:1100px) {
  .adm-team-member { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .adm-team-row-action { grid-column:2; grid-row:2; }
  .adm-top .adm-search-method { max-width:95px; }
}
@media (max-width:640px) {
  .adm-team-toolbar { align-items:start; flex-direction:column; }
  .adm-team-tabs { gap:16px; }
  .adm-team-tabs a { font-size:13px; }
  .adm-team-role-grid, .adm-team-member, .adm-team-audit-filter { grid-template-columns:minmax(0,1fr); }
  .adm-team-row-action { grid-column:auto; grid-row:auto; }
  .adm-team-member { gap:12px; }
  .adm-team-permission { grid-template-columns:minmax(0,1fr); }
  .adm-team-permission input[type=checkbox] { grid-column:1; justify-self:start; }
}
@media (pointer:coarse) {
  .adm-top .adm-search-method { font-size:16px; min-height:44px; }
  .adm-team-permission label { min-height:44px; align-content:center; }
  .adm-team-tabs a { min-height:44px; }
}
