/* actions-u1-20261003 - site-wide button layer (button audit 2026-10, batch 1; owner-approved plan).
   One late layer that moves every site button onto the U1 families already live in /css/hero-upgrade-20261003.css.
   Linked LAST in <head> on the 12 main-site pages that load network-20260909.css (after hero-upgrade on the homepage).
   The hero (hero-upgrade) is not touched: none of the selectors below match .hero-brand-primary, .hero__discord or the tiles.

   Cascade recipe (same idea as U1):
   - every selector is `html body :where(<family list>):not(#u1#u1#u1):not(.kz-game *)`. :where() makes every family weigh the same,
     so source order decides between families; :not(#u1#u1#u1):not(.kz-game *) adds a flat (3,0,0), enough to beat network
     .sc-action (0,2,1), its pseudo rule (1,2,2 through :is(#ubAcct)) and ID-heavy page rules such as
     `.pp-page.pp-logged #sampDash ... #ppRefresh` (2,4,0);
   - !important only on properties the live CSS already pins with !important;
   - lifts and presses use `translate`, because network pins `transform:none!important`;
   - casino games (.kz-game, .kz-btn) and /mu are excluded on purpose (Batch 4 / never).
   Families: P primary (ice) · A server accent · G glass · D Discord · S SWGC (only gold) · X danger · I icon tool · C chips and segments · L text link.
   This file is generated from actions-u1.template.css by build.js (lists expanded). */

/* Six pages (delete-account, discord-link, banned, privacy, /app, /unboxing) do not load style.css,
   so they have no Chakra Petch. These two faces are the same self-hosted files style.css already uses. */
@font-face { font-family: 'Chakra Petch'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/chakra-petch-600-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: 'Chakra Petch'; font-style: normal; font-weight: 600; font-display: swap; src: url('/assets/fonts/chakra-petch-600-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: 'Chakra Petch'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/chakra-petch-700-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: 'Chakra Petch'; font-style: normal; font-weight: 700; font-display: swap; src: url('/assets/fonts/chakra-petch-700-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; }

:root {
  --u1-ink: #EAF0F7;
  --u1-hot: #F7FAFF;
  --u1-navy: #0B1220;
  --u1-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ================= 0. Generic hooks (.u1-p/.u1-g/.u1-d/.u1-x/.u1-l on new markup) =================
   Zero specificity on purpose: they only give new markup a sane box; any page rule wins on layout. */
:where(.u1-p, .u1-g, .u1-d, .u1-s, .u1-x) { display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 13px 20px; box-sizing: border-box; text-align: center; cursor: pointer; }
:where(.u1-p, .u1-g, .u1-d, .u1-s, .u1-x, .u1-l) svg { width: 18px; height: 18px; flex: 0 0 auto; }
:where(.u1-block) { display: flex; width: 100%; }
/* Busy label swapped in by window.SCButtonBusy (js/network-quality): inherits the button type. */
:where(.sc-busy-label) { font: inherit; letter-spacing: inherit; text-transform: inherit; }

/* ================= 1. Shared geometry, type and motion (all button families) ================= */

html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *) {
  --u1-ring: #E9F2FA;
  min-height: 48px;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 7px !important;
  clip-path: none !important;
  font-family: "Chakra Petch", Inter, system-ui, sans-serif !important;
  font-size: 13px !important;
  line-height: 20px !important;
  font-weight: 700 !important;
  letter-spacing: .12em !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  text-shadow: none !important;
  filter: none !important;
  translate: 0 0;
  transition: translate .22s var(--u1-ease), background-color .2s ease, background-image .2s ease, border-color .2s ease,
    box-shadow .22s ease, color .2s ease, opacity .2s ease !important;
}
/* Glass, icon tools and compact header buttons use the 600 weight like the U1 tiles. */
html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action, #kzBuy, #ubBuy):not(#u1#u1#u1):not(.kz-game *) { font-weight: 600 !important; }
html body :where(.u1-compact, .pf-act.sc-action, .net-user.sc-action, .net-signout.sc-action, #navLogout, #kzAccountLogout, #kzBuy, #ubBuy, #ppRefresh, #servicesOnlineRetry):not(#u1#u1#u1):not(.kz-game *) { min-height: 44px; font-size: 12px !important; letter-spacing: .1em !important; }
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *) > :is(svg, .vector-icon, .ex-icon, .studio-icon) { translate: 0 0; transition: translate .26s var(--u1-ease); }
/* Label spans carry their own Inter rules on several pages (home-finish, panel, auth): make them inherit the U1 type. */
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *):not([data-action-kind=price]):not(.boxBuy) :is(span, b, strong):not([class*=icon]):not(.mono):not([hidden]) {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  text-transform: inherit !important;
}

