/* P3C migration bridge. Loaded last with media="screen".
 * Only controls explicitly marked by the P3C presentation layer are migrated.
 * Existing !important branding/clinical rules require matching priority here;
 * all values come from the canonical P3B foundation. No clinical/print inputs,
 * badge/pill consumers, navigation geometry, or workflow visibility are reset.
 */

body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button):not([hidden]) {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: var(--np-button-gap) !important;
  height: auto !important;
  min-height: var(--np-button-height-md) !important;
  padding: var(--np-space-2) var(--np-button-padding-x-md) !important;
  border: var(--np-border-width) var(--np-border-style) var(--np-ui-button-border) !important;
  border-radius: var(--np-radius-md) !important;
  background: var(--np-ui-button-fill) !important;
  color: var(--np-ui-button-text) !important;
  font-family: inherit !important;
  font-size: 13px !important;
  line-height: 1.2 !important;
  font-weight: 750 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: var(--np-shadow-none) !important;
  appearance: none;
  cursor: pointer;
}

body [data-np-ui-p3c].np-ui-button.np-ui-button--sm:not([hidden]) {
  min-height: var(--np-button-height-sm) !important;
  padding-inline: var(--np-button-padding-x-sm) !important;
}
body [data-np-ui-p3c].np-ui-button.np-ui-button--lg:not([hidden]) {
  min-height: var(--np-button-height-lg) !important;
  padding-inline: var(--np-button-padding-x-lg) !important;
}
body [data-np-ui-p3c].np-ui-icon-button:not([hidden]),
body [data-np-ui-p3c].np-ui-button.np-ui-button--icon-only:not([hidden]) {
  flex: 0 0 auto;
  width: var(--np-button-height-md) !important;
  height: var(--np-button-height-md) !important;
  min-width: var(--np-button-height-md) !important;
  min-height: var(--np-button-height-md) !important;
  padding: var(--np-space-3) !important;
}

body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button):not([hidden]):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):hover {
  background: var(--np-ui-button-hover-fill) !important;
  color: var(--np-ui-button-hover-text) !important;
  border-color: var(--np-ui-button-hover-border) !important;
}
body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button):not([hidden]):not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):active {
  transform: translateY(1px) !important;
}
body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button):not([hidden]):is(:disabled, [aria-disabled="true"]) {
  background: var(--np-ui-button-fill) !important;
  color: var(--np-ui-button-text) !important;
  border-color: var(--np-ui-button-border) !important;
  opacity: .5 !important;
  cursor: not-allowed !important;
  transform: none !important;
}
body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button):not([hidden])[aria-busy="true"] {
  background: var(--np-ui-button-fill) !important;
  color: var(--np-ui-button-text) !important;
  border-color: var(--np-ui-button-border) !important;
  opacity: .65 !important;
  cursor: progress !important;
  transform: none !important;
}

/* Preserve the original hidden/expanded guards despite the opt-in flex display. */
body [data-np-ui-p3c][hidden] { display: none !important; }
body [data-rx-p2]:not([data-collapsed="true"]) .rx-library-rail-p2[data-np-ui-p3c] { display: none !important; }

/* Icon normalization is limited to marked containers/controls. */
body [data-np-ui-p3c] .np-ui-icon,
body .np-ui-icon[data-np-ui-p3c] {
  display: inline-block !important;
  width: var(--np-icon-md) !important;
  height: var(--np-icon-md) !important;
  min-width: var(--np-icon-md) !important;
  flex: 0 0 auto;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: var(--np-icon-stroke) !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
  vertical-align: middle;
}
body [data-np-ui-p3c] .np-ui-icon.np-ui-icon--xs {
  width: var(--np-icon-xs) !important;
  height: var(--np-icon-xs) !important;
  min-width: var(--np-icon-xs) !important;
}
body [data-np-ui-p3c] .np-ui-icon.np-ui-icon--sm {
  width: var(--np-icon-sm) !important;
  height: var(--np-icon-sm) !important;
  min-width: var(--np-icon-sm) !important;
}
body [data-np-ui-p3c] .np-ui-icon.np-ui-icon--lg {
  width: var(--np-icon-lg) !important;
  height: var(--np-icon-lg) !important;
  min-width: var(--np-icon-lg) !important;
}
body [data-np-ui-p3c].np-ui-icon-box {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: var(--np-icon-container-md) !important;
  height: var(--np-icon-container-md) !important;
  min-width: var(--np-icon-container-md) !important;
  border-radius: var(--np-radius-md) !important;
}
body [data-np-ui-p3c].np-ui-icon-box:not(.patient-command-step-r3__icon):not(.nav-icon) {
  color: var(--np-icon-accent) !important;
  background: var(--np-accent-soft) !important;
}
body [data-np-ui-p3c].np-ui-icon-box.np-ui-icon-box--sm {
  width: var(--np-icon-container-sm) !important;
  height: var(--np-icon-container-sm) !important;
  min-width: var(--np-icon-container-sm) !important;
  border-radius: var(--np-radius-sm) !important;
}
body [data-np-ui-p3c].np-ui-icon-box.np-ui-icon-box--lg {
  width: var(--np-icon-container-lg) !important;
  height: var(--np-icon-container-lg) !important;
  min-width: var(--np-icon-container-lg) !important;
  border-radius: var(--np-radius-lg) !important;
}

