/* ==========================================================================
   Pandor Systems — site layout
   --------------------------------------------------------------------------
   Layout only. Colors, shadows, radii and type come from Niveus tokens; the
   identity is the --nv-brand / --brand-2 declaration in meta.ejs (orange + night violet).
   ========================================================================== */

ul[role="list"], ol[role="list"] { list-style: none; margin: 0; padding: 0; }
[hidden] { display: none !important; }

.skip {
  position: absolute;
  inset-block-start: var(--nv-space-2);
  inset-inline-start: var(--nv-space-2);
  z-index: 100;
  translate: 0 -200%;
}
.skip:focus-visible { translate: 0 0; }

.shell {
  max-inline-size: var(--nv-layout-max-width);
  margin-inline: auto;
  padding-inline: var(--nv-layout-gutter);
}

.section { padding-block: var(--nv-space-16) 0; }

.section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--nv-space-4);
  margin-block-end: var(--nv-space-8);
}
.section__head .nv-prose { max-inline-size: var(--nv-measure); }

.grow { flex: 1; min-inline-size: 0; }
.row { display: flex; align-items: center; gap: var(--nv-space-3); }
.nav-user { max-inline-size: 10rem; }

/* --- Icon tiles ------------------------------------------------------------ */

.tile {
  inline-size: var(--nv-space-10);
  block-size: var(--nv-space-10);
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--nv-radius-md);
  background-color: var(--nv-color-accent);
  background-image: var(--nv-sheen-raised);
  color: var(--nv-color-on-accent);
  box-shadow: var(--nv-bevel), var(--nv-outline), var(--nv-elevation-1);
}
.tile--sm { inline-size: var(--nv-space-8); block-size: var(--nv-space-8); border-radius: var(--nv-radius-sm); }
.tile--lg { inline-size: var(--nv-space-16); block-size: var(--nv-space-16); border-radius: var(--nv-radius-lg); }

.ic {
  inline-size: var(--nv-space-10);
  block-size: var(--nv-space-10);
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--nv-radius-full);
  object-fit: cover;
  background-color: var(--nv-color-surface-inset);
  box-shadow: var(--nv-elevation-inset-sm);
  font-weight: var(--nv-font-weight-semibold);
  color: var(--nv-color-text-secondary);
}
.ic--sm { inline-size: var(--nv-space-8); block-size: var(--nv-space-8); }
.ic--lg { inline-size: var(--nv-space-14); block-size: var(--nv-space-14); border-radius: var(--nv-radius-lg); font-size: var(--nv-font-size-xl); }

/* --- Hero ------------------------------------------------------------------ */

.hero {
  display: grid;
  gap: var(--nv-space-10);
  align-items: center;
  padding-block: var(--nv-space-16) var(--nv-space-12);
}
@media (min-width: 62rem) {
  .hero { grid-template-columns: 1.05fr 0.95fr; gap: var(--nv-space-16); }
}
.hero__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--nv-space-5);
}
.hero__title {
  font-size: clamp(var(--nv-font-size-4xl), 5.5vw, var(--nv-font-size-5xl));
  letter-spacing: var(--nv-letter-spacing-tighter);
  text-wrap: balance;
}
.hero__art {
  display: grid;
  place-items: center;
  min-block-size: 20rem;
  padding: var(--nv-space-12) var(--nv-space-6);
}

.status { inline-size: min(100%, 24rem); }
.status__row { display: flex; align-items: center; gap: var(--nv-space-3); }

/* --- Discord message mock (bot hero + live preview) ------------------------ */

.chat-mock { inline-size: min(100%, 28rem); }
.chat-mock__head { display: flex; align-items: center; gap: var(--nv-space-1); }
.chat-mock__msg { display: flex; gap: var(--nv-space-3); align-items: flex-start; }
.chat-mock__msg .nv-body { margin-block-start: var(--nv-space-1); overflow-wrap: anywhere; }
.chat-mock__av {
  inline-size: var(--nv-space-10);
  block-size: var(--nv-space-10);
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--nv-radius-full);
  background-color: var(--nv-color-accent);
  background-image: var(--nv-sheen-raised);
  color: var(--nv-color-on-accent);
  box-shadow: var(--nv-bevel), var(--nv-outline);
}
.chat-mock__sys {
  display: flex;
  align-items: center;
  gap: var(--nv-space-1-5);
  padding-inline-start: calc(var(--nv-space-10) + var(--nv-space-3));
}
.mention {
  background: var(--nv-color-accent-subtle);
  color: var(--nv-color-accent-text);
  padding: 0 var(--nv-space-1);
  border-radius: var(--nv-radius-xs);
  font-weight: var(--nv-font-weight-medium);
}

/* --- Stats ------------------------------------------------------------------ */

.stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
  gap: var(--nv-space-4);
}
.stat__value {
  display: block;
  margin-block: var(--nv-space-2) var(--nv-space-0-5);
  font-size: var(--nv-font-size-3xl);
  font-weight: var(--nv-font-weight-semibold);
  letter-spacing: var(--nv-letter-spacing-tighter);
  color: var(--nv-color-text-primary);
  font-variant-numeric: tabular-nums;
}

/* --- Systems ---------------------------------------------------------------- */

.systems {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(20rem, 100%), 1fr));
  gap: var(--nv-space-5);
}
.system { display: flex; flex-direction: column; }
.system > .nv-card__body { flex: 1; }
.system__art {
  display: grid;
  place-items: center;
  aspect-ratio: 16 / 6;
  border-block-start: 0;
}
.system .nv-card__link { color: inherit; text-decoration: none; }
.link-row { display: flex; align-items: center; gap: var(--nv-space-1-5); }

.features {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr));
  gap: var(--nv-space-4);
}

.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr));
  gap: var(--nv-space-4);
}
.step__no {
  font: var(--nv-font-engraved);
  font-size: var(--nv-font-size-2xl);
  letter-spacing: var(--nv-letter-spacing-tight);
  color: var(--nv-color-accent-text);
}

/* --- Team --------------------------------------------------------------------
   Cover strip (Discord banner, or a bed tinted with the person's own Discord
   accent), an avatar that overlaps it, then role, bio and focus areas. */

.team {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr));
  gap: var(--nv-space-5);
  align-items: stretch;
}
.team > li { display: flex; }

.member {
  display: flex;
  flex-direction: column;
  inline-size: 100%;
  overflow: hidden;
}
.member__cover {
  block-size: 7rem;
  padding: 0;
  flex: none;
  background-color: var(--nv-color-accent-subtle);
  border-block-start: 0;
}
.member__cover img { inline-size: 100%; block-size: 100%; object-fit: cover; display: block; }

.member__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: var(--nv-space-3);
  padding: 0 var(--nv-space-5) var(--nv-space-5);
}
.member__top {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--nv-space-3);
  margin-block-start: calc(var(--nv-space-10) * -1);
}
.member__avatar {
  inline-size: var(--nv-space-20);
  block-size: var(--nv-space-20);
  border-radius: var(--nv-radius-full);
  object-fit: cover;
  background-color: var(--nv-color-surface-inset);
  border: var(--nv-space-1) solid var(--nv-color-surface);
  box-shadow: var(--nv-elevation-2);
  position: relative;
}
.member__avatar--ph {
  display: grid;
  place-items: center;
  font-size: var(--nv-font-size-3xl);
  font-weight: var(--nv-font-weight-semibold);
  color: var(--nv-color-accent-text);
}
.member__bio { text-wrap: pretty; }
.member__focus { margin-block-start: auto; padding-block-start: var(--nv-space-1); }
.member__foot { padding: 0 var(--nv-space-5) var(--nv-space-5); border: 0; }

.member--join .member__body {
  justify-content: center;
  align-items: flex-start;
  padding: var(--nv-space-6);
}

/* --- Closing / footer --------------------------------------------------------- */

.closing {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--nv-space-4);
  padding: var(--nv-space-16) var(--nv-space-6);
}

.site-footer {
  margin-block-start: var(--nv-space-16);
  padding-block: var(--nv-space-10) var(--nv-space-12);
  border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle);
}
.foot-grid {
  display: grid;
  gap: var(--nv-space-8);
  grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
  margin-block-end: var(--nv-space-8);
}
.foot-grid > :first-child { grid-column: span 2; }
@media (max-width: 40rem) { .foot-grid > :first-child { grid-column: auto; } }
.foot-brand { padding: 0; }
.foot-link { color: var(--nv-color-text-secondary); text-decoration: none; font: var(--nv-font-label); }
.foot-link:hover { color: var(--nv-color-text-primary); text-decoration: underline; }
.site-footer .nv-divider { margin-block-end: var(--nv-space-5); }

@media (max-width: 48rem) {
  .theme-switch { display: none; }
}

/* --- Dashboard ----------------------------------------------------------------- */

.app {
  display: grid;
  grid-template-columns: 16rem minmax(0, 1fr);
  min-block-size: 100svh;
}
.app__sidebar {
  position: sticky;
  inset-block-start: 0;
  block-size: 100svh;
  overflow-y: auto;
}
.app__main { min-inline-size: 0; display: flex; flex-direction: column; }
.app__mobile-brand { display: none; }
.app__content {
  flex: 1;
  inline-size: 100%;
  max-inline-size: 72rem;
  margin-inline: auto;
  padding: var(--nv-space-8) var(--nv-layout-gutter) var(--nv-space-12);
  display: flex;
  flex-direction: column;
  gap: var(--nv-space-6);
}
@media (max-width: 62rem) {
  .app { grid-template-columns: 1fr; }
  .app__sidebar { display: none; }
  .app__mobile-brand { display: inline-flex; }
}

/* Pasek boczny ma teraz dużo modułów: nic się nie ściska, całość się przewija, a profil zostaje przyklejony na dole. */
.app__sidebar > * { flex-shrink: 0; }
.app__sidebar { overscroll-behavior: contain; scrollbar-width: thin; }
.app__sidebar .side-user {
  display: flex;
  flex-direction: row;
  text-align: start;
  align-items: center;
  gap: var(--nv-space-2-5);
  padding: var(--nv-space-2-5) var(--nv-space-3);
  min-block-size: 3.5rem;
  position: sticky;
  inset-block-end: 0;
  z-index: 1;
  background-color: var(--nv-color-surface-raised, var(--nv-color-surface));
  /* pas w kolorze paska pod kartą i miękkie przejście nad nią — przewijana lista nie prześwituje */
  box-shadow: 0 var(--nv-space-4) 0 0 var(--nv-color-background-subtle), 0 -18px 18px -6px var(--nv-color-background-subtle), var(--nv-elevation-1);
}
.app__sidebar .side-user .grow { min-inline-size: 0; display: flex; flex-direction: column; }
.app__sidebar .side-user .ic { flex: none; }

.page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--nv-space-4);
}

.empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: var(--nv-space-3);
  padding: var(--nv-space-12) var(--nv-space-6);
}
.nv-card--flush > .nv-card__header { padding: var(--nv-space-4) var(--nv-space-5); }

/* --- Dashboard: server overview -------------------------------------------------- */

.welcome {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--nv-space-4);
  padding: var(--nv-space-6);
}
.welcome__av { border: var(--nv-space-0-5) solid var(--nv-color-surface); box-shadow: var(--nv-elevation-2); border-radius: var(--nv-radius-full); }

.dash { display: grid; gap: var(--nv-space-6); align-items: start; }
@media (min-width: 75rem) { .dash { grid-template-columns: minmax(0, 1fr) 20rem; } .dash__side { position: sticky; inset-block-start: var(--nv-space-6); } }

.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-3); }
.toolbar__search { inline-size: min(100%, 16rem); }

.servers {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(18rem, 100%), 1fr));
  gap: var(--nv-space-4);
}
.servers > li { display: flex; }
.servers > li[hidden] { display: none; }
.server {
  inline-size: 100%;
  display: flex;
  flex-direction: column;
  gap: var(--nv-space-4);
  padding: var(--nv-space-4);
}
.server__top { display: flex; align-items: center; gap: var(--nv-space-3); }
.server__name .nv-card__link { color: inherit; text-decoration: none; }
.server__mods .nv-badge { gap: var(--nv-space-1); }
.server__foot {
  margin-block-start: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--nv-space-3);
  padding-block-start: var(--nv-space-3);
  border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle);
}

.progress {
  block-size: var(--nv-space-2);
  border-radius: var(--nv-radius-full);
  background-color: var(--nv-color-surface-inset);
  box-shadow: var(--nv-elevation-inset-sm);
  overflow: hidden;
}
.progress > span {
  display: block;
  block-size: 100%;
  border-radius: inherit;
  background-color: var(--nv-color-accent);
  background-image: var(--nv-sheen-raised);
  transition: inline-size var(--nv-duration-slow) var(--nv-ease-emphasized);
}

.checklist, .soon { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.checklist li { display: flex; align-items: center; gap: var(--nv-space-2-5); }
.checklist__mark {
  inline-size: var(--nv-space-5);
  block-size: var(--nv-space-5);
  flex: none;
  display: grid;
  place-items: center;
  border-radius: var(--nv-radius-full);
  border: var(--nv-border-width-strong) solid var(--nv-color-border-strong);
}
.checklist .is-done .checklist__mark { border-color: transparent; background-color: var(--nv-color-success); color: var(--nv-color-on-success); }
.checklist .is-done .nv-label { color: var(--nv-color-text-tertiary); text-decoration: line-through; }

.empty--sm { padding: var(--nv-space-8) var(--nv-space-6); }
@media (max-width: 40rem) { .stats { grid-template-columns: 1fr 1fr; } .stat__value { font-size: var(--nv-font-size-2xl); } }

/* --- Server panel: module sub-pages ------------------------------------------------
   Each module is its own view (#key). Switching views, tabs and list items goes
   through view transitions, so the change is followed rather than cut. */

.mod-item { display: flex; align-items: center; gap: var(--nv-space-1); }
.mod-item > .nv-nav__item { flex: 1; min-inline-size: 0; }
.mod-switch { flex: none; scale: 0.8; }
.mod-item[data-state="off"] > .nv-nav__item:not([aria-current]) { color: var(--nv-color-text-tertiary); }
.mod-item[data-state="off"] .nv-nav__icon { opacity: 0.5; }

.mod-strip { display: none; max-inline-size: 100%; }
@media (max-width: 62rem) { .mod-strip { display: flex; } }

.views { view-transition-class: nv-content; }
.view { display: flex; flex-direction: column; gap: var(--nv-space-6); }

.section-bar { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--nv-space-4); }
.mod-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); gap: var(--nv-space-4); }
.mod-card { display: flex; flex-direction: column; transition: var(--nv-transition-surface); }
.mod-card > .nv-card__body { flex: 1; }
.mod-card[data-state="off"] .tile { filter: grayscale(1); opacity: 0.55; }
.mod-card .tile { transition: filter var(--nv-duration-normal) var(--nv-ease-standard), opacity var(--nv-duration-normal) var(--nv-ease-standard); }
.mod-card__link { display: flex; align-items: center; gap: var(--nv-space-1-5); color: var(--nv-color-accent-text); text-decoration: none; }
.mod-card__link:hover { text-decoration: underline; }
.mod-card__state { margin-inline-end: auto; inline-size: var(--nv-space-2); block-size: var(--nv-space-2); border-radius: var(--nv-radius-full); background-color: var(--nv-color-border-strong); transition: background-color var(--nv-duration-normal) var(--nv-ease-standard); }
.mod-card[data-state="on"] .mod-card__state { background-color: var(--nv-color-success); box-shadow: 0 0 0 var(--nv-space-1) var(--nv-color-success-subtle); }

.mod-head .nv-card__body { flex-wrap: wrap; gap: var(--nv-space-4); }
.mod-head__actions:empty { display: none; }
.mod-head__switch { gap: var(--nv-space-2-5); }

.lock { display: flex; align-items: center; gap: var(--nv-space-4); padding: var(--nv-space-4) var(--nv-space-5); flex-wrap: wrap; }
.mod-body { display: flex; flex-direction: column; gap: var(--nv-space-5); transition: opacity var(--nv-duration-normal) var(--nv-ease-standard), filter var(--nv-duration-normal) var(--nv-ease-standard); }
.mod-body[inert] { opacity: 0.45; filter: saturate(0.4); }
.mod-body > .nv-nav-tabs { align-self: flex-start; }

.settings-grid { display: grid; gap: var(--nv-space-4) var(--nv-space-6); align-items: center; }
@media (min-width: 64rem) { .settings-grid { grid-template-columns: 1fr 1fr 1fr; } }
.toggle-row { display: flex; align-items: center; gap: var(--nv-space-3); justify-content: space-between; }
.toggle-row .grow { display: flex; flex-direction: column; }
.grid-2 { display: grid; gap: var(--nv-space-3) var(--nv-space-4); }
@media (min-width: 40rem) { .grid-2 { grid-template-columns: 1fr 1fr; } }
.grid-2--center { align-items: center; }
.grid-color { display: grid; grid-template-columns: auto 1fr; gap: var(--nv-space-4); align-items: end; }
.color-row { display: flex; align-items: center; gap: var(--nv-space-2); }
.count { float: inline-end; font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); font-variant-numeric: tabular-nums; }

/* Builder: form on the left, live preview on the right (sticky). */

.vars { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-1-5); }
.var {
  font: var(--nv-font-code);
  font-size: var(--nv-font-size-xs);
  padding: var(--nv-space-0-5) var(--nv-space-2);
  border-radius: var(--nv-radius-sm);
  border: var(--nv-border-width) solid var(--nv-color-border-subtle);
  background-color: var(--nv-color-surface);
  color: var(--nv-color-accent-text);
  cursor: pointer;
  transition: var(--nv-transition-control);
}
.var:hover { background-color: var(--nv-color-accent-subtle); border-color: var(--nv-color-accent-border); translate: 0 calc(var(--nv-lift-hover) * -1); }
.var:active { translate: 0 0; }

.list { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.item { padding: var(--nv-space-3) var(--nv-space-4) var(--nv-space-4); display: flex; flex-direction: column; gap: var(--nv-space-3); }
.item__head { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); }
.block__ico { display: grid; place-items: center; inline-size: var(--nv-space-7); block-size: var(--nv-space-7); border-radius: var(--nv-radius-sm); background-color: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); }
.btn-row { display: grid; grid-template-columns: 1fr 1.6fr auto; gap: var(--nv-space-2); align-items: end; }
.add { align-self: flex-start; }
.add svg, .add-row svg, .nv-button svg { flex: none; }
.add-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-2); padding-block-start: var(--nv-space-1); }
.empty-list { padding: var(--nv-space-4); text-align: center; }

.roles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr)); gap: var(--nv-space-2); }
.role {
  display: flex; align-items: center; gap: var(--nv-space-2);
  padding: var(--nv-space-2) var(--nv-space-3);
  border-radius: var(--nv-radius-md);
  border: var(--nv-border-width) solid var(--nv-color-border-subtle);
  background-color: var(--nv-color-surface);
  font: var(--nv-font-label);
  cursor: pointer;
  transition: var(--nv-transition-control);
}
.role:hover { border-color: var(--nv-color-border-strong); }
.role:has(:checked) { border-color: var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); }
.role__dot { inline-size: var(--nv-space-2-5); block-size: var(--nv-space-2-5); border-radius: var(--nv-radius-full); background-color: var(--rc); flex: none; }
.summary { padding: var(--nv-space-4); display: flex; flex-direction: column; gap: var(--nv-space-2); }
.summary svg { vertical-align: -0.2em; }

/* --- Unsaved-changes bar and toasts ------------------------------------------------- */

.savebar {
  position: fixed;
  inset-block-end: var(--nv-space-5);
  inset-inline: calc(16rem + var(--nv-space-6)) var(--nv-space-6);
  max-inline-size: 60rem;
  margin-inline: auto;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: var(--nv-space-3);
  padding: var(--nv-space-2-5) var(--nv-space-2-5) var(--nv-space-2-5) var(--nv-space-5);
  border-radius: var(--nv-radius-xl);
  box-shadow: var(--nv-bevel), var(--nv-elevation-4);
  z-index: 20;
  translate: 0 calc(100% + var(--nv-space-8));
  opacity: 0;
  pointer-events: none;
  transition: translate var(--nv-duration-slow) var(--nv-ease-spring), opacity var(--nv-duration-normal) var(--nv-ease-standard);
}
.savebar.is-visible { translate: 0 0; opacity: 1; pointer-events: auto; }
@media (max-width: 62rem) { .savebar { inset-inline: var(--nv-space-3); } }
.savebar__dot { inline-size: var(--nv-space-2); block-size: var(--nv-space-2); border-radius: var(--nv-radius-full); background-color: var(--nv-color-warning); animation: pulse 1.6s var(--nv-ease-standard) infinite; }
.kbd { opacity: 0.7; margin-inline-start: var(--nv-space-1); }
@media (max-width: 40rem) { .kbd { display: none; } }
.app__content:has(.savebar.is-visible) { padding-block-end: var(--nv-space-24); }

