:is(.cao-public-list, .cao-public-detail) {
  --cao-color-text: #1a1a1a;
  --cao-color-border: #c5c7c9;
  --cao-color-input-border: #5b6570;
  --cao-color-muted: #5c6670;
  --cao-color-primary: #065299;
  --cao-color-surface: #fff;
  --cao-color-filter-surface: #f5f6f7;
  --cao-color-focus: #1a1a1a;
  --cao-color-primary-hover: #003d73;
  --cao-color-status-surface: #e3eef9;
  --cao-color-status-text: #17324d;
  --cao-color-danger: #a5252a;
  --cao-color-danger-surface: #fff4f4;
  --cao-color-danger-status-surface: #f7e5e5;
  --cao-color-danger-status-text: #751b20;

  --cao-radius: 0.25rem;
  --cao-control-block-size: 2.75rem;
  --cao-space-xs: 0.25rem;
  --cao-space-sm: 0.5rem;
  --cao-space-md: 0.75rem;
  --cao-space-lg: 1rem;
  --cao-space-xl: 1.5rem;
  --cao-space-xxl: 2rem;

  display: grid;
  gap: var(--cao-space-xxl);

  color: var(--cao-color-text);

  .cao-visually-hidden {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }

  :is(h2, p) {
    margin-block: 0;
  }

  .cao-public-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
    gap: var(--cao-space-lg);
    padding: var(--cao-space-xxl);
    border: 1px solid var(--cao-color-border);
    border-radius: var(--cao-radius);
    background-color: var(--cao-color-filter-surface);
  }

  .cao-filter-field {
    display: flex;
    flex-direction: column;
    gap: var(--cao-space-sm);

    label {
      font-weight: 700;
    }

    :is(input, select) {
      min-block-size: var(--cao-control-block-size);
      padding: var(--cao-space-sm);
      border: 1px solid var(--cao-color-input-border);
      border-radius: var(--cao-radius);
      background-color: var(--cao-color-surface);
      color: var(--cao-color-text);
      font: inherit;
    }

    &:has(select) {
      position: relative;

      > select {
        appearance: none;
      }

      &::before {
        content: "";
        position: absolute;
        inset: auto 1px 1px 0;

        block-size: calc(var(--cao-control-block-size) - 2px);
        background-image: linear-gradient(to right, transparent 65%, var(--cao-color-surface) 85%);
        border-radius: var(--cao-radius);

        user-select: none;
        pointer-events: none;
      }

      &::after {
        content: "";
        position: absolute;
        inset: auto 0.9rem 1.15rem auto;
        z-index: 1;

        inline-size: 0.5rem;
        block-size: 0.5rem;
        border-inline-end: 2px solid currentColor;
        border-block-end: 2px solid currentColor;
        transform: rotate(45deg);

        user-select: none;
        pointer-events: none;
      }
    }
  }

  .cao-filter-search {
    grid-column: 1 / -1;
  }

  :is(a, button, input, select, textarea):focus-visible {
    outline: 0.1875rem solid var(--cao-color-focus);
    outline-offset: 0.1875rem;
    box-shadow: 0 0 0 0.125rem var(--cao-color-surface);
  }

  .cao-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--cao-space-lg);

    a {
      display: inline-flex;
      align-items: center;
      min-block-size: var(--cao-control-block-size);
      color: var(--cao-color-primary);

      &:is(:hover, :focus-visible) {
        color: var(--cao-color-primary-hover);
      }
    }

    button {
      --cao-button-background: var(--cao-color-primary);
      --cao-button-text: var(--cao-color-surface);

      min-block-size: var(--cao-control-block-size);
      padding: var(--cao-space-sm) var(--cao-space-lg);
      border: 2px solid var(--cao-button-background);
      border-radius: var(--cao-radius);
      background-color: var(--cao-button-background);
      color: var(--cao-button-text);
      font: inherit;
      font-weight: 700;
      cursor: pointer;

      &:is(:hover, :focus-visible) {
        border-color: var(--cao-color-primary-hover);
        background-color: var(--cao-color-primary-hover);
      }
    }
  }

  .cao-results-count {
    color: var(--cao-color-muted);
  }

  .cao-acts-list {
    display: grid;
    gap: var(--cao-space-lg);
  }

  .cao-act-card {
    padding: var(--cao-space-xxl);
    border: 1px solid var(--cao-color-border);
    border-inline-start: 0.375rem solid var(--cao-color-primary);
    border-radius: var(--cao-radius);
    background-color: var(--cao-color-surface);

    &.cao-act-status-annulled {
      border-inline-start-color: var(--cao-color-danger);

      .cao-act-status {
        background-color: var(--cao-color-danger-status-surface);
        color: var(--cao-color-danger-status-text);
      }
    }
  }

  .cao-act-header {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--cao-space-sm) var(--cao-space-lg);
  }

  :is(.cao-act-registry, .cao-act-title) {
    margin: 0;
  }

  .cao-act-title {
    grid-column: 1 / -1;
    font-size: 1.25rem;

    a {
      color: var(--cao-color-primary);
      text-decoration-thickness: 0.08em;
      text-underline-offset: 0.15em;
    }
  }

  .cao-act-status {
    align-self: start;
    padding: 0.125rem var(--cao-space-sm);
    border-radius: 1rem;
    background-color: var(--cao-color-status-surface);
    color: var(--cao-color-status-text);
    font-size: 0.875rem;
    font-weight: 700;
  }

  .cao-act-metadata {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: var(--cao-space-md) var(--cao-space-xl);
    margin-block: var(--cao-space-lg) 0;

    div {
      min-inline-size: 0;
    }

    dt {
      color: var(--cao-color-muted);
      font-size: 0.875rem;
      font-weight: 700;
    }

    dd {
      margin: 0.125rem 0 0;
    }
  }

  .cao-act-annulment {
    margin-block-start: var(--cao-space-lg);
    padding: var(--cao-space-md) var(--cao-space-lg);
    border-inline-start: var(--cao-space-xs) solid var(--cao-color-danger);
    background-color: var(--cao-color-danger-surface);

    p {
      margin-block: var(--cao-space-xs) 0;
    }
  }

  .cao-pagination {
    margin-block-start: var(--cao-space-xl);

    .page-numbers {
      display: flex;
      flex-wrap: wrap;
      gap: var(--cao-space-sm);
      padding: 0;
      list-style: none;
    }

    :is(a, .current) {
      display: inline-flex;
      align-items: center;
      min-block-size: var(--cao-control-block-size);
      padding-inline: 0.875rem;
      border: 1px solid var(--cao-color-border);
      border-radius: var(--cao-radius);
    }

    .current {
      border-color: var(--cao-color-primary);
      background-color: var(--cao-color-primary);
      color: var(--cao-color-surface);
      font-weight: 700;
    }
  }

  .cao-detail-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cao-space-sm);
    align-items: center;
    color: var(--cao-color-muted);
    font-size: 0.9375rem;

    a {
      display: inline-flex;
      align-items: center;
      min-block-size: var(--cao-control-block-size);
    }
  }

  .cao-detail-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: var(--cao-space-lg);
    padding-block-end: var(--cao-space-lg);
    border-block-end: 1px solid var(--cao-color-border);
  }

  .cao-detail-metadata {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
    gap: var(--cao-space-lg);
    margin: 0;
    padding: var(--cao-space-xxl);
    border: 1px solid var(--cao-color-border);
    border-radius: var(--cao-radius);
    background-color: var(--cao-color-filter-surface);

    div {
      min-inline-size: 0;
    }

    dt {
      color: var(--cao-color-muted);
      font-size: 0.875rem;
      font-weight: 700;
    }

    dd {
      margin: var(--cao-space-sm) 0 0;
    }
  }

  :is(.cao-detail-content, .cao-detail-attachments) {
    display: grid;
    gap: var(--cao-space-md);

    h2 {
      margin: 0;
      font-size: 1.375rem;
    }
  }

  .cao-detail-attachments {
    a {
      color: var(--cao-color-primary);
      text-decoration-thickness: 0.08em;
      text-underline-offset: 0.15em;
    }

    > ul > li > strong > a {
      display: inline-flex;
      align-items: center;
      min-block-size: var(--cao-control-block-size);
    }

    > ul {
      display: grid;
      gap: var(--cao-space-lg);
      margin: 0;
      padding: 0;
      list-style: none;
    }

    > ul > li {
      padding: var(--cao-space-xxl);
      border: 1px solid var(--cao-color-border);
      border-radius: var(--cao-radius);
    }

    dl {
      display: grid;
      gap: var(--cao-space-sm);
      margin-block: var(--cao-space-md) 0;

      div {
        display: grid;
        grid-template-columns: minmax(7rem, max-content) minmax(0, 1fr);
        gap: var(--cao-space-md);
      }

      dt {
        color: var(--cao-color-muted);
        font-weight: 700;
      }

      dd {
        min-inline-size: 0;
        margin: 0;
      }

      code {
        overflow-wrap: anywhere;
      }
    }
  }

  .cao-detail-download-note {
    color: var(--cao-color-muted);
    font-size: 0.9375rem;
  }

  .cao-detail-back {
    padding-block-start: var(--cao-space-lg);
    border-block-start: 1px solid var(--cao-color-border);
  }

  :is(.cao-act-title, dd, code, .cao-detail-content, .cao-detail-attachments a) {
    overflow-wrap: anywhere;
  }

  @media (width <= 37.5rem) {
    .cao-act-header {
      justify-items: start;
      grid-template-columns: 1fr;
    }

    .cao-act-title {
      grid-column: auto;
    }

    .cao-detail-attachments dl div {
      grid-template-columns: 1fr;
      gap: var(--cao-space-xs);
    }
  }

  @media (forced-colors: active) {
    :is(a, button, input, select, textarea):focus-visible {
      outline-color: CanvasText;
      box-shadow: none;
    }

    :is(.cao-act-card, .cao-public-filters, .cao-detail-metadata, .cao-detail-attachments > ul > li) {
      border-color: CanvasText;
    }
  }
}