/* ================= 2. P - primary: solid ice white with a lit top edge (= hero EXPLORE SERVERS) ================= */

html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen):not(#u1#u1#u1):not(.kz-game *) {
  color: #0B1220 !important;
  border-color: #F2F6FB !important;
  background-color: #EEF3F9 !important;
  background-image: linear-gradient(180deg, #F7FAFF 0%, #E4EBF3 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(96, 116, 142, .22),
    0 1px 2px rgba(0, 0, 0, .35), 0 10px 26px -10px rgba(0, 0, 0, .7) !important;
}
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen):not(#u1#u1#u1):not(.kz-game *) :is(svg, .vector-icon, .cta__dlicon, img) { color: #0B1220 !important; }
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen):not(#u1#u1#u1):not(.kz-game *) img { filter: brightness(0) saturate(100%) !important; opacity: .86; }
@media (hover: hover) {
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover {
    color: #0B1220 !important;
    border-color: #FFFFFF !important;
    background-image: linear-gradient(180deg, #FFFFFF 0%, #EDF2F8 100%) !important;
    box-shadow: inset 0 1px 0 #FFFFFF, inset 0 -1px 0 rgba(96, 116, 142, .18), 0 2px 4px rgba(0, 0, 0, .3),
      0 16px 34px -10px rgba(0, 0, 0, .78), 0 0 0 4px rgba(214, 234, 255, .16), 0 0 46px -2px rgba(214, 234, 255, .6) !important;
    translate: 0 -2px;
  }
}
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  border-color: #DCE5EF !important;
  background-image: linear-gradient(180deg, #D9E2EC 0%, #E7EDF4 100%) !important;
  box-shadow: inset 0 2px 4px rgba(11, 18, 32, .26), inset 0 -1px 0 rgba(255, 255, 255, .6), 0 1px 1px rgba(0, 0, 0, .35) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* ================= 3. A - server accent: the server's own fill keeps its identity, plus the U1 lit edge ================= */

html body :where(.u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost)):not(#u1#u1#u1):not(.kz-game *) {
  --u1-acc: var(--node-accent, #E9F2FA);
  --u1-ring: color-mix(in srgb, var(--u1-acc) 70%, #FFFFFF);
  border-color: color-mix(in srgb, var(--u1-acc) 62%, #FFFFFF 10%) !important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .16) 0%, rgba(255, 255, 255, .02) 52%, rgba(0, 0, 0, .12) 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 0 rgba(0, 0, 0, .25), 0 1px 2px rgba(0, 0, 0, .35),
    0 10px 24px -12px rgba(0, 0, 0, .7) !important;
}
@media (hover: hover) {
  html body :where(.u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost)):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):hover {
    border-color: color-mix(in srgb, var(--u1-acc) 45%, #FFFFFF) !important;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, .24) 0%, rgba(255, 255, 255, .06) 52%, rgba(0, 0, 0, .06) 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .4), inset 0 -1px 0 rgba(0, 0, 0, .2), 0 14px 30px -12px rgba(0, 0, 0, .75),
      0 0 32px -6px color-mix(in srgb, var(--u1-acc) 75%, transparent) !important;
    translate: 0 -2px;
  }
  html body :where(.u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost)):not(#u1#u1#u1):not(.kz-game *):hover > :is(svg, .vector-icon) { translate: 0 2px; }
}
html body :where(.u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost)):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  background-image: linear-gradient(180deg, rgba(0, 0, 0, .18) 0%, rgba(0, 0, 0, .04) 100%) !important;
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .38), 0 1px 1px rgba(0, 0, 0, .3) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* ================= 4. G - glass secondary (the U1 tile surface at button size) ================= */

html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *) {
  color: var(--u1-ink) !important;
  border-color: rgba(214, 228, 245, .2) !important;
  border-top-color: rgba(226, 236, 248, .34) !important;
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .02) 100%),
    linear-gradient(180deg, rgba(26, 36, 54, .64) 0%, rgba(10, 16, 28, .78) 100%) !important;
  box-shadow: inset 0 1px 0 rgba(233, 242, 250, .1), 0 1px 2px rgba(0, 0, 0, .3), 0 10px 24px -14px rgba(0, 0, 0, .75) !important;
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  backdrop-filter: blur(14px) saturate(140%);
}
html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"]):not(#u1#u1#u1):not(.kz-game *) :is(svg, .vector-icon, .ex-icon) { color: #C5D2E0; }
html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"]):not(#u1#u1#u1):not(.kz-game *) img { filter: brightness(0) invert(.9) !important; opacity: .8; }
@media (hover: hover) {
  html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover {
    color: var(--u1-hot) !important;
    border-color: rgba(226, 236, 248, .36) !important;
    border-top-color: rgba(240, 246, 252, .52) !important;
    background-image: linear-gradient(180deg, rgba(255, 255, 255, .12) 0%, rgba(255, 255, 255, .035) 100%),
      linear-gradient(180deg, rgba(34, 46, 66, .72) 0%, rgba(14, 22, 36, .84) 100%) !important;
    box-shadow: inset 0 1px 0 rgba(233, 242, 250, .16), 0 4px 8px rgba(0, 0, 0, .24), 0 16px 30px -14px rgba(0, 0, 0, .8),
      0 0 0 3px rgba(214, 234, 255, .07) !important;
    translate: 0 -2px;
  }
}
html body :where(.u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  background-image: linear-gradient(180deg, rgba(12, 18, 30, .82) 0%, rgba(20, 30, 46, .72) 100%) !important;
  box-shadow: inset 0 2px 6px rgba(0, 0, 0, .45), 0 1px 1px rgba(0, 0, 0, .3) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* I - icon tool: same glass, square, the icon carries the node accent when there is one. */
html body :where(.u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *) { min-width: 44px; min-height: 44px; padding: 0 !important; }
/* Icon tools that are a typed glyph (the checkout and store close buttons are a plain "×") keep it legible. */
html body :where(.u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *) { font: 500 22px/1 Inter, system-ui, sans-serif !important; letter-spacing: 0 !important; }
html body :where(.u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout):not(#u1#u1#u1):not(.kz-game *) :is(svg, .vector-icon) { width: 18px; height: 18px; color: color-mix(in srgb, var(--node-accent, #C5D2E0) 72%, #FFFFFF); }

/* ================= 5. D - Discord / community (= hero JOIN DISCORD) ================= */

html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *) {
  --u1-ring: #B9C0FF;
  color: var(--u1-ink) !important;
  border-color: rgba(152, 162, 255, .3) !important;
  border-top-color: rgba(190, 196, 255, .46) !important;
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .07) 0%, rgba(255, 255, 255, .015) 100%),
    linear-gradient(180deg, rgba(118, 130, 255, .17) 0%, rgba(88, 101, 242, .07) 100%),
    linear-gradient(rgba(9, 14, 26, .42), rgba(9, 14, 26, .42)) !important;
  box-shadow: inset 0 1px 0 rgba(214, 220, 255, .16), 0 10px 26px -12px rgba(0, 0, 0, .7) !important;
  -webkit-backdrop-filter: blur(14px) saturate(150%);
  backdrop-filter: blur(14px) saturate(150%);
}
html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *) :is(svg, .vector-icon, .ex-icon) { color: #B4BBFF; }
html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *) img { filter: brightness(0) invert(.86) !important; }
@media (hover: hover) {
  html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover {
    color: #F7FAFF !important;
    border-color: #8F98FF !important;
    background-image: linear-gradient(180deg, #6571F4 0%, #4F5BE6 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 -1px 0 rgba(20, 24, 80, .35),
      0 14px 30px -12px rgba(0, 0, 0, .75), 0 0 34px -6px rgba(88, 101, 242, .75) !important;
    translate: 0 -2px;
  }
  html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *):hover :is(svg, .vector-icon, .ex-icon) { color: #F7FAFF; }
}
html body :where(.u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  border-color: rgba(166, 175, 255, .5) !important;
  background-image: linear-gradient(180deg, rgba(88, 101, 242, .3) 0%, rgba(88, 101, 242, .22) 100%),
    linear-gradient(rgba(9, 14, 26, .55), rgba(9, 14, 26, .55)) !important;
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .4), 0 1px 1px rgba(0, 0, 0, .3) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* ================= 6. S - SWGC: the only button family allowed to use gold #FFD24A ================= */

html body :where(.u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen)):not(#u1#u1#u1):not(.kz-game *) {
  --u1-ring: #FFE08A;
  color: #FFE08A !important;
  border-color: rgba(255, 210, 74, .42) !important;
  border-top-color: rgba(255, 226, 140, .62) !important;
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(255, 210, 74, .16) 0%, rgba(255, 210, 74, .05) 100%),
    linear-gradient(rgba(9, 14, 26, .5), rgba(9, 14, 26, .5)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 236, 170, .18), 0 10px 24px -14px rgba(0, 0, 0, .7) !important;
}
@media (hover: hover) {
  html body :where(.u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen)):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):hover {
    color: #FFF1C2 !important;
    border-color: #FFD24A !important;
    background-image: linear-gradient(180deg, rgba(255, 210, 74, .26) 0%, rgba(255, 210, 74, .1) 100%),
      linear-gradient(rgba(9, 14, 26, .45), rgba(9, 14, 26, .45)) !important;
    box-shadow: inset 0 1px 0 rgba(255, 236, 170, .3), 0 14px 28px -12px rgba(0, 0, 0, .75), 0 0 28px -6px rgba(255, 210, 74, .55) !important;
    translate: 0 -2px;
  }
}
html body :where(.u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen)):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .45) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* ================= 7. X - danger: glass with a red hairline; filled only for the final destructive confirm ================= */

