.np-modal-root,
.np-dialog-root,
.np-popup-root,
.np-offcanvas-root,
.np-lightbox-root {
    position: fixed;
    inset: 0;
    z-index: var(--np-z-index-modal, 1000);
    display: none;
    pointer-events: none;
}

.np-modal-root.is-open,
.np-modal-root.is-active,
.np-dialog-root.is-open,
.np-dialog-root.is-active,
.np-popup-root.is-open,
.np-popup-root.is-active,
.np-offcanvas-root.is-open,
.np-offcanvas-root.is-active,
.np-lightbox-root.is-open,
.np-lightbox-root.is-active {
    display: block;
    pointer-events: auto;
}

.np-modal-backdrop,
.np-dialog-backdrop,
.np-popup-backdrop,
.np-offcanvas-backdrop,
.np-lightbox-backdrop {
    position: fixed;
    inset: 0;
    z-index: var(--np-z-index-backdrop, 1);
    background: var(--np-modal-backdrop-background, rgba(15, 23, 42, 0.62));
    backdrop-filter: var(--np-modal-backdrop-filter, blur(10px));
    opacity: 0;
    transition: opacity var(--np-modal-transition, 260ms ease);
}

.is-open > .np-modal-backdrop,
.is-active > .np-modal-backdrop,
.is-open > .np-dialog-backdrop,
.is-active > .np-dialog-backdrop,
.is-open > .np-popup-backdrop,
.is-active > .np-popup-backdrop,
.is-open > .np-offcanvas-backdrop,
.is-active > .np-offcanvas-backdrop,
.is-open > .np-lightbox-backdrop,
.is-active > .np-lightbox-backdrop {
    opacity: 1;
}

.np-modal,
.np-dialog,
.np-popup,
.np-lightbox {
    position: fixed;
    inset: 0;
    z-index: var(--np-z-index-modal-content, 10);
    display: grid;
    place-items: center;
    width: 100%;
    min-width: 0;
    min-height: 100%;
    padding: var(--np-modal-outer-padding, clamp(1rem, 3vw, 2rem));
    pointer-events: none;
}

.np-modal.is-start,
.np-dialog.is-start,
.np-popup.is-start {
    align-items: start;
}

.np-modal.is-end,
.np-dialog.is-end,
.np-popup.is-end {
    align-items: end;
}

.np-modal.is-top,
.np-dialog.is-top,
.np-popup.is-top {
    place-items: start center;
}

.np-modal.is-bottom,
.np-dialog.is-bottom,
.np-popup.is-bottom {
    place-items: end center;
}

.np-modal.is-left,
.np-dialog.is-left,
.np-popup.is-left {
    place-items: center start;
}

.np-modal.is-right,
.np-dialog.is-right,
.np-popup.is-right {
    place-items: center end;
}

[dir="rtl"] .np-modal.is-left,
[dir="rtl"] .np-dialog.is-left,
[dir="rtl"] .np-popup.is-left,
.rtl .np-modal.is-left,
.rtl .np-dialog.is-left,
.rtl .np-popup.is-left {
    place-items: center end;
}

[dir="rtl"] .np-modal.is-right,
[dir="rtl"] .np-dialog.is-right,
[dir="rtl"] .np-popup.is-right,
.rtl .np-modal.is-right,
.rtl .np-dialog.is-right,
.rtl .np-popup.is-right {
    place-items: center start;
}