/* Dock cards/badges retain their existing geometry and selected architecture.
 * The active icon's existing inverse foreground/overlay remains intact; no
 * status colors or badge classes are migrated in this phase.
 */
body .patient-command-step-r3__icon[data-np-ui-p3c] .np-ui-icon {
  width: var(--np-icon-lg) !important;
  height: var(--np-icon-lg) !important;
  min-width: var(--np-icon-lg) !important;
}
body .patient-command-step-r3:not(.is-active) .patient-command-step-r3__icon[data-np-ui-p3c] {
  color: var(--np-icon-accent) !important;
  background: var(--np-accent-soft) !important;
}

/* Sidebar navigation dimensions and dark-surface treatment stay intact.
 * Only its explicitly marked five icon containers adopt canonical geometry.
 */
body .np-sidebar-v2 .nav .nav-icon[data-np-ui-p3c] {
  color: inherit !important;
}

/* Compact, flat Quick Data rows keep each original label/value together. */
body .np-patient-quick-v2 .np-patient-quick-list-v2 { gap: 0; }
body .np-patient-quick-item-v2.np-ui-quick-data-row {
  grid-template-columns: var(--np-icon-container-md) minmax(0, 1fr);
  gap: var(--np-space-4);
  min-height: 0;
  padding: var(--np-space-3) 0;
  border: 0;
  border-bottom: var(--np-border-width) var(--np-border-style) var(--np-border);
  border-radius: 0;
  background: transparent;
}
body .np-patient-quick-item-v2.np-ui-quick-data-row:last-child { border-bottom: 0; }
body .np-patient-quick-item-v2 .np-ui-quick-data-row__label {
  color: var(--np-text-muted);
  font-size: 12px;
  line-height: 1.3;
  font-weight: 750;
}
body .np-patient-quick-item-v2 .np-ui-quick-data-row__value {
  margin-top: var(--np-space-1);
  color: var(--np-text-primary);
  font-size: 16px;
  line-height: 1.2;
  font-weight: 850;
}

/* Local room for 40px targets. These are screen editor affordances only;
 * the P0 canonical printable document and its fields remain unchanged.
 */
body [data-rx-p2] .rx-table-p2:has(.rx-remove-p2[data-np-ui-p3c]) th:first-child {
  width: calc(var(--np-button-height-md) + var(--np-space-2));
}
body [data-rx-p2] .rx-library-tile-p2:has(.np-ui-icon-button[data-np-ui-p3c]) {
  grid-template-columns: var(--np-icon-xs) minmax(0, 1fr);
  padding-bottom: calc(var(--np-button-height-md) + var(--np-space-4));
}
/* Preserve block formatting of existing full-width editor controls so their
 * original vertical flow/margins are not changed by the inline button default.
 */
body .rx-add-row-p2.np-ui-button[data-np-ui-p3c]:not([hidden]),
body .rx-context-toggle-p2.np-ui-button[data-np-ui-p3c]:not([hidden]) {
  display: flex !important;
}
body .rx-context-toggle-p2[data-np-ui-p3c] { justify-content: space-between !important; }
body .rx-context-toggle-p2[data-np-ui-p3c] > b {
  display: inline-flex;
  align-items: center;
  color: var(--np-accent);
}
body [data-rx-p2][data-collapsed="true"] .rx-context-toggle-p2[data-np-ui-p3c] {
  justify-content: center !important;
  padding-inline: var(--np-space-3) !important;
}

/* Canonical profile utilities must fit inside the existing mobile chip.
 * Limit this adjustment to that opted-in chip; retain every control and its
 * position rather than changing header/sidebar layout or global density.
 */
@media (max-width: 480px) {
  .user-chip:has([data-np-ui-p3c="profile-utility"]) {
    gap: var(--np-space-2);
    padding-inline: var(--np-space-3);
  }
}

/* Last: override historical focus shadows without changing normal Dock/nav
 * appearance. Focus remains contextual in both clinical populations.
 */
body [data-np-ui-p3c]:is(.np-ui-button, .np-ui-icon-button, .np-ui-focus):not([hidden]):focus-visible {
  outline: var(--np-focus-width) solid var(--np-ui-control-focus, var(--np-accent)) !important;
  outline-offset: var(--np-focus-offset) !important;
  box-shadow: 0 0 0 var(--np-focus-spread) var(--np-ui-control-ring, var(--np-focus-ring)) !important;
}