html body :where(.u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout)):not(#u1#u1#u1):not(.kz-game *) {
  --u1-ring: #FF9AA2;
  color: #FFD6DA !important;
  border-color: rgba(232, 65, 77, .5) !important;
  border-top-color: rgba(255, 128, 138, .6) !important;
  background-color: transparent !important;
  background-image: linear-gradient(180deg, rgba(232, 65, 77, .16) 0%, rgba(232, 65, 77, .06) 100%),
    linear-gradient(rgba(9, 14, 26, .5), rgba(9, 14, 26, .5)) !important;
  box-shadow: inset 0 1px 0 rgba(255, 190, 196, .14), 0 10px 24px -14px rgba(0, 0, 0, .7) !important;
}
html body :where(.u1-x.is-final, #submitBtn):not(#u1#u1#u1):not(.kz-game *) {
  color: #FFFFFF !important;
  border-color: #F06A74 !important;
  background-image: linear-gradient(180deg, #EC4B57 0%, #CF2F3C 100%) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), inset 0 -1px 0 rgba(80, 0, 10, .35), 0 10px 26px -12px rgba(0, 0, 0, .7) !important;
}
@media (hover: hover) {
  html body :where(.u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):not([aria-busy=true]):hover {
    color: #FFFFFF !important;
    border-color: #FF7A84 !important;
    background-image: linear-gradient(180deg, #F25A65 0%, #D7323F 100%) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .3), 0 14px 30px -12px rgba(0, 0, 0, .75), 0 0 30px -6px rgba(232, 65, 77, .7) !important;
    translate: 0 -2px;
  }
}
html body :where(.u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn):not(#u1#u1#u1):not(.kz-game *):not(:disabled):not([aria-disabled=true]):active {
  box-shadow: inset 0 2px 5px rgba(0, 0, 0, .45) !important;
  translate: 0 1px;
  transition-duration: .06s !important;
}

/* ================= 8. Shared states: focus, disabled, loading ================= */

html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *):focus-visible {
  outline: 2px solid var(--u1-ring) !important;
  outline-offset: 3px !important;
}
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *):is(:disabled, [aria-disabled=true]):not([aria-busy=true]) {
  opacity: .45 !important;
  cursor: not-allowed;
  translate: 0 0 !important;
  box-shadow: none !important;
}
/* Loading: JS sets aria-busy="true" and swaps the label ("SIGNING IN…"); CSS adds the spinner and blocks the lift. */
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *)[aria-busy=true] { cursor: progress; translate: 0 0 !important; opacity: 1 !important; }
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *)[aria-busy=true]::after {
  content: "" !important;
  display: inline-block !important;
  position: static !important;
  inset: auto !important;
  width: 14px !important;
  height: 14px !important;
  margin: 0 0 0 10px !important;
  border: 2px solid currentColor !important;
  border-right-color: transparent !important;
  border-radius: 50% !important;
  background: none !important;
  -webkit-mask: none !important;
  mask: none !important;
  flex: 0 0 14px !important;
  box-sizing: border-box !important;
  vertical-align: -2px;
  opacity: .85 !important;
  transform: none !important;
  animation: u1-spin .7s linear infinite !important;
}
@keyframes u1-spin { to { rotate: 360deg; } }