.np-modal-panel,
.np-dialog-panel,
.np-popup-panel,
.np-lightbox-panel {
    position: relative;
    z-index: var(--np-z-index-modal-content, 10);
    display: flex;
    flex-direction: column;
    width: min(100%, var(--np-modal-width, 640px));
    max-height: calc(100vh - (var(--np-modal-outer-padding, 2rem) * 2));
    overflow: hidden;
    background: var(--np-modal-background, #ffffff);
    border: var(--np-border-width, 1px) solid var(--np-modal-border-color, rgba(226, 232, 240, 0.92));
    border-radius: var(--np-modal-radius, 2rem);
    color: var(--np-modal-color, #334155);
    box-shadow: var(--np-modal-shadow, 0 36px 100px rgba(15, 23, 42, 0.18));
    pointer-events: auto;
    opacity: 0;
    transform: translateY(1rem) scale(0.98);
    transition: opacity var(--np-modal-transition, 260ms ease), transform var(--np-modal-transition, 260ms ease), box-shadow var(--np-modal-transition, 260ms ease);
}

.is-open .np-modal-panel,
.is-active .np-modal-panel,
.is-open .np-dialog-panel,
.is-active .np-dialog-panel,
.is-open .np-popup-panel,
.is-active .np-popup-panel,
.is-open .np-lightbox-panel,
.is-active .np-lightbox-panel {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.np-modal-panel.is-xs,
.np-dialog-panel.is-xs,
.np-popup-panel.is-xs {
    --np-modal-width: 360px;
}

.np-modal-panel.is-sm,
.np-dialog-panel.is-sm,
.np-popup-panel.is-sm {
    --np-modal-width: 480px;
}

.np-modal-panel.is-md,
.np-dialog-panel.is-md,
.np-popup-panel.is-md {
    --np-modal-width: 640px;
}

.np-modal-panel.is-lg,
.np-dialog-panel.is-lg,
.np-popup-panel.is-lg {
    --np-modal-width: 820px;
}

.np-modal-panel.is-xl,
.np-dialog-panel.is-xl,
.np-popup-panel.is-xl {
    --np-modal-width: 1040px;
}

.np-modal-panel.is-2xl,
.np-dialog-panel.is-2xl,
.np-popup-panel.is-2xl {
    --np-modal-width: 1240px;
}

.np-modal-panel.is-full,
.np-dialog-panel.is-full,
.np-popup-panel.is-full {
    width: calc(100vw - (var(--np-modal-outer-padding, 2rem) * 2));
    height: calc(100vh - (var(--np-modal-outer-padding, 2rem) * 2));
    max-height: calc(100vh - (var(--np-modal-outer-padding, 2rem) * 2));
}

.np-modal-panel.is-fluid,
.np-dialog-panel.is-fluid,
.np-popup-panel.is-fluid {
    width: min(100%, calc(100vw - (var(--np-modal-outer-padding, 2rem) * 2)));
}

.np-modal-panel.is-borderless,
.np-dialog-panel.is-borderless,
.np-popup-panel.is-borderless {
    border-color: transparent;
}

.np-modal-panel.is-flat,
.np-dialog-panel.is-flat,
.np-popup-panel.is-flat {
    box-shadow: none;
}

.np-modal-panel.is-glass,
.np-dialog-panel.is-glass,
.np-popup-panel.is-glass {
    background: var(--np-glass-background, rgba(255, 255, 255, 0.76));
    border-color: var(--np-glass-border-color, rgba(203, 213, 225, 0.62));
    box-shadow: var(--np-glass-shadow, 0 8px 24px rgba(15, 23, 42, 0.08));
    backdrop-filter: var(--np-glass-backdrop-filter, blur(16px));
}

.np-modal-panel.is-dark,
.np-dialog-panel.is-dark,
.np-popup-panel.is-dark {
    background: var(--np-color-heading, #0f172a);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.78);
}

.np-modal-panel.is-dark :where(.np-modal-title, .np-dialog-title, .np-popup-title, h1, h2, h3, h4, h5, h6),
.np-dialog-panel.is-dark :where(.np-modal-title, .np-dialog-title, .np-popup-title, h1, h2, h3, h4, h5, h6),
.np-popup-panel.is-dark :where(.np-modal-title, .np-dialog-title, .np-popup-title, h1, h2, h3, h4, h5, h6) {
    color: var(--np-color-white, #ffffff);
}

.np-modal-panel.is-dark :where(.np-modal-description, .np-dialog-description, .np-popup-description, p),
.np-dialog-panel.is-dark :where(.np-modal-description, .np-dialog-description, .np-popup-description, p),
.np-popup-panel.is-dark :where(.np-modal-description, .np-dialog-description, .np-popup-description, p) {
    color: rgba(255, 255, 255, 0.72);
}

.np-modal-header,
.np-dialog-header,
.np-popup-header,
.np-lightbox-header {
    position: relative;
    z-index: var(--np-z-index-content, 10);
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--np-spacing-md, 1rem);
    padding: var(--np-modal-header-padding, 1.5rem 1.5rem 1rem);
    border-block-end: var(--np-modal-header-border, 1px solid transparent);
}

.np-modal-header.is-border,
.np-dialog-header.is-border,
.np-popup-header.is-border {
    border-block-end-color: var(--np-color-border-soft, #e2e8f0);
}

.np-modal-heading,
.np-dialog-heading,
.np-popup-heading {
    display: grid;
    gap: var(--np-spacing-xs, 0.5rem);
    min-width: 0;
}

.np-modal-title,
.np-dialog-title,
.np-popup-title,
.np-lightbox-title {
    margin: 0;
    color: var(--np-modal-title-color, #0f172a);
    font-family: var(--np-font-heading, Tahoma, Arial, sans-serif);
    font-size: var(--np-modal-title-size, 1.375rem);
    font-weight: var(--np-font-weight-black, 900);
    line-height: var(--np-line-height-tight, 1.3);
    letter-spacing: var(--np-letter-spacing-tight, -0.02em);
}

.np-modal-description,
.np-dialog-description,
.np-popup-description,
.np-lightbox-description {
    margin: 0;
    color: var(--np-modal-description-color, #64748b);
    font-size: var(--np-font-size-sm, 0.875rem);
    line-height: var(--np-line-height-snug, 1.5);
}

.np-modal-close,
.np-dialog-close,
.np-popup-close,
.np-offcanvas-close,
.np-lightbox-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--np-modal-close-size, 2.5rem);
    min-width: var(--np-modal-close-size, 2.5rem);
    height: var(--np-modal-close-size, 2.5rem);
    margin: 0;
    padding: 0;
    background: var(--np-modal-close-background, #f1f5f9);
    border: var(--np-border-width, 1px) solid var(--np-modal-close-border-color, #e2e8f0);
    border-radius: var(--np-radius-circle, 50%);
    color: var(--np-modal-close-color, #64748b);
    font-family: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
    transition: background var(--np-transition-fast, 160ms ease), border-color var(--np-transition-fast, 160ms ease), color var(--np-transition-fast, 160ms ease), transform var(--np-transition-fast, 160ms ease);
}

.np-modal-close:hover,
.np-modal-close:focus,
.np-dialog-close:hover,
.np-dialog-close:focus,
.np-popup-close:hover,
.np-popup-close:focus,
.np-offcanvas-close:hover,
.np-offcanvas-close:focus,
.np-lightbox-close:hover,
.np-lightbox-close:focus {
    background: var(--np-color-danger-soft, #fee2e2);
    border-color: rgba(var(--np-color-danger-rgb), 0.18);
    color: var(--np-color-danger, #dc2626);
}

.np-modal-close:active,
.np-dialog-close:active,
.np-popup-close:active,
.np-offcanvas-close:active,
.np-lightbox-close:active {
    transform: scale(0.94);
}

.np-modal-close::before,
.np-dialog-close::before,
.np-popup-close::before,
.np-offcanvas-close::before,
.np-lightbox-close::before {
    content: "×";
}

.np-modal-body,
.np-dialog-body,
.np-popup-body,
.np-lightbox-body {
    position: relative;
    z-index: var(--np-z-index-content, 10);
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    padding: var(--np-modal-body-padding, 0 1.5rem 1.5rem);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.np-modal-body.is-padded,
.np-dialog-body.is-padded,
.np-popup-body.is-padded {
    padding: var(--np-modal-body-padding-padded, 1.5rem);
}

.np-modal-body.is-flush,
.np-dialog-body.is-flush,
.np-popup-body.is-flush {
    padding: 0;
}

.np-modal-body > *:first-child,
.np-dialog-body > *:first-child,
.np-popup-body > *:first-child,
.np-lightbox-body > *:first-child {
    margin-block-start: 0;
}

.np-modal-body > *:last-child,
.np-dialog-body > *:last-child,
.np-popup-body > *:last-child,
.np-lightbox-body > *:last-child {
    margin-block-end: 0;
}

.np-modal-footer,
.np-dialog-footer,
.np-popup-footer,
.np-lightbox-footer {
    position: relative;
    z-index: var(--np-z-index-content, 10);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--np-spacing-sm, 0.75rem);
    padding: var(--np-modal-footer-padding, 1rem 1.5rem 1.5rem);
    border-block-start: var(--np-modal-footer-border, 1px solid transparent);
}

.np-modal-footer.is-border,
.np-dialog-footer.is-border,
.np-popup-footer.is-border {
    border-block-start-color: var(--np-color-border-soft, #e2e8f0);
}

.np-modal-footer.is-start,
.np-dialog-footer.is-start,
.np-popup-footer.is-start {
    justify-content: flex-start;
}

.np-modal-footer.is-center,
.np-dialog-footer.is-center,
.np-popup-footer.is-center {
    justify-content: center;
}

.np-modal-footer.is-between,
.np-dialog-footer.is-between,
.np-popup-footer.is-between {
    justify-content: space-between;
}

.np-modal-footer.is-stack,
.np-dialog-footer.is-stack,
.np-popup-footer.is-stack {
    align-items: stretch;
    flex-direction: column;
}

.np-modal-footer.is-stack > *,
.np-dialog-footer.is-stack > *,
.np-popup-footer.is-stack > * {
    width: 100%;
}

.np-modal-media,
.np-dialog-media,
.np-popup-media {
    position: relative;
    display: block;
    overflow: hidden;
    background: var(--np-color-surface-muted, #f1f5f9);
}

.np-modal-media img,
.np-modal-media video,
.np-dialog-media img,
.np-dialog-media video,
.np-popup-media img,
.np-popup-media video {
    display: block;
    width: 100%;
    height: auto;
}

.np-modal-media.is-cover,
.np-dialog-media.is-cover,
.np-popup-media.is-cover {
    aspect-ratio: 16 / 9;
}

.np-modal-media.is-cover img,
.np-modal-media.is-cover video,
.np-dialog-media.is-cover img,
.np-dialog-media.is-cover video,
.np-popup-media.is-cover img,
.np-popup-media.is-cover video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.np-modal-icon,
.np-dialog-icon,
.np-popup-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--np-modal-icon-size, 4rem);
    min-width: var(--np-modal-icon-size, 4rem);
    height: var(--np-modal-icon-size, 4rem);
    margin-block-end: var(--np-spacing-md, 1rem);
    background: var(--np-color-primary-soft, #eef2ff);
    border-radius: var(--np-radius-2xl, 1.5rem);
    color: var(--np-color-primary, #4f46e5);
    font-size: 1.75rem;
    line-height: 1;
}

.np-modal-icon svg,
.np-dialog-icon svg,
.np-popup-icon svg {
    width: 1em;
    height: 1em;
    fill: currentColor;
}

.np-modal-icon.is-circle,
.np-dialog-icon.is-circle,
.np-popup-icon.is-circle {
    border-radius: var(--np-radius-circle, 50%);
}

.np-modal-icon.is-success,
.np-dialog-icon.is-success,
.np-popup-icon.is-success {
    background: var(--np-color-success-soft, #dcfce7);
    color: var(--np-color-success, #16a34a);
}

.np-modal-icon.is-danger,
.np-dialog-icon.is-danger,
.np-popup-icon.is-danger {
    background: var(--np-color-danger-soft, #fee2e2);
    color: var(--np-color-danger, #dc2626);
}

.np-modal-icon.is-warning,
.np-dialog-icon.is-warning,
.np-popup-icon.is-warning {
    background: var(--np-color-warning-soft, #fef3c7);
    color: var(--np-color-warning-hover, #d97706);
}

.np-modal-icon.is-info,
.np-dialog-icon.is-info,
.np-popup-icon.is-info {
    background: var(--np-color-info-soft, #dbeafe);
    color: var(--np-color-info, #2563eb);
}

.np-modal-centered-content,
.np-dialog-centered-content,
.np-popup-centered-content {
    display: grid;
    justify-items: center;
    gap: var(--np-spacing-md, 1rem);
    text-align: center;
}

.np-modal-actions,
.np-dialog-actions,
.np-popup-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: var(--np-spacing-sm, 0.75rem);
    width: 100%;
}

.np-modal-actions.is-start,
.np-dialog-actions.is-start,
.np-popup-actions.is-start {
    justify-content: flex-start;
}

.np-modal-actions.is-end,
.np-dialog-actions.is-end,
.np-popup-actions.is-end {
    justify-content: flex-end;
}

.np-modal-actions.is-stack,
.np-dialog-actions.is-stack,
.np-popup-actions.is-stack {
    align-items: stretch;
    flex-direction: column;
}

.np-modal-actions.is-stack > *,
.np-dialog-actions.is-stack > *,
.np-popup-actions.is-stack > * {
    width: 100%;
}

.np-offcanvas {
    position: fixed;
    inset-block: 0;
    z-index: var(--np-z-index-modal-content, 10);
    display: flex;
    flex-direction: column;
    width: min(100%, var(--np-offcanvas-width, 420px));
    max-width: 100%;
    background: var(--np-offcanvas-background, #ffffff);
    border: 0;
    color: var(--np-offcanvas-color, #334155);
    box-shadow: var(--np-offcanvas-shadow, 0 36px 100px rgba(15, 23, 42, 0.18));
    pointer-events: auto;
    transition: transform var(--np-offcanvas-transition, 300ms ease), opacity var(--np-offcanvas-transition, 300ms ease);
}

.np-offcanvas.is-start,
.np-offcanvas-start {
    inset-inline-start: 0;
    transform: translateX(-100%);
}

.np-offcanvas.is-end,
.np-offcanvas-end {
    inset-inline-end: 0;
    transform: translateX(100%);
}

[dir="rtl"] .np-offcanvas.is-start,
[dir="rtl"] .np-offcanvas-start,
.rtl .np-offcanvas.is-start,
.rtl .np-offcanvas-start {
    inset-inline-start: auto;
    inset-inline-end: 0;
    transform: translateX(100%);
}

[dir="rtl"] .np-offcanvas.is-end,
[dir="rtl"] .np-offcanvas-end,
.rtl .np-offcanvas.is-end,
.rtl .np-offcanvas-end {
    inset-inline-end: auto;
    inset-inline-start: 0;
    transform: translateX(-100%);
}

.np-offcanvas.is-top,
.np-offcanvas-top {
    inset-inline: 0;
    inset-block-start: 0;
    inset-block-end: auto;
    width: 100%;
    max-width: none;
    height: min(100vh, var(--np-offcanvas-top-height, 420px));
    transform: translateY(-100%);
}

.np-offcanvas.is-bottom,
.np-offcanvas-bottom {
    inset-inline: 0;
    inset-block-start: auto;
    inset-block-end: 0;
    width: 100%;
    max-width: none;
    height: min(100vh, var(--np-offcanvas-bottom-height, 420px));
    border-start-start-radius: var(--np-offcanvas-bottom-radius, 2rem);
    border-start-end-radius: var(--np-offcanvas-bottom-radius, 2rem);
    transform: translateY(100%);
}

.is-open .np-offcanvas,
.is-active .np-offcanvas,
.np-offcanvas.is-open,
.np-offcanvas.is-active {
    transform: translate(0, 0);
}

.np-offcanvas.is-sm {
    --np-offcanvas-width: 340px;
}

.np-offcanvas.is-md {
    --np-offcanvas-width: 420px;
}

.np-offcanvas.is-lg {
    --np-offcanvas-width: 560px;
}

.np-offcanvas.is-xl {
    --np-offcanvas-width: 720px;
}

.np-offcanvas-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--np-spacing-md, 1rem);
    padding: var(--np-offcanvas-header-padding, 1.25rem);
    border-block-end: var(--np-border-width, 1px) solid var(--np-color-border-soft, #e2e8f0);
}

.np-offcanvas-title {
    margin: 0;
    color: var(--np-color-heading, #0f172a);
    font-family: var(--np-font-heading, Tahoma, Arial, sans-serif);
    font-size: var(--np-font-size-xl, 1.25rem);
    font-weight: var(--np-font-weight-black, 900);
    line-height: var(--np-line-height-tight, 1.3);
}

.np-offcanvas-description {
    margin: var(--np-spacing-xs, 0.5rem) 0 0;
    color: var(--np-color-text-muted, #64748b);
    font-size: var(--np-font-size-sm, 0.875rem);
    line-height: var(--np-line-height-snug, 1.5);
}

.np-offcanvas-body {
    flex: 1 1 auto;
    min-height: 0;
    padding: var(--np-offcanvas-body-padding, 1.25rem);
    overflow: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.np-offcanvas-body.is-flush {
    padding: 0;
}

.np-offcanvas-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--np-spacing-sm, 0.75rem);
    padding: var(--np-offcanvas-footer-padding, 1.25rem);
    border-block-start: var(--np-border-width, 1px) solid var(--np-color-border-soft, #e2e8f0);
}

.np-offcanvas-footer.is-stack {
    align-items: stretch;
    flex-direction: column;
}

.np-offcanvas-footer.is-stack > * {
    width: 100%;
}

.np-drawer {
    position: fixed;
    inset-block: 0;
    inset-inline-start: 0;
    z-index: var(--np-z-index-modal-content, 10);
    display: flex;
    flex-direction: column;
    width: min(100%, var(--np-drawer-width, 360px));
    background: var(--np-drawer-background, #ffffff);
    color: var(--np-drawer-color, #334155);
    box-shadow: var(--np-drawer-shadow, 0 36px 100px rgba(15, 23, 42, 0.18));
    transform: translateX(-100%);
    transition: transform var(--np-offcanvas-transition, 300ms ease);
}

[dir="rtl"] .np-drawer,
.rtl .np-drawer {
    inset-inline-start: auto;
    inset-inline-end: 0;
    transform: translateX(100%);
}

.is-open .np-drawer,
.is-active .np-drawer,
.np-drawer.is-open,
.np-drawer.is-active {
    transform: translateX(0);
}

.np-search-modal .np-modal-panel,
.np-modal-search .np-modal-panel {
    --np-modal-width: 820px;
}

.np-search-modal-form,
.np-modal-search-form {
    display: flex;
    align-items: stretch;
    gap: var(--np-spacing-sm, 0.75rem);
    width: 100%;
}

.np-search-modal-input,
.np-modal-search-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: var(--np-input-height-lg, 3.5rem);
    padding-inline: var(--np-spacing-lg, 1.5rem);
    background: var(--np-input-background, #ffffff);
    border: var(--np-border-width, 1px) solid var(--np-input-border-color, #e2e8f0);
    border-radius: var(--np-radius-pill, 999px);
    color: var(--np-input-text-color, #334155);
    font-family: var(--np-body-font-family, Tahoma, Arial, sans-serif);
    font-size: var(--np-font-size-lg, 1.125rem);
    outline: none;
}

.np-search-modal-input:focus,
.np-modal-search-input:focus {
    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));
}

.np-search-modal-results,
.np-modal-search-results {
    display: grid;
    gap: var(--np-spacing-sm, 0.75rem);
    margin-block-start: var(--np-spacing-lg, 1.5rem);
}

.np-search-modal-empty,
.np-modal-search-empty {
    display: grid;
    place-items: center;
    min-height: 180px;
    padding: var(--np-spacing-xl, 2rem);
    background: var(--np-color-surface-muted, #f1f5f9);
    border-radius: var(--np-radius-xl, 1.25rem);
    color: var(--np-color-text-muted, #64748b);
    text-align: center;
}

.np-lightbox {
    padding: var(--np-lightbox-padding, clamp(1rem, 3vw, 2rem));
}

.np-lightbox-panel {
    width: min(100%, var(--np-lightbox-width, 1180px));
    max-height: calc(100vh - (var(--np-lightbox-padding, 2rem) * 2));
    background: transparent;
    border: 0;
    border-radius: var(--np-lightbox-radius, 1.5rem);
    box-shadow: none;
}

.np-lightbox-media {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    max-height: calc(100vh - (var(--np-lightbox-padding, 2rem) * 2));
    background: var(--np-color-heading, #0f172a);
    border-radius: var(--np-lightbox-radius, 1.5rem);
    box-shadow: var(--np-modal-shadow, 0 36px 100px rgba(15, 23, 42, 0.18));
}

.np-lightbox-media img,
.np-lightbox-media video,
.np-lightbox-media iframe {
    display: block;
    max-width: 100%;
    max-height: inherit;
}

.np-lightbox-media img,
.np-lightbox-media video {
    width: auto;
    height: auto;
    object-fit: contain;
}

.np-lightbox-media iframe {
    width: min(100vw - 2rem, 1100px);
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
}

.np-lightbox-close {
    position: fixed;
    z-index: calc(var(--np-z-index-modal-content, 10) + 1);
    inset-block-start: calc(var(--np-admin-offset, 0px) + var(--np-spacing-lg, 1.5rem));
    inset-inline-end: var(--np-spacing-lg, 1.5rem);
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.18);
    color: var(--np-color-white, #ffffff);
    backdrop-filter: blur(10px);
}

.np-lightbox-close:hover,
.np-lightbox-close:focus {
    background: var(--np-color-white, #ffffff);
    border-color: var(--np-color-white, #ffffff);
    color: var(--np-color-danger, #dc2626);
}

.np-lightbox-caption {
    margin-block-start: var(--np-spacing-md, 1rem);
    color: rgba(255, 255, 255, 0.78);
    font-size: var(--np-font-size-sm, 0.875rem);
    line-height: var(--np-line-height-snug, 1.5);
    text-align: center;
}

.np-modal-loading,
.np-dialog-loading,
.np-popup-loading,
.np-offcanvas-loading {
    position: relative;
    min-height: var(--np-modal-loading-min-height, 220px);
    pointer-events: none;
}

.np-modal-loading::before,
.np-dialog-loading::before,
.np-popup-loading::before,
.np-offcanvas-loading::before {
    position: absolute;
    inset: 0;
    z-index: var(--np-z-index-content, 10);
    background: rgba(255, 255, 255, 0.64);
    backdrop-filter: blur(4px);
    content: "";
}

.np-modal-loading::after,
.np-dialog-loading::after,
.np-popup-loading::after,
.np-offcanvas-loading::after {
    position: absolute;
    inset-block-start: 50%;
    inset-inline-start: 50%;
    z-index: calc(var(--np-z-index-content, 10) + 1);
    width: 2rem;
    height: 2rem;
    margin-block-start: -1rem;
    margin-inline-start: -1rem;
    border: 3px solid var(--np-loader-track-color, #eef2ff);
    border-block-start-color: var(--np-loader-color, #4f46e5);
    border-radius: var(--np-radius-circle, 50%);
    animation: np-modal-spin 700ms linear infinite;
    content: "";
}

[dir="rtl"] .np-modal-loading::after,
[dir="rtl"] .np-dialog-loading::after,
[dir="rtl"] .np-popup-loading::after,
[dir="rtl"] .np-offcanvas-loading::after,
.rtl .np-modal-loading::after,
.rtl .np-dialog-loading::after,
.rtl .np-popup-loading::after,
.rtl .np-offcanvas-loading::after {
    margin-inline-start: 0;
    margin-inline-end: -1rem;
}

.np-modal-skeleton,
.np-dialog-skeleton,
.np-popup-skeleton,
.np-offcanvas-skeleton {
    position: relative;
    overflow: hidden;
    background: var(--np-color-surface-muted, #f1f5f9);
    color: transparent;
    pointer-events: none;
}

.np-modal-skeleton::after,
.np-dialog-skeleton::after,
.np-popup-skeleton::after,
.np-offcanvas-skeleton::after {
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.58) 50%, transparent 100%);
    animation: np-modal-skeleton 1200ms ease-in-out infinite;
    content: "";
}

[dir="rtl"] .np-modal-skeleton::after,
[dir="rtl"] .np-dialog-skeleton::after,
[dir="rtl"] .np-popup-skeleton::after,
[dir="rtl"] .np-offcanvas-skeleton::after,
.rtl .np-modal-skeleton::after,
.rtl .np-dialog-skeleton::after,
.rtl .np-popup-skeleton::after,
.rtl .np-offcanvas-skeleton::after {
    transform: translateX(100%);
    animation-name: np-modal-skeleton-rtl;
}

dialog.np-dialog-native {
    width: min(100%, var(--np-modal-width, 640px));
    max-width: calc(100vw - 2rem);
    max-height: calc(100vh - 2rem);
    padding: 0;
    overflow: hidden;
    background: var(--np-modal-background, #ffffff);
    border: var(--np-border-width, 1px) solid var(--np-modal-border-color, rgba(226, 232, 240, 0.92));
    border-radius: var(--np-modal-radius, 2rem);
    color: var(--np-modal-color, #334155);
    box-shadow: var(--np-modal-shadow, 0 36px 100px rgba(15, 23, 42, 0.18));
}

dialog.np-dialog-native::backdrop {
    background: var(--np-modal-backdrop-background, rgba(15, 23, 42, 0.62));
    backdrop-filter: var(--np-modal-backdrop-filter, blur(10px));
}

body.np-modal-open,
html.np-modal-open,
body.np-offcanvas-open,
html.np-offcanvas-open {
    overflow: hidden;
}

.admin-bar .np-modal,
.admin-bar .np-dialog,
.admin-bar .np-popup,
.admin-bar .np-lightbox,
.admin-bar .np-modal-backdrop,
.admin-bar .np-dialog-backdrop,
.admin-bar .np-popup-backdrop,
.admin-bar .np-lightbox-backdrop,
.admin-bar .np-offcanvas-backdrop {
    top: var(--np-admin-offset, 32px);
}

.admin-bar .np-offcanvas {
    inset-block-start: var(--np-admin-offset, 32px);
}

.admin-bar .np-offcanvas.is-top,
.admin-bar .np-offcanvas-top {
    inset-block-start: var(--np-admin-offset, 32px);
}

.admin-bar .np-lightbox-close {
    inset-block-start: calc(var(--np-admin-offset, 32px) + var(--np-spacing-lg, 1.5rem));
}

.woocommerce .np-modal,
.woocommerce-page .np-modal,
.dokan-dashboard .np-modal,
.elementor .np-modal {
    font-family: var(--np-body-font-family, Tahoma, Arial, sans-serif);
}

.np-section-dark .np-modal-panel,
.np-section-dark .np-dialog-panel,
.np-section-dark .np-popup-panel,
.np-layout-dark .np-modal-panel,
.np-layout-dark .np-dialog-panel,
.np-layout-dark .np-popup-panel {
    background: var(--np-color-heading, #0f172a);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.78);
}

.np-section-dark .np-modal-title,
.np-section-dark .np-dialog-title,
.np-section-dark .np-popup-title,
.np-layout-dark .np-modal-title,
.np-layout-dark .np-dialog-title,
.np-layout-dark .np-popup-title {
    color: var(--np-color-white, #ffffff);
}

.np-section-dark .np-modal-description,
.np-section-dark .np-dialog-description,
.np-section-dark .np-popup-description,
.np-layout-dark .np-modal-description,
.np-layout-dark .np-dialog-description,
.np-layout-dark .np-popup-description {
    color: rgba(255, 255, 255, 0.68);
}

.np-section-dark .np-modal-header.is-border,
.np-section-dark .np-dialog-header.is-border,
.np-section-dark .np-popup-header.is-border,
.np-section-dark .np-modal-footer.is-border,
.np-section-dark .np-dialog-footer.is-border,
.np-section-dark .np-popup-footer.is-border,
.np-layout-dark .np-modal-header.is-border,
.np-layout-dark .np-dialog-header.is-border,
.np-layout-dark .np-popup-header.is-border,
.np-layout-dark .np-modal-footer.is-border,
.np-layout-dark .np-dialog-footer.is-border,
.np-layout-dark .np-popup-footer.is-border {
    border-color: rgba(255, 255, 255, 0.12);
}

.np-section-dark .np-modal-close,
.np-section-dark .np-dialog-close,
.np-section-dark .np-popup-close,
.np-layout-dark .np-modal-close,
.np-layout-dark .np-dialog-close,
.np-layout-dark .np-popup-close {
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.78);
}

.np-section-dark .np-modal-close:hover,
.np-section-dark .np-modal-close:focus,
.np-section-dark .np-dialog-close:hover,
.np-section-dark .np-dialog-close:focus,
.np-section-dark .np-popup-close:hover,
.np-section-dark .np-popup-close:focus,
.np-layout-dark .np-modal-close:hover,
.np-layout-dark .np-modal-close:focus,
.np-layout-dark .np-dialog-close:hover,
.np-layout-dark .np-dialog-close:focus,
.np-layout-dark .np-popup-close:hover,
.np-layout-dark .np-popup-close:focus {
    background: var(--np-color-white, #ffffff);
    border-color: var(--np-color-white, #ffffff);
    color: var(--np-color-danger, #dc2626);
}

@keyframes np-modal-spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes np-modal-skeleton {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(100%);
    }
}

@keyframes np-modal-skeleton-rtl {
    from {
        transform: translateX(100%);
    }

    to {
        transform: translateX(-100%);
    }
}

@media (max-width: 1024px) {
    .np-modal-panel.is-xl,
    .np-dialog-panel.is-xl,
    .np-popup-panel.is-xl,
    .np-modal-panel.is-2xl,
    .np-dialog-panel.is-2xl,
    .np-popup-panel.is-2xl {
        --np-modal-width: 92vw;
    }

    .np-offcanvas.is-xl {
        --np-offcanvas-width: 620px;
    }
}

@media (max-width: 782px) {
    .np-modal,
    .np-dialog,
    .np-popup,
    .np-lightbox {
        padding: var(--np-modal-outer-padding-mobile, 1rem);
    }

    .np-modal-panel,
    .np-dialog-panel,
    .np-popup-panel,
    .np-lightbox-panel {
        width: min(100%, var(--np-modal-width-mobile, 100%));
        max-height: calc(100vh - (var(--np-modal-outer-padding-mobile, 1rem) * 2));
        border-radius: var(--np-modal-radius-mobile, 1.5rem);
    }

    .np-modal-panel.is-full,
    .np-dialog-panel.is-full,
    .np-popup-panel.is-full {
        width: calc(100vw - (var(--np-modal-outer-padding-mobile, 1rem) * 2));
        height: calc(100vh - (var(--np-modal-outer-padding-mobile, 1rem) * 2));
        max-height: calc(100vh - (var(--np-modal-outer-padding-mobile, 1rem) * 2));
    }

    .np-modal-header,
    .np-dialog-header,
    .np-popup-header,
    .np-lightbox-header {
        padding: var(--np-modal-header-padding-mobile, 1.25rem 1.25rem 0.875rem);
    }

    .np-modal-title,
    .np-dialog-title,
    .np-popup-title,
    .np-lightbox-title {
        font-size: var(--np-modal-title-size-mobile, 1.125rem);
    }

    .np-modal-body,
    .np-dialog-body,
    .np-popup-body,
    .np-lightbox-body {
        padding: var(--np-modal-body-padding-mobile, 0 1.25rem 1.25rem);
    }

    .np-modal-body.is-padded,
    .np-dialog-body.is-padded,
    .np-popup-body.is-padded {
        padding: var(--np-modal-body-padding-padded-mobile, 1.25rem);
    }

    .np-modal-footer,
    .np-dialog-footer,
    .np-popup-footer,
    .np-lightbox-footer {
        align-items: stretch;
        flex-direction: column;
        padding: var(--np-modal-footer-padding-mobile, 0.875rem 1.25rem 1.25rem);
    }

    .np-modal-footer > *,
    .np-dialog-footer > *,
    .np-popup-footer > *,
    .np-lightbox-footer > * {
        width: 100%;
    }

    .np-modal-actions,
    .np-dialog-actions,
    .np-popup-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .np-modal-actions > *,
    .np-dialog-actions > *,
    .np-popup-actions > * {
        width: 100%;
    }

    .np-offcanvas {
        width: min(92vw, var(--np-offcanvas-width-mobile, 390px));
    }

    .np-offcanvas.is-top,
    .np-offcanvas-top,
    .np-offcanvas.is-bottom,
    .np-offcanvas-bottom {
        width: 100%;
        height: min(88vh, var(--np-offcanvas-mobile-height, 520px));
    }

    .np-offcanvas.is-bottom,
    .np-offcanvas-bottom {
        border-start-start-radius: var(--np-radius-2xl, 1.5rem);
        border-start-end-radius: var(--np-radius-2xl, 1.5rem);
    }

    .np-offcanvas-header,
    .np-offcanvas-body,
    .np-offcanvas-footer {
        padding-inline: var(--np-spacing-md, 1rem);
    }

    .np-search-modal-form,
    .np-modal-search-form {
        flex-direction: column;
    }

    .np-search-modal-input,
    .np-modal-search-input {
        min-height: var(--np-input-height, 3rem);
        font-size: var(--np-font-size-md, 1rem);
    }

    .np-lightbox {
        padding: var(--np-lightbox-padding-mobile, 1rem);
    }

    .np-lightbox-panel,
    .np-lightbox-media {
        max-height: calc(100vh - 2rem);
        border-radius: var(--np-radius-xl, 1.25rem);
    }

    .np-lightbox-close {
        inset-block-start: calc(var(--np-admin-offset, 0px) + var(--np-spacing-md, 1rem));
        inset-inline-end: var(--np-spacing-md, 1rem);
    }

    .admin-bar .np-modal,
    .admin-bar .np-dialog,
    .admin-bar .np-popup,
    .admin-bar .np-lightbox,
    .admin-bar .np-modal-backdrop,
    .admin-bar .np-dialog-backdrop,
    .admin-bar .np-popup-backdrop,
    .admin-bar .np-lightbox-backdrop,
    .admin-bar .np-offcanvas-backdrop {
        top: var(--np-admin-offset, 46px);
    }

    .admin-bar .np-offcanvas {
        inset-block-start: var(--np-admin-offset, 46px);
    }

    .admin-bar .np-lightbox-close {
        inset-block-start: calc(var(--np-admin-offset, 46px) + var(--np-spacing-md, 1rem));
    }
}

@media (max-width: 480px) {
    .np-modal,
    .np-dialog,
    .np-popup,
    .np-lightbox {
        padding: var(--np-modal-outer-padding-small, 0.5rem);
    }

    .np-modal-panel,
    .np-dialog-panel,
    .np-popup-panel,
    .np-lightbox-panel {
        max-height: calc(100vh - 1rem);
        border-radius: var(--np-modal-radius-small, 1.25rem);
    }

    .np-modal-panel.is-full,
    .np-dialog-panel.is-full,
    .np-popup-panel.is-full {
        width: calc(100vw - 1rem);
        height: calc(100vh - 1rem);
        max-height: calc(100vh - 1rem);
    }

    .np-modal-header,
    .np-dialog-header,
    .np-popup-header,
    .np-lightbox-header {
        padding: var(--np-modal-header-padding-small, 1rem 1rem 0.75rem);
    }

    .np-modal-body,
    .np-dialog-body,
    .np-popup-body,
    .np-lightbox-body {
        padding: var(--np-modal-body-padding-small, 0 1rem 1rem);
    }

    .np-modal-body.is-padded,
    .np-dialog-body.is-padded,
    .np-popup-body.is-padded {
        padding: var(--np-modal-body-padding-padded-small, 1rem);
    }

    .np-modal-footer,
    .np-dialog-footer,
    .np-popup-footer,
    .np-lightbox-footer {
        padding: var(--np-modal-footer-padding-small, 0.75rem 1rem 1rem);
    }

    .np-modal-close,
    .np-dialog-close,
    .np-popup-close,
    .np-offcanvas-close,
    .np-lightbox-close {
        --np-modal-close-size: 2.25rem;
        font-size: 1.25rem;
    }

    .np-modal-icon,
    .np-dialog-icon,
    .np-popup-icon {
        --np-modal-icon-size: 3.25rem;
        font-size: 1.5rem;
    }

    .np-offcanvas {
        width: min(94vw, var(--np-offcanvas-width-small, 360px));
    }

    .np-offcanvas-header,
    .np-offcanvas-body,
    .np-offcanvas-footer {
        padding: var(--np-spacing-md, 1rem);
    }

    .np-offcanvas-footer {
        align-items: stretch;
        flex-direction: column;
    }

    .np-offcanvas-footer > * {
        width: 100%;
    }

    .np-lightbox {
        padding: var(--np-lightbox-padding-small, 0.5rem);
    }

    .np-lightbox-panel,
    .np-lightbox-media {
        max-height: calc(100vh - 1rem);
        border-radius: var(--np-radius-lg, 1rem);
    }

    .np-lightbox-close {
        inset-block-start: calc(var(--np-admin-offset, 0px) + var(--np-spacing-sm, 0.75rem));
        inset-inline-end: var(--np-spacing-sm, 0.75rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .np-modal-backdrop,
    .np-dialog-backdrop,
    .np-popup-backdrop,
    .np-offcanvas-backdrop,
    .np-lightbox-backdrop,
    .np-modal-panel,
    .np-dialog-panel,
    .np-popup-panel,
    .np-lightbox-panel,
    .np-offcanvas,
    .np-drawer,
    .np-modal-close,
    .np-dialog-close,
    .np-popup-close,
    .np-offcanvas-close,
    .np-lightbox-close {
        transition: none !important;
    }

    .np-modal-panel,
    .np-dialog-panel,
    .np-popup-panel,
    .np-lightbox-panel {
        transform: none !important;
    }

    .np-modal-loading::after,
    .np-dialog-loading::after,
    .np-popup-loading::after,
    .np-offcanvas-loading::after,
    .np-modal-skeleton::after,
    .np-dialog-skeleton::after,
    .np-popup-skeleton::after,
    .np-offcanvas-skeleton::after {
        animation: none !important;
    }
}

@media print {
    .np-modal-root,
    .np-dialog-root,
    .np-popup-root,
    .np-offcanvas-root,
    .np-lightbox-root,
    .np-modal,
    .np-dialog,
    .np-popup,
    .np-offcanvas,
    .np-drawer,
    .np-lightbox,
    dialog.np-dialog-native {
        display: none !important;
    }
}