/*
 * PääAsia Design System · governance layer
 *
 * Loaded last inside the DS package. This file is deliberately small: it
 * gives legacy Hallinta views the shared component contract while each view
 * is migrated away from its old local CSS.
 */

:where(
  .pa-disclosure,
  .pa-disclosure-card,
  .pa-inventory__section,
  .pa-inventory__mail-import,
  .pa-partner-identifiers,
  .pa-partner-contract-card,
  .pa-partner-import
) {
  border: 0;
  border-bottom: var(--pa-border-width) solid var(--pa-color-border);
  background: transparent;
  color: var(--pa-color-text-primary);
}

:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary {
  align-items: center;
  box-sizing: border-box;
  color: var(--pa-color-accent);
  cursor: pointer;
  display: flex;
  gap: var(--pa-spacing-m);
  justify-content: space-between;
  list-style: none;
  min-height: 64px;
  padding: var(--pa-spacing-s) 0;
}

:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary::-webkit-details-marker {
  display: none;
}

:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary:focus-visible {
  border-radius: var(--pa-radius-small);
  outline: var(--pa-focus-width) solid var(--pa-color-focus);
  outline-offset: var(--pa-spacing-xs);
}

:where(.pa-disclosure, .pa-disclosure-card) > summary [data-pa-disclosure-icon],
:where(.pa-disclosure, .pa-disclosure-card) > summary > b:last-child {
  color: var(--pa-color-text-secondary);
  flex: 0 0 auto;
  transition: transform var(--pa-transition-base);
}

:where(.pa-disclosure, .pa-disclosure-card)[open] > summary [data-pa-disclosure-icon],
:where(.pa-disclosure, .pa-disclosure-card)[open] > summary > b:last-child {
  transform: rotate(180deg);
}

.pa-disclosure__content {
  padding-block: 0 var(--pa-spacing-l);
}

/* Official list-card contract. Layout may be refined by the owning view. */
:where(.pa-list-card, .pa-case-list-card, .pa-partner-card) {
  background: var(--pa-color-surface);
  border: var(--pa-border-width) solid var(--pa-color-border);
  border-radius: var(--pa-radius-medium);
  box-shadow: var(--pa-shadow-small);
  color: var(--pa-color-text-primary);
}

:where(a, button).pa-list-card {
  text-decoration: none;
  transition:
    background-color var(--pa-transition-base),
    border-color var(--pa-transition-base),
    box-shadow var(--pa-transition-base),
    transform var(--pa-transition-base);
}

:where(a, button).pa-list-card:hover {
  background: color-mix(in srgb, var(--pa-color-surface) 94%, var(--pa-color-accent));
  border-color: color-mix(in srgb, var(--pa-color-border) 55%, var(--pa-color-accent));
}

:where(a, button).pa-list-card:focus-visible {
  outline: var(--pa-focus-width) solid var(--pa-color-focus);
  outline-offset: var(--pa-spacing-xs);
}

/* Legacy view adapters. The appearance is owned here, not by the view. */
.pa-partner-registry .pa-button.pa-button--primary,
.pa-inventory .pa-button.pa-button--primary {
  background: var(--pa-action-primary-background);
  border: var(--pa-button-border-width) solid var(--pa-action-primary-background);
  border-radius: var(--pa-control-radius);
  color: var(--pa-action-primary-text);
  min-height: var(--pa-control-height-compact);
}

.pa-partner-registry .pa-button.pa-button--secondary,
.pa-partner-registry .pa-button.pa-button--outline,
.pa-inventory .pa-button.pa-button--outline {
  background: transparent;
  border: var(--pa-button-border-width) solid var(--pa-color-primary);
  border-radius: var(--pa-control-radius);
  color: var(--pa-color-primary);
  min-height: var(--pa-control-height-compact);
}

:where(.pa-partner-registry, .pa-partner-detail, .pa-inventory) :is(input, select, textarea) {
  background: var(--pa-color-surface);
  border: var(--pa-border-width) solid var(--pa-color-border);
  border-radius: var(--pa-control-radius);
  box-sizing: border-box;
  color: var(--pa-color-text-primary);
  font: inherit;
  min-height: var(--pa-control-height);
}

:where(.pa-partner-registry, .pa-partner-detail, .pa-inventory) :is(input, select, textarea):focus-visible {
  border-color: var(--pa-color-focus);
  outline: var(--pa-focus-width) solid var(--pa-color-focus);
  outline-offset: var(--pa-spacing-xs);
}

/* Temporary aliases: these names disappear as their views are migrated. */
:where(.pa-marketing__primary, .pa-inventory__primary, .pa-shop-admin__primary) {
  align-items: center;
  appearance: none;
  border: var(--pa-button-border-width) solid var(--pa-action-primary-background);
  border-radius: var(--pa-control-radius);
  box-sizing: border-box;
  cursor: pointer;
  display: inline-flex;
  font: var(--pa-font-weight-medium) var(--pa-font-size-button)/var(--pa-line-height-compact) var(--pa-font-family-ui);
  justify-content: center;
  min-height: var(--pa-control-height-compact);
  padding: var(--pa-spacing-xs) var(--pa-spacing-l);
  text-decoration: none;
  transition: background-color var(--pa-transition-base), border-color var(--pa-transition-base), color var(--pa-transition-base), transform var(--pa-transition-base);
}

:where(.pa-marketing__primary, .pa-inventory__primary, .pa-shop-admin__primary):focus-visible {
  outline: var(--pa-focus-width) solid var(--pa-color-focus);
  outline-offset: var(--pa-spacing-xs);
}

@media (max-width: 640px) {
  :where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary {
    min-height: 68px;
  }
}
