/*
 * 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 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--pa-color-text-primary) !important;
}

: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 !important;
  background: transparent !important;
  border: 0 !important;
  border-bottom: 1px solid var(--pa-color-border) !important;
  border-radius: 0 !important;
  box-sizing: border-box;
  box-shadow: none !important;
  color: var(--pa-color-accent) !important;
  cursor: pointer;
  display: flex !important;
  font-family: var(--pa-font-family-ui);
  font-size: var(--pa-type-eyebrow-size, 12px) !important;
  font-weight: var(--pa-font-weight-medium, 500) !important;
  gap: var(--pa-spacing-m) !important;
  justify-content: space-between !important;
  letter-spacing: var(--pa-type-eyebrow-spacing, .105em) !important;
  line-height: 1.4;
  list-style: none !important;
  min-height: 42px !important;
  outline: 0 !important;
  padding: 0 !important;
  text-transform: uppercase !important;
}

:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary > :first-child,
:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary > :first-child :where(span, strong, small, em, h2, h3) {
  color: inherit !important;
  font-family: inherit !important;
  font-size: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: inherit !important;
}

: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);
}

/* Etusivun avattava versaali on yhteinen malli. Ajanvarauskalenterin omat
 * kalenterikontrollit eivät käytä näitä disclosure-luokkia. */
:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import) > summary::after {
  color: var(--pa-color-text-secondary) !important;
  content: ">" !important;
  flex: 0 0 auto;
  font-family: var(--pa-font-family-ui);
  font-size: 16px !important;
  font-weight: var(--pa-font-weight-medium, 500) !important;
  grid-column: auto !important;
  grid-row: auto !important;
  line-height: 1;
  transform: rotate(0deg) !important;
  transform-origin: center;
  transition: transform var(--pa-transition-base);
}

:where(.pa-disclosure, .pa-disclosure-card, .pa-inventory__section, .pa-inventory__mail-import, .pa-partner-identifiers, .pa-partner-contract-card, .pa-partner-import)[open] > summary::after {
  transform: rotate(90deg) !important;
}

:where(.pa-disclosure, .pa-disclosure-card) > summary :is([data-pa-disclosure-icon], .pa-disclosure-card__chevron, .pa-dashboard__section-toggle),
:where(.pa-disclosure, .pa-disclosure-card) > summary > b[aria-hidden="true"]:last-child {
  display: none !important;
}

/* Vanha näkymä-CSS saattaa pakottaa oman nuolensa display:grid !important.
 * Tässä valitsin on tarkoituksella :where()-sääntöä vahvempi: DS:n
 * generoima summary::after on aina ainoa näkyvä avausmerkki. */
body .pa-app-shell :is(
  .pa-disclosure,
  .pa-disclosure-card,
  .pa-inventory__section,
  .pa-inventory__mail-import,
  .pa-partner-identifiers,
  .pa-partner-contract-card,
  .pa-partner-import
) > summary :is(
  [data-pa-disclosure-icon],
  .pa-disclosure-card__chevron,
  .pa-dashboard__section-toggle,
  .paaasia-hakemukset__section-chevron,
  .paaasia-hakemukset__reply-chevron,
  .pa-employment-card__history-chevron
),
body .pa-app-shell :is(.pa-disclosure, .pa-disclosure-card) > summary > b[aria-hidden="true"]:last-child {
  display: none !important;
}

:where(.pa-disclosure__content, .pa-disclosure-card__body) {
  border-top: 0 !important;
  margin-top: var(--pa-spacing-s);
  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: none;
}

:where(a, button).pa-list-card:hover {
  background: var(--pa-color-surface);
  border-color: var(--pa-color-border);
  box-shadow: var(--pa-shadow-small);
  color: var(--pa-color-text-primary);
  filter: none;
  transform: none;
}

: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);
}

/*
 * Hallinnan hover-sopimus: vain kuvake reagoi suurentumalla. Painikkeen
 * pinta, reunus ja väri säilyvät oman teemavariantin mukaisina.
 */
.pa-app-shell :where(
  .pa-button--icon,
  .pa-btn--icon,
  .pa-icon-button,
  .pa-ui-close-button,
  .pa-modal-close,
  .pa-save-action--icon,
  .pa-visibility-toggle
):hover {
  box-shadow: none !important;
  filter: none !important;
  transform: none !important;
}

.pa-app-shell .pa-icon-button--dark:hover {
  background: var(--pa-icon-dark-surface) !important;
  border-color: var(--pa-icon-dark-line) !important;
  color: var(--pa-icon-dark-ink) !important;
}

.pa-app-shell .pa-icon-button--light:hover {
  background: var(--pa-icon-light-surface) !important;
  border-color: var(--pa-icon-light-line) !important;
  color: var(--pa-icon-light-ink) !important;
}

.pa-app-shell .pa-icon-button--document:hover {
  background: var(--pa-icon-document-surface) !important;
  border-color: var(--pa-icon-document-line) !important;
  color: var(--pa-icon-document-ink) !important;
}

.pa-app-shell :where(.pa-button--icon, .pa-btn--icon, .pa-icon-button, .pa-ui-close-button, .pa-modal-close, .pa-save-action--icon, .pa-visibility-toggle):hover
  :where(svg, i, img, .pa-icon-fallback, span[aria-hidden="true"]) {
  transform: scale(var(--pa-icon-hover-scale, 1.12)) !important;
}

/* Tallennuksen onnistuminen ja näkyvyys ovat painettuja tiloja, eivät hoveria. */
.pa-app-shell .pa-save-action--icon.is-success,
.pa-app-shell .pa-save-action--icon.is-success:hover {
  background: var(--pa-color-success) !important;
  border-color: var(--pa-color-success) !important;
  color: var(--pa-color-inverse) !important;
}

.pa-app-shell .pa-visibility-toggle.is-active,
.pa-app-shell .pa-visibility-toggle.is-active:hover,
.pa-app-shell .pa-visibility-toggle[aria-pressed="true"],
.pa-app-shell .pa-visibility-toggle[aria-pressed="true"]:hover {
  color: var(--pa-color-success) !important;
}