.toasts { position: fixed; inset-block-start: var(--nv-space-4); inset-inline-end: var(--nv-space-4); z-index: 30; display: flex; flex-direction: column; gap: var(--nv-space-2); pointer-events: none; }
.toast { display: flex; align-items: center; gap: var(--nv-space-2-5); padding: var(--nv-space-2-5) var(--nv-space-4) var(--nv-space-2-5) var(--nv-space-2-5); animation: toast-in var(--nv-duration-slow) var(--nv-ease-spring) both; }
.toast.is-leaving { animation: toast-out var(--nv-duration-normal) var(--nv-ease-exit) both; }
.toast__ico { display: grid; place-items: center; inline-size: var(--nv-space-7); block-size: var(--nv-space-7); border-radius: var(--nv-radius-full); background-color: var(--nv-color-success-subtle); color: var(--nv-color-success-text); }
.toast--bad .toast__ico { background-color: var(--nv-color-danger-subtle); color: var(--nv-color-danger-text); }

@keyframes toast-in { from { opacity: 0; translate: 0 calc(var(--nv-travel-md) * -1); scale: 0.96; } }
@keyframes toast-out { to { opacity: 0; translate: var(--nv-travel-lg) 0; } }
@keyframes pulse { 50% { opacity: 0.35; } }

/* List items (fields, blocks, buttons) carry their own name during a change:
   they glide to their new place, new ones rise in, removed ones fade out. */
::view-transition-group(.nv-item) { animation-duration: var(--nv-duration-normal); animation-timing-function: var(--nv-ease-emphasized); }
::view-transition-new(.nv-item):only-child { animation: nv-fade-in var(--nv-duration-normal) var(--nv-ease-entrance) both, nv-rise var(--nv-duration-normal) var(--nv-ease-entrance) both; }
::view-transition-old(.nv-item):only-child { animation: nv-fade-out var(--nv-duration-fast) var(--nv-ease-exit) both; }

/* --- Page-to-page continuity ---------------------------------------------------------
   Navigating between pages is a view transition too: the nav marker slides to
   the new page's item and the content hands over, instead of the page blinking.
   Names are only set while that navigation runs, so theme changes and in-page
   transitions stay unaffected. */

@view-transition { navigation: auto; types: nv-page; }

html:active-view-transition-type(nv-page) #topnav .nv-nav__item[aria-current]::before { view-transition-name: nv-site-marker; }
html:active-view-transition-type(nv-page) .app__sidebar .nv-nav__item[aria-current]::before { view-transition-name: nv-side-marker; }
html:active-view-transition-type(nv-page) [data-vt] { view-transition-class: nv-carried; }
html:active-view-transition-type(nv-page) [data-vt="home"] { view-transition-name: vt-home; }
html:active-view-transition-type(nv-page) [data-vt="bot"] { view-transition-name: vt-bot; }
html:active-view-transition-type(nv-page) [data-vt="team"] { view-transition-name: vt-team; }
html:active-view-transition-type(nv-page) [data-vt="panel"] { view-transition-name: vt-panel; }
html:active-view-transition-type(nv-page) [data-vt="side-servers"] { view-transition-name: vt-side-servers; }
html:active-view-transition-type(nv-page) [data-vt="side-overview"] { view-transition-name: vt-side-overview; }
html:active-view-transition-type(nv-page) body > main#top,
html:active-view-transition-type(nv-page) .app__content { view-transition-name: nv-page; view-transition-class: nv-content; }
.toast { flex-direction: row; inline-size: max-content; max-inline-size: 22rem; }
.summary svg { display: inline-block; vertical-align: -0.2em; margin-inline-end: var(--nv-space-1); }
.kbd { color: inherit; }
/* The lock banner is a collapse inside a gapped column; while closed it should not hold a gap. */
.view > .nv-collapse { margin-block-end: calc(var(--nv-space-6) * -1); transition: grid-template-rows var(--nv-duration-expand) var(--nv-ease-standard), opacity var(--nv-duration-expand) var(--nv-ease-standard), margin var(--nv-duration-expand) var(--nv-ease-standard); }
.view > .nv-collapse[data-open] { margin-block-end: 0; }

/* --- Discord window: styles live in /discord/discord.css (loaded before this file). */

/* Builder: form on the left, Discord window on the right (sticky). */
.builder { display: grid; gap: var(--nv-space-5); align-items: start; }
@media (min-width: 75rem) { .builder { grid-template-columns: minmax(0, 1fr) minmax(0, 32rem); } }
.pv-col { position: sticky; inset-block-start: var(--nv-space-6); }
.pv-card { display: flex; flex-direction: column; gap: var(--nv-space-2); }
.pv-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: var(--nv-space-3); padding-inline: var(--nv-space-1); }
.pv { view-transition-class: nv-content; }
.type-tabs, .mod-tabs { max-inline-size: 100%; }
.tk-tabs { align-self: flex-start; }

/* --- Tickets ------------------------------------------------------------------------- */

.toggles { display: grid; gap: var(--nv-space-4) var(--nv-space-8); }
@media (min-width: 56rem) { .toggles { grid-template-columns: 1fr 1fr; } }
.toggles > .nv-collapse { grid-column: 1 / -1; }
.grid-cat { display: grid; grid-template-columns: 6rem 1fr 11rem; gap: var(--nv-space-3); align-items: end; }
@media (max-width: 40rem) { .grid-cat { grid-template-columns: 5rem 1fr; } .grid-cat > :last-child { grid-column: 1 / -1; } }
.cat { padding: var(--nv-space-4); gap: var(--nv-space-3); }
.cat__emoji { font-size: 1.25rem; inline-size: var(--nv-space-8); block-size: var(--nv-space-8); display: grid; place-items: center; border-radius: var(--nv-radius-sm); background-color: var(--nv-color-surface-inset); }
.cat .nv-disclosure { border-radius: var(--nv-radius-md); }
.roles--compact { grid-template-columns: repeat(auto-fill, minmax(min(9rem, 100%), 1fr)); }
.publish { padding: var(--nv-space-3) var(--nv-space-4); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); box-shadow: var(--nv-elevation-inset-sm); }
.publish__dot { inline-size: var(--nv-space-2-5); block-size: var(--nv-space-2-5); flex: none; border-radius: var(--nv-radius-full); background-color: var(--nv-color-border-strong); }
.publish__dot.is-live { background-color: var(--nv-color-success); box-shadow: 0 0 0 var(--nv-space-1) var(--nv-color-success-subtle); animation: pulse 2s var(--nv-ease-standard) infinite; }
.tr-sample .nv-label { font-family: var(--nv-font-family-mono); }
.stars { color: #f59e0b; letter-spacing: 1px; } .stars span { color: var(--nv-color-border); }

/* --- Module rows (home + bot page): a Niveus scroller ---------------------------------- */

.mod-row .nv-scroller { padding-block: var(--nv-space-2) var(--nv-space-4); }
.row-card { block-size: auto; }
.row-card .nv-card__body { block-size: auto; display:flex; flex-direction:column; }

/* --- Transcript page ----------------------------------------------------------------------- */

.tr { display: flex; flex-direction: column; gap: var(--nv-space-5); padding-block: var(--nv-space-8) var(--nv-space-12); max-inline-size: 64rem; }
.tr-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr)); gap: var(--nv-space-4); margin: 0; }
.tr-facts dt { font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); }
.tr-facts dd { margin: var(--nv-space-1) 0 0; display: flex; align-items: center; gap: var(--nv-space-2); font: var(--nv-font-label); color: var(--nv-color-text-primary); }
.tr-av { inline-size: var(--nv-space-6); block-size: var(--nv-space-6); border-radius: var(--nv-radius-full); object-fit: cover; }
.tr-people .tr-av + .tr-av { margin-inline-start: calc(var(--nv-space-2) * -1); box-shadow: 0 0 0 2px var(--nv-color-surface); }
.tr-reason { padding: var(--nv-space-4); display: flex; flex-direction: column; gap: var(--nv-space-1); }
.tr-bar { display: flex; align-items: center; gap: var(--nv-space-3); }
.tr-bar .nv-input { max-inline-size: 20rem; }
.tr-log { padding: var(--nv-space-4) 0; }
.tr-log .tr-msg { padding: 2px 16px; }
.tr-log .tr-msg:not(.is-grouped) { margin-block-start: 14px; }
.tr-log .tr-msg:hover { background: rgb(0 0 0 / 0.08); }
.tr-log .dc-gutter { inline-size: 40px; flex: none; font-size: 10px; color: transparent; text-align: end; padding-block-start: 4px; }
.tr-log .tr-msg:hover .dc-gutter { color: var(--dc-muted); }
.tr-end { text-align: center; padding-block-start: var(--nv-space-6); color: var(--dc-muted) !important; }
.tr-foot { text-align: center; }
.tr-empty { margin-block-start: var(--nv-space-16); }

/* --- Moderation ------------------------------------------------------------------------- */

.md-tabs, .tk-tabs { align-self: flex-start; }
.grid-3 { display: grid; gap: var(--nv-space-3) var(--nv-space-4); }
@media (min-width: 48rem) { .grid-3 { grid-template-columns: 2fr 1fr 1fr; } }
.am-grid { display: grid; gap: var(--nv-space-4); align-items: start; }
@media (min-width: 64rem) { .am-grid { grid-template-columns: 1fr 1fr; } }
.am-card .nv-card__header { gap: var(--nv-space-3); }
.am-card:has(> .nv-card__header .nv-switch:not(:checked)) .tile { filter: grayscale(1); opacity: 0.5; }
.am-card .tile { transition: filter var(--nv-duration-normal) var(--nv-ease-standard), opacity var(--nv-duration-normal) var(--nv-ease-standard); }
.rule { padding: var(--nv-space-3) var(--nv-space-4); }
.rule__row { display: grid; grid-template-columns: auto 1fr 1fr 1fr auto; gap: var(--nv-space-3); align-items: end; }
.rule__n { font: var(--nv-font-label); color: var(--nv-color-text-secondary); padding-block-end: var(--nv-space-2); }
@media (max-width: 48rem) { .rule__row { grid-template-columns: 1fr 1fr; } .rule__n { grid-column: 1 / -1; padding: 0; } }
.cmd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); gap: var(--nv-space-2) var(--nv-space-5); }
.cmd { display: flex; align-items: baseline; gap: var(--nv-space-2); }
.cmd .nv-code { flex: none; color: var(--nv-color-accent-text); }
.cases-q { max-inline-size: 16rem; }
.case-reason { max-inline-size: 18rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
tr.is-revoked td { opacity: 0.55; }
tr.is-revoked .nv-badge { text-decoration: line-through; }

/* --- Auto channels -------------------------------------------------------------------- */

.gen { padding: var(--nv-space-4); gap: var(--nv-space-3); }
.vc-list { display: flex; flex-direction: column; gap: var(--nv-space-2); }
.vc-row { padding: var(--nv-space-2) var(--nv-space-3); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); }

/* --- Settings rows: label left, control right (shared by every module) ------------------- */

.settings { display: flex; flex-direction: column; }
.setting {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(12rem, 18rem); gap: var(--nv-space-2) var(--nv-space-6); align-items: center;
  padding-block: var(--nv-space-3);
}
.setting + .setting { border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.setting__text { display: flex; flex-direction: column; gap: var(--nv-space-0-5); min-inline-size: 0; }
.setting__control { display: flex; justify-content: flex-end; }
.setting__control > .nv-select, .setting__control > .nv-input { inline-size: 100%; }
@media (max-width: 40rem) { .setting { grid-template-columns: 1fr; } .setting__control { justify-content: flex-start; } }
.toggle-row:has(.nv-switch:disabled) { opacity: 0.5; }
/* Toggle grids: a revealed block never stretches a switch across both columns. */
.toggles > .nv-collapse { grid-column: 1 / -1; }
.toggles > .nv-collapse > div > .toggle-row { max-inline-size: calc(50% - var(--nv-space-4)); }
@media (max-width: 56rem) { .toggles > .nv-collapse > div > .toggle-row { max-inline-size: none; } }

.cmd-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr)); gap: 0 var(--nv-space-6); margin: 0; }
.cmd-list .cmd { display: grid; grid-template-columns: 7.5rem 1fr auto; align-items: center; gap: var(--nv-space-3); padding-block: var(--nv-space-2); border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.cmd-list dt, .cmd-list dd { margin: 0; }

/* Cases tab: stats and table are separate blocks with the normal rhythm. */
#md-cases-box, #tk-history { display: flex; flex-direction: column; gap: var(--nv-space-5); }
#md-cases-box .nv-card__header, #tk-history .nv-card__header { align-items: center; }
#md-cases-box .nv-table th:first-child, #md-cases-box .nv-table td:first-child { text-align: start; padding-inline-start: var(--nv-space-5); inline-size: 3.5rem; }
#md-cases-box .nv-table td { vertical-align: middle; }

/* --- Public leaderboard ----------------------------------------------------------------- */
.lb { display: flex; flex-direction: column; gap: var(--nv-space-6); padding-block: var(--nv-space-10) var(--nv-space-12); max-inline-size: 64rem; }

/* Medale: złoto, srebro, brąz — kwadrat z miejscem, ramka awatara i stopień podium biorą ten sam kolor. */
[data-medal="gold"] { --medal: #f5b301; --medal-hi: #ffe27a; --medal-ink: #4a3300; }
[data-medal="silver"] { --medal: #a7b1bd; --medal-hi: #f1f4f8; --medal-ink: #26303b; }
[data-medal="bronze"] { --medal: #c47a3f; --medal-hi: #f3c29a; --medal-ink: #3d1f08; }
.rank { display: inline-grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: var(--nv-radius-sm); font-weight: var(--nv-font-weight-semibold); font-variant-numeric: tabular-nums; color: var(--nv-color-text-tertiary); background-color: var(--nv-color-surface-inset); box-shadow: var(--nv-elevation-inset-sm); }
.rank[data-medal="gold"], .rank[data-medal="silver"], .rank[data-medal="bronze"] { color: var(--medal-ink); background: linear-gradient(135deg, var(--medal-hi), var(--medal)); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.55), 0 1px 3px color-mix(in srgb, var(--medal) 55%, transparent); }
.rank--lg { inline-size: 2.75rem; block-size: 2.75rem; font-size: 1.15rem; border-radius: var(--nv-radius-md); }

.lb-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nv-space-6); padding: var(--nv-space-8); }
.lb-head__main { display: flex; align-items: center; gap: var(--nv-space-4); min-inline-size: 0; }
.lb-head__icon { inline-size: 4.5rem; block-size: 4.5rem; flex: none; display: grid; place-items: center; border-radius: var(--nv-radius-xl, 1.25rem); object-fit: cover; background-color: var(--nv-color-surface); font-size: 1.75rem; font-weight: var(--nv-font-weight-semibold); box-shadow: var(--nv-elevation-2); }
.lb-stats { display: flex; flex-wrap: wrap; gap: var(--nv-space-3); margin: 0; }
.lb-stats > div { min-inline-size: 7.5rem; padding: var(--nv-space-3) var(--nv-space-4); border-radius: var(--nv-radius-md); background-color: color-mix(in srgb, var(--nv-color-surface) 70%, transparent); backdrop-filter: blur(6px); }
.lb-stats dt { font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); }
.lb-stats dd { margin: 0; font-size: var(--nv-font-size-xl); font-weight: var(--nv-font-weight-semibold); font-variant-numeric: tabular-nums; color: var(--nv-color-text-primary); }

.podium { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--nv-space-4); align-items: end; margin: 0; padding: 0; list-style: none; }
.podium__item { display: flex; flex-direction: column; min-inline-size: 0; }
.podium__card { position: relative; z-index: 1; text-align: center; border-end-start-radius: 0; border-end-end-radius: 0; }
.podium__card > .nv-card__body { display: flex; flex-direction: column; align-items: center; gap: var(--nv-space-2); }
.podium__card .rank { position: absolute; inset-block-start: var(--nv-space-3); inset-inline-start: var(--nv-space-3); }
.podium__av { inline-size: 4.5rem; block-size: 4.5rem; border-radius: var(--nv-radius-full); object-fit: cover; box-shadow: 0 0 0 4px var(--medal), var(--nv-elevation-2); margin-block-start: var(--nv-space-4); }
.podium__item--1 .podium__av { inline-size: 6rem; block-size: 6rem; }
.podium__item--1 .podium__card { box-shadow: var(--nv-bevel), var(--nv-outline), 0 10px 40px -12px color-mix(in srgb, var(--medal) 70%, transparent); }
.podium__name { max-inline-size: 100%; }
.podium__card.is-me { outline: 2px solid var(--nv-color-accent); outline-offset: 2px; }
.podium__step { display: grid; place-items: center; font-size: 2rem; font-weight: 800; color: color-mix(in srgb, var(--medal-ink) 45%, transparent);
  border-radius: 0 0 var(--nv-radius-lg) var(--nv-radius-lg); background: linear-gradient(180deg, color-mix(in srgb, var(--medal) 70%, var(--nv-color-surface)), color-mix(in srgb, var(--medal) 25%, var(--nv-color-surface))); box-shadow: inset 0 1px 0 rgb(255 255 255 / 0.35); }
.podium__item--1 .podium__step { block-size: 5.5rem; }
.podium__item--2 .podium__step { block-size: 3.75rem; }
.podium__item--3 .podium__step { block-size: 2.5rem; font-size: 1.5rem; }
@media (prefers-reduced-motion: no-preference) {
  .podium__item { animation: lb-rise var(--nv-duration-slow, 400ms) var(--nv-ease-entrance, ease-out) both; }
  .podium__item--1 { animation-delay: 120ms; } .podium__item--3 { animation-delay: 220ms; }
}
@keyframes lb-rise { from { opacity: 0; translate: 0 16px; } to { opacity: 1; translate: 0 0; } }
@media (max-width: 40rem) {
  .podium { gap: var(--nv-space-2); }
  .podium__card > .nv-card__body { padding: var(--nv-space-3) var(--nv-space-2); }
  .podium__card .rank { inline-size: 1.9rem; block-size: 1.9rem; font-size: 0.95rem; inset-block-start: var(--nv-space-2); inset-inline-start: var(--nv-space-2); }
  .podium__av { inline-size: 3.25rem; block-size: 3.25rem; box-shadow: 0 0 0 3px var(--medal); }
  .podium__item--1 .podium__av { inline-size: 4rem; block-size: 4rem; }
  .podium__card .nv-badge { display: none; }
  .podium__item--1 .podium__step { block-size: 3.5rem; } .podium__item--2 .podium__step { block-size: 2.5rem; } .podium__item--3 .podium__step { block-size: 1.75rem; font-size: 1.1rem; }
  .lb-head { padding: var(--nv-space-5); }
  .lb-stats { inline-size: 100%; } .lb-stats > div { flex: 1; min-inline-size: 0; }
}

.lb-me > .nv-card__body { display: flex; align-items: center; gap: var(--nv-space-4); }
.lb-me__av { inline-size: 3rem; block-size: 3rem; border-radius: var(--nv-radius-full); object-fit: cover; }
.lb-me .lb-bar { max-inline-size: 24rem; }
.lb-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nv-space-3); padding: var(--nv-space-4) var(--nv-space-5); border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.lb-search { flex: 1 1 14rem; max-inline-size: 22rem; margin: 0; }
.lb-sort { display: inline-flex; gap: 2px; padding: 3px; border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); }
.lb-sort .nv-button { box-shadow: none; background: transparent; border-color: transparent; color: var(--nv-color-text-secondary); }
.lb-sort .nv-button[aria-pressed="true"] { background-color: var(--nv-color-surface); color: var(--nv-color-text-primary); box-shadow: var(--nv-elevation-1); }
.lb-table td { vertical-align: middle; }
.lb-table tr.is-me td { background-color: var(--nv-color-accent-subtle); }
.lb-table tbody tr { transition: background-color var(--nv-duration-fast, 150ms) ease; }
.lb-table tbody tr:hover td { background-color: var(--nv-color-surface-hover); }
.lb-who { gap: var(--nv-space-2); min-inline-size: 0; }
.lb-none { padding: var(--nv-space-6); text-align: center; }
.lb-bar { min-inline-size: 8rem; }
@media (max-width: 40rem) { .lb-col-extra { display: none; } .lb-tools { padding: var(--nv-space-3); } .lb-search { max-inline-size: none; } }
@media (max-width: 30rem) { .lb-col-progress, .lb-col-level { display: none; } .lb-table th, .lb-table td { padding-inline: 8px; } .lb-who .nv-label { max-inline-size: 8rem; } }

