html,
body {
  background: var(--ds-color-neutral-background);
  color: var(--ds-color-neutral-text-primary);
  font-family: var(--ds-font-family-base);
  font-size: var(--ds-font-size-sm);
  line-height: var(--ds-line-height-normal);
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--ds-color-neutral-text-primary);
  font-family: var(--ds-font-family-base);
  font-weight: var(--ds-font-weight-semibold);
  line-height: var(--ds-line-height-tight);
  letter-spacing: 0;
}

h1 { font-size: var(--ds-font-size-xxl); }
h2 { font-size: var(--ds-font-size-xl); }
h3 { font-size: var(--ds-font-size-lg); }
h4 { font-size: var(--ds-font-size-md); }

p,
li,
label,
input,
textarea,
select,
button {
  font-family: var(--ds-font-family-base);
}

p,
li {
  color: var(--ds-color-neutral-text-secondary);
  font-size: var(--ds-font-size-sm);
  line-height: var(--ds-line-height-normal);
}

small,
.wp-caption-text,
figcaption {
  color: var(--ds-color-neutral-text-muted);
  font-size: var(--ds-font-size-xs);
}

.wp-element-button,
.wp-block-button__link,
button,
input[type="button"],
input[type="submit"] {
  min-height: var(--ds-size-target-min);
  min-width: var(--ds-size-target-min);
  border-radius: var(--ds-radius-md);
}

input,
textarea,
select {
  border: 1px solid var(--ds-color-neutral-border-strong);
  border-radius: var(--ds-radius-md);
  padding: var(--ds-space-1) var(--ds-space-2);
  background: var(--ds-color-neutral-surface);
  color: var(--ds-color-neutral-text-primary);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--ds-color-neutral-focus);
  outline-offset: 2px;
}

.wp-site-blocks,
.wp-block-group,
.wp-block-post-content {
  color: inherit;
}

/* AoN portal page: break out of Twenty Twenty-Five constrained widths */
.page-slug-aon-world .wp-site-blocks,
.page-slug-aon-world .wp-block-post-content,
.page-slug-aon-world main,
.page-slug-aon-world .entry-content {
  max-width: none;
}

.page-slug-aon-world .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.page-slug-aon-world .wp-block-post-content > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  max-width: none;
}

.page-slug-aon-world .wp-block-post-content,
.page-slug-aon-world .entry-content {
  padding-left: var(--ds-space-2);
  padding-right: var(--ds-space-2);
}

/* AoN plugin integration */
.aon-portal {
  --aonp-bg: var(--ds-color-neutral-background);
  --aonp-card: var(--ds-color-neutral-surface);
  --aonp-text: var(--ds-color-neutral-text-primary);
  --aonp-muted: var(--ds-color-neutral-text-secondary);
  --aonp-stroke: var(--ds-color-neutral-border);
  --aonp-accent: var(--ds-color-neutral-text-primary);
  width: min(1920px, calc(100vw - var(--ds-space-4)));
  margin: var(--ds-space-3) auto;
  background: var(--ds-color-neutral-surface-raised);
  border: 1px solid var(--ds-color-neutral-border);
  border-radius: var(--ds-radius-lg);
  box-shadow: var(--ds-shadow-md);
}

.aon-portal .button {
  min-height: var(--ds-size-target-min);
  min-width: var(--ds-size-target-min);
  padding: 0 var(--ds-space-2);
  border-radius: var(--ds-radius-md);
  border: 1px solid var(--ds-color-neutral-border-strong);
  background: var(--ds-color-neutral-surface);
  color: var(--ds-color-neutral-text-primary);
  font-size: var(--ds-font-size-sm);
  font-weight: var(--ds-font-weight-medium);
}

.aon-portal .button.button-primary,
.aon-portal-admin-link {
  background: var(--ds-color-neutral-text-primary);
  border-color: var(--ds-color-neutral-text-primary);
  color: var(--ds-color-neutral-surface);
}

.aon-portal-card,
.aon-portal-module,
.aon-portal-table,
.aon-portal-chart-card,
.aon-stat-card,
.aon-month-block {
  border-radius: var(--ds-radius-md);
}

.aon-portal-auth,
.aon-portal-notice,
.aon-portal-folder-chip {
  border-radius: var(--ds-radius-sm);
}

.aon-portal-notice-success {
  background: var(--ds-color-feedback-success-bg);
  color: var(--ds-color-feedback-success-text);
}

.aon-portal-notice-error {
  background: var(--ds-color-feedback-error-bg);
  color: var(--ds-color-feedback-error-text);
}

@media (max-width: 960px) {
  .page-slug-aon-world .wp-block-post-content,
  .page-slug-aon-world .entry-content {
    padding-left: var(--ds-space-1);
    padding-right: var(--ds-space-1);
  }

  .aon-portal {
    width: calc(100vw - var(--ds-space-2));
    margin: var(--ds-space-2) auto;
  }
}
