:where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"], [role="radio"]) {
    -webkit-tap-highlight-color: transparent;
}

:where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"], [role="radio"]):focus {
    outline: none;
}

:where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"], [role="radio"]):focus-visible {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: var(--np-focus-outline-offset, 3px);
}

:where(button, [type="button"], [type="submit"], [type="reset"], [role="button"]) {
    touch-action: manipulation;
}

:where(button, [type="button"], [type="submit"], [type="reset"], [role="button"]):focus-visible {
    box-shadow: 0 0 0 var(--np-focus-outline-width, 3px) rgba(var(--np-color-teal-rgb), 0.22);
}

:where(input, select, textarea):focus-visible {
    border-color: var(--np-input-border-color-focus, #4f46e5);
    box-shadow: var(--np-input-shadow-focus, 0 0 0 4px rgba(79, 70, 229, 0.12));
}

:where(input[type="checkbox"], input[type="radio"]):focus-visible {
    box-shadow: 0 0 0 4px rgba(var(--np-color-primary-rgb), 0.14);
}

:where([tabindex="-1"]):focus,
:where([tabindex="-1"]):focus-visible {
    outline: 0 !important;
    box-shadow: none !important;
}

:where([hidden]) {
    display: none !important;
}

:where([aria-hidden="true"]) {
    speak: none;
}

:where([aria-disabled="true"], [disabled], .is-disabled, .disabled) {
    cursor: not-allowed;
}

:where(button, input, select, textarea, a)[aria-disabled="true"],
:where(button, input, select, textarea, a).is-disabled,
:where(button, input, select, textarea, a).disabled {
    opacity: 0.58;
    pointer-events: none;
}

:where([aria-busy="true"]) {
    cursor: progress;
}

:where([aria-busy="true"]) * {
    cursor: progress;
}

:where([aria-current="page"], [aria-current="true"]) {
    font-weight: var(--np-font-weight-bold, 700);
}

:where([aria-expanded]) {
    cursor: pointer;
}

:where([aria-expanded="true"]) .np-icon-toggle,
:where([aria-expanded="true"]) [data-np-toggle-icon] {
    transform: rotate(180deg);
}

:where([aria-pressed="true"], [aria-selected="true"], [aria-checked="true"]) {
    color: var(--np-color-primary, #4f46e5);
}

:where([role="dialog"], [role="alertdialog"]) {
    outline: none;
}

:where([role="alert"], [role="status"]) {
    font-weight: var(--np-font-weight-medium, 500);
}

:where([role="progressbar"]) {
    overflow: hidden;
}

:where([role="separator"]) {
    background: var(--np-color-border-soft, #e2e8f0);
}

.screen-reader-text,
.sr-only,
.np-sr-only,
.visually-hidden,
.wp-block-navigation__responsive-container-close .screen-reader-text,
.wp-block-navigation__responsive-container-open .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    word-wrap: normal !important;
    white-space: nowrap !important;
}

.screen-reader-text:focus,
.sr-only:focus,
.np-sr-only:focus,
.visually-hidden:focus {
    position: fixed !important;
    z-index: var(--np-z-index-toast, 1200) !important;
    top: calc(var(--np-admin-offset, 0px) + var(--np-spacing-md, 1rem)) !important;
    right: var(--np-spacing-md, 1rem) !important;
    width: auto !important;
    height: auto !important;
    clip: auto !important;
    clip-path: none !important;
    margin: 0 !important;
    padding: var(--np-spacing-sm, 0.75rem) var(--np-spacing-md, 1rem) !important;
    background: var(--np-color-surface, #ffffff) !important;
    border: var(--np-border, 1px solid #e2e8f0) !important;
    border-radius: var(--np-radius-lg, 1rem) !important;
    color: var(--np-color-heading, #0f172a) !important;
    box-shadow: var(--np-shadow-md, 0 14px 38px rgba(15, 23, 42, 0.1)) !important;
    font-family: var(--np-font-heading, Tahoma, Arial, sans-serif) !important;
    font-size: var(--np-font-size-sm, 0.875rem) !important;
    font-weight: var(--np-font-weight-bold, 700) !important;
    line-height: var(--np-line-height-snug, 1.5) !important;
    text-decoration: none !important;
    white-space: normal !important;
}

.np-visually-hidden-focusable:not(:focus):not(:focus-within) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(1px, 1px, 1px, 1px) !important;
    clip-path: inset(50%) !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    white-space: nowrap !important;
}

.skip-link,
.np-skip-link {
    position: fixed;
    z-index: var(--np-z-index-toast, 1200);
    top: calc(var(--np-admin-offset, 0px) + var(--np-spacing-md, 1rem));
    right: var(--np-spacing-md, 1rem);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--np-button-height-sm, 2.5rem);
    padding-inline: var(--np-button-padding-x-md, 1.25rem);
    transform: translateY(calc(-100% - var(--np-spacing-2xl, 3rem)));
    background: var(--np-color-surface, #ffffff);
    border: var(--np-border, 1px solid #e2e8f0);
    border-radius: var(--np-radius-pill, 999px);
    color: var(--np-color-heading, #0f172a);
    box-shadow: var(--np-shadow-md, 0 14px 38px rgba(15, 23, 42, 0.1));
    font-family: var(--np-font-heading, Tahoma, Arial, sans-serif);
    font-size: var(--np-font-size-sm, 0.875rem);
    font-weight: var(--np-font-weight-bold, 700);
    line-height: 1;
    text-decoration: none;
    transition: transform var(--np-transition-fast, 160ms ease), background var(--np-transition-fast, 160ms ease), color var(--np-transition-fast, 160ms ease);
}

.skip-link:focus,
.np-skip-link:focus,
.skip-link:focus-visible,
.np-skip-link:focus-visible {
    transform: translateY(0);
    color: var(--np-color-primary, #4f46e5);
}

.np-focus-ring {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: var(--np-focus-outline-offset, 3px);
}

.np-focus-ring-inset {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: calc(var(--np-focus-outline-offset, 3px) * -1);
}

.np-focus-shadow {
    box-shadow: 0 0 0 4px rgba(var(--np-color-primary-rgb), 0.14);
}

.np-focus-trap-active {
    overflow: hidden;
}

.np-focus-trap-active body {
    overflow: hidden;
}

.np-no-scroll,
body.np-no-scroll {
    overflow: hidden;
    touch-action: none;
}

.np-inert,
[inert] {
    pointer-events: none;
    user-select: none;
}

.np-inert,
[inert],
.np-inert * ,
[inert] * {
    cursor: default !important;
}

.np-user-is-tabbing :focus {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: var(--np-focus-outline-offset, 3px);
}

.np-user-is-tabbing :focus:not(:focus-visible) {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
}

.np-user-is-clicking :focus:not(:focus-visible) {
    outline: none;
    box-shadow: none;
}

.np-reduced-motion *,
.np-reduced-motion *::before,
.np-reduced-motion *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
}

.np-high-contrast {
    --np-color-border-soft: var(--np-color-border-strong);
    --np-focus-outline-width: 4px;
}

.np-high-contrast :where(a, button, input, select, textarea, summary, [tabindex], [role="button"]):focus-visible {
    outline-width: var(--np-focus-outline-width, 4px);
}

.np-a11y-target,
.np-click-target {
    min-width: 44px;
    min-height: 44px;
}

.np-a11y-target-inline {
    min-height: 44px;
    padding-block: max(0.25rem, calc((44px - 1em) / 2));
}

.np-link-cover::after {
    position: absolute;
    inset: 0;
    z-index: var(--np-z-index-content, 10);
    content: "";
}

.np-link-cover:focus-visible::after {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: var(--np-focus-outline-offset, 3px);
    border-radius: inherit;
}

.np-link-underline {
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.np-link-underline:hover,
.np-link-underline:focus {
    text-decoration-thickness: 0.12em;
}

.np-external-link::after {
    display: inline-block;
    margin-inline-start: 0.35em;
    font-size: 0.8em;
    line-height: 1;
    content: "↗";
}

[dir="rtl"] .np-external-link::after,
.rtl .np-external-link::after {
    margin-inline-start: 0;
    margin-inline-end: 0.35em;
}

.np-loading {
    position: relative;
    pointer-events: none;
}

.np-loading::after {
    position: absolute;
    inset: 50% auto auto 50%;
    width: 1.25rem;
    height: 1.25rem;
    margin: -0.625rem 0 0 -0.625rem;
    border: 2px solid var(--np-loader-track-color, #eef2ff);
    border-top-color: var(--np-loader-color, #4f46e5);
    border-radius: var(--np-radius-circle, 50%);
    animation: np-a11y-spin 700ms linear infinite;
    content: "";
}

[dir="rtl"] .np-loading::after,
.rtl .np-loading::after {
    inset: 50% 50% auto auto;
    margin: -0.625rem -0.625rem 0 0;
}

.np-loading > * {
    opacity: 0.42;
}

.np-live-region {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.np-status-message {
    display: flex;
    align-items: flex-start;
    gap: var(--np-spacing-sm, 0.75rem);
    padding: var(--np-alert-padding, 1rem);
    border-radius: var(--np-alert-radius, 1rem);
    font-size: var(--np-font-size-sm, 0.875rem);
    font-weight: var(--np-font-weight-medium, 500);
    line-height: var(--np-line-height-snug, 1.5);
}

.np-status-message[role="alert"],
.np-status-message.is-danger {
    background: var(--np-alert-danger-background, #fee2e2);
    border: var(--np-alert-border-width, 1px) solid var(--np-alert-danger-border-color, rgba(220, 38, 38, 0.18));
    color: var(--np-alert-danger-color, #dc2626);
}

.np-status-message[role="status"],
.np-status-message.is-info {
    background: var(--np-alert-info-background, #dbeafe);
    border: var(--np-alert-border-width, 1px) solid var(--np-alert-info-border-color, rgba(37, 99, 235, 0.18));
    color: var(--np-alert-info-color, #2563eb);
}

.np-status-message.is-success {
    background: var(--np-alert-success-background, #dcfce7);
    border: var(--np-alert-border-width, 1px) solid var(--np-alert-success-border-color, rgba(22, 163, 74, 0.18));
    color: var(--np-alert-success-color, #16a34a);
}

.np-status-message.is-warning {
    background: var(--np-alert-warning-background, #fef3c7);
    border: var(--np-alert-border-width, 1px) solid var(--np-alert-warning-border-color, rgba(245, 158, 11, 0.18));
    color: var(--np-alert-warning-color, #d97706);
}

.np-error-summary {
    padding: var(--np-spacing-lg, 1.5rem);
    background: var(--np-alert-danger-background, #fee2e2);
    border: var(--np-alert-border-width, 1px) solid var(--np-alert-danger-border-color, rgba(220, 38, 38, 0.18));
    border-radius: var(--np-radius-xl, 1.25rem);
    color: var(--np-alert-danger-color, #dc2626);
}

.np-error-summary:focus {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-alert-danger-color, #dc2626);
    outline-offset: var(--np-focus-outline-offset, 3px);
}

.np-error-summary-title {
    margin-block: 0 var(--np-spacing-sm, 0.75rem);
    color: inherit;
    font-family: var(--np-font-heading, Tahoma, Arial, sans-serif);
    font-size: var(--np-font-size-lg, 1.125rem);
    font-weight: var(--np-font-weight-extrabold, 800);
    line-height: var(--np-line-height-tight, 1.3);
}

.np-error-summary-list {
    margin: 0;
    padding-inline-start: 1.25rem;
}

.np-error-summary-list a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.np-form-field[aria-invalid="true"],
.np-form-field.is-invalid,
:where(input, select, textarea)[aria-invalid="true"],
:where(input, select, textarea).is-invalid {
    border-color: var(--np-color-danger, #dc2626);
}

:where(input, select, textarea)[aria-invalid="true"]:focus,
:where(input, select, textarea).is-invalid:focus {
    box-shadow: 0 0 0 4px rgba(var(--np-color-danger-rgb), 0.14);
}

.np-field-error {
    display: block;
    margin-block-start: var(--np-spacing-xs, 0.5rem);
    color: var(--np-form-error-color, #dc2626);
    font-size: var(--np-font-size-sm, 0.875rem);
    font-weight: var(--np-font-weight-medium, 500);
    line-height: var(--np-line-height-snug, 1.5);
}

.np-field-help {
    display: block;
    margin-block-start: var(--np-spacing-xs, 0.5rem);
    color: var(--np-form-help-color, #64748b);
    font-size: var(--np-form-help-font-size, 0.75rem);
    line-height: var(--np-line-height-snug, 1.5);
}

.np-required-indicator {
    color: var(--np-color-danger, #dc2626);
    font-weight: var(--np-font-weight-bold, 700);
}

.np-toggle[aria-pressed="true"],
.np-toggle[aria-checked="true"] {
    background: var(--np-color-primary, #4f46e5);
    color: var(--np-color-white, #ffffff);
}

.np-tabs [role="tab"] {
    cursor: pointer;
}

.np-tabs [role="tab"][aria-selected="true"] {
    color: var(--np-color-primary, #4f46e5);
}

.np-tabs [role="tabpanel"][hidden] {
    display: none !important;
}

.np-accordion [aria-expanded="true"] {
    color: var(--np-color-primary, #4f46e5);
}

.np-accordion-panel[hidden] {
    display: none !important;
}

.np-menu [role="menuitem"],
.np-menu [role="menuitemcheckbox"],
.np-menu [role="menuitemradio"] {
    cursor: pointer;
}

.np-menu [aria-current="page"],
.np-menu .current-menu-item > a,
.np-menu .current_page_item > a {
    color: var(--np-color-primary, #4f46e5);
}

.np-modal[aria-hidden="true"],
.np-offcanvas[aria-hidden="true"],
.np-search-panel[aria-hidden="true"] {
    display: none !important;
}

.np-modal[aria-hidden="false"],
.np-offcanvas[aria-hidden="false"],
.np-search-panel[aria-hidden="false"] {
    display: block;
}

.np-backdrop {
    position: fixed;
    inset: 0;
    z-index: var(--np-z-index-overlay, 500);
    background: var(--np-backdrop-background, rgba(15, 23, 42, 0.5));
    backdrop-filter: var(--np-backdrop-filter, blur(12px));
}

.np-close-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    background: var(--np-color-surface-muted, #f1f5f9);
    border: var(--np-border, 1px solid #e2e8f0);
    border-radius: var(--np-radius-circle, 50%);
    color: var(--np-color-text, #334155);
    cursor: pointer;
    transition: background var(--np-transition-fast, 160ms ease), color var(--np-transition-fast, 160ms ease), transform var(--np-transition-fast, 160ms ease);
}

.np-close-button:hover,
.np-close-button:focus {
    background: var(--np-color-primary-soft, #eef2ff);
    color: var(--np-color-primary, #4f46e5);
}

.np-close-button:active {
    transform: scale(0.96);
}

.np-tooltip-trigger {
    position: relative;
}

.np-tooltip-trigger[aria-describedby] {
    cursor: help;
}

.np-tooltip {
    position: absolute;
    z-index: var(--np-z-index-tooltip, var(--np-z-index-toast, 1200));
    max-width: 18rem;
    padding: var(--np-tooltip-padding-y, 0.45rem) var(--np-tooltip-padding-x, 0.7rem);
    background: var(--np-tooltip-background, #0f172a);
    border-radius: var(--np-tooltip-radius, 0.75rem);
    color: var(--np-tooltip-color, #ffffff);
    font-size: var(--np-tooltip-font-size, 0.75rem);
    font-weight: var(--np-font-weight-medium, 500);
    line-height: var(--np-line-height-snug, 1.5);
    box-shadow: var(--np-shadow-md, 0 14px 38px rgba(15, 23, 42, 0.1));
    pointer-events: none;
}

.np-toast-region {
    position: fixed;
    z-index: var(--np-z-index-toast, 1200);
    inset-block-start: calc(var(--np-admin-offset, 0px) + var(--np-spacing-md, 1rem));
    inset-inline-end: var(--np-spacing-md, 1rem);
    display: grid;
    gap: var(--np-spacing-sm, 0.75rem);
    width: min(100% - 2rem, 420px);
    pointer-events: none;
}

.np-toast {
    display: flex;
    align-items: flex-start;
    gap: var(--np-spacing-sm, 0.75rem);
    padding: var(--np-spacing-md, 1rem);
    background: var(--np-color-surface, #ffffff);
    border: var(--np-border, 1px solid #e2e8f0);
    border-radius: var(--np-radius-xl, 1.25rem);
    color: var(--np-color-text, #334155);
    box-shadow: var(--np-shadow-lg, 0 24px 70px rgba(15, 23, 42, 0.14));
    pointer-events: auto;
}

.np-toast:focus-within {
    outline: var(--np-focus-outline-width, 3px) solid var(--np-focus-outline-color, #2dd4bf);
    outline-offset: var(--np-focus-outline-offset, 3px);
}

.np-toast.is-success {
    border-color: rgba(var(--np-color-success-rgb), 0.22);
}

.np-toast.is-danger {
    border-color: rgba(var(--np-color-danger-rgb), 0.22);
}

.np-toast.is-warning {
    border-color: rgba(var(--np-color-warning-rgb), 0.22);
}

.np-toast.is-info {
    border-color: rgba(var(--np-color-info-rgb), 0.22);
}

.np-scroll-lock {
    overflow: hidden;
}

.np-scroll-lock body {
    overflow: hidden;
}

.np-keyboard-only {
    position: absolute;
    inset: auto auto 100% 100%;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.np-keyboard-only:focus,
.np-keyboard-only:focus-visible {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
}

.np-color-contrast-light {
    color: var(--np-color-white, #ffffff);
}

.np-color-contrast-dark {
    color: var(--np-color-heading, #0f172a);
}

.np-readable-width {
    max-width: 72ch;
}

.np-readable-width-sm {
    max-width: 58ch;
}

.np-readable-width-lg {
    max-width: 86ch;
}

.np-touch-scroll {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}

.np-scrollbar {
    scrollbar-width: thin;
    scrollbar-color: var(--np-color-border-strong, #94a3b8) transparent;
}

.np-scrollbar::-webkit-scrollbar {
    width: 0.625rem;
    height: 0.625rem;
}

.np-scrollbar::-webkit-scrollbar-track {
    background: transparent;
}

.np-scrollbar::-webkit-scrollbar-thumb {
    background: var(--np-color-border-strong, #94a3b8);
    border: 3px solid transparent;
    border-radius: var(--np-radius-pill, 999px);
    background-clip: content-box;
}

.np-scrollbar::-webkit-scrollbar-thumb:hover {
    background: var(--np-color-text-soft, #94a3b8);
    border: 3px solid transparent;
    background-clip: content-box;
}

@keyframes np-a11y-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-delay: 0s !important;
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-delay: 0s !important;
        transition-duration: 0.001ms !important;
    }

    .np-loading::after {
        animation: none !important;
        border-color: var(--np-loader-color, #4f46e5);
    }
}

@media (prefers-contrast: more) {
    :root {
        --np-focus-outline-width: 4px;
        --np-color-border-soft: var(--np-color-border-strong);
    }

    :where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"], [role="radio"]):focus-visible {
        outline-width: var(--np-focus-outline-width, 4px);
    }

    .np-status-message,
    .np-error-summary,
    .np-toast {
        border-width: var(--np-border-width-strong, 2px);
    }
}

@media (forced-colors: active) {
    :where(a, button, input, select, textarea, summary, [tabindex], [role="button"], [role="link"], [role="menuitem"], [role="tab"], [role="switch"], [role="checkbox"], [role="radio"]):focus-visible {
        outline: 2px solid CanvasText;
        outline-offset: 3px;
    }

    .screen-reader-text:focus,
    .sr-only:focus,
    .np-sr-only:focus,
    .visually-hidden:focus,
    .skip-link,
    .np-skip-link {
        border: 2px solid CanvasText;
    }

    .np-loading::after {
        border-color: CanvasText;
    }
}

@media (hover: none) and (pointer: coarse) {
    :where(a, button, [role="button"], [role="link"], input, select, textarea, summary) {
        min-height: 44px;
    }

    :where(a, button, [role="button"], [role="link"]) {
        touch-action: manipulation;
    }
}

@media (max-width: 782px) {
    .skip-link,
    .np-skip-link {
        right: var(--np-spacing-sm, 0.75rem);
        left: var(--np-spacing-sm, 0.75rem);
        justify-content: center;
        width: auto;
    }

    .screen-reader-text:focus,
    .sr-only:focus,
    .np-sr-only:focus,
    .visually-hidden:focus {
        right: var(--np-spacing-sm, 0.75rem) !important;
        left: var(--np-spacing-sm, 0.75rem) !important;
        width: auto !important;
        text-align: center;
    }

    .np-toast-region {
        inset-inline: var(--np-spacing-sm, 0.75rem);
        width: auto;
    }

    .np-close-button {
        width: 3rem;
        height: 3rem;
    }
}

@media (max-width: 480px) {
    .np-status-message,
    .np-error-summary,
    .np-toast {
        padding: var(--np-spacing-sm, 0.75rem);
        border-radius: var(--np-radius-lg, 1rem);
    }

    .np-error-summary-title {
        font-size: var(--np-font-size-md, 1rem);
    }
}