/* --- Shared bits for levels, economy, music, embeds, self-roles ------------------------------ */
.num-in { inline-size: 7.5rem; text-align: end; font-variant-numeric: tabular-nums; }
.setting__control:has(.num-in) { align-items: center; gap: var(--nv-space-2); }
.num-suffix { white-space: nowrap; }
.pair { display: inline-flex; align-items: center; gap: var(--nv-space-2); }
.pair .num-in { inline-size: 6rem; }
.rule__row--3 { grid-template-columns: auto 10rem 1fr auto; }
.rule__row--4 { grid-template-columns: 9rem 1fr 9rem auto; }
@media (max-width: 48rem) { .rule__row--3, .rule__row--4 { grid-template-columns: 1fr 1fr; } }
.rule__row .num-in { inline-size: 100%; }
.grid-3--even { grid-template-columns: 1fr; }
@media (min-width: 48rem) { .grid-3--even { grid-template-columns: 1fr 1fr 1fr; } }
.grid-2--start { align-items: start; }
.grid-sr { display: grid; grid-template-columns: 5rem 1fr 1fr 9rem auto; gap: var(--nv-space-3); align-items: end; }
@media (max-width: 56rem) { .grid-sr { grid-template-columns: 5rem 1fr; } .grid-sr .sr-btns { grid-column: 1 / -1; justify-content: flex-end; } }

.curve { margin-block-start: var(--nv-space-2); padding: var(--nv-space-4); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); box-shadow: var(--nv-elevation-inset-sm); }
.curve__rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(13rem, 100%), 1fr)); gap: var(--nv-space-2) var(--nv-space-5); margin-block-start: var(--nv-space-2); }
.curve__row { display: flex; flex-direction: column; }

/* Picker: a row of saved messages / panels; the selected one is edited below. */
.picker { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--nv-space-3); }
.picker__list { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-2); }
.picker__side { min-inline-size: 16rem; }
.picker__item {
  display: inline-flex; align-items: center; gap: var(--nv-space-2); max-inline-size: 16rem;
  padding: var(--nv-space-2) var(--nv-space-3); border-radius: var(--nv-radius-md);
  border: var(--nv-border-width) solid var(--nv-color-border-subtle); background-color: var(--nv-color-surface);
  font: var(--nv-font-label); color: var(--nv-color-text-secondary); cursor: pointer; transition: var(--nv-transition-control);
}
.picker__item:hover { border-color: var(--nv-color-border-strong); color: var(--nv-color-text-primary); }
.picker__item.is-on { border-color: var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); box-shadow: var(--nv-elevation-1); }
.picker__dot { inline-size: var(--nv-space-2); block-size: var(--nv-space-2); flex: none; border-radius: var(--nv-radius-full); background-color: var(--nv-color-border-strong); }
.picker__dot.is-live { background-color: var(--nv-color-success); }
.em-head { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.em-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nv-space-3); padding-block-start: var(--nv-space-3); border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle); }

.mu-now .row { gap: var(--nv-space-4); }
.mu-now__art { inline-size: var(--nv-space-16); block-size: var(--nv-space-16); border-radius: var(--nv-radius-md); object-fit: cover; flex: none; }

/* --- Easter egg overlay (Konami code) ------------------------------------------------------- */
.egg { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; background: rgb(10 8 20 / 0.6); backdrop-filter: blur(6px); animation: nv-fade-in var(--nv-duration-normal) var(--nv-ease-entrance) both; }
.egg__card { max-inline-size: min(28rem, 92vw); text-align: center; padding: var(--nv-space-8); animation: toast-in var(--nv-duration-slow) var(--nv-ease-spring) both; }
.egg__duo { display: flex; justify-content: center; gap: var(--nv-space-4); font-size: 2.5rem; margin-block-end: var(--nv-space-3); }
.egg__confetti { position: fixed; inset: 0; pointer-events: none; z-index: 101; overflow: hidden; }
.egg__confetti i { position: absolute; inset-block-start: -2rem; inline-size: 0.6rem; block-size: 1rem; border-radius: 2px; animation: egg-fall linear forwards; }
@keyframes egg-fall { to { transform: translate3d(var(--dx), 110vh, 0) rotate(var(--rot)); } }
@media (prefers-reduced-motion: reduce) { .egg__confetti { display: none; } }

/* =====================================================================================
   Nowsze moduły: grupy, Mod Log, Statystyki, Komendy, Auto odpowiedzi, Sticky,
   Propozycje, Wygląd bota, Konkursy, Weryfikacja, Powiadomienia, Top.gg, dziennik
   ===================================================================================== */

/* --- grupy modułów (sidebar + przegląd) --- */
.app__sidebar .mod-group { list-style: none; }
.app__sidebar .mod-group__title { display: block; padding-block-start: var(--nv-space-3); }
.mod-group-head { display: flex; align-items: baseline; gap: var(--nv-space-3); flex-wrap: wrap; margin-block: var(--nv-space-6) var(--nv-space-1); }
.mod-group-head:first-of-type { margin-block-start: var(--nv-space-2); }
#panel-log { margin-block-start: var(--nv-space-8); }

/* --- wspólne --- */
.pv-split { display: grid; gap: var(--nv-space-5); align-items: start; }
@media (min-width: 75rem) { .pv-split { grid-template-columns: minmax(0, 1fr) minmax(0, 30rem); } }
.settings--tight .setting { padding-block: var(--nv-space-1); }
.picker__extra { display: inline-flex; align-items: center; gap: var(--nv-space-1); }
.picker__extra:empty { display: none; }
.grid-5 { display: grid; gap: var(--nv-space-3); grid-template-columns: repeat(auto-fill, minmax(min(9rem, 100%), 1fr)); }
.stats--5 { grid-template-columns: repeat(auto-fit, minmax(min(9.5rem, 100%), 1fr)); }
.stats--3 { grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr)); }
.stat-btn { text-align: start; cursor: pointer; font: inherit; color: inherit; transition: border-color var(--nv-duration-fast) var(--nv-ease-standard), transform var(--nv-duration-fast) var(--nv-ease-standard); }
.stat-btn .nv-card__body { display: flex; flex-direction: column; gap: var(--nv-space-1); }
.stat-btn:hover { border-color: var(--nv-color-border-strong); transform: translateY(-1px); }
.stat-btn.is-on { border-color: var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); }
.copy-row { display: flex; gap: var(--nv-space-2); align-items: center; }
.copy-row .nv-input { flex: 1; min-inline-size: 0; font-family: var(--nv-font-mono, ui-monospace, monospace); font-size: var(--nv-font-size-sm); }
.copyable { display: block; margin-block-start: var(--nv-space-1); overflow-wrap: anywhere; }
.steps { margin: 0; padding-inline-start: 1.2rem; display: flex; flex-direction: column; gap: var(--nv-space-1); color: var(--nv-color-text-secondary); font-size: var(--nv-font-size-sm); }
.moved-note { text-decoration: none; color: inherit; transition: border-color var(--nv-duration-fast) var(--nv-ease-standard); }
.moved-note:hover { border-color: var(--nv-color-accent-border); }
.moved-note .grow { display: flex; flex-direction: column; }

/* --- Mod Log --- */
.log-grid { display: grid; gap: var(--nv-space-4); grid-template-columns: repeat(auto-fill, minmax(min(16rem, 100%), 1fr)); align-items: start; }
.log-cat .nv-card__header { align-items: center; }
.ev-list { display: flex; flex-wrap: wrap; gap: var(--nv-space-2); }
.ev { display: inline-flex; align-items: center; gap: var(--nv-space-2); padding: var(--nv-space-1) var(--nv-space-3) var(--nv-space-1) var(--nv-space-2); border: var(--nv-border-width) solid var(--nv-color-border-subtle); border-radius: var(--nv-radius-full); font-size: var(--nv-font-size-sm); cursor: pointer; transition: background-color var(--nv-duration-fast) var(--nv-ease-standard), border-color var(--nv-duration-fast) var(--nv-ease-standard); }
.ev:hover { border-color: var(--nv-color-border-strong); }
.ev:has(input:checked) { background-color: var(--nv-color-accent-subtle); border-color: var(--nv-color-accent-border); color: var(--nv-color-accent-text); }

/* --- Statystyki --- */
.counter { padding: var(--nv-space-4); gap: var(--nv-space-3); }

/* --- Własne komendy / Auto odpowiedzi / Sticky (podglądy) --- */
.slash-input { display: flex; align-items: center; gap: 0; }
.slash-input > span { display: grid; place-items: center; block-size: 100%; padding-inline: var(--nv-space-3); border: var(--nv-border-width) solid var(--nv-color-border-default); border-inline-end: 0; border-radius: var(--nv-radius-md) 0 0 var(--nv-radius-md); background: var(--nv-color-surface-inset); color: var(--nv-color-text-tertiary); font-family: var(--nv-font-mono, ui-monospace, monospace); align-self: stretch; }
.slash-input .nv-input { border-start-start-radius: 0; border-end-start-radius: 0; font-family: var(--nv-font-mono, ui-monospace, monospace); }
.ao-test { display: flex; gap: var(--nv-space-2); align-items: center; }
.ao-test .nv-input { flex: 1; }

/* --- Propozycje: lista --- */
.sg-list { display: flex; flex-direction: column; }
.sg-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--nv-space-4); align-items: start; padding: var(--nv-space-4) var(--nv-space-5); border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.sg-row__main { display: flex; flex-direction: column; gap: var(--nv-space-2); min-inline-size: 0; }
.sg-row__main .row { flex-wrap: wrap; gap: var(--nv-space-2); }
.sg-text { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--nv-color-text-primary); }
.sg-votes { font-variant-numeric: tabular-nums; }
.sg-row__act { display: flex; align-items: center; gap: var(--nv-space-2); }
@media (max-width: 40rem) { .sg-row { grid-template-columns: 1fr; } }


