/* Lobby, invite and tracker pages: cards, campaign list, create and join forms. Loaded after
   /assets/account.css; every colour, radius and space comes from the --dm-* tokens. */
main.wide {
  max-width: 60rem;
}
.row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dm-space-2);
  align-items: center;
}
.row > * {
  margin-top: 0;
}
/* buttons of the lobby and invite pages: cut corners, border drawn by cut.css (.cut-edge) */
body[data-page^='play'] a.button,
body[data-page^='play'] main button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: 2.75rem;
  margin-top: 0;
  padding: 0.4rem 1.2rem;
  font: inherit;
  font-weight: var(--dm-weight-strong);
  text-decoration: none;
  cursor: pointer;
  --edge: var(--dm-accent);
  --fill: var(--dm-accent);
  color: var(--dm-on-accent);
}
body[data-page^='play'] a.button:hover,
body[data-page^='play'] main button:hover:not([disabled]) {
  --edge: var(--dm-accent-hover);
  --fill: var(--dm-accent-hover);
}
body[data-page^='play'] a.button.secondary,
body[data-page^='play'] main button.secondary {
  --edge: var(--dm-border-strong);
  --fill: var(--dm-surface-raised);
  color: var(--dm-text);
}
body[data-page^='play'] a.button.secondary:hover,
body[data-page^='play'] main button.secondary:hover:not([disabled]) {
  --fill: var(--dm-surface-sunken);
}
body[data-page^='play'] main button.danger {
  --edge: var(--dm-danger);
  --fill: var(--dm-danger);
  color: var(--dm-on-danger);
}
.campaign h2 {
  margin: 0 0 var(--dm-space-1);
  font-size: 1.25rem;
  overflow-wrap: anywhere;
}
.campaign p {
  margin: 0 0 var(--dm-space-3);
}
.campaign .status:empty {
  display: none;
}
form[data-create-campaign] .status .btn {
  display: flex;
  width: fit-content;
  margin-top: var(--dm-space-2);
}
.badge {
  display: inline-block;
  vertical-align: middle;
  font-size: 0.75rem;
  font-weight: var(--dm-weight-strong);
  padding: 0.05rem 0.6rem;
  border: 1px solid var(--dm-border-strong);
  color: var(--dm-text-muted);
}
.limits {
  display: grid;
  grid-template-columns: max-content 1fr;
  gap: var(--dm-space-1) var(--dm-space-4);
  margin: 0;
}
.limits dt {
  font-weight: var(--dm-weight-body);
  color: var(--dm-text-muted);
}
.limits dd {
  margin: 0;
}
form.inline {
  display: flex;
  gap: var(--dm-space-2);
  align-items: flex-end;
}
form.inline > div {
  flex: 1;
}
form.inline button {
  margin-top: 0;
}
.empty {
  color: var(--dm-text-muted);
}
body.embedded main {
  max-width: none;
  padding: 0.5rem;
}
body.embedded h1,
body.embedded nav {
  display: none;
}
/* the licence notice holds two long web addresses */
.attribution {
  overflow-wrap: anywhere;
  font-size: 0.8rem;
  color: var(--dm-text-muted);
  margin-top: var(--dm-space-4);
}
ul.plain {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* the lobby: campaigns side by side, the forms below */
.lobby-welcome {
  margin: 0 0 var(--dm-space-4);
  color: var(--dm-text-muted);
}
.plain.lobby-grid {
  display: grid;
  gap: var(--dm-space-4);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr));
  align-items: start;
  margin-bottom: var(--dm-space-5);
}
.lobby-grid > .card,
.lobby-grid > li.card {
  margin: 0;
}
.lobby-grid .campaign {
  display: flex;
  flex-direction: column;
  /* an accent outline, drawn by tokens.css so it follows the cut corners (a plain border-top was
     clipped short at both slants) */
  --dm-edge: var(--dm-accent);
  --dm-edge-w: 2px;
}
.lobby-forms {
  display: grid;
  gap: var(--dm-space-4);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  align-items: start;
  margin-bottom: var(--dm-space-4);
}
.lobby-forms > .card {
  margin: 0;
}
.lobby-forms h2,
.lobby-grid + h2 {
  margin-top: 0;
}
main h2.section-title {
  font-size: 1.4rem;
  margin: var(--dm-space-5) 0 var(--dm-space-3);
}
@media (max-width: 480px) {
  form.inline {
    flex-direction: column;
    align-items: stretch;
  }
}

.howto {
  margin: var(--dm-space-4) 0;
}
.howto summary {
  cursor: pointer;
  font-weight: var(--dm-weight-strong);
  color: var(--dm-heading);
  min-height: 44px;
  display: flex;
  align-items: center;
}
body[data-page='tracker'] main > h1 {
  margin-bottom: var(--dm-space-3);
}
body[data-page='tracker'] #banner {
  display: none;
}
/* the licence notice stays in the embedded tracker: the creature list needs it */
body.embedded .howto {
  display: none;
}
body[data-page^='play'] form:not(.inline) button[type='submit'] {
  margin-top: var(--dm-space-3);
}
