.panel {
  --base-space: 1.6rem;
  --panel-max-width: 68em;
  --panel-padding-inline: var(--base-space);
  --panel-margin-inline-negative: calc(var(--panel-padding-inline) * -1);
  --panel-radius: 8px;
  --recordable-block-padding: calc(var(--base-space) * 2);
  --recordable-inline-padding: calc(var(--base-space) * 4);

  background: var(--color-bg--surface);
  border-top: 1px solid oklch(0.85 0.01 70 / 0.4);
  border-radius: 8px;
  color: var(--color-ink--surface);
  inline-size: 100%;
  max-inline-size: var(--panel-max-width);
  margin-inline: auto;
  padding-inline: var(--panel-padding-inline);
  padding-block-end: calc(var(--base-space) * 2);
}

@media screen and (min-width: 768px) {
  .panel {
    --panel-padding-inline: calc(var(--base-space) * 2);
  }
}

.panel__header {
  margin-block-end: var(--block-space);
}

.panel__title {
  font-size: var(--text-large);
  font-weight: 700;
  margin: 0;
}

.panel__description {
  color: var(--color-ink-dark);
  font-size: var(--text-small);
  margin-block-start: var(--block-space-half);
}

.panel__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--block-space-half) var(--inline-space);
  margin-block-end: var(--block-space);
}

.panel__body {
  /* Default body styles */
}

.panel__empty {
  color: var(--color-ink-dark);
  font-style: italic;
  padding: var(--block-space);
  text-align: center;
}

.panel__footer {
  margin-block-start: var(--block-space);
}

/*
 * Wide panel (prose-width, responsive)
 */
.panel--wide {
  background: var(--color-bg--surface);
  border-radius: var(--panel-radius, 0.75em);
  inline-size: min(95%, var(--size-content-4));
}

/*
 * Perma panel - extends to bottom of page, responsive padding
 * Used for community, project pages, etc.
 */
.panel--perma {
  --panel-pad: 16px;
  box-sizing: border-box;
  max-width: 1088px;
  min-block-size: calc(100vh - var(--nav-height, 4rem));
  padding: var(--base-space) var(--panel-pad) 32px;
  position: relative;
  width: 100%;
}

@media screen and (min-width: 768px) {
  .panel--perma {
    --panel-pad: 128px;
    border-radius: 8px 8px 0 0;
    box-shadow:
      0 -1px 3px oklch(0.5 0.03 70 / 0.08),
      0 -4px 12px oklch(0.5 0.03 70 / 0.06),
      0 -8px 24px oklch(0.5 0.03 70 / 0.04);
    padding: var(--base-space) var(--panel-pad) 32px;
  }
}

/*
 * Narrow panel
 */
.panel--narrow {
  max-inline-size: 32rem;
  margin-inline: auto;
}

/*
 * Centered panel
 * For authentication pages, dialogs, etc.
 */
.panel--centered {
  --panel-padding: var(--block-space-double) var(--inline-space-double);

  max-inline-size: 24rem;
  margin-inline: auto;
}

/*
 * Panel with shadow
 */
.panel--elevated {
  box-shadow: var(--shadow);
}

/*
 * Panel with border
 */
.panel--outlined {
  border: var(--border);
}

/*
 * Compact panel
 */
.panel--compact {
  --panel-padding: var(--block-space-half) var(--inline-space-half);
}

/*
 * Shaded background
 */
.panel--shaded {
  --panel-bg: var(--color-ink-lightest);
}