/* --- Weryfikacja --- */
.vf-modes { display: grid; gap: var(--nv-space-3); grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr)); }
.vf-mode { position: relative; display: flex; flex-direction: column; gap: var(--nv-space-2); padding: var(--nv-space-4); border: var(--nv-border-width) solid var(--nv-color-border-default); border-radius: var(--nv-radius-lg); background: var(--nv-color-surface-raised, var(--nv-color-surface)); cursor: pointer; transition: border-color var(--nv-duration-fast) var(--nv-ease-standard), box-shadow var(--nv-duration-fast) var(--nv-ease-standard), transform var(--nv-duration-fast) var(--nv-ease-standard); }
.vf-mode input { position: absolute; opacity: 0; pointer-events: none; }
.vf-mode:hover { border-color: var(--nv-color-border-strong); transform: translateY(-1px); }
.vf-mode.is-on, .vf-mode:has(input:checked) { border-color: var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); box-shadow: var(--nv-elevation-1); }
.vf-mode:has(input:focus-visible) { outline: 2px solid var(--nv-color-focus, var(--nv-color-accent)); outline-offset: 2px; }
.vw { display: grid; place-items: center; min-block-size: 70vh; padding-block: var(--nv-space-10); }
.vw-card { inline-size: min(30rem, 100%); overflow: hidden; text-align: center; }
.vw-top { display: grid; place-items: center; padding: var(--nv-space-8) var(--nv-space-6) var(--nv-space-6); border-radius: 0; }
.vw-icons { display: flex; align-items: center; }
.vw-icons__guild { inline-size: 4.5rem; block-size: 4.5rem; display: grid; place-items: center; border-radius: 1.25rem; object-fit: cover; background-color: var(--nv-color-surface); font-size: 1.75rem; font-weight: var(--nv-font-weight-semibold); box-shadow: var(--nv-elevation-2); }
.vw-icons__link { inline-size: 3rem; block-size: 2px; background-image: linear-gradient(90deg, var(--nv-color-text-tertiary) 50%, transparent 50%); background-size: 8px 2px; animation: vw-flow 1s linear infinite; }
.vw-icons__badge { inline-size: 4.5rem; block-size: 4.5rem; display: grid; place-items: center; border-radius: var(--nv-radius-full); color: #fff; background: linear-gradient(135deg, #7983f5, #5865f2); box-shadow: 0 8px 24px -8px #5865f2; transition: background 300ms ease; }
.vw-card.is-done .vw-icons__badge { background: linear-gradient(135deg, #4ade80, #16a34a); box-shadow: 0 8px 24px -8px #16a34a; }
.vw-card.is-done .vw-icons__link { animation: none; background: #22c55e; }
@keyframes vw-flow { to { background-position: 8px 0; } }
.vw-body { display: flex; flex-direction: column; align-items: center; gap: var(--nv-space-4); padding: var(--nv-space-6); }
.vw-title .nv-heading { overflow-wrap: anywhere; }
.vw-steps { display: flex; justify-content: center; gap: var(--nv-space-2); margin: 0; padding: 0; list-style: none; inline-size: 100%; }
.vw-steps li { flex: 1; display: flex; flex-direction: column; align-items: center; gap: var(--nv-space-1); font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); position: relative; }
.vw-steps li + li::before { content: ""; position: absolute; inset-block-start: 0.875rem; inset-inline-end: calc(50% + 1.1rem); inline-size: calc(100% - 2.2rem); block-size: 2px; background-color: var(--nv-color-border-subtle); }
.vw-steps li.is-done + li::before, .vw-steps li.is-done::before { background-color: #22c55e; }
.vw-steps__dot { inline-size: 1.75rem; block-size: 1.75rem; display: grid; place-items: center; border-radius: var(--nv-radius-full); font-weight: var(--nv-font-weight-semibold); background-color: var(--nv-color-surface-inset); color: var(--nv-color-text-tertiary); }
.vw-steps li.is-current { color: var(--nv-color-text-primary); }
.vw-steps li.is-current .vw-steps__dot { background-color: #5865f2; color: #fff; box-shadow: 0 0 0 4px color-mix(in srgb, #5865f2 25%, transparent); }
.vw-steps li.is-done .vw-steps__dot { background-color: #22c55e; color: #fff; }
.vw-msg { max-inline-size: 26rem; }
.vw-alert { display: flex; gap: var(--nv-space-3); align-items: flex-start; inline-size: 100%; padding: var(--nv-space-3) var(--nv-space-4); border-radius: var(--nv-radius-md); text-align: start; color: var(--nv-color-danger-text); background-color: var(--nv-color-danger-subtle, color-mix(in srgb, #ef4444 10%, transparent)); }
.vw-alert svg { flex: none; margin-block-start: 2px; }
.vw-alert p { margin: 2px 0 0; color: inherit; }
.vw-user { display: flex; align-items: center; gap: var(--nv-space-3); inline-size: 100%; padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); text-align: start; }
.vw-user__av { inline-size: 2.5rem; block-size: 2.5rem; flex: none; display: grid; place-items: center; border-radius: var(--nv-radius-full); object-fit: cover; background-color: var(--nv-color-surface); font-weight: var(--nv-font-weight-semibold); }
.vw-switch { color: var(--nv-color-text-secondary); white-space: nowrap; }
.vw-switch:hover { color: var(--nv-color-accent-text); }
.vw-card form { inline-size: 100%; }
.vw-btn { inline-size: 100%; justify-content: center; min-block-size: 48px; }
.vw-why { display: flex; gap: var(--nv-space-2); align-items: flex-start; text-align: start; }
.vw-why svg { flex: none; margin-block-start: 2px; }
.vw-check { inline-size: 4.5rem; block-size: 4.5rem; fill: none; stroke: #22c55e; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.vw-check circle { stroke-dasharray: 151; stroke-dashoffset: 151; animation: vw-draw 600ms ease-out forwards; }
.vw-check path { stroke-dasharray: 36; stroke-dashoffset: 36; animation: vw-draw 350ms 500ms ease-out forwards; }
@keyframes vw-draw { to { stroke-dashoffset: 0; } }
@media (prefers-reduced-motion: reduce) { .vw-icons__link { animation: none; } .vw-check circle, .vw-check path { animation: none; stroke-dashoffset: 0; } }
@media (max-width: 30rem) { .vw-user { flex-wrap: wrap; } .vw-switch { inline-size: 100%; } }

/* --- Powiadomienia --- */
.so-plats { display: flex; flex-wrap: wrap; gap: var(--nv-space-2); }
.so-plat { --pc: #e11d48; display: inline-flex; align-items: center; gap: var(--nv-space-2); padding: var(--nv-space-2) var(--nv-space-4); border-radius: var(--nv-radius-full); border: var(--nv-border-width) solid var(--nv-color-border-default); font-weight: 600; font-size: var(--nv-font-size-sm); cursor: pointer; transition: all var(--nv-duration-fast) var(--nv-ease-standard); }
.so-plat input { position: absolute; opacity: 0; pointer-events: none; }
.so-plat::before { content: ''; inline-size: 0.6rem; block-size: 0.6rem; border-radius: 50%; background: var(--pc); }
.so-plat--youtube { --pc: #ff0033; } .so-plat--twitch { --pc: #9146ff; } .so-plat--tiktok { --pc: #25f4ee; } .so-plat--rss { --pc: #f59e0b; }
.so-plat:has(input:checked) { border-color: var(--pc); background: color-mix(in srgb, var(--pc) 14%, transparent); }
.so-plat:has(input:focus-visible) { outline: 2px solid var(--pc); outline-offset: 2px; }
.so-badge { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: var(--nv-radius-full); color: #fff; background: #e11d48; }
.so-badge--youtube { background: #ff0033; } .so-badge--twitch { background: #9146ff; } .so-badge--tiktok { background: #111; } .so-badge--rss { background: #f59e0b; }

/* --- Top.gg / rankingi mini --- */
.lb-mini { margin: 0; padding: 0; list-style: none; counter-reset: lb; display: flex; flex-direction: column; }
.lb-mini li { counter-increment: lb; display: flex; align-items: center; gap: var(--nv-space-3); padding-block: var(--nv-space-2); border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.lb-mini li::before { content: counter(lb); inline-size: 1.5rem; color: var(--nv-color-text-tertiary); font-variant-numeric: tabular-nums; }
.lb-mini li .nv-label { flex: 1; }
.lb-mini--plain li::before { content: none; }

/* --- dziennik panelu --- */
.plog { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.plog__row { display: flex; align-items: center; gap: var(--nv-space-3); padding-block: var(--nv-space-2); border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); font-size: var(--nv-font-size-sm); }
.plog__row:last-child { border-block-end: 0; }
.plog__ico--delete { color: var(--nv-color-danger); }
.plog__ico--on { color: var(--nv-color-success); }
.plog__mod { color: var(--nv-color-accent-text); text-decoration: none; font-weight: 600; }
.plog__mod:hover { text-decoration: underline; }

/* --- PexoBot+: odznaki, blokady, limity --- */
.plus-badge { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: var(--nv-radius-full); font-size: 11px; font-weight: 700; letter-spacing: 0.02em; color: #1a1205; background: linear-gradient(135deg, #fde68a, #f59e0b); box-shadow: 0 1px 0 rgb(255 255 255 / 0.4) inset; white-space: nowrap; vertical-align: middle; }
.plus-badge--lg { font-size: 13px; padding: 4px 12px; }
.plus-lock { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--nv-space-3); padding: var(--nv-space-10) var(--nv-space-6); }
.plus-lock .nv-prose { max-inline-size: 34rem; }
.plan-note { display: flex; align-items: center; gap: var(--nv-space-2); flex-wrap: wrap; margin: 0; padding: var(--nv-space-2) var(--nv-space-3); border-radius: var(--nv-radius-md); background: color-mix(in srgb, #f59e0b 12%, transparent); color: var(--nv-color-text-secondary); font-size: var(--nv-font-size-sm); }
.plan-note svg { color: #f59e0b; flex: none; }
.plan-note a { margin-inline-start: auto; font-weight: 700; color: #b45309; text-decoration: none; }
.plan-note a:hover { text-decoration: underline; }
.mod-plus { margin-inline-start: auto; font-size: 9px; padding: 0 6px; }
.app__sidebar .mod-item .mod-plus { margin-inline-start: 0; }

/* --- Własne funkcje: klocki w stylu Scratcha ---
   Klocki stoją jeden na drugim bez przerw. Każdy ma wypustkę u dołu, która wchodzi w następny.
   „Jeżeli” i „powtórz” mają ramię po lewej, w które wkłada się kolejne klocki. Strefy upuszczania
   nie zajmują miejsca — pojawiają się dopiero w trakcie przeciągania. */
.fx { display: grid; gap: var(--nv-space-4); align-items: start; }
@media (min-width: 64rem) { .fx { grid-template-columns: 15rem minmax(0, 1fr); } }
.fx-pal { position: sticky; inset-block-start: var(--nv-space-4); display: flex; flex-direction: column; gap: var(--nv-space-3); padding: var(--nv-space-3); border-radius: var(--nv-radius-lg); background: var(--nv-color-surface-raised, var(--nv-color-surface)); border: var(--nv-border-width) solid var(--nv-color-border-subtle); max-block-size: calc(100svh - 2rem); overflow: auto; }
.fx-pal__cat { display: flex; flex-direction: column; gap: 6px; }
.fx-pal__title { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--nv-color-text-secondary); }
.fx-pal__title::before { content: ''; inline-size: 12px; block-size: 12px; border-radius: 50%; background: var(--fx); }
.fx-pal__b { text-align: start; font: 600 12px/1.3 var(--nv-font-sans, system-ui); color: #fff; background: var(--fx); border: 0; border-radius: 4px; padding: 7px 10px; cursor: grab; box-shadow: inset 0 -2px 0 rgb(0 0 0 / 0.18); transition: transform var(--nv-duration-fast) var(--nv-ease-standard), filter var(--nv-duration-fast); }
.fx-pal__b:hover { transform: translateX(3px); filter: brightness(1.06); }
.fx-pal__b:active { cursor: grabbing; }
.fx-pal__b--c { border-inline-start: 8px solid color-mix(in srgb, var(--fx) 78%, #000); }

.fx-canvas { min-inline-size: 0; padding: var(--nv-space-6) var(--nv-space-5) var(--nv-space-8); border-radius: var(--nv-radius-lg); border: var(--nv-border-width) solid var(--nv-color-border-subtle);
  background-color: var(--nv-color-surface-inset); background-image: radial-gradient(color-mix(in srgb, var(--nv-color-text-tertiary) 22%, transparent) 1px, transparent 1px); background-size: 18px 18px; overflow-x: auto; }
.fx-list { display: flex; flex-direction: column; align-items: flex-start; }

/* klocek: kolumna, której wiersze, ramię i stopka mają tę samą szerokość */
.fx-b { --fx-arm: 16px; --fx-dark: color-mix(in srgb, var(--fx) 72%, #000); position: relative; display: flex; flex-direction: column; inline-size: max-content; min-inline-size: 12rem; max-inline-size: 100%; color: #fff;
}
.fx-b::after { /* wypustka u dołu */ content: ''; position: absolute; inset-block-end: -5px; inset-inline-start: 14px; inline-size: 22px; block-size: 5px; border-radius: 0 0 6px 6px; background: var(--fx); z-index: 2; }
.fx-b__row { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-block-size: 40px; padding: 7px 10px 7px 12px; background: var(--fx); font: 600 13px/1.4 var(--nv-font-sans, system-ui); box-shadow: inset 0 -1px 0 var(--fx-dark); }
.fx-b > .fx-b__row:first-child { border-radius: 4px 4px 4px 4px; }
.fx-b--c > .fx-b__row:first-child { border-end-start-radius: 0; }
.fx-b--c > .fx-b__row--mid { border-radius: 0 4px 4px 0; min-block-size: 30px; padding-block: 4px; }
.fx-b--c > .fx-b__row::after { /* wypustka wchodząca w pierwszy klocek w środku ramienia */ content: ''; position: absolute; inset-block-end: -5px; inset-inline-start: calc(var(--fx-arm) + 14px); inline-size: 22px; block-size: 5px; border-radius: 0 0 6px 6px; background: var(--fx); z-index: 2; }
.fx-b__slot { display: flex; border-inline-start: var(--fx-arm) solid var(--fx); min-block-size: 26px; padding-block: 0; }
.fx-b__slot > .fx-list { flex: 1; min-inline-size: 0; padding-block: 0; }
.fx-b__foot { block-size: 18px; background: var(--fx); border-radius: 0 0 4px 4px; box-shadow: inset 0 -1px 0 var(--fx-dark); }
.fx-b--hat > .fx-b__row { border-radius: 22px 22px 4px 4px; padding-block-start: 16px; min-block-size: 52px; }
.fx-b--hat { margin-block-end: 0; }

.fx-txt { white-space: pre-wrap; text-shadow: 0 1px 0 rgb(0 0 0 / 0.18); }
.fx-grip { cursor: grab; opacity: 0.55; letter-spacing: -2px; font-size: 11px; margin-inline-end: 2px; }
.fx-b__row[draggable="true"]:active { cursor: grabbing; }
.fx-in { font: 500 12px/1.2 var(--nv-font-sans, system-ui); color: #1f2937; background: #fff; border: 0; border-radius: 999px; padding: 5px 10px; min-inline-size: 2.5rem; max-inline-size: 22rem; block-size: 26px; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 0.1); }
.fx-in:focus { outline: 2px solid #fff; outline-offset: 1px; }
.fx-in--num { inline-size: 4.5rem; text-align: center; }
.fx-in--emoji { inline-size: 3.5rem; text-align: center; }
.fx-in--color { inline-size: 2.2rem; padding: 0; border-radius: 6px; }
.fx-sel { appearance: none; padding-inline-end: 22px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23555' stroke-width='3'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 7px center / 10px; cursor: pointer; }
.fx-cond { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; padding: 4px 14px; min-block-size: 32px; background: color-mix(in srgb, #59c059 90%, #000); clip-path: polygon(12px 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 12px 100%, 0 50%); }
.fx-sel--cond { background-color: #e8ffe8; }
.fx-chk { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.fx-tools { display: inline-flex; gap: 2px; margin-inline-start: auto; padding-inline-start: 8px; opacity: 0; transition: opacity var(--nv-duration-fast); }
.fx-b__row:hover > .fx-tools, .fx-b__row:focus-within > .fx-tools { opacity: 1; }
.fx-tools button { display: grid; place-items: center; inline-size: 22px; block-size: 22px; border: 0; border-radius: 4px; background: rgb(0 0 0 / 0.18); color: #fff; cursor: pointer; }
.fx-tools button:hover { background: rgb(0 0 0 / 0.32); }
.fx-tools button:disabled { opacity: 0.35; cursor: default; }

/* strefy upuszczania: zero wysokości; w trakcie przeciągania łapią kursor i pokazują linię */
.fx-drop { position: relative; block-size: 0; inline-size: 100%; min-inline-size: 12rem; z-index: 3; }
.fx-drop::before { content: ''; position: absolute; inset-inline: 0; inset-block: -11px; pointer-events: none; }
body.fx-dragging .fx-drop::before { pointer-events: auto; }
.fx-drop::after { content: ''; position: absolute; inset-inline: 0 auto; inset-block-start: -2px; inline-size: 12rem; block-size: 4px; border-radius: 4px; background: transparent; transition: background-color 100ms; }
body.fx-dragging .fx-drop::after { background: color-mix(in srgb, var(--nv-color-accent) 18%, transparent); }
.fx-drop.is-over::after { background: var(--nv-color-accent) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--nv-color-accent) 30%, transparent); }
.fx-empty { font-size: 12px; color: color-mix(in srgb, #fff 80%, transparent); padding: 4px 10px; font-style: italic; min-block-size: 26px; display: flex; align-items: center; }
.fx-canvas > .fx-list > .fx-empty { color: var(--nv-color-text-tertiary); padding: var(--nv-space-3) 0; }
.fx-b__slot .fx-empty { background: color-mix(in srgb, var(--fx) 25%, transparent); border-radius: 0 4px 4px 0; min-inline-size: 10rem; }
.fx-empty.is-over { outline: 2px dashed #fff; outline-offset: -4px; background: color-mix(in srgb, var(--nv-color-accent) 35%, transparent) !important; }
.fx-tpls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-2); }
.fx-meta { display: flex; align-items: center; justify-content: flex-end; gap: var(--nv-space-3); flex-wrap: wrap; }
.fx-tag { font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 999px; color: #fff; background: #9966ff; }
.fx-vars .var { cursor: default; }
@media (prefers-reduced-motion: reduce) { .fx-pal__b, .fx-drop::after { transition: none; } }

/* --- reklamy (PexoBot Free): jeden baner na stronę, opisany i schowany, gdy Google nic nie wyświetli --- */
.ad-slot { display: flex; flex-direction: column; gap: var(--nv-space-2); padding: var(--nv-space-3); border-radius: var(--nv-radius-lg); border: var(--nv-border-width) dashed var(--nv-color-border-subtle); background: color-mix(in srgb, var(--nv-color-surface-inset) 60%, transparent); min-inline-size: 0; overflow: hidden; }
.ad-slot__head { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); }
.ad-slot__label { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--nv-color-text-tertiary); }
.ad-slot__plus { font-size: 11px; color: var(--nv-color-text-tertiary); text-decoration: none; }
.ad-slot__plus:hover { color: var(--nv-color-accent-text); text-decoration: underline; }
.ad-slot ins.adsbygoogle { min-block-size: 90px; }
/* Gdy Google nie ma reklamy (konto w weryfikacji, brak wypełnienia) albo blokuje ją adblock — pokazujemy własny baner PexoBot+. */
.ad-slot:has(ins[data-ad-status="unfilled"]) ins.adsbygoogle, .ad-slot.is-house ins.adsbygoogle { display: none !important; }
.ad-house { display: none; border-radius: var(--nv-radius-md); overflow: hidden; line-height: 0; transition: transform var(--nv-duration-fast, 150ms) ease, box-shadow var(--nv-duration-fast, 150ms) ease; }
.ad-house:hover { transform: translateY(-1px); box-shadow: var(--nv-elevation-2); }
.ad-house img { inline-size: 100%; block-size: auto; display: block; }
.ad-slot:has(ins[data-ad-status="unfilled"]) .ad-house, .ad-slot.is-house .ad-house { display: block; }

.ad-slot--quiet { margin-block: var(--nv-space-6); opacity: 0.92; }
.ad-slot--side ins.adsbygoogle { min-block-size: 250px; }
.plan-card .plan-card__ico { background: linear-gradient(135deg, #fde68a, #f59e0b); color: #1a1205; }
.plan-card.is-plus { border-color: color-mix(in srgb, #f59e0b 55%, transparent); background: linear-gradient(120deg, color-mix(in srgb, #f59e0b 10%, var(--nv-color-surface-raised, var(--nv-color-surface))), var(--nv-color-surface-raised, var(--nv-color-surface)) 60%); }
#plan-box:empty { display: none; }

/* --- strona /plus --- */
.plus-page { display: flex; flex-direction: column; gap: var(--nv-space-6); padding-block: var(--nv-space-10) var(--nv-space-12); max-inline-size: 64rem; }
.plus-hero { display: flex; flex-direction: column; align-items: flex-start; gap: var(--nv-space-3); padding: var(--nv-space-10) var(--nv-space-8); }
.plus-hero .nv-lead { max-inline-size: 40rem; }
.plans { display: grid; gap: var(--nv-space-4); grid-template-columns: repeat(auto-fit, minmax(min(18rem, 100%), 1fr)); }
.plan { transition: transform var(--nv-duration-fast) var(--nv-ease-standard); }
.plan--plus { border-color: color-mix(in srgb, #f59e0b 60%, transparent); box-shadow: 0 10px 40px -18px color-mix(in srgb, #f59e0b 70%, transparent); }
.plan__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--nv-space-2); }
.plan__list li { display: flex; gap: var(--nv-space-2); align-items: flex-start; font-size: var(--nv-font-size-sm); }
.plan__list svg { flex: none; margin-block-start: 2px; color: var(--nv-color-success); }
.plan--plus .plan__list svg { color: #f59e0b; }
.plus-grid { display: grid; gap: var(--nv-space-4); grid-template-columns: repeat(auto-fit, minmax(min(22rem, 100%), 1fr)); align-items: start; }
.redeem { display: flex; gap: var(--nv-space-2); flex-wrap: wrap; }
.redeem__in { flex: 1; min-inline-size: 12rem; font-family: var(--nv-font-mono, ui-monospace, monospace); letter-spacing: 0.05em; text-transform: uppercase; }
.plus-msg.is-ok { border-color: var(--nv-color-success); } .plus-msg.is-ok svg { color: var(--nv-color-success); }
.plus-msg.is-bad { border-color: var(--nv-color-danger); } .plus-msg.is-bad svg { color: var(--nv-color-danger); }
.plan-dl { display: grid; grid-template-columns: 1fr 1fr; gap: var(--nv-space-3); margin: 0; }
.plan-dl dt { font-size: var(--nv-font-size-xs, 12px); color: var(--nv-color-text-tertiary); } .plan-dl dd { margin: 0; font-weight: 700; }
.plan-servers { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--nv-space-2); }
.plan-servers li { display: flex; align-items: center; gap: var(--nv-space-2); padding: var(--nv-space-2); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-inset); }
.plan-servers form { margin: 0; }
.plan-table td:first-child { white-space: nowrap; }
.plus-foot { text-align: center; }

/* --- panel admina --- */
.adm-logo { background: linear-gradient(135deg, var(--nv-brand), var(--brand-2)); color: #fff; display: grid; place-items: center; }
.adm-tabs { align-self: flex-start; max-inline-size: 100%; overflow-x: auto; scrollbar-width: none; flex-wrap: nowrap; }
.adm-tabs .nv-nav__item { white-space: nowrap; flex: none; }
.adm-tabs .nv-nav__item { display: inline-flex; align-items: center; gap: var(--nv-space-2); }
.adm-views, .adm-view { display: flex; flex-direction: column; gap: var(--nv-space-5); }
.adm-view[hidden] { display: none; }
.adm-grid { display: grid; gap: var(--nv-space-4); align-items: start; }
@media (min-width: 64rem) { .adm-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.adm-bars { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--nv-space-2); }
.adm-bars li { display: grid; grid-template-columns: 9rem 1fr 2.5rem; align-items: center; gap: var(--nv-space-3); font-size: var(--nv-font-size-sm); }
.adm-bar { block-size: 8px; border-radius: 999px; background: var(--nv-color-surface-inset); overflow: hidden; }
.adm-bar > span { display: block; block-size: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--nv-brand), var(--brand-2)); }
.adm-form { display: grid; gap: var(--nv-space-3) var(--nv-space-4); grid-template-columns: repeat(auto-fill, minmax(min(11rem, 100%), 1fr)); align-items: start; }
.adm-form__wide { grid-column: span 2; }
.adm-form__go { grid-column: 1 / -1; display: flex; justify-content: flex-end; }
@media (max-width: 40rem) { .adm-form__wide { grid-column: 1 / -1; } }
.adm-fresh { display: flex; flex-direction: column; gap: var(--nv-space-2); padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: color-mix(in srgb, var(--nv-color-success) 10%, transparent); border: var(--nv-border-width) solid color-mix(in srgb, var(--nv-color-success) 40%, transparent); }
.adm-codes { margin: 0; padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-inset); font: 600 14px/1.7 var(--nv-font-mono, ui-monospace, monospace); letter-spacing: 0.04em; max-block-size: 16rem; overflow: auto; user-select: all; }
.adm-head { flex-wrap: wrap; gap: var(--nv-space-3); }
.adm-seg { display: inline-flex; padding: 2px; border-radius: var(--nv-radius-md); background: var(--nv-color-surface-inset); gap: 2px; }
.adm-seg button { border: 0; background: transparent; color: var(--nv-color-text-secondary); font: inherit; font-size: var(--nv-font-size-sm); padding: 4px 10px; border-radius: calc(var(--nv-radius-md) - 2px); cursor: pointer; }
.adm-seg button.is-on { background: var(--nv-color-surface-raised, var(--nv-color-surface)); color: var(--nv-color-text-primary); box-shadow: var(--nv-elevation-1); }
.adm-code { font-size: 12px; letter-spacing: 0.03em; white-space: nowrap; }
.adm-slots { inline-size: 4rem; display: inline-block; }
.adm-view .nv-table__actions .nv-cluster { flex-wrap: nowrap; justify-content: flex-end; }
.adm-view .nv-table__actions { white-space: nowrap; }
.plan-table th.nv-table__number { text-align: end; }

.adm-mods { display: grid; gap: var(--nv-space-2); grid-template-columns: repeat(auto-fill, minmax(min(19rem, 100%), 1fr)); }
.adm-mod { display: flex; align-items: center; gap: var(--nv-space-3); padding: var(--nv-space-3); border-radius: var(--nv-radius-md); border: var(--nv-border-width) solid var(--nv-color-border-subtle); transition: opacity var(--nv-duration-fast); }
.adm-mod .grow { display: flex; flex-direction: column; min-inline-size: 0; }
.adm-mod.is-off { opacity: 0.6; border-style: dashed; }
.adm-mod__dot { inline-size: 8px; block-size: 8px; border-radius: 50%; background: currentColor; }
.admin-banner { border-color: color-mix(in srgb, var(--nv-brand) 45%, transparent); }
.ad-slot.is-house:has(ins[data-ad-status="filled"]) ins.adsbygoogle { display: block !important; }
.ad-slot.is-house:has(ins[data-ad-status="filled"]) .ad-house { display: none; }

/* --- Wiadomość jako bot: czat w stylu Discorda (panel serwera i panel założycieli) --- */
.chat-layout { display: grid; gap: var(--nv-space-4); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 56rem) { .chat-layout { grid-template-columns: 15rem minmax(0, 1fr); } .chat-layout--admin { grid-template-columns: 19rem minmax(0, 1fr); } }
.chat-side { display: flex; flex-direction: column; gap: var(--nv-space-2); padding: var(--nv-space-3); border-radius: var(--nv-radius-lg); border: var(--nv-border-width) solid var(--nv-color-border-subtle); background: var(--nv-color-surface); max-block-size: 40rem; min-inline-size: 0; }
@media (min-width: 56rem) { .chat-side { position: sticky; inset-block-start: var(--nv-space-4); } }
.chat-side__seg { display: flex; } .chat-side__seg button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.chat-side__list { display: flex; flex-direction: column; gap: 2px; overflow: auto; min-block-size: 0; margin-inline: calc(var(--nv-space-1) * -1); padding-inline: var(--nv-space-1); }
.chat-side__item { display: flex; align-items: center; gap: 8px; inline-size: 100%; padding: 6px 8px; border: 0; border-radius: var(--nv-radius-md); background: transparent; color: var(--nv-color-text-secondary); font: inherit; font-size: var(--nv-font-size-sm); text-align: start; cursor: pointer; min-inline-size: 0; }
.chat-side__item:hover { background: var(--nv-color-surface-inset); color: var(--nv-color-text-primary); }
.chat-side__item.is-on { background: color-mix(in srgb, var(--nv-color-accent) 14%, transparent); color: var(--nv-color-text-primary); font-weight: 600; }
.chat-side__item.is-ro { opacity: 0.6; }
.chat-side__item svg { flex: none; color: var(--nv-color-text-tertiary); }
.chat-side__item .nv-truncate { flex: 1; min-inline-size: 0; }
.chat-hash { color: var(--nv-color-text-tertiary); font-weight: 600; inline-size: 14px; text-align: center; }
.chat-guild > summary { display: flex; align-items: center; gap: 8px; padding: 6px 4px; cursor: pointer; list-style: none; border-radius: var(--nv-radius-md); min-inline-size: 0; }
.chat-guild > summary::-webkit-details-marker { display: none; }
.chat-guild > summary:hover { background: var(--nv-color-surface-inset); }
.chat-guild > summary .nv-truncate { flex: 1; min-inline-size: 0; }
.chat-guild[open] > summary { color: var(--nv-color-text-primary); }
.chat-guild > .chat-side__item { padding-inline-start: 20px; }
.chat-new { display: flex; gap: var(--nv-space-2); } .chat-new .nv-input { flex: 1; min-inline-size: 0; }
.chat-dm { padding-block: 8px; }
.chat-dm__av { inline-size: 32px; block-size: 32px; border-radius: 50%; flex: none; object-fit: cover; display: grid; place-items: center; background: var(--nv-color-surface-inset); font-weight: 700; }
.chat-dm__txt { flex: 1; min-inline-size: 0; display: flex; flex-direction: column; }
.chat-unread { min-inline-size: 18px; block-size: 18px; padding-inline: 5px; border-radius: 999px; background: #da373c; color: #fff; font-size: 11px; font-weight: 700; display: inline-grid; place-items: center; }
.chat-unread[hidden] { display: none; }
.chat-host { min-inline-size: 0; }
.discord.chat { display: flex; flex-direction: column; block-size: min(40rem, calc(100dvh - 10rem)); min-block-size: 26rem; }
.chat .dc-topbar { flex: none; }
.chat__title { flex: 1; min-inline-size: 0; }
.chat__live { margin-inline-start: 0; }
.chat__iconbtn { display: inline-grid; place-items: center; inline-size: 30px; block-size: 30px; border: 0; border-radius: 6px; background: transparent; color: var(--dc-muted); cursor: pointer; }
.chat__iconbtn:hover { background: var(--dc-overlay); color: var(--dc-head); }
.chat__iconbtn[aria-pressed="true"] { background: var(--dc-mention-bg); color: var(--dc-mention); }
.chat__scroll { flex: 1; overflow-y: auto; padding: 8px 0 12px; overscroll-behavior: contain; }
.chat__empty { block-size: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; color: var(--dc-muted); text-align: center; padding: 24px; font-size: 14px; }
.chat__empty--bad { color: #f87171; }
.chat__spin { inline-size: 22px; block-size: 22px; border-radius: 50%; border: 2px solid var(--dc-border); border-block-start-color: var(--dc-blurple); animation: chat-spin 0.8s linear infinite; }
@keyframes chat-spin { to { transform: rotate(360deg); } }
.chat__older { display: block; margin: 4px auto 10px; padding: 4px 12px; border: 1px solid var(--dc-border); border-radius: 999px; background: var(--dc-bg-2); color: var(--dc-text); font: inherit; font-size: 12px; cursor: pointer; }
.chat__older:hover { color: var(--dc-head); border-color: var(--dc-muted); }
.chat__start { margin: 6px 16px 12px; padding-block-end: 10px; border-block-end: 1px solid var(--dc-border); color: var(--dc-muted); font-size: 13px; }
.discord .chat__msg { position: relative; display: flex; flex-wrap: wrap; gap: 0 14px; align-items: flex-start; padding: 2px 16px; margin-block-start: 14px; }
.discord .chat__msg.is-grouped { margin-block-start: 0; }
.discord .chat__msg:hover { background: rgb(2 2 2 / 0.06); }
.discord .chat__msg.is-editing { background: rgb(88 101 242 / 0.12); box-shadow: inset 2px 0 0 var(--dc-blurple); }
.discord .chat__msg > .dc-main { gap: 2px; }
.chat__gut { inline-size: 40px; flex: none; text-align: center; font-size: 10px; line-height: 22px; color: transparent; }
.chat__msg:hover .chat__gut { color: var(--dc-muted); }
.chat__replyto { flex-basis: 100%; display: flex; align-items: center; gap: 6px; padding-inline-start: 22px; font-size: 13px; color: var(--dc-muted); min-inline-size: 0; margin-block-end: 2px; }
.chat__replyto img { inline-size: 16px; block-size: 16px; border-radius: 50%; }
.chat__replyto b { color: var(--dc-head); font-weight: 600; flex: none; }
.chat__acts { position: absolute; inset-block-start: -14px; inset-inline-end: 14px; display: none; gap: 2px; padding: 2px; border-radius: 6px; background: var(--dc-bg); border: 1px solid var(--dc-bg-3); box-shadow: 0 4px 12px rgb(0 0 0 / 0.3); }
.chat__msg:hover .chat__acts, .chat__msg:focus-within .chat__acts { display: flex; }
.chat__acts button { display: grid; place-items: center; inline-size: 28px; block-size: 26px; border: 0; border-radius: 4px; background: transparent; color: var(--dc-muted); cursor: pointer; }
.chat__acts button:hover { background: var(--dc-overlay); color: var(--dc-head); }
.chat__acts button.is-bad:hover { color: #f87171; }
.chat__img { display: block; max-inline-size: min(100%, 360px); max-block-size: 260px; border-radius: 8px; margin-block-start: 4px; }
.chat__file { display: inline-flex; align-items: center; gap: 8px; margin-block-start: 4px; padding: 8px 12px; border-radius: 8px; background: var(--dc-bg-2); border: 1px solid var(--dc-bg-3); color: var(--dc-link); text-decoration: none; font-size: 14px; max-inline-size: 100%; }
.chat__composer { flex: none; display: flex; flex-direction: column; gap: 6px; padding: 0 16px 10px; }
.chat__composer[aria-busy="true"] { opacity: 0.7; }
.chat__ctx { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 8px 8px 0 0; background: var(--dc-bg-2); color: var(--dc-muted); font-size: 13px; margin-block-end: -6px; }
.chat__ctx[hidden] { display: none; }
.chat__ctx .nv-truncate { flex: 1; }
.chat__ctx button { border: 0; background: transparent; color: var(--dc-muted); cursor: pointer; display: grid; place-items: center; }
.chat__embed { display: flex; gap: 8px; } .chat__embed[hidden] { display: none; }
.chat__embed .chat__title-in { flex: 1; }
.chat__color { inline-size: 40px; block-size: 36px; padding: 2px; border: 1px solid var(--dc-bg-3); border-radius: 8px; background: var(--dc-bg-4); cursor: pointer; }
.chat__in { font: inherit; font-size: 15px; color: var(--dc-text); background: var(--dc-bg-4); border: 0; border-radius: 8px; padding: 9px 12px; outline: none; min-inline-size: 0; }
.chat__in:focus-visible { box-shadow: 0 0 0 2px var(--dc-blurple); }
.chat__box { display: flex; align-items: flex-end; gap: 6px; background: var(--dc-bg-4); border-radius: 8px; padding-inline-end: 6px; }
.chat__box:focus-within { box-shadow: 0 0 0 2px var(--dc-blurple); }
.chat__text { flex: 1; resize: none; background: transparent; line-height: 1.375; max-block-size: 200px; box-shadow: none !important; }
.chat__tools { display: flex; align-items: center; gap: 2px; padding-block: 5px; }
.chat__count { font-size: 11px; color: var(--dc-muted); padding-inline: 4px; font-variant-numeric: tabular-nums; }
.chat__send { display: grid; place-items: center; inline-size: 34px; block-size: 30px; border: 0; border-radius: 6px; background: var(--dc-blurple); color: #fff; cursor: pointer; }
.chat__send:hover { filter: brightness(1.1); }
.chat__hint { font-size: 11px; color: var(--dc-muted); }
@media (max-width: 40rem) { .chat__hint { display: none; } .discord.chat { block-size: calc(100dvh - 8rem); } }

/* --- SI: wybór dostawcy, klucz, zużycie --- */
.ai-provs { display: grid; gap: var(--nv-space-2); grid-template-columns: repeat(auto-fill, minmax(min(15rem, 100%), 1fr)); }
.ai-prov { display: flex; align-items: center; gap: var(--nv-space-3); padding: var(--nv-space-3); border-radius: var(--nv-radius-md); border: var(--nv-border-width) solid var(--nv-color-border-subtle); background: var(--nv-color-surface); color: inherit; font: inherit; text-align: start; cursor: pointer; transition: border-color var(--nv-duration-fast), box-shadow var(--nv-duration-fast); }
.ai-prov:hover { border-color: var(--nv-color-border-strong); }
.ai-prov.is-on { border-color: var(--c); box-shadow: 0 0 0 1px var(--c), var(--nv-elevation-1); background: color-mix(in srgb, var(--c) 6%, var(--nv-color-surface)); }
.ai-prov__txt { flex: 1; display: flex; flex-direction: column; min-inline-size: 0; }
.ai-key { padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-inset); }
.ai-key__row { display: flex; gap: var(--nv-space-2); align-items: center; flex-wrap: wrap; }
.ai-key__row .nv-input { inline-size: min(18rem, 100%); }
.ai-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ai-chips .var { cursor: pointer; border: 0; font: inherit; }
.ai-usage { display: flex; flex-direction: column; gap: var(--nv-space-2); }
.ai-usage__num { font-size: var(--nv-font-size-sm); color: var(--nv-color-text-secondary); } .ai-usage__num b { font-size: 1.6rem; color: var(--nv-color-text-primary); font-variant-numeric: tabular-nums; }
.ai-out { padding: var(--nv-space-3); border-radius: var(--nv-radius-md); border-inline-start: 3px solid #ec4899; background: color-mix(in srgb, #ec4899 7%, transparent); display: flex; flex-direction: column; gap: 8px; }
.ai-out > .discord { white-space: normal; }
.ai-chips .var.is-on { background: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); box-shadow: inset 0 0 0 1px var(--nv-color-accent-border); }
.ai-key__label { display: inline-flex; align-items: center; gap: 6px; }
.ai-key .setting { align-items: center; flex-wrap: wrap; gap: var(--nv-space-3); }

/* --- Własny kod: edytor z podświetlaniem składni --- */
.kd-lang { display: inline-grid; place-items: center; min-inline-size: 30px; padding: 1px 6px; border-radius: 5px; font: 700 10px/16px var(--nv-font-family-mono, ui-monospace, monospace); letter-spacing: 0.02em; color: #fff; }
.kd-lang--lua { background: #2c2d72; } .kd-lang--js { background: #d4b106; color: #1a1600; } .kd-lang--java { background: #b0461a; }
.kd-langs { display: flex; flex-wrap: wrap; gap: var(--nv-space-2); }
.kd-langbtn { display: inline-flex; align-items: center; gap: 8px; padding: 8px 12px; border-radius: var(--nv-radius-md); border: var(--nv-border-width) solid var(--nv-color-border-subtle); background: var(--nv-color-surface); color: inherit; font: inherit; cursor: pointer; }
.kd-langbtn:hover { border-color: var(--nv-color-border-strong); }
.kd-langbtn.is-on { border-color: #22c55e; box-shadow: 0 0 0 1px #22c55e; background: color-mix(in srgb, #22c55e 6%, var(--nv-color-surface)); }
.kd-warn { display: flex; gap: 8px; align-items: flex-start; padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: color-mix(in srgb, #f59e0b 12%, transparent); border: var(--nv-border-width) solid color-mix(in srgb, #f59e0b 40%, transparent); font-size: var(--nv-font-size-sm); }
.kd-warn svg { flex: none; color: #d97706; margin-block-start: 2px; }
.kd-starts { display: flex; flex-wrap: wrap; gap: var(--nv-space-2); justify-content: center; }
.kd-editor { border-radius: var(--nv-radius-lg); overflow: hidden; background: #0f1117; border: 1px solid #23262f; box-shadow: var(--nv-elevation-1); color-scheme: dark; }
.kd-bar { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #161922; border-block-end: 1px solid #23262f; }
.kd-bar .nv-caption { color: #8b93a7 !important; }
.kd-bar .nv-button { color: #c9d1e4; }
.kd-barbtn { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 6px; border: 1px solid #2d3140; background: #1c202b; color: #c9d1e4; font: inherit; font-size: 12px; cursor: pointer; }
.kd-barbtn:hover { background: #242938; }
.kd-code { position: relative; block-size: clamp(18rem, 55vh, 34rem); }
.kd-hl, .kd-ta { position: absolute; inset: 0; margin: 0; padding: 14px 16px; border: 0; font: 13.5px/1.6 var(--nv-font-family-mono, "JetBrains Mono", ui-monospace, monospace); tab-size: 2; white-space: pre; overflow: auto; letter-spacing: 0; }
.kd-hl { color: #d6deeb; pointer-events: none; scrollbar-width: none; }
.kd-hl::-webkit-scrollbar { display: none; }
.kd-ta { background: transparent; color: transparent; caret-color: #fff; resize: none; outline: none; }
.kd-ta::selection { background: rgb(130 170 255 / 0.3); color: transparent; }
.kd-ta::placeholder { color: #5c6478; }
.kd-ta:focus-visible { box-shadow: inset 0 0 0 2px #22c55e; }
.kd-c { color: #637777; font-style: italic; } .kd-s { color: #ecc48d; } .kd-n { color: #f78c6c; } .kd-k { color: #c792ea; } .kd-a { color: #82aaff; }
.kd-run { display: flex; gap: var(--nv-space-2); } .kd-run .nv-input { flex: 1; min-inline-size: 0; }
.kd-result { display: flex; flex-direction: column; gap: var(--nv-space-3); padding: var(--nv-space-3); border-radius: var(--nv-radius-md); border-inline-start: 3px solid; }
.kd-result.is-ok { border-color: #22c55e; background: color-mix(in srgb, #22c55e 7%, transparent); }
.kd-result.is-bad { border-color: #ef4444; background: color-mix(in srgb, #ef4444 7%, transparent); }
.kd-result__head { display: flex; align-items: center; gap: 8px; }
.kd-result__head .nv-caption { margin-inline-start: auto; }
.kd-err, .kd-logs { margin: 0; padding: 10px 12px; border-radius: 6px; background: #0f1117; color: #d6deeb; font: 12.5px/1.5 var(--nv-font-family-mono, ui-monospace, monospace); white-space: pre-wrap; overflow-wrap: anywhere; max-block-size: 14rem; overflow: auto; }
.kd-err { color: #fca5a5; }
.kd-sec { display: flex; flex-direction: column; gap: 6px; }
.kd-act { display: flex; gap: 10px; align-items: baseline; font-size: var(--nv-font-size-sm); }
.kd-act code { flex: none; font-size: 12px; padding: 1px 6px; border-radius: 4px; background: var(--nv-color-surface-inset); }
.kd-act span { overflow-wrap: anywhere; }
.kd-val { font-family: var(--nv-font-family-mono, ui-monospace, monospace); font-size: 12px; overflow-wrap: anywhere; max-inline-size: 30rem; }

/* --- Dokumentacja /docs/kod --- */
.docs { display: flex; flex-direction: column; gap: var(--nv-space-8); padding-block: var(--nv-space-8) var(--nv-space-10); max-inline-size: 60rem; }
.docs-hero { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.docs-toc { display: flex; flex-wrap: wrap; gap: 6px; margin-block-start: var(--nv-space-2); }
.docs-toc a { padding: 4px 10px; border-radius: 999px; border: var(--nv-border-width) solid var(--nv-color-border-subtle); font-size: var(--nv-font-size-sm); color: var(--nv-color-text-secondary); text-decoration: none; }
.docs-toc a:hover { color: var(--nv-color-text-primary); border-color: var(--nv-color-border-strong); }
.docs-sec { display: flex; flex-direction: column; gap: var(--nv-space-3); scroll-margin-block-start: var(--nv-space-6); }
.docs-sec h2 { font-size: 1.5rem; letter-spacing: -0.02em; }
.docs-sec h3 { margin-block-start: var(--nv-space-3); }
.docs-sec code { font-family: var(--nv-font-family-mono, ui-monospace, monospace); font-size: 0.88em; padding: 1px 5px; border-radius: 4px; background: var(--nv-color-surface-inset); }
.docs-steps, .docs-list { display: flex; flex-direction: column; gap: 8px; padding-inline-start: 1.3em; line-height: 1.6; }
.docs-cards { display: grid; gap: var(--nv-space-3); grid-template-columns: repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); }
.docs-cards .kd-lang { align-self: flex-start; }
.docs-api td:first-child { white-space: nowrap; }
@media (max-width: 40rem) { .docs-api td:first-child { white-space: normal; } }
.docs-code { border-radius: var(--nv-radius-md); overflow: hidden; background: #0f1117; border: 1px solid #23262f; }
.docs-code__tabs { padding: 6px 12px; background: #161922; border-block-end: 1px solid #23262f; font: 600 11px/1.4 var(--nv-font-family-mono, ui-monospace, monospace); color: #8b93a7; text-transform: uppercase; letter-spacing: 0.06em; }
.docs-code pre { margin: 0; padding: 14px 16px; overflow-x: auto; }
.docs-code pre code { background: none; padding: 0; color: #d6deeb; font-size: 13px; line-height: 1.6; white-space: pre; }

/* --- Cennik PexoBot+ --- */
.pricing { display: flex; flex-direction: column; gap: var(--nv-space-4); }
.pricing__head { display: flex; flex-direction: column; gap: 4px; }
.pricing__grid { display: grid; gap: var(--nv-space-4); grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); align-items: stretch; }
.price { position: relative; overflow: visible; }
.price .nv-card__body { block-size: 100%; }
.price .plan__list { flex: 1; }
.price--hot { border-color: #f59e0b; box-shadow: 0 0 0 1px #f59e0b, 0 18px 40px -18px rgb(245 158 11 / 0.5); }
.price__tag { position: absolute; inset-block-start: -11px; inset-inline-end: 16px; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #1a1205; background: linear-gradient(135deg, #fde68a, #f59e0b); }
.price__amount { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.price__amount b { font-size: 2rem; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; }
.price__amount span { color: var(--nv-color-text-tertiary); font-size: var(--nv-font-size-sm); }
.price form, .price__buy { inline-size: 100%; }
.price__buy { justify-content: center; }
.pricing__foot { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.inline-form { display: inline; }
.link-btn { border: 0; background: none; padding: 0; font: inherit; color: var(--nv-color-accent-text); text-decoration: underline; cursor: pointer; }
.adm-plans .nv-input { min-inline-size: 0; }
.adm-plans .adm-pid { inline-size: 6.5rem; } .adm-plans .nv-select { min-inline-size: 8.5rem; } .adm-plans .adm-pnum { inline-size: 5.5rem; }
.adm-plans .adm-pnote { margin-block-start: 4px; font-size: 12px; }
.adm-plans td { vertical-align: top; }
.adm-hook { display: flex; flex-direction: column; gap: 6px; padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-inset); }
.adm-hook .adm-code { white-space: normal; overflow-wrap: anywhere; }
.adm-events { font-size: 11px; color: var(--nv-color-text-secondary); }
.adm-steps { display: flex; flex-direction: column; gap: 8px; padding-inline-start: 1.2em; font-size: var(--nv-font-size-sm); line-height: 1.55; }
.kd-note { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border-radius: 8px; background: color-mix(in srgb, #f59e0b 12%, transparent); color: var(--nv-color-text-secondary); font-size: var(--nv-font-size-sm); }
.kd-note svg { flex: none; color: #d97706; margin-block-start: 2px; }

/* Panel: responsive layout and interaction fixes. Existing visual tokens are retained. */
.app__bar { inline-size:100%; max-inline-size:none; margin:0; align-self:stretch; box-sizing:border-box; border-radius:0; flex-wrap:wrap; }
.app__sidebar { box-sizing:border-box; inline-size:100%; min-inline-size:0; }
.app__sidebar .mod-item { display:flex; align-items:center; gap:8px; }
.app__sidebar .mod-item > .nv-nav__item { flex:1; min-inline-size:0; }
.sidebar-search { margin:0 8px 12px; }
.mod-item [data-toggle] { margin-inline-end:8px; }
.plus-badge--outline { background:transparent; border:1px solid currentColor; box-shadow:none; color:var(--nv-color-accent); }
[data-dirty]::after { content:'•'; margin-inline-start:6px; color:var(--nv-color-accent); }
.nv-card--flush > .nv-card__body.panel-empty,
.nv-card--flush > .nv-card__body:has(> p.nv-caption:only-child) { padding:24px; text-align:center; min-block-size:88px; display:grid; place-items:center; }
.panel-empty p { margin:0; overflow-wrap:anywhere; }
.chat-side { block-size:min(40rem, calc(100svh - 8rem)); overflow:hidden; }
.chat-side > * { flex-shrink:0; }
.chat-side > .chat-side__list { flex:1 1 0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
.chat-guild { min-inline-size:0; }
.chat-side__item { flex-shrink:0; }
.nv-table-frame { max-inline-size:100%; overflow:auto; overscroll-behavior:contain; }
.mod-body, .view, .adm-view, .views, .grid-2 > *, .grid-3 > *, .adm-grid > *, .page-head > * { min-inline-size:0; }
.nv-input, .kd-editor, .fx-canvas { max-inline-size:100%; box-sizing:border-box; }
.nv-input { min-inline-size:0; }
.kd-hl, .kd-ta { inline-size:100%; block-size:100%; box-sizing:border-box; }
.kd-ta { -webkit-text-fill-color:transparent; }
.kd-bar, .kd-run, .mod-head__actions, .em-actions, .toolbar, .page-head { flex-wrap:wrap; }
.mobile-only, .site-menu-toggle { display:none; }
.panel-menu-backdrop { position:fixed; inset:0; z-index:40; background:rgb(0 0 0 / .45); border:0; }
body.menu-open { overflow:hidden; }
@media(max-width:62rem) {
 .mobile-only { display:inline-flex; }
 .app[data-nav-open] .app__sidebar { display:flex; position:fixed; inset:0 auto 0 0; inline-size:min(20rem,88vw); block-size:100dvh; z-index:50; background:var(--nv-color-surface); }
 .app__bar .nv-breadcrumbs { flex:1; min-inline-size:0; overflow:hidden; }
 .app__bar { padding:10px 12px; gap:8px; }
 .app__content { padding:20px 16px 100px; }
 .sidebar-search { display:block; }
 .savebar { inset-inline:12px; inline-size:auto; max-inline-size:calc(100vw - 24px); flex-wrap:wrap; gap:8px; padding:12px; }
 .chat-side { block-size:auto; max-block-size:22rem; }
 .chat-side > .chat-side__list { max-block-size:16rem; flex-basis:auto; }
}
@media(max-width:48rem) {
 .grid-2, .grid-3, .grid-2--start, .grid-3--even, .settings-grid, .adm-grid, .fx-layout, .builder, .em-layout, .dash, .docs-cards { grid-template-columns:minmax(0,1fr); }
 .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .mod-head__switch { margin-inline-start:0; }
 .mod-head .row { align-items:flex-start; flex-wrap:wrap; }
 .setting { flex-wrap:wrap; gap:10px; }
 .setting__text { flex:1 1 100%; }
 .setting__control { max-inline-size:100%; }
 .nv-select, .nv-field { min-inline-size:0; max-inline-size:100%; }
 .mod-strip, .adm-tabs, .nv-nav-tabs { max-inline-size:100%; overflow-x:auto; flex-wrap:nowrap; }
 .mod-strip > *, .adm-tabs > * { flex-shrink:0; }
 .fx-pal { position:static; max-block-size:16rem; }
 .kd-hl { display:none; }
 .kd-ta { color:#d6deeb; -webkit-text-fill-color:#d6deeb; font-size:16px; }
 .kd-ta::selection { color:#d6deeb; }
 .kd-code { block-size:24rem; }
 .kd-run { flex-wrap:wrap; }
 .kd-run .nv-input { flex-basis:100%; }
 .adm-form { grid-template-columns:minmax(0,1fr); }
 .adm-form__wide { grid-column:auto; }
 .savebar .nv-cluster { flex-wrap:wrap; }
 .shell { padding-inline:16px; }
 .docs-hero .nv-display { overflow-wrap:anywhere; }
}

.guide-layout { display:grid; grid-template-columns:15rem minmax(0,1fr); gap:32px; }
.guide-toc { position:sticky; top:80px; max-block-size:calc(100svh - 100px); overflow:auto; align-self:start; }
.guide-toc .nv-nav__item { display:block; }
.guide-content { min-inline-size:0; }
.guide-tip { padding:16px; }
.docs-sec { scroll-margin-top:90px; }
@media(max-width:48rem) { .guide-layout { grid-template-columns:1fr; gap:16px; } .guide-toc { position:static; max-block-size:16rem; } .docs-steps { padding-inline-start:24px; } }

@media(max-width:48rem) {
 .plan-card .nv-card__body { display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px; }
 .plan-card .nv-card__body > .nv-button { grid-column:1/-1; justify-self:stretch; justify-content:center; }
 .plan-card .grow { min-inline-size:0; }
 .app__bar .nv-breadcrumbs li:not(:last-child) { display:none; }
 .app__bar .nv-breadcrumbs li:last-child::before { display:none; }
 .toasts { inset-inline:12px; max-inline-size:calc(100vw - 24px); }
 .toast { max-inline-size:100%; box-sizing:border-box; }
 .toast .nv-label { overflow-wrap:anywhere; }
 .row-card { min-inline-size:0; }
}

#chat-side { display:flex; flex-direction:column; min-block-size:0; flex:1 1 0; overflow:hidden; gap:8px; }
#chat-side .chat-side__list { flex:1 1 0; min-block-size:0; }
@media(max-width:62rem) { #chat-side .chat-side__list { max-block-size:16rem; flex-basis:auto; } }
@media(max-width:48rem) { .mod-head .nv-card__body { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; } .mod-head__switch,.mod-head__actions { grid-column:1/-1; justify-self:end; } .lock { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; } .lock > button { grid-column:1/-1; justify-self:end; } }

@media(min-width:62.001rem) { .app { grid-template-columns:18rem minmax(0,1fr); } .savebar { inset-inline:calc(18rem + var(--nv-space-6)) var(--nv-space-6); } }

.nv-card--flush > .nv-card__header { padding:16px 20px; gap:12px; flex-wrap:wrap; }

/* Odstępy treści i mobilny wybór rozmowy. */
.nv-card--flush > .nv-card__body { padding:20px; }
.nv-card__header + .nv-card__body { padding-block-start:16px; }
.mod-body,.adm-view { gap:24px; }
.admin-chat-main { display:flex; flex-direction:column; min-inline-size:0; gap:12px; }
.admin-chat-back { display:none; align-self:flex-start; }
.chat__scroll { min-block-size:0; }
@media(max-width:56rem) {
 .chat-side { block-size:min(26rem,60dvh); max-block-size:none; }
 #chat-side { flex:1 1 auto; }
 #chat-side .chat-side__list { flex:1 1 auto; min-block-size:0; max-block-size:none; }
 .chat-layout--admin { scroll-margin-top:16px; }
 .chat-layout--admin:not([data-chat-selected]) .admin-chat-main { display:none; }
 .chat-layout--admin[data-chat-selected] .chat-side { display:none; }
 .admin-chat-back { display:inline-flex; }
 .discord.chat { block-size:clamp(16rem,calc(100dvh - 7rem),40rem); min-block-size:16rem; }
 .chat__composer { padding-inline:12px; }
 .chat__text { font-size:16px; flex-basis:100%; }
 .chat__box { flex-wrap:wrap; padding-inline-end:0; }
 .chat__tools { inline-size:100%; justify-content:flex-end; padding:0 8px 8px; }
 .setting { padding-block:14px; }
 .nv-card--flush > .nv-card__body { padding:20px; }
 .nv-card__header { gap:12px; }
}

@media(max-width:56rem) { .adm-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); inline-size:100%; overflow:visible; gap:4px; } .adm-tabs .nv-nav__item { min-inline-size:0; justify-content:center; text-align:center; padding:10px 6px; font-size:12px; white-space:normal; flex-wrap:wrap; } }

.adm-tabs { box-sizing:border-box; }

/* Language selection uses the Niveus menu component. */
.language-control { flex-shrink: 0; }
.language-menu { inline-size: 17rem; }
.language-menu .nv-menu__item[aria-checked="true"] { color: var(--nv-color-text-primary); background-color: var(--nv-color-surface-hover); }
.language-menu__notice { padding: var(--nv-space-2) var(--nv-space-2-5); color: var(--nv-color-text-tertiary); }
.language-menu__notice p { margin: 0; line-height: 1.5; }
.language-menu__notice p + p { margin-block-start: var(--nv-space-1); }

/* Shared form controls retain their values while Niveus supplies the visible menu. */
.nv-select-menu { position: relative; display: inline-flex; min-inline-size: 0; inline-size: 100%; }
.nv-select-menu__source { position: absolute !important; inline-size: 1px !important; block-size: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%) !important; white-space: nowrap !important; border: 0 !important; }
.nv-select-menu__trigger { inline-size: 100%; justify-content: space-between; text-align: start; min-inline-size: 0; }
.nv-select-menu__value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-select-menu__chevron { flex: 0 0 auto; inline-size: 0.45em; block-size: 0.45em; rotate: 45deg; border-inline-end: 1.5px solid currentColor; border-block-end: 1.5px solid currentColor; margin-inline-start: var(--nv-space-2); translate: 0 -0.15em; }
.nv-select-menu--inline { inline-size: auto; vertical-align: middle; max-inline-size: 22rem; }
.nv-select-menu--inline .nv-select-menu__trigger { --_height: 26px; --_font-size: 12px; --_padding: 10px; --_radius: 999px; }
.nv-select-menu__popover { min-inline-size: min(17rem, calc(100vw - var(--nv-space-8))); }
.nv-select-menu__popover .nv-menu__item { white-space: normal; overflow-wrap: anywhere; }
.nv-select-menu__popover .nv-menu__item[aria-checked="true"] { color: var(--nv-color-text-primary); background-color: var(--nv-color-surface-hover); }
.nv-select-menu__search { margin-block-end: var(--nv-space-1); }
.nv-select-menu__empty { padding: var(--nv-space-2-5); color: var(--nv-color-text-tertiary); }
.nv-select-menu__error { position: absolute; inset-block-start: 100%; color: var(--nv-color-danger-text); }
.nv-select-menu__trigger[aria-invalid="true"] { border-color: var(--nv-color-danger-text); }

/* Addon marketplace and private creator/review surfaces. */
.addon-hero { background: radial-gradient(circle at 95% 5%, color-mix(in srgb, #8b5cf6 15%, transparent), transparent 55%), var(--nv-color-surface); margin-block-end: var(--nv-space-6); }
.addon-hero > .nv-card__body { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--nv-space-6); align-items:center; }
.addon-hero__stat { display:flex; flex-direction:column; gap:var(--nv-space-2); text-align:end; color:var(--nv-color-text-secondary); }
.addon-hero__stat strong { font-size:3.5rem; color:var(--nv-color-text-primary); font-variant-numeric:tabular-nums; }
.addon-toolbar { display:flex; flex-wrap:wrap; gap:var(--nv-space-3); align-items:center; margin-block:var(--nv-space-5); }
.addon-toolbar nav { flex:1 1 22rem; }
.addon-toolbar > .nv-field { flex:1 1 12rem; margin:0; }
.addon-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(min(20rem,100%),1fr)); gap:var(--nv-space-4); }
.addon-card > .nv-card__body { block-size:100%; }
.addon-card__icon { inline-size:48px; block-size:48px; flex-shrink:0; }
.addon-card__tags { display:flex; flex-wrap:wrap; gap:var(--nv-space-1); }
.addon-card__actions { margin-block-start:auto; padding-block-start:var(--nv-space-3); }
[data-shop-card][hidden], [data-release-status][hidden] { display:none; }
.addon-dialog { inline-size:min(54rem,calc(100vw - 2rem)); max-block-size:85vh; padding:var(--nv-space-6); border:1px solid var(--nv-color-border-subtle); border-radius:var(--nv-radius-lg); background:var(--nv-color-surface); color:var(--nv-color-text-primary); box-shadow:var(--nv-elevation-3); }
.addon-dialog::backdrop { background:rgb(15 15 25 / .6); backdrop-filter:blur(5px); }
.addon-dialog__close { align-self:flex-end; }
#addon-details-content { display:flex; flex-direction:column; gap:var(--nv-space-4); min-inline-size:0; }
.addon-long-text,.addon-feedback { white-space:pre-wrap; overflow-wrap:anywhere; }
.addon-release { border-block-start:1px solid var(--nv-color-border-subtle); padding-block:var(--nv-space-4); }
.addon-feedback { padding:var(--nv-space-3); background:var(--nv-color-surface-inset); border-radius:var(--nv-radius-md); }
.addon-admin-nav { margin-block-end:var(--nv-space-4); }
#addon-admin-message:not(:empty),#addon-message:not(:empty),#addon-upload-message:not(:empty) { padding:var(--nv-space-3); margin-block:var(--nv-space-3); border-radius:var(--nv-radius-md); background:var(--nv-color-surface-inset); }
@media(max-width:40rem) { .addon-hero > .nv-card__body {grid-template-columns:1fr;} .addon-hero__stat {text-align:start;} .addon-hero__stat strong {font-size:2rem;} .addon-dialog {padding:var(--nv-space-4);} }
/* Public pages: layout around the existing Niveus components. */
#topnav.site-nav {
  min-block-size:60px; padding:8px clamp(16px,3vw,40px);
  gap:24px; flex-wrap:nowrap;
}
.site-nav .nv-nav__brand { flex-shrink:0; font-size:16px; }
.site-nav__tools { display:flex; align-items:center; gap:8px; margin-inline-start:auto; }
.site-nav .nv-nav__list { gap:4px; }
.site-nav .nv-nav__item { padding-inline:12px; }
.site-nav__tools>.nv-button,.site-nav__tools .nv-menu-trigger { min-block-size:36px; }
.site-nav__mobile-docs { display:none; }
.appearance-menu [aria-pressed=true] { background:var(--nv-color-accent-subtle); color:var(--nv-color-accent-text); }
.appearance-menu [aria-pressed=true]::after { content:'✓'; margin-inline-start:auto; }

.landing { background:radial-gradient(ellipse 55rem 32rem at 90% 0%,color-mix(in srgb,var(--nv-color-accent) 7%,transparent),transparent 75%); }
.landing-hero { grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); gap:48px; padding-block:88px 64px; }
.landing-hero .hero__title { font-size:clamp(44px,5.6vw,80px); line-height:1.06; letter-spacing:-.045em; max-inline-size:12ch; }
.landing-hero .hero__copy { gap:24px; }
.landing-hero .nv-prose { max-inline-size:44ch; font-size:17px; line-height:1.7; }
.hero__copy>.nv-cluster>.nv-button,.closing .nv-button { min-block-size:48px; padding-inline:24px; }
.section__head>.nv-button { min-block-size:44px; padding-inline:20px; }
.landing .section { padding-block-start:72px; }
.landing-product { grid-template-columns:1fr; }
.landing-product .system { display:grid; grid-template-columns:minmax(160px,22%) minmax(0,1fr); align-items:stretch; }
.landing-product .system__art { aspect-ratio:auto; inline-size:100%; min-inline-size:0; grid-column:1; grid-row:1 / 3; }
.landing-product .system>.nv-card__body,.landing-product .system>.nv-card__footer { grid-column:2; min-inline-size:0; }
.home-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; padding:0; list-style:none; }
.home-step { display:flex; }
.home-step > .nv-card__body { flex:1; }
.home-step-number { font-size:28px; font-weight:600; color:var(--nv-color-accent-text); }
.home-step__action { align-self:flex-start; min-block-size:44px; margin-block-start:auto; }
.hero-perks { display:flex; flex-wrap:wrap; gap:8px 20px; margin:0; padding:0; list-style:none; font:var(--nv-font-label); color:var(--nv-color-text-secondary); }
.hero-perks li { display:inline-flex; align-items:center; gap:6px; }
.hero-perks svg { color:var(--nv-color-success, #10b981); flex:none; }
.home-creator-link { margin-block-start:20px; }
.home-creator-link a { display:inline-flex; align-items:center; min-block-size:44px; font:var(--nv-font-label); color:var(--nv-color-accent-text); text-decoration:none; }
.home-creator-link a:hover { text-decoration:underline; }
#dodatki { scroll-margin-block-start:84px; }

/* One Discord preview shared by the homepage and bot page: a small Discord client
   (/discord/discord.css) whose channels switch the example conversation. */
.discord.hero__art { display:block; place-items:normal; inline-size:100%; min-inline-size:0; min-block-size:0; padding:0; border:1px solid var(--dc-border); box-shadow:var(--nv-elevation-3); animation:pexo-float 6s ease-in-out infinite; }
.discord-preview .dc-pill { font-size:10px; white-space:nowrap; }
.discord-preview .home-guild { background:linear-gradient(135deg,var(--nv-brand),var(--brand-2)); color:#fff; }
.discord-preview .dc-chat { min-block-size:340px; }
.home-demo:focus-visible { outline:2px solid var(--dc-link); outline-offset:-2px; }
.home-demo-panels { display:grid; }
.home-demo { grid-area:1 / 1; padding:20px 16px 16px; }
.home-demo[hidden] { display:none; }
.home-demo .dc-text { margin-block-start:2px; line-height:1.5; }
.home-demo .dc-btns { margin-block-start:8px; }
.home-demo-event { display:flex; align-items:baseline; gap:7px; margin-block-start:10px; font-size:12px; color:var(--dc-muted); }
.home-demo-event svg { flex-shrink:0; align-self:center; }
@keyframes pexo-float { 0%,100%{translate:0 0} 50%{translate:0 -6px} }
@keyframes home-demo-enter { from{opacity:0;translate:0 5px} to{opacity:1;translate:0 0} }
/* Bez View Transitions zmiana kanału i tak nie przeskakuje. */
@supports not (view-transition-name: none) { .home-demo:not([hidden]) { animation:home-demo-enter var(--nv-duration-normal) var(--nv-ease-entrance); } }

/* Consistent cards and control sizes in both catalogue and server panel. */
.mod-row .nv-scroller,.addon-carousel { align-items:stretch; padding-block:10px 20px; }
.mod-row .row-card { block-size:auto; min-block-size:240px; }
.row-card .nv-card__body,.addon-card>.nv-card__body { display:flex; flex-direction:column; block-size:auto; flex:1; }
.row-card .nv-title a,.addon-card .nv-card__link { color:inherit; text-decoration:none; }
.row-card .nv-caption { line-height:1.6; }
.row-card__action { position:relative; z-index:1; min-block-size:44px; justify-content:center; margin-block-start:auto; }
.addon-carousel>.nv-card { block-size:auto; }
.addon-carousel .nv-card__body { display:flex; flex-direction:column; flex:1; }
.addon-card { min-block-size:280px; transition:var(--nv-transition-surface); }
.addon-card .nv-card__body>.nv-button { position:relative; z-index:1; min-block-size:44px; justify-content:center; margin-block-start:auto; }
.public-addon-dialog .nv-title { margin-block-end:10px; }
.public-addon-dialog__footer { padding-block-start:20px; border-block-start:1px solid var(--nv-color-border-subtle); }
.public-addon-dialog__footer .nv-button { min-block-size:44px; }
.addon-price { margin-block:4px 12px; font-size:16px; font-weight:600; color:var(--nv-color-text-primary); white-space:nowrap; }
.addon-card__actions { margin-block-start:auto; padding-block-start:16px; }
.addon-card__actions>.nv-button { flex:1; min-block-size:40px; justify-content:center; }
@media(hover:hover) { .addon-card:hover { translate:0 calc(var(--nv-lift-hover) * 2); box-shadow:var(--nv-bevel),var(--nv-outline),var(--nv-elevation-3); } }
.addon-card:focus-within { box-shadow:var(--nv-bevel),var(--nv-outline),var(--nv-elevation-3); }
.nv-scroller-frame>[data-nv-scroll] { min-inline-size:44px; min-block-size:44px; }
.mod-grid:has(>.mod-card) { grid-auto-rows:1fr; align-items:stretch; }
.mod-card>.nv-card__body { flex:1; }
.mod-card>.nv-card__footer { margin-block-start:auto; }
.addon-example { white-space:pre-wrap; overflow-wrap:anywhere; background:var(--nv-color-surface-inset); border-radius:var(--nv-radius-md); padding:var(--nv-space-4); }

@media(max-width:1100px) {
  #topnav.site-nav { gap:12px; padding-inline:20px; }
  .site-nav .nv-nav__item { padding-inline:8px; }
  .site-nav .nv-nav__brand { font-size:14px; }
  .landing-hero { gap:32px; }
}
@media(max-width:1000px) {
  #topnav.site-nav { flex-wrap:wrap; gap:8px; }
  .site-nav .site-menu-toggle { display:inline-flex; min-block-size:36px; }
  .site-nav #site-product-nav { display:none; order:10; inline-size:100%; }
  .site-nav[data-menu-open] #site-product-nav { display:block; padding-block:8px 4px; }
  .site-nav .nv-nav__list { display:flex; flex-wrap:wrap; gap:4px; }
  .site-nav__tools .site-nav__docs { display:none; }
  .site-nav__mobile-docs { display:list-item; }
  .site-nav #site-product-nav .nv-nav__item { min-block-size:44px; }
  .landing-hero { grid-template-columns:1fr; padding-block:56px; }
  .landing-hero .hero__title { max-inline-size:16ch; font-size:clamp(42px,8vw,64px); }
  .discord.hero__art { max-inline-size:600px; justify-self:center; }
}
@media(max-width:600px) {
  #topnav.site-nav { padding-inline:12px; }
  .site-nav .nv-nav__brand>span { display:none; }
  .site-nav__tools { gap:4px; }
  .site-nav__tools>.nv-button { padding-inline:10px; font-size:12px; }
  .site-nav .language-control>.nv-button { padding-inline:8px; }
  .site-nav__logout { display:none; }
  .site-nav__tools .appearance-control .nv-button { min-inline-size:32px; }
  .landing-hero { padding-block:44px; gap:40px; }
  .landing .section { padding-block-start:48px; }
  .landing-hero .nv-prose { font-size:16px; }
  .landing-product .system { grid-template-columns:1fr; }
  .landing-product .system__art { grid-column:1; grid-row:auto; block-size:112px; }
  .landing-product .system>.nv-card__body,.landing-product .system>.nv-card__footer { grid-column:1; }
  .home-steps { grid-template-columns:1fr; }
  .home-demo { padding:16px 12px; }
  .home-demo .dc-msg { gap:10px; }
  .home-demo .dc-time { font-size:11px; }
  .home-demo .dc-text { font-size:14px; }
  .nv-scroller-frame>[data-nv-scroll="prev"] { inset-inline-start:-10px; }
  .nv-scroller-frame>[data-nv-scroll="next"] { inset-inline-end:-10px; }
  .addon-carousel { --nv-scroller-item:19rem!important; }
}
@media(prefers-reduced-motion:reduce) {
  .discord.hero__art,.home-demo:not([hidden]) { animation:none; }
  .addon-card:hover { translate:none; }
}

/* Leaderboards are seen by members of other servers: a quiet invitation under the table. */
.lb-cta { margin-block-start:var(--nv-space-6); }
.lb-cta > .nv-card__body { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:var(--nv-space-4); align-items:center; }
.lb-cta .nv-button { min-block-size:44px; }
@media(max-width:40rem) { .lb-cta > .nv-card__body { grid-template-columns:auto minmax(0,1fr); } .lb-cta .nv-button { grid-column:1 / -1; justify-content:center; } }
/* While the docs are filtered, ads between sections would only interrupt the results. */
.guide-content:has(.guide-article[hidden]) > .ad-slot { display:none; }

/* --- Muzyka: odtwarzacz w panelu ---------------------------------------------------------
   Karta w duchu odtwarzacza z podglądu Discorda: okładka, fala, przewijanie, duży przycisk odtwarzania. */
.mu { --mu: #5865f2; display: flex; flex-direction: column; gap: var(--nv-space-4); }
.mu-deck { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: var(--nv-space-6); padding: var(--nv-space-6); border-radius: var(--nv-radius-xl, 1.25rem);
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--mu) 18%, transparent), transparent 60%), var(--nv-color-surface); box-shadow: var(--nv-bevel), var(--nv-outline), var(--nv-elevation-2); }
.mu-deck__art { position: relative; aspect-ratio: 1; display: grid; place-items: center; overflow: hidden; border-radius: var(--nv-radius-lg); color: #fff;
  background: linear-gradient(135deg, var(--nv-brand), #c2410c 50%, var(--brand-2)); box-shadow: 0 18px 40px -18px var(--mu); }
.mu-deck__art img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
.mu-deck__main { display: flex; flex-direction: column; gap: var(--nv-space-2); min-inline-size: 0; }
.mu-deck__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-2) var(--nv-space-3); font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); }
.mu-chip { display: inline-flex; align-items: center; gap: 5px; padding: 2px 9px; border-radius: var(--nv-radius-full); background-color: var(--nv-color-surface-inset); color: var(--nv-color-text-secondary); font-weight: var(--nv-font-weight-medium); }
.mu-chip--you { background-color: color-mix(in srgb, #22c55e 15%, transparent); color: #16a34a; }
.mu-chip--bot { background-color: color-mix(in srgb, #5865f2 14%, transparent); color: #4f5bd5; }
.mu-bots__list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 2px; }
.mu-bots__list li { display: flex; align-items: center; gap: var(--nv-space-3); padding: 6px; border-radius: var(--nv-radius-md); }
.mu-bots__list img { inline-size: 36px; block-size: 36px; border-radius: 12px; object-fit: cover; flex: none; }
.mu-bots__busy { color: #16a34a; }
.mu-faces { display: inline-flex; margin-inline-start: auto; }
.mu-faces > * { inline-size: 24px; block-size: 24px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; font-size: 11px; font-weight: 700; background: var(--nv-color-surface-inset); box-shadow: 0 0 0 2px var(--nv-color-surface); }
.mu-faces > * + * { margin-inline-start: -6px; }
.mu-deck__title { text-shadow: none; color: var(--nv-color-text-primary); margin: 2px 0 0; font-size: var(--nv-font-size-2xl); line-height: 1.2; letter-spacing: var(--nv-letter-spacing-tight); overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.mu-deck__title a { color: inherit; text-decoration: none; }
.mu-deck__title a:hover { text-decoration: underline; }
.mu-deck__sub { margin: 0; color: var(--nv-color-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mu-wave { display: flex; align-items: center; gap: 3px; block-size: 34px; margin-block: var(--nv-space-2); }
.mu-wave i { flex: 1; max-inline-size: 5px; block-size: var(--h); border-radius: 3px; background: var(--mu); opacity: 0.85; transform-origin: center; animation: mu-bar 900ms ease-in-out var(--d) infinite alternate; }
.mu-deck.is-paused .mu-wave i { animation-play-state: paused; opacity: 0.35; }
@keyframes mu-bar { from { transform: scaleY(0.25); } to { transform: scaleY(1); } }
.mu-seek { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: var(--nv-space-3); font: var(--nv-font-caption); font-variant-numeric: tabular-nums; color: var(--nv-color-text-tertiary); }
.mu input[type="range"] { -webkit-appearance: none; appearance: none; inline-size: 100%; block-size: 6px; margin: 0; border-radius: 3px; cursor: pointer;
  background: linear-gradient(90deg, var(--mu) var(--pct, 0%), var(--nv-color-surface-inset) var(--pct, 0%)); }
.mu input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; inline-size: 14px; block-size: 14px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgb(0 0 0 / 0.35); opacity: 0; transition: opacity 120ms; }
.mu input[type="range"]::-moz-range-thumb { inline-size: 14px; block-size: 14px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgb(0 0 0 / 0.35); }
.mu input[type="range"]:hover::-webkit-slider-thumb, .mu input[type="range"]:focus-visible::-webkit-slider-thumb { opacity: 1; }
.mu input[type="range"]:focus-visible { outline: 2px solid var(--nv-color-accent); outline-offset: 4px; }
.mu-deck__controls { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nv-space-3); margin-block-start: var(--nv-space-2); }
.mu-ctls { display: flex; align-items: center; gap: var(--nv-space-1); }
.mu-ctl { display: grid; place-items: center; inline-size: 44px; block-size: 44px; border: 0; border-radius: var(--nv-radius-full); background: transparent; color: var(--nv-color-text-secondary); cursor: pointer; transition: background-color 120ms, color 120ms, transform 120ms; }
.mu-ctl:hover:not(:disabled) { background-color: var(--nv-color-surface-hover); color: var(--nv-color-text-primary); }
.mu-ctl:active:not(:disabled) { transform: scale(0.94); }
.mu-ctl:disabled { opacity: 0.35; cursor: default; }
.mu-ctl:focus-visible { outline: 2px solid var(--nv-color-accent); outline-offset: 2px; }
.mu-ctl.is-on { color: var(--mu); background-color: color-mix(in srgb, var(--mu) 14%, transparent); }
.mu-ctl--main { inline-size: 56px; block-size: 56px; margin-inline: var(--nv-space-1); color: #fff; background: var(--mu); box-shadow: 0 8px 20px -8px var(--mu); }
.mu-ctl--main:hover:not(:disabled) { background: color-mix(in srgb, var(--mu) 88%, #fff); color: #fff; }
.mu-ctl--stop:hover:not(:disabled) { color: var(--nv-color-danger-text); background-color: color-mix(in srgb, #ef4444 12%, transparent); }
.mu-vol { display: flex; align-items: center; gap: var(--nv-space-2); color: var(--nv-color-text-tertiary); margin-inline-start: auto; }
.mu-vol input { inline-size: 8rem; }
.mu-vol output { min-inline-size: 3.2em; font: var(--nv-font-caption); font-variant-numeric: tabular-nums; }
.mu-deck--empty { grid-template-columns: 6rem minmax(0, 1fr); align-items: center; }
.mu-deck--empty .mu-deck__art { opacity: 0.55; box-shadow: none; }
.mu-deck--empty .mu-deck__sub { white-space: normal; }
.mu-queue__list, .mu-results { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; max-block-size: 26rem; overflow: auto; }
.mu-queue__list li, .mu-results li { display: flex; align-items: center; gap: var(--nv-space-3); padding: 6px; border-radius: var(--nv-radius-md); }
.mu-queue__list li:hover, .mu-results li:hover { background-color: var(--nv-color-surface-hover); }
.mu-queue__n { inline-size: 1.6em; text-align: end; font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); font-variant-numeric: tabular-nums; }
.mu-queue__art, .mu-results img { inline-size: 40px; block-size: 40px; flex: none; display: grid; place-items: center; border-radius: var(--nv-radius-sm); object-fit: cover; background: var(--nv-color-surface-inset); color: var(--nv-color-text-tertiary); }
.mu-queue__txt { display: flex; flex-direction: column; min-inline-size: 0; }
.mu-queue__acts { display: flex; gap: 2px; opacity: 0; transition: opacity 120ms; }
.mu-queue__list li:hover .mu-queue__acts, .mu-queue__list li:focus-within .mu-queue__acts { opacity: 1; }
.mu-add__form { display: flex; flex-wrap: wrap; gap: var(--nv-space-2); }
.mu-add__form .nv-input { flex: 1 1 14rem; }
.mu-add__form .nv-select { flex: 0 1 14rem; }
@media (hover: none) { .mu-queue__acts { opacity: 1; } .mu input[type="range"]::-webkit-slider-thumb { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .mu-wave i { animation: none; transform: scaleY(0.6); } }
@media (max-width: 40rem) {
  .mu-deck { grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--nv-space-4); padding: var(--nv-space-4); }
  .mu-deck__title { font-size: var(--nv-font-size-lg, 1.15rem); }
  .mu-wave, .mu-seek, .mu-deck__controls { grid-column: 1 / -1; }
  .mu-deck__main { display: contents; }
  .mu-deck__meta, .mu-deck__title, .mu-deck__sub { grid-column: 2; }
  .mu-deck__art { grid-row: 1 / span 3; align-self: start; }
  .mu-ctls { inline-size: 100%; justify-content: space-between; }
  .mu-vol { inline-size: 100%; margin: 0; } .mu-vol input { flex: 1; }
  .mu-faces { margin-inline-start: 0; }
}

/* --- Panel założycieli: na żywo -------------------------------------------------------- */
.adm-live { display:grid; grid-template-columns:repeat(auto-fit, minmax(min(16rem, 100%), 1fr)); gap:var(--nv-space-5); }
.adm-live__head { display:flex; align-items:center; gap:var(--nv-space-2); }
.adm-live .lb-mini li { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 var(--nv-space-3); }
.adm-live .lb-mini li > :nth-child(2) { grid-column:1; }
.adm-live .lb-mini li > :nth-child(3) { grid-column:2; grid-row:1 / span 2; align-self:center; }
.adm-leave:hover { color:var(--nv-color-danger-text); }

/* --- Strona /bot: funkcje na przykładach, porównanie planów, pytania ------------------- */
.feats { display: flex; flex-direction: column; gap: var(--nv-space-12); }
.feat { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: var(--nv-space-10); align-items: center; }
.feat--flip > .feat__copy { order: 2; }
.feat__copy { display: flex; flex-direction: column; align-items: flex-start; gap: var(--nv-space-3); }
.feat__title { font-size: var(--nv-font-size-2xl); letter-spacing: var(--nv-letter-spacing-tight); line-height: 1.2; text-wrap: balance; }
.feat__copy .nv-prose { max-inline-size: 42ch; }
.feat__link { display: inline-flex; align-items: center; gap: 6px; min-block-size: 44px; font: var(--nv-font-label); color: var(--nv-color-accent-text); text-decoration: none; }
.feat__link:hover { text-decoration: underline; }
.feat__mock { box-shadow: var(--nv-elevation-3); border: 1px solid var(--dc-border); rotate: -0.6deg; transition: rotate var(--nv-duration-normal, 250ms) ease; }
.feat--flip .feat__mock { rotate: 0.6deg; }
.feat:hover .feat__mock { rotate: 0deg; }
.feat__mock .dc-embed { position: relative; }
.feat__face { flex: none; display: grid; place-items: center; inline-size: 56px; block-size: 56px; margin-block-start: 8px; border-radius: 50%; background: linear-gradient(135deg, #0ea5e9, #22c55e); color: #fff; font-weight: 700; font-size: 22px; }
.feat__note { margin: 12px 0 0 54px; }
.feat__xp { block-size: 6px; max-inline-size: 260px; margin-block-start: 6px; border-radius: 3px; background: var(--dc-bg-3); overflow: hidden; }
.feat__xp span { display: block; block-size: 100%; background: linear-gradient(90deg, #f59e0b, #fcd34d); }
@media (max-width: 56rem) { .feat { grid-template-columns: minmax(0, 1fr); gap: var(--nv-space-5); } .feat--flip > .feat__copy { order: 0; } .feat__mock, .feat--flip .feat__mock { rotate: 0deg; } }
@media (prefers-reduced-motion: reduce) { .feat__mock { transition: none; } }

.cmp > .nv-card__body { display: flex; flex-direction: column; gap: var(--nv-space-6); padding: var(--nv-space-8); }
.cmp__head { display: flex; flex-direction: column; gap: var(--nv-space-2); max-inline-size: 46rem; }
.cmp__table th[scope="row"] { font-weight: var(--nv-font-weight-medium); color: var(--nv-color-text-primary); }
.cmp__table td, .cmp__table thead th:not(:first-child) { text-align: center; inline-size: 26%; }
.cmp__plus { background-color: color-mix(in srgb, #f59e0b 9%, transparent); color: var(--nv-color-text-primary); font-weight: var(--nv-font-weight-semibold); }
.cmp__table td.cmp__plus svg { color: #d97706; }
.cmp__no { color: var(--nv-color-text-tertiary); }
.cmp__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--nv-space-4); }
.cmp__foot .nv-button { min-block-size: 44px; }
@media (max-width: 40rem) { .cmp > .nv-card__body { padding: var(--nv-space-5); } .cmp__foot .nv-cluster, .cmp__foot .nv-button { inline-size: 100%; justify-content: center; } }

.botpage__faq { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--nv-space-8); align-items: start; }
.faq { display: flex; flex-direction: column; border-block-start: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.faq__item { border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.faq__item summary { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-4); min-block-size: 56px; padding-block: var(--nv-space-3); cursor: pointer; list-style: none; font: var(--nv-font-label); font-size: var(--nv-font-size-md, 1rem); color: var(--nv-color-text-primary); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary svg { flex: none; color: var(--nv-color-text-tertiary); transition: rotate var(--nv-duration-fast, 150ms) ease; }
.faq__item[open] summary svg { rotate: 180deg; }
.faq__item summary:focus-visible { outline: 2px solid var(--nv-color-accent); outline-offset: 2px; border-radius: var(--nv-radius-sm); }
.faq__item p { margin: 0 0 var(--nv-space-4); max-inline-size: 60ch; line-height: 1.65; }
.note { position: sticky; inset-block-start: 88px; }
.note__faces { display: flex; }
.note__faces > * { inline-size: 44px; block-size: 44px; border-radius: 50%; object-fit: cover; display: grid; place-items: center; font-weight: 700; background: var(--nv-color-surface-inset); box-shadow: 0 0 0 3px var(--nv-color-surface); }
.note__faces > * + * { margin-inline-start: -10px; }
.note__text { margin: 0; font-size: 1.05rem; line-height: 1.65; color: var(--nv-color-text-primary); }
@media (max-width: 56rem) { .botpage__faq { grid-template-columns: minmax(0, 1fr); } .note { position: static; } }

/* --- Panel: pasek boczny i górny pasek -------------------------------------------------- */
.side-top { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-2); }
.app__sidebar .mod-group__title { padding-block-start: var(--nv-space-4); }
.side-plus { display: flex; flex-direction: column; gap: var(--nv-space-2); margin-block-start: var(--nv-space-4); padding: var(--nv-space-4); border-radius: var(--nv-radius-lg);
  background: linear-gradient(140deg, color-mix(in srgb, #f59e0b 16%, var(--nv-color-surface)), color-mix(in srgb, var(--nv-brand) 12%, var(--nv-color-surface))); box-shadow: var(--nv-bevel), var(--nv-outline); }
.side-plus .nv-caption { margin: 0; color: var(--nv-color-text-secondary); line-height: 1.5; }
.side-plus .nv-button { align-self: stretch; justify-content: center; }
.side-plus.is-on { flex-direction: row; align-items: center; padding: var(--nv-space-2) var(--nv-space-3); text-decoration: none; background: color-mix(in srgb, #f59e0b 10%, var(--nv-color-surface)); }
.side-links { display: flex; flex-wrap: wrap; gap: 4px var(--nv-space-3); padding: var(--nv-space-3) var(--nv-space-2) var(--nv-space-1); }
.side-links a { color: var(--nv-color-text-tertiary); text-decoration: none; }
.side-links a:hover { color: var(--nv-color-text-primary); text-decoration: underline; }

.app__bar { gap: var(--nv-space-2); min-block-size: 60px; }
.bar-title { margin-inline-start: var(--nv-space-2); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bar-switch { min-inline-size: 0; }
.bar-switch__btn { gap: var(--nv-space-2); max-inline-size: 20rem; min-block-size: 40px; padding-inline: var(--nv-space-2) var(--nv-space-3); font: var(--nv-font-label); }
.bar-switch__btn img, .server-menu img { border-radius: var(--nv-radius-sm); object-fit: cover; flex: none; }
.bar-switch__ph { display: inline-grid; place-items: center; inline-size: 28px; block-size: 28px; flex: none; border-radius: var(--nv-radius-sm); background-color: var(--nv-color-surface-inset); font-weight: var(--nv-font-weight-semibold); font-size: 13px; }
.bar-switch__ph--sm { inline-size: 22px; block-size: 22px; font-size: 11px; }
.server-menu { inline-size: 18rem; max-block-size: min(26rem, 70vh); overflow-y: auto; }
.server-menu .nv-menu__item, .account-menu .nv-menu__item { gap: var(--nv-space-2-5); }
.server-menu .nv-menu__item[aria-checked="true"] { background-color: var(--nv-color-surface-hover); color: var(--nv-color-text-primary); }
.bar-plus { color: #92400e; background: linear-gradient(135deg, #fde68a, #fbbf24); border-color: transparent; box-shadow: 0 1px 0 rgb(255 255 255 / 0.4) inset, var(--nv-elevation-1); }
.bar-plus:hover { filter: brightness(1.05); }
.bar-account__btn { inline-size: 40px; block-size: 40px; padding: 0; border-radius: var(--nv-radius-full); }
.bar-account__btn img { border-radius: var(--nv-radius-full); }
.account-menu { inline-size: 15rem; }
.account-menu__who { display: flex; flex-direction: column; padding: var(--nv-space-2) var(--nv-space-2-5); min-inline-size: 0; }
@media (max-width: 48rem) { .bar-label { display: none; } .bar-help, .bar-plus { padding-inline: 8px; } .bar-switch__btn { max-inline-size: 9rem; } .app__bar .bar-help { display: none; } }

/* --- Pierwsze kroki: karta w przeglądzie serwera i lista w dashboardzie ------------------ */
.steps-card > .nv-card__body { display: flex; flex-direction: column; gap: var(--nv-space-4); }
.steps-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--nv-space-3); }
.steps-card__bar > span { transition: inline-size var(--nv-duration-normal, 250ms) var(--nv-ease-standard, ease); }
.steps-card__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(13rem, 100%), 1fr)); gap: var(--nv-space-2); margin: 0; padding: 0; list-style: none; }
.steps-card__list a { display: flex; align-items: center; gap: var(--nv-space-2-5); min-block-size: 48px; padding: var(--nv-space-2) var(--nv-space-3); border-radius: var(--nv-radius-md); color: inherit; text-decoration: none;
  border: var(--nv-border-width) solid var(--nv-color-border-subtle); background-color: var(--nv-color-surface); transition: border-color var(--nv-duration-fast, 150ms) ease, background-color var(--nv-duration-fast, 150ms) ease; }
.steps-card__list a:hover { border-color: var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); }
.steps-card__mark { display: grid; place-items: center; inline-size: 22px; block-size: 22px; flex: none; border-radius: var(--nv-radius-full); border: 2px solid var(--nv-color-border-strong); color: transparent; }
.steps-card__go { display: inline-flex; align-items: center; gap: 4px; color: var(--nv-color-accent-text); white-space: nowrap; }
.steps-card__list li[data-state="on"] .steps-card__mark { border-color: #22c55e; background-color: #22c55e; color: #fff; }
.steps-card__list li[data-state="on"] .nv-label { color: var(--nv-color-text-tertiary); text-decoration: line-through; text-decoration-color: color-mix(in srgb, currentColor 50%, transparent); }
.steps-card__list li[data-state="on"] .steps-card__go { display: none; }
.steps-card__done { display: none; align-items: center; gap: var(--nv-space-2); margin: 0; color: #16a34a; }
.steps-card.is-complete .steps-card__done { display: flex; }
.steps-card.is-complete .steps-card__list { display: none; }
.checklist li { align-items: center; }
.checklist__go { margin-inline-start: auto; min-block-size: 32px; }
.account-menu__langs { display: none; }
@media (max-width: 30rem) {
  .app__bar { flex-wrap: nowrap; gap: 6px; padding-inline: 10px; }
  .app__bar .language-control, .app__bar .appearance-control { display: none; }
  .account-menu__langs { display: block; }
  .bar-switch__btn { max-inline-size: 11rem; }
}

/* --- Prezent PexoBot+ od zespołu --------------------------------------------------------- */
.gift { inline-size: min(28rem, calc(100vw - 2rem)); padding: 0; overflow: hidden; text-align: center; }
.gift__burst { display: grid; place-items: center; block-size: 7rem; background: radial-gradient(circle at 50% 120%, #fde68a, #f59e0b 45%, var(--nv-brand) 100%); }
.gift__burst .plus-badge { font-size: 1.1rem; padding: 6px 16px; box-shadow: 0 6px 20px -6px rgb(0 0 0 / 0.4); animation: gift-pop 600ms var(--nv-ease-spring, cubic-bezier(.3,1.6,.5,1)) both; }
@keyframes gift-pop { from { scale: 0.4; opacity: 0; } }
.gift__body { padding: var(--nv-space-6); }
.gift__facts { display: flex; flex-direction: column; gap: var(--nv-space-2); margin: 0; padding: var(--nv-space-4); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); text-align: start; }
.gift__facts > div { display: flex; justify-content: space-between; gap: var(--nv-space-4); }
.gift__facts dt { color: var(--nv-color-text-tertiary); font: var(--nv-font-caption); }
.gift__facts dd { margin: 0; font: var(--nv-font-label); color: var(--nv-color-text-primary); text-align: end; }
.gift__reason { flex-direction: column; } .gift__reason dd { text-align: start; font-weight: var(--nv-font-weight-regular, 400); }
.gift__actions { justify-content: center; }
.gift__actions .nv-button { min-block-size: 44px; }
@media (prefers-reduced-motion: reduce) { .gift__burst .plus-badge { animation: none; } }

/* --- Szybkie przejście (Ctrl+K) ------------------------------------------------------------ */
.quick { inline-size: min(34rem, calc(100vw - 2rem)); padding: var(--nv-space-3); margin-block-start: 12vh; }
.quick__input { inline-size: 100%; min-block-size: 48px; font-size: 1rem; }
.quick__list { margin: var(--nv-space-2) 0 0; padding: 0; list-style: none; max-block-size: 50vh; overflow: auto; }
.quick__list a { display: flex; align-items: center; gap: var(--nv-space-2); min-block-size: 40px; padding: 0 var(--nv-space-3); border-radius: var(--nv-radius-md); color: var(--nv-color-text-primary); text-decoration: none; }
.quick__list a::after { margin-inline-start: auto; font: var(--nv-font-caption); color: var(--nv-color-text-tertiary); }
.quick__list a[data-kind="server"]::after { content: "#"; }
.quick__list a[data-kind="page"]::after { content: "↗"; }
.quick__list a[aria-selected="true"], .quick__list a:hover { background-color: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); }
.quick__none { padding: var(--nv-space-3); }
.bar-quick .kbd { margin-inline-start: 4px; padding: 0 5px; border-radius: 4px; background-color: var(--nv-color-surface-inset); }
@media (max-width: 62rem) { .bar-quick { display: none; } }

/* --- Bot się uruchamia (zaraz po restarcie) -------------------------------------------------- */
.starting__spin { animation: starting-pulse 1.4s ease-in-out infinite; }
@keyframes starting-pulse { 50% { scale: 0.92; opacity: 0.6; } }
@media (prefers-reduced-motion: reduce) { .starting__spin { animation: none; } }

/* --- Przewodnik twórcy addonów (/docs/addons) ------------------------------------------- */
.adoc { display: flex; flex-direction: column; gap: var(--nv-space-10); padding-block: var(--nv-space-10) var(--nv-space-12); max-inline-size: 64rem; }
.adoc-hero .nv-lead { max-inline-size: 60ch; }
.adoc-sec { display: flex; flex-direction: column; gap: var(--nv-space-4); scroll-margin-block-start: 90px; }
.adoc-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(15rem, 100%), 1fr)); gap: var(--nv-space-4); margin: 0; padding: 0; list-style: none; }
.adoc-steps__n { display: grid; place-items: center; inline-size: 2rem; block-size: 2rem; border-radius: var(--nv-radius-md); background-color: var(--nv-color-accent-subtle); color: var(--nv-color-accent-text); font-weight: var(--nv-font-weight-semibold); }
.adoc-examples { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.adoc-example summary { display: flex; align-items: center; justify-content: space-between; gap: var(--nv-space-4); cursor: pointer; list-style: none; }
.adoc-example summary::-webkit-details-marker { display: none; }
.adoc-code { margin: 0 var(--nv-space-4) var(--nv-space-4); max-block-size: 34rem; overflow: auto; font-size: 13px; line-height: 1.55; }
.adoc-table td { vertical-align: top; }
.adoc-nowrap { white-space: nowrap; }
.adoc-api { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: var(--nv-space-4); align-items: start; }
.adoc-api .nv-card__body { display: flex; flex-direction: column; gap: var(--nv-space-3); }
.adoc-dl { display: flex; flex-direction: column; gap: var(--nv-space-3); margin: 0; }
.adoc-dl dt code { font-family: var(--nv-font-family-mono); font-size: 13px; color: var(--nv-color-accent-text); overflow-wrap: anywhere; }
.adoc-dl dd { margin: 2px 0 0; color: var(--nv-color-text-secondary); font: var(--nv-font-caption); line-height: 1.55; }
.adoc-rules { display: flex; flex-direction: column; gap: var(--nv-space-2); margin: 0; padding: 0; list-style: none; }
.adoc-rules li { display: flex; gap: var(--nv-space-2); align-items: flex-start; }
.adoc-rules svg { flex: none; color: var(--nv-color-success); margin-block-start: 3px; }
@media (max-width: 48rem) { .adoc-api { grid-template-columns: minmax(0, 1fr); } .adoc-nowrap { white-space: normal; } }

/* --- Własne komendy: komendy bota (podmiana i skróty) ---------------------------------------- */
.cc-bot { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; max-block-size: 20rem; overflow: auto; }
.cc-bot li { display: flex; align-items: center; gap: var(--nv-space-2); padding: 6px 4px; border-block-end: var(--nv-border-width) solid var(--nv-color-border-subtle); }
.cc-alias { display: flex; flex-wrap: wrap; align-items: center; gap: var(--nv-space-2); }
.cc-alias .slash-input { flex: 0 1 12rem; }
.cc-alias .nv-select-menu, .cc-alias select { flex: 1 1 14rem; }
.cc-replacing { display: flex; align-items: center; gap: 6px; margin: 4px 0 0; color: var(--nv-color-accent-text); }

/* --- Akceptacja regulaminu i polityki prywatności -------------------------------------------- */
.consent { position: fixed; inset: 0; z-index: 1000; display: grid; place-items: center; padding: var(--nv-space-4); background: color-mix(in srgb, var(--nv-color-background) 70%, transparent); backdrop-filter: blur(14px) saturate(1.2); animation: nv-fade-in var(--nv-duration-normal, 250ms) ease both; }
.consent__box { inline-size: min(32rem, 100%); box-shadow: var(--nv-elevation-3); animation: consent-in var(--nv-duration-slow, 400ms) var(--nv-ease-entrance, ease-out) both; }
@keyframes consent-in { from { opacity: 0; translate: 0 12px; scale: 0.98; } }
.consent__actions { justify-content: flex-end; }
.consent__actions .nv-button { min-block-size: 44px; }
html.has-consent { overflow: hidden; }
.consent-checks { display: flex; flex-direction: column; gap: var(--nv-space-2); inline-size: 100%; text-align: start; }
.consent-check { display: flex; align-items: flex-start; gap: var(--nv-space-3); padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); cursor: pointer; font: var(--nv-font-label); line-height: 1.5; }
.consent-check input { inline-size: 20px; block-size: 20px; margin: 1px 0 0; flex: none; accent-color: var(--nv-color-accent); }
.consent-check a { color: var(--nv-color-accent-text); }
.consent-check:has(input:checked) { box-shadow: inset 0 0 0 1px var(--nv-color-accent-border); background-color: var(--nv-color-accent-subtle); }
@media (prefers-reduced-motion: reduce) { .consent, .consent__box { animation: none; } }

/* --- Czat jako bot: oznaczanie osób i ról -------------------------------------------------- */
.chat__composer { position: relative; }
.chat__picker { position: absolute; inset-inline: 16px; inset-block-end: calc(100% - 4px); z-index: 5; display: flex; flex-direction: column; gap: 6px; max-block-size: 18rem; padding: 8px; border-radius: 8px; background: var(--dc-bg-2); border: 1px solid var(--dc-bg-3); box-shadow: 0 8px 24px rgb(0 0 0 / 0.35); }
.chat__picker[hidden] { display: none; }
.chat__picker-list { overflow-y: auto; display: flex; flex-direction: column; gap: 2px; }
.chat__pick { display: flex; align-items: center; gap: 10px; inline-size: 100%; min-block-size: 36px; padding: 4px 8px; border: 0; border-radius: 4px; background: transparent; color: var(--dc-text); font: inherit; font-size: 14px; text-align: start; cursor: pointer; }
.chat__pick[aria-selected="true"], .chat__pick:hover { background: var(--dc-hover); }
.chat__pick img, .chat__pick-ico { inline-size: 24px; block-size: 24px; flex: none; border-radius: 50%; display: grid; place-items: center; background: var(--dc-bg-3); font-weight: 700; }
.chat__pick-name { font-weight: 600; color: var(--dc-head); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat__pick-sub { margin-inline-start: auto; font-size: 12px; color: var(--dc-muted); white-space: nowrap; }
.chat__pick-none { padding: 10px; font-size: 13px; color: var(--dc-muted); }
/* W wąskim podglądzie na stronie głównej okładka jest mniejsza, żeby pasek postępu miał miejsce. */
.discord-preview .dc-player__art { inline-size: 56px; block-size: 56px; font-size: 22px; }

/* --- Pandor Systems: strona projektu (views/systems.ejs) ------------------------------------- */
.sys-hero { align-items: center; }
.sys-stats { max-inline-size: 26rem; inline-size: 100%; justify-self: end; }
.sys-stats .nv-card__body { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.sys-stat { display: flex; flex-direction: column; gap: 2px; min-inline-size: 0; }
.sys-stat__n { font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.1; font-weight: 700; letter-spacing: -0.02em; }
.sys-stat--live { grid-column: 1 / -1; }
.sys-projects { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 16px; }
.system--soon { opacity: 0.85; }
@media (max-width: 48rem) { .sys-stats { justify-self: stretch; max-inline-size: none; } }
/* Addony z kodem: lista komend i logi w oknie ustawień. */
.addon-cmds { margin: 0; padding-inline-start: 1.1rem; display: grid; gap: 4px; }
.addon-logs { margin: 4px 0 0; padding: 6px 8px; max-block-size: 8rem; overflow: auto; border-radius: 6px; background: var(--nv-color-surface-inset, rgb(127 127 127 / .12)); font-size: 12px; white-space: pre-wrap; }

/* ---------- Centrum diagnostyki ---------- */
.dg-sum .tile { background-color: var(--nv-color-success-subtle); color: var(--nv-color-success-text); }
.dg-sum--warn .tile { background-color: var(--nv-color-warning-subtle); color: var(--nv-color-warning-text); }
.dg-sum--error .tile { background-color: var(--nv-color-danger-subtle); color: var(--nv-color-danger-text); }
.dg-sum .nv-card__body { flex-wrap: wrap; }
.dg-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--nv-space-4); align-items: start; }
@media (max-width: 64rem) { .dg-grid { grid-template-columns: minmax(0, 1fr); } }
.dg-mods, .dg-issues { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-space-3); }
.dg-mod { padding-block-end: var(--nv-space-3); border-block-end: 1px solid var(--nv-color-border); display: grid; gap: var(--nv-space-2); }
.dg-mod:last-child { border-block-end: 0; padding-block-end: 0; }
.dg-mod__head { display: flex; align-items: center; gap: var(--nv-space-2); flex-wrap: wrap; }
.dg-mod__head > a.nv-label { color: inherit; text-decoration: none; margin-inline-end: auto; }
.dg-mod__head > a.nv-label:hover { text-decoration: underline; }
.dg-issue { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--nv-space-2); align-items: start; overflow-wrap: anywhere; }
.dg-issue__dot { inline-size: var(--nv-space-2); block-size: var(--nv-space-2); margin-block-start: .45em; border-radius: var(--nv-radius-full); background-color: var(--nv-color-text-tertiary); }
.dg-issue--error .dg-issue__dot { background-color: var(--nv-color-danger); }
.dg-issue--warn .dg-issue__dot { background-color: var(--nv-color-warning); }
.dg-issue--info .dg-issue__dot { background-color: var(--nv-color-accent); }
.dg-off summary { cursor: pointer; margin-block: var(--nv-space-2); }
.dg-cmds { display: flex; flex-wrap: wrap; gap: var(--nv-space-1); }
.dg-tool { display: grid; gap: var(--nv-space-3); }
.dg-tool__pair { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: var(--nv-space-3); }
@media (max-width: 40rem) { .dg-tool__pair { grid-template-columns: minmax(0, 1fr); } }
.dg-out { padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background-color: var(--nv-color-surface-inset); display: grid; gap: var(--nv-space-2); margin-block-start: var(--nv-space-2); }

/* ---------- Anty-raid ---------- */
.ar-live .tile { background-color: var(--nv-color-success-subtle); color: var(--nv-color-success-text); }
.ar-live.is-active { border-color: var(--nv-color-danger-border); }
.ar-live.is-active .tile { background-color: var(--nv-color-danger-subtle); color: var(--nv-color-danger-text); }
.ar-live .nv-card__body.row { flex-wrap: wrap; }
.ar-tl, .ar-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-space-2); }
.ar-ev { display: flex; gap: var(--nv-space-2); align-items: baseline; overflow-wrap: anywhere; }
.ar-ev--error .nv-label { color: var(--nv-color-danger-text); }
.ar-list .nv-disclosure__summary .row { flex-wrap: wrap; gap: var(--nv-space-2); }

/* ---------- Motyw marki: pomarańcz + nocny fiolet (stały; ozdoby sezonowe są w public/seasonal/) ---------- */
body {
  background-image:
    radial-gradient(60rem 22rem at 85% -6rem, color-mix(in srgb, var(--nv-brand) 16%, transparent), transparent 70%),
    radial-gradient(50rem 20rem at 5% -8rem, color-mix(in srgb, var(--brand-2) 14%, transparent), transparent 70%);
  background-repeat: no-repeat;
}
.nk-items { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-space-1); }
.nk-items .nv-choice { display: flex; gap: var(--nv-space-2); align-items: center; flex-wrap: wrap; }
.fp .vw-card { inline-size: min(40rem, 100%); } .fp-form { inline-size: 100%; text-align: start; } .fp-desc { white-space: pre-line; text-align: start; }

/* ---------- Formularze ---------- */
.fm-q { display: grid; grid-template-columns: auto minmax(0, 2fr) minmax(0, 1fr) auto; gap: var(--nv-space-3); align-items: end; }
.fm-q__n { align-self: center; inline-size: 1.5rem; text-align: center; color: var(--nv-color-text-tertiary); }
.fm-q__req { align-self: center; }
@media (max-width: 40rem) { .fm-q { grid-template-columns: auto minmax(0, 1fr); } .fm-q > :nth-child(n+3) { grid-column: 2; } }
.fm-answers { display: grid; gap: var(--nv-space-2); margin: 0; } .fm-answers dd { margin: 0; white-space: pre-line; overflow-wrap: anywhere; }
.fm-notes { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-space-2); }
.fm-note { display: flex; gap: var(--nv-space-2); } .fm-note .nv-input { flex: 1; }

/* Znak marki (views/logo.ejs): kafel w stylu Niveus z pomarańczowym gradientem. */
.brand-mark { inline-size: 1.75em; block-size: 1.75em; flex: none; border-radius: 27%; box-shadow: 0 4px 12px -4px color-mix(in srgb, var(--nv-brand) 60%, transparent); }

/* Moderacja → Odwołania: link do strony odwołań z przyciskiem kopiowania */
.ap-link { display: flex; gap: var(--nv-space-2); align-items: center; }
.ap-link .nv-input { flex: 1; min-inline-size: 0; font-family: var(--nv-font-mono, monospace); }

/* Weryfikacja dwuetapowa (2FA) przy kluczu API AI */
.tfa { --_width: 30rem; }
.tfa__body { padding: var(--nv-space-6); }
.tfa__code { font-family: var(--nv-font-mono, monospace); font-size: 1.4rem; letter-spacing: .3em; text-align: center; }
.tfa__qr { display: grid; place-items: center; padding: var(--nv-space-3); background: #fff; border-radius: var(--nv-radius-lg); inline-size: min(14rem, 100%); margin-inline: auto; }
.tfa__qr svg { inline-size: 100%; block-size: auto; display: block; }
.tfa__secret { display: block; word-break: break-all; user-select: all; font-size: .95rem; }
.tfa__codes { margin: 0; padding: var(--nv-space-3); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-sunken, rgba(127,127,127,.12)); font-family: var(--nv-font-mono, monospace); columns: 2; line-height: 1.8; user-select: all; }
.tfa__warn { display: flex; gap: var(--nv-space-2); align-items: flex-start; }
.tfa__actions { justify-content: flex-end; }
.tfa-apps { margin: 0; padding-inline-start: 1.1rem; display: grid; gap: var(--nv-space-1); }
.tfa-row { border-block-start: var(--nv-border-width, 1px) solid var(--nv-color-border-subtle); padding-block-start: var(--nv-space-3); }

/* Eksport / import ustawień między serwerami */
.tr-mods { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: var(--nv-space-2) var(--nv-space-4); }
.tr-map { display: grid; gap: var(--nv-space-2); }
.tr-map__row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: var(--nv-space-3); align-items: center; padding: var(--nv-space-2) var(--nv-space-3); border-radius: var(--nv-radius-md); background: var(--nv-color-surface-sunken, rgba(127,127,127,.08)); }
.tr-map__row.is-missing { box-shadow: inset 3px 0 0 var(--nv-color-warning, #f59e0b); }
@media (max-width: 40rem) { .tr-map__row { grid-template-columns: 1fr; } .tr-map__row > [aria-hidden] { display: none; } }
.tfa h2 { display: flex; align-items: center; gap: var(--nv-space-2); }
.tfa-lock { border: 1px solid color-mix(in srgb, #6366f1 40%, transparent); }
.tfa-why { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--nv-space-2); }
.tfa-why li { display: flex; gap: var(--nv-space-2); align-items: flex-start; }

/* Ustawienia konta */
.acc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 24rem), 1fr)); gap: var(--nv-space-4); margin-block-start: var(--nv-space-4); align-items: start; }
.acc-grid .nv-card__title { display: flex; align-items: center; gap: var(--nv-space-2); }
.acc-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: var(--nv-space-3); margin: 0; }
.acc-facts dt { font-size: .8rem; color: var(--nv-color-text-tertiary); }
.acc-facts dd { margin: 0; font-weight: 600; }
.acc-warn { color: var(--nv-color-warning, #d97706); }
.acc-list { margin: 0; padding-inline-start: 1.1rem; display: grid; gap: var(--nv-space-1); }
.acc-servers { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--nv-space-2); max-block-size: 22rem; overflow: auto; }
.acc-servers li { display: flex; align-items: center; gap: var(--nv-space-3); }
.acc-servers .ic { inline-size: 28px; block-size: 28px; border-radius: 50%; display: grid; place-items: center; flex: none; }
.tfa-banner { margin-block-end: var(--nv-space-4); border: 1px solid color-mix(in srgb, #6366f1 40%, transparent); }
.tfa-banner .row { flex-wrap: wrap; gap: var(--nv-space-4); }
