/* Purple UI candidate: site chrome (p-site-footer, p-release-notice).
   Not part of the certified 0.2.10 component set yet; see
   docs/site-chrome.md for the contract and the promotion steps. Consumers
   (PMA, suite portal) copy this file unchanged until a release ships it.
   Tokens only; load after components.css. */

.p-site-footer { container-type: inline-size; border-top: 1px solid var(--p-color-border); color: var(--p-color-text-secondary); background: var(--p-color-surface); font-size: var(--p-font-size-sm); }
.p-site-footer__inner { display: grid; gap: var(--p-space-6); max-width: var(--p-site-footer-max-width, 72rem); margin-inline: auto; padding: var(--p-space-8) var(--p-space-6) var(--p-space-5); box-sizing: border-box; }
.p-site-footer__brand { display: grid; gap: var(--p-space-2); max-width: 24rem; }
.p-site-footer__brand strong { color: var(--p-color-text); font-size: var(--p-font-size-lg); }
.p-site-footer__brand p { margin: 0; }
.p-site-footer__nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: var(--p-space-6); }
.p-site-footer__heading { margin: 0 0 var(--p-space-2); color: var(--p-color-text); font-size: var(--p-font-size-xs); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.p-site-footer__links, .p-site-footer__meta { margin: 0; padding: 0; list-style: none; }
.p-site-footer__links { display: grid; gap: var(--p-space-1); }
.p-site-footer a { display: inline-flex; align-items: center; min-block-size: 1.75rem; border-radius: var(--p-radius-sm); color: inherit; text-decoration: none; text-underline-offset: 0.2em; }
.p-site-footer a:hover { color: var(--p-color-text); text-decoration: underline; }
.p-site-footer a:focus-visible { outline: 0; color: var(--p-color-text); box-shadow: var(--p-focus-ring); }
.p-site-footer a[aria-current="page"] { color: var(--p-color-text); font-weight: 600; }
.p-site-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--p-space-2) var(--p-space-6); padding-top: var(--p-space-4); border-top: 1px solid var(--p-color-border-subtle, var(--p-color-border)); }
.p-site-footer__legal { margin: 0; }
.p-site-footer__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0 var(--p-space-4); }
.p-site-footer__version { font-variant-numeric: tabular-nums; }
.p-site-footer[data-p-variant="compact"] { background: transparent; }
.p-site-footer[data-p-variant="compact"] .p-site-footer__inner { padding-block: var(--p-space-4); }
.p-site-footer[data-p-variant="compact"] .p-site-footer__bottom { padding-top: 0; border-top: 0; }
@container (max-width: 36rem) {
  .p-site-footer__inner { padding-inline: var(--p-space-4); }
  .p-site-footer__bottom { flex-direction: column; align-items: flex-start; }
  /* Touch: meta links become full 44 px targets. */
  .p-site-footer__meta a { min-block-size: 2.75rem; }
}

.p-release-notice { --p-release-notice-color: var(--p-color-info); --p-release-notice-surface: var(--p-color-info-soft); display: flex; flex-wrap: wrap; align-items: center; gap: var(--p-space-2) var(--p-space-3); padding: var(--p-space-2) var(--p-space-4); border-bottom: 1px solid color-mix(in srgb, var(--p-release-notice-color) 36%, var(--p-color-border)); color: var(--p-color-text-secondary); background: color-mix(in srgb, var(--p-release-notice-surface) 70%, var(--p-color-surface)); font-size: var(--p-font-size-sm); }
.p-release-notice[data-p-stage="preview"] { --p-release-notice-color: var(--p-color-warning); --p-release-notice-surface: var(--p-color-warning-soft); }
.p-release-notice[hidden] { display: none; }
.p-release-notice__stage { flex: none; padding: 0.1rem var(--p-space-2); border: 1px solid color-mix(in srgb, var(--p-release-notice-color) 55%, transparent); border-radius: var(--p-radius-pill); color: var(--p-color-text); font-size: var(--p-font-size-xs); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.p-release-notice__text { flex: 1 1 18rem; min-width: 0; margin: 0; }
.p-release-notice__text strong { color: var(--p-color-text); }
.p-release-notice__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--p-space-1) var(--p-space-3); }
.p-release-notice a { color: var(--p-color-text); text-underline-offset: 0.2em; border-radius: var(--p-radius-sm); }
.p-release-notice a:focus-visible, .p-release-notice__dismiss:focus-visible { outline: 0; box-shadow: var(--p-focus-ring); }
.p-release-notice__dismiss { display: inline-grid; place-items: center; inline-size: 2rem; block-size: 2rem; padding: 0; border: 0; border-radius: var(--p-radius-sm); color: var(--p-color-text-secondary); background: transparent; font: inherit; font-size: 1.1rem; line-height: 1; cursor: pointer; }
.p-release-notice__dismiss:hover { color: var(--p-color-text); background: color-mix(in srgb, var(--p-release-notice-color) 14%, transparent); }
.p-release-notice[data-p-placement="card"] { border: 1px solid color-mix(in srgb, var(--p-release-notice-color) 36%, var(--p-color-border)); border-radius: var(--p-radius-md); padding: var(--p-space-3) var(--p-space-4); }
@media (pointer: coarse) { .p-release-notice__dismiss { inline-size: 2.75rem; block-size: 2.75rem; } }
@media (forced-colors: active) { .p-release-notice, .p-site-footer { border-color: CanvasText; } .p-release-notice__stage { border-color: CanvasText; } }
