/* Fiesta UI Primitives V1, P1. Explicit opt-in only; load after accepted foundations. */
[data-fiesta-ui="v1"] .fiesta-button {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--fiesta-space-2);
  max-inline-size: 100%; min-inline-size: 0; min-block-size: var(--fiesta-control-min-height);
  padding: var(--fiesta-space-3) var(--fiesta-space-5); margin: 0;
  border: var(--fiesta-border-width) solid var(--fiesta-control-secondary-border); border-radius: var(--fiesta-radius-md);
  font: var(--fiesta-weight-semibold) var(--fiesta-type-button-size)/var(--fiesta-line-label) var(--fiesta-font-interface);
  background: var(--fiesta-control-secondary-bg); color: var(--fiesta-control-secondary-text);
  text-align: center; text-decoration: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer;
  transition: background-color var(--fiesta-motion-fast) var(--fiesta-motion-ease), color var(--fiesta-motion-fast) var(--fiesta-motion-ease);
}
[data-fiesta-ui="v1"] .fiesta-button:visited { color: var(--fiesta-control-secondary-text); }
[data-fiesta-ui="v1"] .fiesta-button:hover:not(:disabled) { background: var(--fiesta-control-secondary-bg-hover); }
[data-fiesta-ui="v1"] .fiesta-button:active:not(:disabled) { background: var(--fiesta-control-secondary-bg-active); }
[data-fiesta-ui="v1"] .fiesta-action-label { min-inline-size: 0; overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-size="small"] { padding: var(--fiesta-space-2) var(--fiesta-space-3); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-size="large"] { min-block-size: var(--fiesta-space-8); padding: var(--fiesta-space-4) var(--fiesta-space-6); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-width="full"] { inline-size: 100%; }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="primary"] {
  color: var(--fiesta-control-primary-text); background: var(--fiesta-control-primary-bg); border-color: var(--fiesta-control-primary-bg);
}
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="primary"]:hover:not(:disabled) { background: var(--fiesta-control-primary-bg-hover); border-color: var(--fiesta-control-primary-bg-hover); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="primary"]:active:not(:disabled) { background: var(--fiesta-control-primary-bg-active); border-color: var(--fiesta-control-primary-bg-active); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="tertiary"] { background: transparent; border-color: transparent; color: var(--fiesta-text-link); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="tertiary"]:hover:not(:disabled) { background: var(--fiesta-surface-aqua); color: var(--fiesta-text-link-hover); text-decoration: underline; }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="tertiary"]:active:not(:disabled) { background: var(--fiesta-selected-bg); color: var(--fiesta-selected-text); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="danger"] { background: var(--fiesta-action-danger-bg); color: var(--fiesta-action-danger-text); border-color: var(--fiesta-semantic-danger-border); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="danger"]:hover:not(:disabled) { background: var(--fiesta-semantic-danger-bg); color: var(--fiesta-semantic-danger-text); }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant="danger"]:active:not(:disabled) { background: var(--fiesta-action-danger-bg); color: var(--fiesta-action-danger-text); text-decoration: underline; }
[data-fiesta-ui="v1"] .fiesta-button[aria-busy="true"] { cursor: progress; }
[data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant]:disabled {
  background: var(--fiesta-control-disabled-bg); color: var(--fiesta-control-disabled-text); border-color: var(--fiesta-control-disabled-border); cursor: not-allowed; opacity: 1;
}
[data-fiesta-ui="v1"] .fiesta-icon { display: inline-block; inline-size: var(--fiesta-space-5); block-size: var(--fiesta-space-5); flex: 0 0 auto; vertical-align: middle; }
[data-fiesta-ui="v1"] .fiesta-link { color: var(--fiesta-text-link); text-decoration: underline; text-underline-offset: .2em; overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-link:visited { color: var(--fiesta-text-link-visited); }
[data-fiesta-ui="v1"] .fiesta-link:hover { color: var(--fiesta-text-link-hover); }
[data-fiesta-ui="v1"] .fiesta-link:active { color: var(--fiesta-text-link-active); }
[data-fiesta-ui="v1"] .fiesta-link .fiesta-icon:first-child { margin-inline-end: var(--fiesta-space-2); }
[data-fiesta-ui="v1"] .fiesta-link .fiesta-icon:last-child { margin-inline-start: var(--fiesta-space-2); }
[data-fiesta-ui="v1"] .fiesta-link:is([data-fiesta-link="action"], [data-fiesta-link="navigation"]) { display: inline-flex; align-items: center; min-block-size: var(--fiesta-control-min-height); font-weight: var(--fiesta-weight-semibold); }
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="navigation"] { padding: var(--fiesta-space-2); text-decoration: none; }
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="navigation"]:hover { text-decoration: underline; }
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="navigation"][aria-current="page"] { color: var(--fiesta-selected-text); background: var(--fiesta-selected-bg); text-decoration: underline; font-weight: var(--fiesta-weight-bold); border-radius: var(--fiesta-radius-sm); }
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="inverse"] { color: var(--fiesta-cyan-100); }
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="inverse"]:hover,
[data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link="inverse"]:active { color: var(--fiesta-cyan-200); }
@media (forced-colors: active) {
  [data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant] { border-color: ButtonText; background: ButtonFace; color: ButtonText; }
  [data-fiesta-ui="v1"] .fiesta-button[data-fiesta-variant]:disabled { color: GrayText; border-color: GrayText; }
  [data-fiesta-ui="v1"] .fiesta-link[data-fiesta-link] { color: LinkText; }
}