/* Copy failed (main.js): a red hairline for 2.5 s; the aria-live region carries the message. */
html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *).is-copy-failed { border-color: rgba(255, 128, 138, .75) !important; }

/* ================= 8b. C - chips and segmented filters (one family for every filter row and stake chip) ================= */

html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *) {
  min-height: 44px;
  padding: 0 14px !important;
  border: 1px solid rgba(214, 228, 245, .18) !important;
  border-radius: 7px !important;
  color: #C5D2E0 !important;
  background: linear-gradient(180deg, rgba(26, 36, 54, .55) 0%, rgba(10, 16, 28, .7) 100%) !important;
  font: 600 12px/18px "Chakra Petch", Inter, system-ui, sans-serif !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  font-variant-numeric: tabular-nums;
  opacity: 1 !important;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease, box-shadow .16s ease !important;
}
@media (hover: hover) {
  html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *):not([aria-pressed=true]):not(.is-on):hover { color: #F7FAFF !important; border-color: rgba(226, 236, 248, .36) !important; }
}
html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *):is([aria-pressed=true], [aria-selected=true], .is-on) {
  color: #0B1220 !important;
  border-color: #F2F6FB !important;
  background: linear-gradient(180deg, #F7FAFF 0%, #E4EBF3 100%) !important;
  box-shadow: inset 0 1px 0 #FFFFFF !important;
}
html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *):active { box-shadow: inset 0 2px 4px rgba(0, 0, 0, .4) !important; }
html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *):focus-visible { outline: 2px solid #E9F2FA !important; outline-offset: 2px !important; }
html body :where(.u1-c, .pp-achfilter__b, button[data-inventory-status]):not(#u1#u1#u1):not(.kz-game *):disabled { opacity: .45 !important; cursor: not-allowed; }

/* ================= 9. L - text link (tertiary actions: forgot password, back, resend) ================= */

html body :where(.u1-l, #lForgot, #regForgot, .auth-switch a, #rBack, #rResend, #rChangeEmail, #vResend, #vChangeToggle, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *) {
  color: #E9F2FA !important;
  font-family: Inter, system-ui, sans-serif !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  text-decoration: underline !important;
  text-decoration-color: rgba(233, 242, 250, .36) !important;
  text-decoration-thickness: 1px !important;
  text-underline-offset: 4px;
  border-radius: 4px;
  padding-block: 12px; /* 44px hit area without moving anything: inline links ignore it for layout, */
  margin-block: -12px;  /* and a link that is a flex/grid item gets the same space back from the negative margin */
  transition: color .16s ease, text-decoration-color .16s ease !important;
}
html body :where(.u1-l.is-danger):not(#u1#u1#u1):not(.kz-game *) { color: #FFB3B9 !important; text-decoration-color: rgba(255, 154, 162, .45) !important; }
html body :where(.u1-l.is-block, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *) { min-height: 44px; padding-block: 0; margin-block: 0; border-color: transparent !important; background: none !important; }
html body :where(.u1-l, #lForgot, #regForgot, .auth-switch a, #rBack, #rResend, #rChangeEmail, #vResend, #vChangeToggle, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *) img { filter: brightness(0) invert(.9) !important; opacity: .75; }
html body :where(.u1-l, #lForgot, #regForgot, .auth-switch a, #rBack, #rResend, #rChangeEmail, #vResend, #vChangeToggle, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *):is([aria-disabled=true], :disabled) { color: #8295AC !important; text-decoration-color: transparent !important; cursor: default; }
@media (hover: hover) {
  html body :where(.u1-l, #lForgot, #regForgot, .auth-switch a, #rBack, #rResend, #rChangeEmail, #vResend, #vChangeToggle, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *):not([aria-disabled=true]):hover { color: #F7FAFF !important; text-decoration-color: currentColor !important; }
}
html body :where(.u1-l, #lForgot, #regForgot, .auth-switch a, #rBack, #rResend, #rChangeEmail, #vResend, #vChangeToggle, .pnl-gate__home, .ub-gate__link--muted):not(#u1#u1#u1):not(.kz-game *):focus-visible { outline: 2px solid #E9F2FA !important; outline-offset: 2px !important; text-decoration-color: currentColor !important; }

/* ================= 9b. Markup added with this layer ================= */
/* Player hub: the trailing arrow points right for internal destinations (only Community leaves the site). */
.ex-hub-link > .ex-icon--internal { rotate: 45deg; }
/* Profile account card on phones: one action per row, so the Lithuanian verb + object labels stay on one line. */
@media (max-width: 560px) { #pAccCard .pf-actions > .pf-act { flex: 1 1 100% !important; grid-column: 1 / -1; } }
/* Profile account card: password and delete as text links under the buttons. */
:where(.pf-acc-links) { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 22px; margin-top: 14px; }
/* Header account chip: a signed-in username is user content, so it keeps its own case. */
html body :where(.net-account.is-signed-in .net-user.sc-action):not(#u1#u1#u1):not(.kz-game *) { text-transform: none !important; letter-spacing: .02em !important; }
/* Panel shops: BUY spans its item card in the SFG/GRPLS shop too, like the CS shop already does. */
html body :where(#flowSamp .pp-buy.sc-action):not(#u1#u1#u1):not(.kz-game *) { align-self: stretch; width: 100%; justify-content: center; }
/* Footer "Support" leaves the site: a small inline arrow-up-right after the word. */
.sc-network .net-footer-links a > .net-icon { display: inline-block; width: 13px; height: 13px; margin-left: 4px; vertical-align: -2px; }
/* Banned page: the appeal is a Discord button under the line. */
:where(.foot) .banned-appeal { margin: 10px 0 0 10px; vertical-align: middle; }

/* ================= 10. Narrow screens, touch, motion, forced colours ================= */

@media (max-width: 520px) {
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *) { letter-spacing: .08em !important; }
}
/* The launcher is a 97 MB Windows .exe: on phones it steps down to glass (the "Windows PC only" line is a markup change). */
@media (max-width: 700px), (hover: none) and (pointer: coarse) {
  html body :where(#launcher .cta--launcher.sc-action):not(#u1#u1#u1):not(.kz-game *) {
    color: var(--u1-ink) !important;
    border-color: rgba(214, 228, 245, .2) !important;
    background-image: linear-gradient(180deg, rgba(26, 36, 54, .64) 0%, rgba(10, 16, 28, .78) 100%) !important;
    box-shadow: inset 0 1px 0 rgba(233, 242, 250, .1) !important;
  }
  html body :where(#launcher .cta--launcher.sc-action):not(#u1#u1#u1):not(.kz-game *) svg { color: #C5D2E0 !important; }
}
@media (prefers-reduced-motion: reduce) {
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *), html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *) > * {
    translate: none !important;
    transition: background-color .01s, border-color .01s, color .01s, box-shadow .01s, opacity .01s !important;
  }
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *)[aria-busy=true]::after { animation-duration: 1.6s !important; }
}
@media (forced-colors: active) {
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *) { border-color: ButtonText !important; }
  html body :where(.u1-p, .pp-login__btn.sc-action, #vBtn, #pnlGate .pnl-gate__action--primary, #ubGate .ub-gate__cta, #kzGate .kz-gate__content .cta, #kazino .cta--app, #launcher .cta--launcher, #app .cta--app[href$=".apk"], #dl.cta--app, .pp-buy.sc-action, .pf-act.prim.sc-action, #swgcWelcomeBtn, #swgcSuccessBtn, #btnOpen, .u1-a, .server-lobby-connect.sc-action, #deploy [role=tabpanel] .copybtn.sc-action:not(.copybtn--ghost), .u1-g, .cta--ghost.sc-action, .copybtn--ghost.sc-action:not(.worlds-secondary), .net-user.sc-action, #pnlGate .pnl-gate__action:not(.pnl-gate__action--primary), #ubGate .ub-gate__link:not(.ub-gate__link--muted), #ppRefresh, #ppLogout, #vChangeBtn, #aProfile, #aAdmin, .pf-act.sc-action:not(.prim), #servicesOnlineRetry, .net-signout.sc-action, #navLogout, #kzAccountLogout, a.cta--app.sc-action[href*="/app/web"], .u1-d, .sc-action[data-action-tone=community], .cta--discord.sc-action, #go, .u1-s, #kzBuy, #ubBuy, .boxBuy.sc-action, .sc-action[data-action-tone=wallet]:not(#btnOpen), .u1-x, .sc-action[data-action-tone=danger]:not(#ppLogout):not(.net-signout):not(#navLogout):not(#kzAccountLogout):not(#ubLogout), .u1-x.is-final, #submitBtn, .u1-i, .worlds-secondary.sc-action, #gpX, #swgcStoreX, #ubLogout, .u1-compact, .pf-act.sc-action):not(#u1#u1#u1):not(.kz-game *):focus-visible { outline-color: Highlight !important; }
}

/* review 10-03: the busy spinner must not add a third row to the two-line unboxing Buy tile */
html body .wrap .boxCard .boxBuy.sc-action { position: relative; }
html body .wrap .boxCard .boxBuy.sc-action[aria-busy=true]:not(#u1#u1#u1#u1)::after { position: absolute !important; top: 8px !important; right: 8px !important; margin: 0 !important; }
/* review 10-03: phone inventory chip 'Pristatyta' / 'Delivered' fits its 90px chip */
@media (max-width: 420px) {
  html body .inventoryTabs button[data-inventory-status]:not(#u1#u1#u1#u1) { padding-inline: 8px !important; letter-spacing: .04em !important; }
}
/* fix 10-03: the header account chip shows the member's photo - the ghost-button icon tint must not recolour it */
html body .net-user .net-user-avatar img:not(#u1#u1#u1#u1) { filter: none !important; opacity: 1 !important; }