/* P2 native form primitives. Foundation owns native states and focus. */
[data-fiesta-ui="v1"] .fiesta-field { min-inline-size: 0; margin-block-end: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-label { display: block; margin-block-end: var(--fiesta-space-2); font-size: var(--fiesta-type-label-size); line-height: var(--fiesta-line-label); font-weight: var(--fiesta-weight-semibold); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-required { font-weight: var(--fiesta-weight-regular); }
[data-fiesta-ui="v1"] .fiesta-help,
[data-fiesta-ui="v1"] .fiesta-error { margin-block: var(--fiesta-space-2); font-size: var(--fiesta-type-body-small-size); line-height: var(--fiesta-line-body); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-help { color: var(--fiesta-text-secondary); }
[data-fiesta-ui="v1"] .fiesta-error { color: var(--fiesta-semantic-danger-text); }
[data-fiesta-ui="v1"] .fiesta-error ul { margin-block: 0; padding-inline-start: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]),
[data-fiesta-ui="v1"] .fiesta-textarea,
[data-fiesta-ui="v1"] .fiesta-select { min-inline-size: 0; max-inline-size: 100%; inline-size: 100%; font-size: var(--fiesta-type-body-size); }
[data-fiesta-ui="v1"] .fiesta-choice-group { min-inline-size: 0; margin-block: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-choice-group legend { max-inline-size: 100%; overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-choice { display: flex; align-items: center; gap: var(--fiesta-space-3); min-block-size: var(--fiesta-control-min-height); padding-block: var(--fiesta-space-2); cursor: pointer; }
[data-fiesta-ui="v1"] .fiesta-choice span { min-inline-size: 0; overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-choice:has(input:disabled) { cursor: default; color: var(--fiesta-control-disabled-text); }
@media (forced-colors: active) {
  [data-fiesta-ui="v1"] .fiesta-help, [data-fiesta-ui="v1"] .fiesta-error { color: CanvasText; }
}

/* P3 identity, categories and semantic feedback. */
[data-fiesta-ui="v1"] .fiesta-avatar { display: inline-flex; position: relative; flex: none; align-items: center; justify-content: center; inline-size: var(--fiesta-space-7); block-size: var(--fiesta-space-7); border-radius: var(--fiesta-radius-pill); overflow: hidden; color: var(--fiesta-text-primary); background: var(--fiesta-surface-aqua); border: var(--fiesta-border-width) solid var(--fiesta-border-strong); font-size: var(--fiesta-type-label-size); font-weight: var(--fiesta-weight-semibold); }
[data-fiesta-ui="v1"] .fiesta-avatar[data-fiesta-avatar-size="sm"] { inline-size: var(--fiesta-space-6); block-size: var(--fiesta-space-6); }
[data-fiesta-ui="v1"] .fiesta-avatar img { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; object-fit: cover; }
[data-fiesta-ui="v1"] .fiesta-badge,
[data-fiesta-ui="v1"] .fiesta-alert { --fiesta-feedback-text: var(--fiesta-semantic-neutral-text); --fiesta-feedback-bg: var(--fiesta-semantic-neutral-bg); --fiesta-feedback-border: var(--fiesta-semantic-neutral-border); color: var(--fiesta-feedback-text); background: var(--fiesta-feedback-bg); border: var(--fiesta-border-width) solid var(--fiesta-feedback-border); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-badge { display: inline-block; max-inline-size: 100%; border-radius: var(--fiesta-radius-pill); padding: var(--fiesta-space-1) var(--fiesta-space-2); font-size: var(--fiesta-type-body-small-size); line-height: var(--fiesta-line-compact); font-weight: var(--fiesta-weight-medium); }
[data-fiesta-ui="v1"] .fiesta-chip { display: inline-block; max-inline-size: 100%; padding: var(--fiesta-space-1) var(--fiesta-space-2); border-radius: var(--fiesta-radius-sm); border: var(--fiesta-border-width) solid var(--fiesta-border-default); color: var(--fiesta-text-secondary); background: var(--fiesta-surface-secondary); font-size: var(--fiesta-type-body-small-size); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-divider { border: 0; border-block-start: var(--fiesta-border-width) solid var(--fiesta-border-default); margin-block: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-alert { border-radius: var(--fiesta-radius-md); padding: var(--fiesta-space-4); margin-block: var(--fiesta-space-4); }
[data-fiesta-ui="v1"] .fiesta-alert p { margin: 0; }
[data-fiesta-ui="v1"] .fiesta-alert .fiesta-alert-title { margin-block-end: var(--fiesta-space-2); font-weight: var(--fiesta-weight-semibold); }
[data-fiesta-ui="v1"] [data-fiesta-semantic="brand"] { --fiesta-feedback-text: var(--fiesta-cyan-800); --fiesta-feedback-bg: var(--fiesta-surface-aqua); --fiesta-feedback-border: var(--fiesta-cyan-800); }
[data-fiesta-ui="v1"] [data-fiesta-semantic="info"] { --fiesta-feedback-text: var(--fiesta-semantic-info-text); --fiesta-feedback-bg: var(--fiesta-semantic-info-bg); --fiesta-feedback-border: var(--fiesta-semantic-info-border); }
[data-fiesta-ui="v1"] [data-fiesta-semantic="success"] { --fiesta-feedback-text: var(--fiesta-semantic-success-text); --fiesta-feedback-bg: var(--fiesta-semantic-success-bg); --fiesta-feedback-border: var(--fiesta-semantic-success-border); }
[data-fiesta-ui="v1"] [data-fiesta-semantic="warning"] { --fiesta-feedback-text: var(--fiesta-semantic-warning-text); --fiesta-feedback-bg: var(--fiesta-semantic-warning-bg); --fiesta-feedback-border: var(--fiesta-semantic-warning-border); }
[data-fiesta-ui="v1"] [data-fiesta-semantic="danger"] { --fiesta-feedback-text: var(--fiesta-semantic-danger-text); --fiesta-feedback-bg: var(--fiesta-semantic-danger-bg); --fiesta-feedback-border: var(--fiesta-semantic-danger-border); }
@media (forced-colors: active) {
  [data-fiesta-ui="v1"] .fiesta-badge, [data-fiesta-ui="v1"] .fiesta-alert, [data-fiesta-ui="v1"] .fiesta-chip { color: CanvasText; background: Canvas; border-color: CanvasText; }
}

/* P4 supplied determinate values and server-link navigation. */
[data-fiesta-ui="v1"] .fiesta-progress-field { margin-block: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-progress-field p { overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-progress-value { white-space: nowrap; font-weight: var(--fiesta-weight-semibold); }
[data-fiesta-ui="v1"] .fiesta-progress { display: block; inline-size: 100%; max-inline-size: 100%; block-size: var(--fiesta-space-3); border: 0; border-radius: var(--fiesta-radius-pill); overflow: hidden; appearance: none; color: var(--fiesta-cyan-800); background: var(--fiesta-surface-secondary); }
[data-fiesta-ui="v1"] .fiesta-progress::-webkit-progress-bar { background: var(--fiesta-surface-secondary); }
[data-fiesta-ui="v1"] .fiesta-progress::-webkit-progress-value { background: var(--fiesta-cyan-800); }
[data-fiesta-ui="v1"] .fiesta-progress::-moz-progress-bar { background: var(--fiesta-cyan-800); }
[data-fiesta-ui="v1"] .fiesta-application-progress ol { display: grid; gap: var(--fiesta-space-4); margin: 0; padding: 0; list-style: none; }
[data-fiesta-ui="v1"] .fiesta-application-progress li { display: flex; gap: var(--fiesta-space-3); padding: var(--fiesta-space-3); min-inline-size: 0; border: var(--fiesta-border-width) solid var(--fiesta-border-default); border-radius: var(--fiesta-radius-md); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-application-progress li[aria-current="step"] { border-color: var(--fiesta-cyan-800); background: var(--fiesta-surface-aqua); }
[data-fiesta-ui="v1"] .fiesta-application-progress li[data-fiesta-step-state="error"] { border-color: var(--fiesta-semantic-danger-border); }
[data-fiesta-ui="v1"] .fiesta-step-number { font-weight: var(--fiesta-weight-bold); }
[data-fiesta-ui="v1"] .fiesta-step-state { display: block; font-size: var(--fiesta-type-body-small-size); color: var(--fiesta-text-secondary); }
[data-fiesta-ui="v1"] .fiesta-pagination { display: flex; flex-wrap: wrap; align-items: center; gap: var(--fiesta-space-3); margin-block: var(--fiesta-space-5); }
[data-fiesta-ui="v1"] .fiesta-page-context { overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-page-numbers a,
[data-fiesta-ui="v1"] .fiesta-page-current { display: inline-flex; align-items: center; justify-content: center; min-inline-size: var(--fiesta-control-min-height); min-block-size: var(--fiesta-control-min-height); }
[data-fiesta-ui="v1"] .fiesta-page-current { color: var(--fiesta-selected-text); background: var(--fiesta-selected-bg); border-radius: var(--fiesta-radius-sm); font-weight: var(--fiesta-weight-bold); text-decoration: underline; }
[data-fiesta-ui="v1"] .fiesta-page-unavailable { color: var(--fiesta-text-muted); }
[data-fiesta-ui="v1"] .fiesta-page-numbers { display: none; list-style: none; margin: 0; padding: 0; gap: var(--fiesta-space-2); flex-wrap: wrap; }
@media (min-width: 48rem) {
  [data-fiesta-ui="v1"] .fiesta-application-progress ol { grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); }
  [data-fiesta-ui="v1"] .fiesta-page-numbers { display: flex; }
}
@media (forced-colors: active) {
  [data-fiesta-ui="v1"] .fiesta-progress { color: Highlight; background: Canvas; border: var(--fiesta-border-width) solid CanvasText; }
  [data-fiesta-ui="v1"] .fiesta-progress::-webkit-progress-bar { background: Canvas; }
  [data-fiesta-ui="v1"] .fiesta-progress::-webkit-progress-value { background: Highlight; }
  [data-fiesta-ui="v1"] .fiesta-progress::-moz-progress-bar { background: Highlight; }
}

/* P5 native disclosure and ordinary URL navigation. */
[data-fiesta-ui="v1"] .fiesta-disclosure { border: var(--fiesta-border-width) solid var(--fiesta-border-strong); border-radius: var(--fiesta-radius-md); padding: var(--fiesta-space-3); margin-block: var(--fiesta-space-4); }
[data-fiesta-ui="v1"] .fiesta-disclosure summary { min-block-size: var(--fiesta-control-min-height); padding: var(--fiesta-space-2); cursor: pointer; font-weight: var(--fiesta-weight-semibold); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-disclosure-content { padding: var(--fiesta-space-3) var(--fiesta-space-2); overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-disclosure-content p { margin: 0; }
[data-fiesta-ui="v1"] .fiesta-url-tabs ul { display: flex; flex-wrap: wrap; gap: var(--fiesta-space-2); padding: var(--fiesta-space-2); margin: 0; list-style: none; border-block-end: var(--fiesta-border-width) solid var(--fiesta-border-default); }
[data-fiesta-ui="v1"] .fiesta-url-tabs li { max-inline-size: 100%; min-inline-size: 0; }
[data-fiesta-ui="v1"] .fiesta-url-tabs a { overflow-wrap: anywhere; }
[data-fiesta-ui="v1"] .fiesta-url-tabs a[aria-current="page"] { font-weight: var(--fiesta-weight-bold); }
