{"version":3,"sources":["notices/oauth.scss","dashboard.css","sections/widgets.scss","sections/services.scss","sections/promotions.scss","widgets/forms.scss","home/runner/work/ninja-forms/ninja-forms/assets/scss/shared/_nf-ai-model-picker.scss","home/runner/work/ninja-forms/ninja-forms/assets/scss/shared/_nf-modal.scss","dashboard.scss"],"names":[],"mappings":"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","file":"dashboard.min.css","sourcesContent":["@keyframes nf-connected {\n   0% {\n      box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n            inset 0 0 2px rgba(255, 255, 255, 0);\n   }\n   50% {\n      box-shadow: 0 0 2px #84cc1e,\n            inset 100vw 0 2px rgba(255, 255, 255, .2);\n   }\n   100% {\n      box-shadow: 0 0 2px rgba(255, 255, 255, 0),\n            inset 100vw 0 2px rgba(255, 255, 255, 0);\n   }\n}\n\n.nf-notices--oauth {\n  margin-top: -40px; // Account for the bottom margin on the topbar.\n  padding-bottom: 20px; // Increase hover target, while maintaining whitespace.\n  text-align:center;\n}\n\n.nf-oauth--checking {\n  padding: 5px;\n}\n\n.nf-oauth--connect {\n  display:block;\n  background-color:#1EA9EA;\n  color:white;\n  padding: 5px;\n  text-decoration:none;\n}\n\n.nf-oauth--connected {\n  color: transparent;\n  padding: 0;\n  line-height: .5;\n  transition: all .4s;\n  background-color:#84CC1E;\n}\n.nf-oauth--connected:not(:hover) {\n  animation: nf-connected 8s ease infinite;\n  animation-delay: 2s;\n}\n.nf-notices--oauth:hover .nf-oauth--connected {\n  color:white;\n  line-height: 2;\n  padding: 5px;\n}\n","@charset \"UTF-8\";\n@keyframes nf-connected {\n  0% {\n    box-shadow: 0 0 2px rgba(255, 255, 255, 0), inset 0 0 2px rgba(255, 255, 255, 0);\n  }\n  50% {\n    box-shadow: 0 0 2px #84cc1e, inset 100vw 0 2px rgba(255, 255, 255, 0.2);\n  }\n  100% {\n    box-shadow: 0 0 2px rgba(255, 255, 255, 0), inset 100vw 0 2px rgba(255, 255, 255, 0);\n  }\n}\n.nf-notices--oauth {\n  margin-top: -40px;\n  padding-bottom: 20px;\n  text-align: center;\n}\n\n.nf-oauth--checking {\n  padding: 5px;\n}\n\n.nf-oauth--connect {\n  display: block;\n  background-color: #1EA9EA;\n  color: white;\n  padding: 5px;\n  text-decoration: none;\n}\n\n.nf-oauth--connected {\n  color: transparent;\n  padding: 0;\n  line-height: 0.5;\n  transition: all 0.4s;\n  background-color: #84CC1E;\n}\n\n.nf-oauth--connected:not(:hover) {\n  animation: nf-connected 8s ease infinite;\n  animation-delay: 2s;\n}\n\n.nf-notices--oauth:hover .nf-oauth--connected {\n  color: white;\n  line-height: 2;\n  padding: 5px;\n}\n\n.widget {\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  margin-bottom: 20px;\n  padding: 20px;\n}\n.widget header {\n  margin-bottom: 20px;\n}\n\n.widget-memberships {\n  border: 0;\n  padding: 0;\n}\n\n.pricing-container {\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.pricing-container .pricing-block {\n  width: 30%;\n}\n.pricing-container .pricing-block.highlight {\n  background-color: #f1f1f1;\n}\n.pricing-container .pricing-header {\n  text-align: center;\n}\n.pricing-container .pricing-header > div {\n  margin-bottom: 10px;\n}\n.pricing-container .pricing-header .pricing-title {\n  font-size: 24px;\n  margin-bottom: 16px;\n}\n.pricing-container .pricing-header .pricing-price {\n  font-size: 24px;\n  font-weight: bold;\n  padding: 5px 0;\n}\n.pricing-container .pricing-body > div {\n  padding: 10px 0;\n  position: relative;\n}\n.pricing-container .pricing-body span {\n  display: block;\n  margin-left: 40px;\n}\n.pricing-container .pricing-body ul {\n  list-style: disc;\n  margin-left: 20px;\n  padding-left: 20px;\n}\n.pricing-container .pricing-body hr {\n  margin-top: 10px;\n  margin-bottom: 10px;\n  border: 0;\n  border-top: 1px solid #424242;\n}\n.pricing-container .pricing-body .fa {\n  color: #aaa;\n  font-size: 24px;\n  position: absolute;\n  left: 0;\n}\n.pricing-container .pricing-body .pricing-body-title {\n  font-weight: bold;\n  text-transform: uppercase;\n}\n\n.widget-plan-notice {\n  text-align: center;\n}\n.widget-plan-notice .widget-title {\n  font-size: 32px;\n  font-weight: bold;\n  margin: 0 0 10px 0;\n  text-align: center;\n}\n.widget-plan-notice .nf-button {\n  margin-bottom: 20px;\n}\n\n@keyframes nf-service-installing {\n  100% {\n    transform: rotate(360deg);\n  }\n}\n.dashicons-update-spin {\n  animation: nf-service-installing 1s linear infinite;\n}\n\n.services .nf-extend.full {\n  flex-basis: 100%;\n}\n.services .nf-extend-buttons a {\n  margin-top: 20px;\n}\n.services .nf-extend-buttons .nf-button {\n  margin-top: auto;\n  margin-bottom: 10px;\n}\n\n.jBox-Confirm-button {\n  height: auto !important;\n  font-size: 17px !important;\n  padding: 10px 30px !important;\n}\n\n.jBox-Confirm-button-submit {\n  background: #1ea9ea !important;\n  border: 1px solid #fff !important;\n  color: #fff !important;\n}\n\n.jBox-Confirm-button-cancel {\n  background: #fff !important;\n  border: 1px solid #1ea9ea !important;\n  color: #1ea9ea !important;\n}\n\n#nf-services-settings-anchor .apps-container .nf-box-inside {\n  box-sizing: border-box;\n  min-height: 457px;\n  display: flex;\n  flex-direction: column;\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside > h2 {\n  margin-top: 0;\n}\n#nf-services-settings-anchor .apps-container .nf-extend-content {\n  margin-top: 0;\n  flex: 1 1 auto;\n  display: flex;\n  flex-direction: column;\n}\n#nf-services-settings-anchor .apps-container .nf-extend-content p {\n  min-height: 0;\n  margin-top: 0;\n}\n#nf-services-settings-anchor .apps-container .nf-extend-buttons {\n  margin-top: auto;\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside::before {\n  content: \"\";\n  display: block;\n  width: 100%;\n  aspect-ratio: 12/5;\n  background-size: cover;\n  background-position: center;\n  background-repeat: no-repeat;\n  margin: 0 0 14px 0;\n  border-radius: 6px;\n  border: 1px solid rgba(0, 0, 0, 0.08);\n  flex-shrink: 0;\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=\"sendwp.com\"])::before {\n  background-image: url(\"../img/partners/sendwp-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=\"sirenaffiliates.com\"])::before {\n  background-image: url(\"../img/partners/siren-banner.png\");\n  aspect-ratio: 400/162;\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=\"wpml.org\"])::before {\n  background-image: url(\"../img/partners/wpml-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=how-to-add-ninja-forms-to-elementor])::before {\n  background-image: url(\"../img/partners/elementor-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=\"codeable.io\"])::before {\n  background-image: url(\"../img/partners/codeable-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=paypal-checkout])::before {\n  background-image: url(\"../img/partners/paypal-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=omnisend])::before {\n  background-image: url(\"../img/partners/omnisend-banner.png\");\n}\n#nf-services-settings-anchor .apps-container .nf-box-inside:has(a[href*=\"hostarmada.com\"])::before {\n  background-image: url(\"../img/partners/hostarmada-banner.png\");\n}\n\n/* This section intentionally left blank. */\n.promotion--wrapper {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n  margin-bottom: 20px;\n}\n\n.promotion--wrapper a:focus {\n  box-shadow: unset;\n}\n\nth {\n  font-weight: bold;\n}\n\n.widget-forms .sortable {\n  cursor: pointer;\n  font-weight: bold;\n  margin-left: -5px;\n}\n.widget-forms .sortable:hover:after {\n  content: \"\\f0dc\";\n}\n.widget-forms .sortable:after {\n  font-family: \"FontAwesome\";\n  margin-left: 5px;\n  position: absolute;\n}\n.widget-forms .sortable.sorted-asc:after {\n  content: \"\\f0de\";\n}\n.widget-forms .sortable.sorted-desc:after {\n  content: \"\\f0dd\";\n}\n.widget-forms header {\n  display: flex;\n}\n.widget-forms header div {\n  flex: 1;\n}\n.widget-forms header div:first-of-type {\n  flex: 2;\n}\n.widget-forms .action {\n  display: flex;\n}\n.widget-forms .form-row-actions a {\n  cursor: pointer;\n}\n.widget-forms .form-row-actions a.delete {\n  color: #FF4136;\n}\n\n.forms-collection > div {\n  padding: 10px;\n}\n.forms-collection > div:nth-child(odd) {\n  background-color: #EBEDEE;\n}\n.forms-collection .deleting {\n  color: #FF4136;\n  background-color: #ECEDEE;\n}\n.forms-collection .deleting a {\n  color: #FF4136;\n}\n.forms-collection .deleting footer {\n  display: none;\n}\n.forms-collection .nf-main-content.content {\n  display: flex;\n}\n.forms-collection .nf-main-content.content div {\n  flex: 1;\n}\n.forms-collection .nf-main-content.content div:first-of-type {\n  flex: 2;\n}\n.forms-collection footer ul {\n  margin: 0;\n  padding-top: 20px;\n  display: flex;\n}\n.forms-collection footer ul li a.delete {\n  color: red;\n}\n.forms-collection footer ul li:after {\n  content: \" |\";\n  margin: auto 5px;\n}\n.forms-collection footer ul li:last-child:after {\n  content: \"\";\n}\n\n.nf-template-grid .section-head {\n  font-size: 36px;\n  font-weight: bold;\n  width: 75%;\n  display: block;\n  border-bottom: 1px solid #ccc;\n  padding-bottom: 15px;\n  margin: 60px 0px 25px 10px;\n}\n.nf-template-grid .template-list {\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n}\n.nf-template-grid .template-list > div {\n  display: flex;\n  width: 50%;\n}\n.nf-template-grid .template-list .template {\n  display: grid;\n  width: 100%;\n}\n.nf-template-grid .template-list .template a {\n  color: #424242;\n  display: block;\n  margin: 5px;\n  padding: 30px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  min-height: 80px;\n  cursor: pointer;\n}\n.nf-template-grid .template-list .template a:hover {\n  background: #1EA9EA;\n  color: #fff;\n}\n.nf-template-grid .template-list .template a .title {\n  display: block;\n  font-size: 20px;\n  margin-bottom: 10px;\n}\n.nf-template-grid .template-list .ad a {\n  border-color: #EBEDEE;\n}\n.nf-template-grid .template-list .default a {\n  background: #EBEDEE;\n  border-color: #EBEDEE;\n}\n.nf-template-grid .template-list .autogenerate a {\n  border-color: #1EA9EA;\n  background: #F2FAFE;\n}\n.nf-template-grid .template-list .autogenerate a .title .nf-ai-sparkle {\n  color: #1EA9EA;\n  margin-right: 8px;\n  font-size: 18px;\n}\n.nf-template-grid .template-list .autogenerate a:hover {\n  background: #1EA9EA;\n}\n.nf-template-grid .template-list .autogenerate a:hover .title .nf-ai-sparkle {\n  color: #fff;\n}\n\ntable .forms-table-row li {\n  display: inline-block;\n}\n\n.modal-template {\n  padding: 20px;\n}\n.modal-template img {\n  width: 100%;\n}\n.modal-template iframe {\n  width: 100%;\n  height: 214px;\n}\n.modal-template p:first-of-type {\n  font-size: 16px;\n  font-weight: bold;\n  line-height: 20px;\n  padding: 16px 40px;\n  text-align: center;\n}\n.modal-template .actions {\n  margin-top: 30px;\n}\n.modal-template .actions::after {\n  display: block;\n  clear: both;\n  content: \"\";\n}\n.modal-template .primary.nf-button {\n  float: right;\n}\n\n/*\n * Custom AI sparkle glyph: no icon set we ship carries the modern sparkle\n * convention, so it's a masked SVG painted with currentColor — it inherits\n * and transitions color exactly like a font icon.\n */\n.nf-ai-sparkle {\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  vertical-align: -0.125em;\n  background-color: currentColor;\n  -webkit-mask: url(../img/nf-ai-sparkle.svg) no-repeat center;\n  -webkit-mask-size: contain;\n  mask: url(../img/nf-ai-sparkle.svg) no-repeat center;\n  mask-size: contain;\n}\n\n.nf-ai-form-builder .nf-ai-model-menu {\n  overscroll-behavior: contain;\n}\n.nf-ai-form-builder .nf-ai-model-search {\n  width: 100%;\n  box-sizing: border-box;\n}\n.nf-ai-form-builder .nf-ai-model-group {\n  border-top: 1px solid #f0f0f1;\n}\n.nf-ai-form-builder .nf-ai-model-group strong {\n  display: block;\n  padding: 2px 7px 5px;\n  color: #646970;\n  font-size: 12px;\n}\n.nf-ai-form-builder .nf-ai-model-option,\n.nf-ai-form-builder .nf-ai-model-show-all {\n  display: block;\n  width: 100%;\n  padding: 7px;\n  border: 0;\n  border-radius: 3px;\n  background: transparent;\n  color: #2c3338;\n  font-size: inherit;\n  text-align: left;\n  cursor: pointer;\n}\n.nf-ai-form-builder .nf-ai-model-option:hover,\n.nf-ai-form-builder .nf-ai-model-option:focus,\n.nf-ai-form-builder .nf-ai-model-option.is-active,\n.nf-ai-form-builder .nf-ai-model-option.is-selected {\n  background: #f0f6fc;\n  color: #135e96;\n}\n.nf-ai-form-builder .nf-ai-model-option.is-active {\n  outline: 2px solid #2271b1;\n  outline-offset: -2px;\n}\n.nf-ai-form-builder .nf-ai-model-option.is-extra,\n.nf-ai-form-builder .nf-ai-model-menu.is-searching .nf-ai-model-show-all,\n.nf-ai-form-builder .nf-ai-model-group.show-all .nf-ai-model-show-all {\n  display: none;\n}\n.nf-ai-form-builder .nf-ai-model-group.show-all .nf-ai-model-option.is-extra,\n.nf-ai-form-builder .nf-ai-model-menu.is-searching .nf-ai-model-option.is-extra {\n  display: block;\n}\n.nf-ai-form-builder .nf-ai-model-option.is-filtered-out {\n  display: none;\n}\n.nf-ai-form-builder .nf-ai-model-show-all {\n  color: #2271b1;\n  font-size: 12px;\n}\n.nf-ai-form-builder label {\n  display: block;\n  margin: 0 0 6px;\n  color: #3c434a;\n  font-size: 13px;\n  font-weight: 600;\n}\n.nf-ai-form-builder .nf-ai-model-picker {\n  position: relative;\n  margin-bottom: 14px;\n}\n.nf-ai-form-builder .nf-ai-model-trigger {\n  width: 100%;\n  min-height: 40px;\n  display: flex;\n  align-items: center;\n  justify-content: space-between;\n  padding: 0 10px;\n  border: 1px solid #c3c4c7;\n  border-radius: 5px;\n  background: #fff;\n  color: #2c3338;\n  text-align: left;\n  cursor: pointer;\n}\n.nf-ai-form-builder .nf-ai-model-menu {\n  position: absolute;\n  right: 0;\n  left: 0;\n  max-height: 320px;\n  overflow-y: auto;\n  padding: 10px;\n  border: 1px solid #c3c4c7;\n  border-radius: 6px;\n  background: #fff;\n  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.14);\n  z-index: 100;\n  top: calc(100% + 5px);\n}\n.nf-ai-form-builder .nf-ai-model-picker:not(.is-open) .nf-ai-model-menu {\n  display: none;\n}\n.nf-ai-form-builder .nf-ai-model-search {\n  margin-bottom: 10px;\n}\n.nf-ai-form-builder .nf-ai-model-group {\n  padding: 7px 0;\n}\n.nf-ai-form-builder textarea {\n  width: 100%;\n  box-sizing: border-box;\n  padding: 10px;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  resize: vertical;\n}\n.nf-ai-form-builder .nf-ai-prompt-meta {\n  display: flex;\n  justify-content: flex-end;\n  min-height: 20px;\n  margin: 4px 0 8px;\n}\n.nf-ai-form-builder .nf-ai-prompt-count {\n  color: #646970;\n  font-size: 12px;\n}\n.nf-ai-form-builder .nf-ai-prompt-count.is-over {\n  color: #b32d2e;\n  font-weight: 600;\n}\n.nf-ai-form-builder {\n  /* Full border, not a left accent bar; #b32d2e clears AA on this tint where\n     #d63638 did not. */\n}\n.nf-ai-form-builder #nf-ai-form-error {\n  margin-top: 10px;\n  padding: 8px 12px;\n  border: 1px solid #f0b3b4;\n  border-radius: 4px;\n  background: #fcf0f1;\n  color: #b32d2e;\n}\n.nf-ai-form-builder .nf-ai-privacy {\n  margin: 6px 0 0;\n  font-size: 12px;\n  line-height: 1.4;\n  color: #646970;\n}\n.nf-ai-form-builder .primary.nf-button:disabled {\n  opacity: 0.6;\n  cursor: wait;\n}\n\n/* The model list overlays the prompt instead of changing modal dimensions. */\n.nf-ai-form-modal .jBox-container,\n.nf-ai-form-modal .jBox-content {\n  overflow: visible;\n}\n\n.nf-ai-progress {\n  padding: 10px 10px 4px;\n}\n.nf-ai-progress .nf-ai-progress-orb {\n  width: 64px;\n  height: 64px;\n  margin: 6px auto 24px;\n  border-radius: 50%;\n  background: #F2FAFE;\n  border: 2px solid #1EA9EA;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.nf-ai-progress .nf-ai-progress-orb .nf-ai-sparkle {\n  font-size: 26px;\n  color: #1EA9EA;\n  animation: nf-ai-orb-pulse 1.6s ease-in-out infinite;\n}\n.nf-ai-progress .nf-ai-progress-orb.is-ready {\n  background: #1EA9EA;\n  border-color: #1EA9EA;\n}\n.nf-ai-progress .nf-ai-progress-orb.is-ready .nf-ai-sparkle {\n  color: #fff;\n  animation: none;\n}\n.nf-ai-progress .nf-ai-stages {\n  list-style: none;\n  margin: 0 auto;\n  padding: 0;\n  max-width: 280px;\n}\n.nf-ai-progress .nf-ai-stage {\n  display: flex;\n  align-items: center;\n  padding: 9px 0;\n  color: #9aa2a8;\n  transition: color 0.3s ease;\n}\n.nf-ai-progress .nf-ai-stage .nf-ai-stage-ico {\n  width: 24px;\n  text-align: center;\n  margin-right: 12px;\n}\n.nf-ai-progress .nf-ai-stage .nf-ai-stage-ico .dashicons {\n  font-size: 17px;\n}\n.nf-ai-progress .nf-ai-stage.is-pending .dashicons {\n  color: #cfd6da;\n}\n.nf-ai-progress .nf-ai-stage.is-active {\n  color: #14232c;\n  font-weight: 600;\n}\n.nf-ai-progress .nf-ai-stage.is-active .dashicons {\n  color: #1EA9EA;\n}\n.nf-ai-progress .nf-ai-stage.is-done {\n  color: #3c4a44;\n}\n.nf-ai-progress .nf-ai-stage.is-done .dashicons {\n  color: #2E9E5B;\n}\n.nf-ai-progress .nf-ai-progress-ready {\n  text-align: center;\n  margin: 20px 0 6px;\n  color: #2E9E5B;\n  font-weight: 600;\n}\n\n@keyframes nf-ai-orb-pulse {\n  0%, 100% {\n    transform: scale(1);\n    opacity: 1;\n  }\n  50% {\n    transform: scale(1.12);\n    opacity: 0.75;\n  }\n}\n.nf-ai-spin {\n  animation: nf-ai-spin-anim 1s linear infinite;\n}\n\n@keyframes nf-ai-spin-anim {\n  from {\n    transform: rotate(0deg);\n  }\n  to {\n    transform: rotate(360deg);\n  }\n}\n/* Toast for generation results that land after the progress modal was\n   dismissed — the user stays where they are and opens the form when ready. */\n.nf-ai-toast {\n  position: fixed;\n  right: 20px;\n  bottom: 20px;\n  z-index: 10001;\n  max-width: 340px;\n  background: #fff;\n  border: 1px solid #e8eaec;\n  border-radius: 10px;\n  box-shadow: 0 8px 24px rgba(16, 24, 31, 0.18);\n  padding: 14px 40px 14px 16px;\n  font-size: 14px;\n  line-height: 1.5;\n  color: #3c434a;\n  animation: nf-ai-toast-in 0.18s ease-out;\n}\n.nf-ai-toast a {\n  color: #1EA9EA;\n  font-weight: 600;\n}\n.nf-ai-toast {\n  /* State reads from the border all the way round rather than an accent edge. */\n}\n.nf-ai-toast.is-error {\n  border-color: #f0b3b4;\n}\n.nf-ai-toast .nf-ai-toast-close {\n  position: absolute;\n  top: 6px;\n  right: 6px;\n  background: none;\n  border: 0;\n  cursor: pointer;\n  color: #646970;\n  font-size: 16px;\n  line-height: 1;\n  padding: 4px 6px;\n  border-radius: 6px;\n}\n.nf-ai-toast .nf-ai-toast-close:hover {\n  background: #f0f0f1;\n}\n\n@keyframes nf-ai-toast-in {\n  from {\n    opacity: 0;\n    transform: translateY(8px);\n  }\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\n/*\n * NF Modal — the one modal skin for every jBox Modal/Confirm in core\n * (dashboard and builder). jBox stays the engine; this replaces its default\n * theme so ad modals, the AI builder, service setup, delete confirms, and\n * batch progress all read as one polished system.\n */\n/* Backdrop: dim + soft blur. Carries its own full-screen positioning because\n   the dashboard loads jBox's JS without jBox's base stylesheet. */\n.jBox-overlay {\n  position: fixed !important;\n  top: 0;\n  left: 0;\n  width: 100% !important;\n  height: 100% !important;\n  background: rgba(16, 24, 31, 0.55) !important;\n  backdrop-filter: blur(2px);\n}\n\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* The wrapper paints its own square white background behind the rounded\n     container — clear it or the corners read as square. */\n  background: transparent !important;\n}\n.jBox-wrapper.jBox-Modal .jBox-container,\n.jBox-wrapper.jBox-Confirm .jBox-container {\n  background: #fff;\n  border-radius: 12px;\n  border: 1px solid rgba(0, 0, 0, 0.06);\n  box-shadow: 0 24px 64px rgba(16, 24, 31, 0.22), 0 2px 8px rgba(16, 24, 31, 0.1);\n  overflow: hidden;\n  animation: nf-modal-in 0.18s ease-out;\n}\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* Header: white, left-aligned semibold title — no grey bar */\n}\n.jBox-wrapper.jBox-Modal .jBox-title,\n.jBox-wrapper.jBox-Confirm .jBox-title {\n  background: #fff;\n  border-bottom: 0;\n  border-radius: 12px 12px 0 0;\n  padding: 20px 56px 0 24px;\n  font-size: 18px;\n  font-weight: 600;\n  line-height: 1.3;\n  color: #1d2327;\n  text-align: left;\n  text-shadow: none;\n  width: auto;\n}\n.jBox-wrapper.jBox-Modal .jBox-content,\n.jBox-wrapper.jBox-Confirm .jBox-content {\n  padding: 14px 24px 20px;\n  font-size: 14px;\n  line-height: 1.55;\n  color: #3c434a;\n  width: auto;\n}\n.jBox-wrapper.jBox-Modal .jBox-content p:first-of-type,\n.jBox-wrapper.jBox-Confirm .jBox-content p:first-of-type {\n  /* Neutralize legacy \"modal-template\" hero-paragraph treatment. */\n  font-size: 14px;\n  font-weight: 400;\n  line-height: 1.55;\n  padding: 0;\n  text-align: left;\n}\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* Close: ghost square inside the modal, top right. Flex-centered so the\n     icon can't drift regardless of how jBox positions its svg. */\n}\n.jBox-wrapper.jBox-Modal .jBox-closeButton,\n.jBox-wrapper.jBox-Confirm .jBox-closeButton {\n  top: 12px !important;\n  right: 12px !important;\n  width: 32px !important;\n  height: 32px !important;\n  background: transparent !important;\n  border-radius: 8px;\n  box-shadow: none !important;\n  transition: background 0.15s ease;\n  display: flex !important;\n  align-items: center;\n  justify-content: center;\n}\n.jBox-wrapper.jBox-Modal .jBox-closeButton:hover,\n.jBox-wrapper.jBox-Confirm .jBox-closeButton:hover {\n  background: #f0f0f1 !important;\n}\n.jBox-wrapper.jBox-Modal .jBox-closeButton svg,\n.jBox-wrapper.jBox-Confirm .jBox-closeButton svg {\n  position: static !important;\n  width: 12px !important;\n  height: 12px !important;\n  margin: 0 !important;\n}\n.jBox-wrapper.jBox-Modal .jBox-closeButton svg path,\n.jBox-wrapper.jBox-Confirm .jBox-closeButton svg path {\n  fill: #646970 !important;\n}\n.jBox-wrapper.jBox-Modal .jBox-closeButton::before,\n.jBox-wrapper.jBox-Confirm .jBox-closeButton::before {\n  display: none !important;\n  box-shadow: none !important;\n}\n.jBox-wrapper.jBox-Modal.jBox-closeButton-box::before,\n.jBox-wrapper.jBox-Confirm.jBox-closeButton-box::before {\n  display: none;\n}\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* Buttons inside modals: calm, rounded, right-aligned rows */\n}\n.jBox-wrapper.jBox-Modal .nf-button,\n.jBox-wrapper.jBox-Modal .jBox-Confirm-button,\n.jBox-wrapper.jBox-Confirm .nf-button,\n.jBox-wrapper.jBox-Confirm .jBox-Confirm-button {\n  border-radius: 8px;\n  font-size: 14px;\n  font-weight: 600;\n  text-transform: none;\n  letter-spacing: 0;\n  padding: 9px 16px;\n  height: auto;\n  line-height: 1.3;\n  cursor: pointer;\n  transition: background 0.15s ease, border-color 0.15s ease;\n}\n.jBox-wrapper.jBox-Modal .nf-button.primary,\n.jBox-wrapper.jBox-Modal .jBox-Confirm-button-submit,\n.jBox-wrapper.jBox-Confirm .nf-button.primary,\n.jBox-wrapper.jBox-Confirm .jBox-Confirm-button-submit {\n  background: #1EA9EA;\n  border: 1px solid #1EA9EA;\n  color: #fff;\n}\n.jBox-wrapper.jBox-Modal .nf-button.primary:hover,\n.jBox-wrapper.jBox-Modal .jBox-Confirm-button-submit:hover,\n.jBox-wrapper.jBox-Confirm .nf-button.primary:hover,\n.jBox-wrapper.jBox-Confirm .jBox-Confirm-button-submit:hover {\n  background: #1590c9;\n  border-color: #1590c9;\n}\n.jBox-wrapper.jBox-Modal .nf-button.secondary,\n.jBox-wrapper.jBox-Modal .jBox-Confirm-button-cancel,\n.jBox-wrapper.jBox-Confirm .nf-button.secondary,\n.jBox-wrapper.jBox-Confirm .jBox-Confirm-button-cancel {\n  background: #fff;\n  border: 1px solid #d0d5d9;\n  color: #3c434a;\n}\n.jBox-wrapper.jBox-Modal .nf-button.secondary:hover,\n.jBox-wrapper.jBox-Modal .jBox-Confirm-button-cancel:hover,\n.jBox-wrapper.jBox-Confirm .nf-button.secondary:hover,\n.jBox-wrapper.jBox-Confirm .jBox-Confirm-button-cancel:hover {\n  background: #f6f7f7;\n}\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* Footer rows produced by our various modal builders */\n}\n.jBox-wrapper.jBox-Modal .buttons,\n.jBox-wrapper.jBox-Modal .actions,\n.jBox-wrapper.jBox-Confirm .buttons,\n.jBox-wrapper.jBox-Confirm .actions {\n  display: flex;\n  justify-content: flex-end;\n  gap: 8px;\n  margin-top: 20px;\n  padding-top: 16px;\n  border-top: 1px solid #e8eaec;\n}\n.jBox-wrapper.jBox-Modal .buttons .nf-button,\n.jBox-wrapper.jBox-Modal .actions .nf-button,\n.jBox-wrapper.jBox-Confirm .buttons .nf-button,\n.jBox-wrapper.jBox-Confirm .actions .nf-button {\n  float: none;\n}\n.jBox-wrapper.jBox-Modal .buttons::after,\n.jBox-wrapper.jBox-Modal .actions::after,\n.jBox-wrapper.jBox-Confirm .buttons::after,\n.jBox-wrapper.jBox-Confirm .actions::after {\n  display: none;\n}\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n  /* Inputs inside modals */\n}\n.jBox-wrapper.jBox-Modal textarea,\n.jBox-wrapper.jBox-Modal input[type=text],\n.jBox-wrapper.jBox-Modal input[type=email],\n.jBox-wrapper.jBox-Confirm textarea,\n.jBox-wrapper.jBox-Confirm input[type=text],\n.jBox-wrapper.jBox-Confirm input[type=email] {\n  border: 1px solid #d0d5d9;\n  border-radius: 8px;\n  padding: 10px 12px;\n  font-size: 14px;\n  line-height: 1.5;\n  width: 100%;\n  box-sizing: border-box;\n}\n.jBox-wrapper.jBox-Modal textarea:focus,\n.jBox-wrapper.jBox-Modal input[type=text]:focus,\n.jBox-wrapper.jBox-Modal input[type=email]:focus,\n.jBox-wrapper.jBox-Confirm textarea:focus,\n.jBox-wrapper.jBox-Confirm input[type=text]:focus,\n.jBox-wrapper.jBox-Confirm input[type=email]:focus {\n  border-color: #1EA9EA;\n  box-shadow: 0 0 0 1px #1EA9EA;\n  outline: none;\n}\n\n/* Confirm: left-align content, white footer, no center shouting */\n.jBox-wrapper.jBox-Confirm .jBox-content {\n  text-align: left;\n  padding: 14px 24px 20px;\n}\n\n.jBox-Confirm-footer {\n  background: #fff;\n  border-top: 1px solid #e8eaec;\n  border-radius: 0 0 12px 12px;\n  text-align: right;\n  padding: 12px 24px;\n  height: auto !important;\n}\n\n@keyframes nf-modal-in {\n  from {\n    opacity: 0;\n    transform: translateY(8px) scale(0.985);\n  }\n  to {\n    opacity: 1;\n    transform: none;\n  }\n}\nhtml {\n  overflow: auto !important; /* Override normalize.scss */\n}\n\n::-webkit-scrollbar {\n  display: none;\n}\n\na {\n  color: #1EA9EA;\n  text-decoration: none;\n  outline: none !important;\n  border: 0;\n}\n\na:focus {\n  outline: none !important;\n  box-shadow: unset;\n}\n\n#wpwrap,\n#wpcontent {\n  background-color: #fff;\n}\n\n#wpcontent {\n  padding: 0;\n}\n#wpcontent .wrap {\n  margin: 0;\n}\n\n/** Hide anything that isn't our page wrap, ie Admin Notices */\n#wpbody-content > div:not(.wrap) {\n  display: none;\n}\n\n#ninja-forms-dashboard {\n  box-sizing: border-box;\n}\n#ninja-forms-dashboard .nf-widget {\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  margin-bottom: 20px;\n}\n#ninja-forms-dashboard header.topbar {\n  background-color: #EBEDEE;\n  margin-bottom: 40px;\n}\n#ninja-forms-dashboard header .nf-notice-promo {\n  background-color: #ef4748;\n  padding: 8px 0;\n  width: 100%;\n}\n#ninja-forms-dashboard header .nf-notice-promo .wrap {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n  align-items: center;\n  display: flex;\n  flex-direction: row;\n  justify-content: space-between;\n}\n#ninja-forms-dashboard header .nf-notice-promo strong {\n  color: white;\n  display: block;\n}\n#ninja-forms-dashboard header .nf-notice-promo strong a {\n  color: white;\n  text-decoration: none;\n}\n#ninja-forms-dashboard header .nf-notice-promo strong a:hover {\n  text-decoration: underline;\n}\n#ninja-forms-dashboard header .nf-notice-promo a {\n  background: none;\n  box-shadow: none;\n  border: none;\n  color: white;\n  cursor: pointer;\n  height: 16px;\n  width: 16px;\n}\n#ninja-forms-dashboard header .nf-notice-promo a svg {\n  height: 16px;\n  width: 16px;\n}\n#ninja-forms-dashboard header .nf-notice-promo a .sr-only {\n  border-width: 0;\n  clip: rect(0, 0, 0, 0);\n  height: 1px;\n  margin: -1px;\n  overflow: hidden;\n  padding: 0;\n  position: absolute;\n  white-space: nowrap;\n  width: 1px;\n}\n#ninja-forms-dashboard header .app-title {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n  background-image: url(\"../img/nf-logo-dashboard.png\");\n  background-size: 315px 48px;\n  background-position: left bottom;\n  background-repeat: no-repeat;\n  height: 52px;\n}\n#ninja-forms-dashboard header .app-title strong {\n  display: block;\n  text-indent: -9999px;\n}\n#ninja-forms-dashboard nav {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n  margin-bottom: 40px;\n}\n#ninja-forms-dashboard nav ul {\n  display: flex;\n  margin: 0;\n}\n#ninja-forms-dashboard nav ul li a {\n  color: #424242;\n  cursor: pointer;\n  font-size: 16px;\n  margin: 0 16px 10px 16px;\n  margin-bottom: 10px;\n  padding: 16px 0 8px;\n}\n#ninja-forms-dashboard nav ul li a.active {\n  border-bottom: 2px solid #424242;\n}\n#ninja-forms-dashboard div.nf-main-content {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n}\n#ninja-forms-dashboard .form-row-actions {\n  display: none;\n}\n#ninja-forms-dashboard .form-row-actions li {\n  font-size: 12px;\n}\n#ninja-forms-dashboard .nf-table-display td {\n  white-space: nowrap;\n}\n#ninja-forms-dashboard .nf-table-display td:nth-child(1) {\n  width: 100%;\n}\n#ninja-forms-dashboard .nf-table-display td:nth-child(2),\n#ninja-forms-dashboard .nf-table-display td:nth-child(3) {\n  width: 250px;\n}\n#ninja-forms-dashboard .nf-table-display .title {\n  display: block;\n  max-width: 24rem;\n  overflow: hidden;\n}\n#ninja-forms-dashboard tr.show-actions .title {\n  display: block;\n  margin-bottom: 30px;\n}\n#ninja-forms-dashboard tr.show-actions .form-row-actions {\n  display: flex;\n  background: #ECEDEE;\n  position: absolute;\n  padding-top: 6px;\n  bottom: 0;\n  z-index: 1;\n  margin: 0;\n}\n#ninja-forms-dashboard tr.show-actions .form-row-actions li {\n  padding: 0 10px;\n}\n#ninja-forms-dashboard .nf-search {\n  border-bottom: 1px solid #ECEDEE;\n}\n#ninja-forms-dashboard .nf-search::before {\n  top: 16px;\n}\n#ninja-forms-dashboard .nf-search input[type=search] {\n  width: auto;\n}\n#ninja-forms-dashboard .nf-item-controls .nf-item-control a {\n  margin-left: 20px;\n  width: 24px;\n  cursor: pointer;\n}\n#ninja-forms-dashboard .add.nf-button.primary {\n  background: #0a6f9e;\n  border-color: #0a6f9e;\n  color: #fff;\n}\n#ninja-forms-dashboard .add.nf-button.primary:hover, #ninja-forms-dashboard .add.nf-button.primary:focus {\n  background: #085b81;\n  border-color: #085b81;\n  color: #fff;\n}\n#ninja-forms-dashboard .widget-forms table tbody td .title a {\n  color: #0073aa;\n  text-decoration: none;\n}\n#ninja-forms-dashboard .widget-forms table tbody td .title a:hover, #ninja-forms-dashboard .widget-forms table tbody td .title a:focus {\n  color: #005a87;\n  text-decoration: underline;\n}\n#ninja-forms-dashboard .widget-forms table tbody td .form-row-actions a {\n  color: #0073aa;\n}\n#ninja-forms-dashboard .widget-forms table tbody td .form-row-actions a:hover, #ninja-forms-dashboard .widget-forms table tbody td .form-row-actions a:focus {\n  color: #005a87;\n}\n\n#footer-thankyou {\n  color: #555;\n}\n#footer-thankyou a {\n  color: #0073aa;\n}\n#footer-thankyou a:hover, #footer-thankyou a:focus {\n  color: #005a87;\n}\n\n/*\nNotices\n---------------------------------------------*/\n/*\nSections\n---------------------------------------------*/\n/*\nWidgets\n---------------------------------------------*/\n/*\njBox\n---------------------------------------------*/\n/* Modal styling lives in assets/scss/shared/_nf-modal.scss — one skin for\n   every jBox modal in the dashboard and the builder. */\n.jBox-Modal {\n  background-color: white;\n}\n\n/*\nLoading Spinner\n---------------------------------------------*/\n.nf-loading-spinner {\n  width: 40px;\n  height: 40px;\n  margin: 15px auto;\n  background-color: rgba(208, 208, 208, 0.5);\n  border-radius: 100%;\n  animation: nf-scaleout 1s infinite ease-in-out;\n}\n\n@-webkit-keyframes nf-scaleout {\n  0% {\n    transform: scale(0);\n  }\n  100% {\n    transform: scale(1);\n    opacity: 0;\n  }\n}\n@keyframes nf-scaleout {\n  0% {\n    transform: scale(0);\n  }\n  100% {\n    transform: scale(1);\n    opacity: 0;\n  }\n}\n.apps-container {\n  display: flex;\n  justify-content: space-between;\n  flex-flow: row wrap;\n  padding: 10px;\n}\n.apps-container .nf-box {\n  background: #fff;\n  flex-basis: 48%;\n}\n.apps-container .nf-box-inside {\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  padding: 10px;\n}\n.apps-container .nf-extend {\n  float: left;\n  margin: 0 0 20px 0;\n  width: 300px;\n  position: relative;\n}\n.apps-container .nf-extend img {\n  margin-bottom: 10px;\n  max-width: 100%;\n  height: auto;\n}\n.apps-container .nf-extend h2 {\n  white-space: nowrap;\n  overflow: hidden;\n}\n.apps-container .nf-extend-content p {\n  min-height: 100px;\n}\n.apps-container .nf-extend-buttons::after {\n  clear: both;\n  content: \"\";\n  display: block;\n}\n.apps-container .nf-extend .nf-button {\n  float: right;\n}\n.apps-container .nf-extend .nf-doc-button {\n  float: left;\n}\n\n/*\nPromotions\n---------------------------------------------*/\n.promotion--wrapper > div a {\n  position: relative;\n  display: block;\n  background: #f1f1f1;\n  padding: 16px 80px;\n  text-align: center;\n  border-radius: 4px;\n  font-size: 16px;\n  color: #ef4748 !important;\n  overflow: hidden;\n  line-height: 24px;\n}\n.promotion--wrapper > div a > .cta {\n  font-size: 22px;\n}\n.promotion--wrapper > div a > .dashicons, .promotion--wrapper > div a .dashicons-before::before {\n  position: absolute;\n  left: 0;\n  top: -20px;\n  font-size: 90px;\n  transform: rotate(20deg);\n}\n\n.promotion--wrapper > div a.nf-remove-promo-styling {\n  padding: 0;\n  height: 83px;\n}",".widget {\n  background-color: #fff;\n  border: 1px solid #ccc;\n  border-radius: 4px;\n  margin-bottom: 20px;\n  padding: 20px;\n\n  header {\n    margin-bottom: 20px;\n  }\n\n}\n\n.widget-memberships {\n  border: 0;\n  padding: 0;\n}\n.pricing-container {\n  display: flex;\n  justify-content: space-between;\n  flex-wrap: wrap;\n\n  .pricing-block {\n    width: 30%;\n\n    &.highlight {\n      background-color: #f1f1f1;\n    }\n\n  }\n\n  .pricing-header {\n\n    text-align: center;\n\n    & > div {\n      margin-bottom: 10px;\n    }\n\n    .pricing-title {\n      font-size: 24px;\n      margin-bottom: 16px;\n    }\n\n    .pricing-price {\n      font-size: 24px;\n      font-weight: bold;\n      padding: 5px 0;\n    }\n\n  }\n\n  .pricing-body {\n\n    & > div {\n      padding: 10px 0;\n      position: relative;\n    }\n\n    span {\n      display: block;\n      margin-left: 40px;\n    }\n\n    ul {\n      list-style: disc;\n      margin-left: 20px;\n      padding-left: 20px;\n    }\n\n    hr {\n      margin-top: 10px;\n      margin-bottom: 10px;\n      border: 0;\n      border-top: 1px solid #424242;\n    }\n\n    .fa {\n      //color: #86CA32;\n      color: #aaa;\n      font-size: 24px;\n      position: absolute;\n      left: 0;\n    }\n\n    .pricing-body-title {\n      font-weight: bold;\n      text-transform: uppercase;\n    }\n\n  }\n\n}\n \n\n.widget-plan-notice {\n\n  text-align: center;\n\n  .widget-title {\n    font-size: 32px;\n    font-weight: bold;\n    margin: 0 0 10px 0;\n    text-align: center;\n  }\n\n  .nf-button {\n    margin-bottom: 20px;\n  }\n\n}\n","@keyframes nf-service-installing {\n  100% {\n    transform:rotate(360deg);\n  }\n}\n\n.dashicons-update-spin {\n  animation: nf-service-installing 1s linear infinite;\n}\n\n.services {\n  .nf-extend.full {\n    flex-basis: 100%;\n  }\n  .nf-extend-buttons a {\n    margin-top: 20px;\n  }\n  .nf-extend-buttons .nf-button {\n    margin-top: auto; // Reset from anchor.\n    margin-bottom: 10px; // Account for toggle.\n  }\n}\n\n.jBox-Confirm-button {\n  height: auto !important;\n  font-size: 17px !important;\n  padding: 10px 30px !important;\n}\n.jBox-Confirm-button-submit {\n  background: #1ea9ea !important;\n  border: 1px solid #fff !important;\n  color: #fff !important;\n}\n.jBox-Confirm-button-cancel {\n  background: #fff !important;\n  border: 1px solid #1ea9ea !important;\n  color: #1ea9ea !important;\n}\n\n// =============================================================================\n// Partner Apps & Services Tab - Banner Layout (#8004)\n// =============================================================================\n// Scoped to #nf-services-settings-anchor to avoid affecting Add-ons tab.\n// Both tabs share .apps-container/.nf-box classes, so scope is critical.\n\n#nf-services-settings-anchor {\n  .apps-container {\n    // Layout fixes: uniform card heights with pinned buttons\n    .nf-box-inside {\n      box-sizing: border-box;\n      min-height: 457px;\n      display: flex;\n      flex-direction: column;\n\n      > h2 {\n        margin-top: 0;\n      }\n    }\n\n    .nf-extend-content {\n      margin-top: 0;\n      flex: 1 1 auto;\n      display: flex;\n      flex-direction: column;\n\n      p {\n        min-height: 0; // Override shared .apps-container rule\n        margin-top: 0; // Prevent doubled margins in flex column\n      }\n    }\n\n    .nf-extend-buttons {\n      margin-top: auto; // Pin buttons to bottom\n    }\n\n    // Banner base styles (::before pseudo-element approach)\n    .nf-box-inside::before {\n      content: \"\";\n      display: block;\n      width: 100%;\n      aspect-ratio: 12 / 5;\n      background-size: cover;\n      background-position: center;\n      background-repeat: no-repeat;\n      margin: 0 0 14px 0;\n      border-radius: 6px;\n      border: 1px solid rgba(0, 0, 0, 0.08);\n      flex-shrink: 0;\n    }\n\n    // Per-partner banner images (matched by learn-more URL)\n    .nf-box-inside:has(a[href*=\"sendwp.com\"])::before {\n      background-image: url(\"../img/partners/sendwp-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"sirenaffiliates.com\"])::before {\n      background-image: url(\"../img/partners/siren-banner.png\");\n      aspect-ratio: 400 / 162; // Siren's native aspect ratio\n    }\n    .nf-box-inside:has(a[href*=\"wpml.org\"])::before {\n      background-image: url(\"../img/partners/wpml-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"how-to-add-ninja-forms-to-elementor\"])::before {\n      background-image: url(\"../img/partners/elementor-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"codeable.io\"])::before {\n      background-image: url(\"../img/partners/codeable-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"paypal-checkout\"])::before {\n      background-image: url(\"../img/partners/paypal-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"omnisend\"])::before {\n      background-image: url(\"../img/partners/omnisend-banner.png\");\n    }\n    .nf-box-inside:has(a[href*=\"hostarmada.com\"])::before {\n      background-image: url(\"../img/partners/hostarmada-banner.png\");\n    }\n  }\n}\n",".promotion--wrapper {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n  margin-bottom: 20px; // Maintain whitespace.\n}\n\n.promotion--wrapper a:focus {\n  box-shadow: unset; // Override WP focus state.\n}\n","@use \"../../shared/nf-ai-model-picker\" as ai-model;\n\nth {\n  font-weight: bold;\n}\n\n.widget-forms {\n  .sortable {\n    cursor: pointer;\n    font-weight: bold;\n    margin-left: -5px;\n    &:hover {\n      &:after {\n        content: '\\f0dc';\n      }\n    }\n    &:after {\n      font-family: 'FontAwesome';\n      margin-left: 5px;\n      position: absolute;\n    }\n    &.sorted-asc:after {\n      content: \"\\f0de\";\n    }\n    &.sorted-desc:after {\n      content: \"\\f0dd\";\n    }\n  }\n  header {\n    display: flex;\n    div {\n      flex: 1;\n    }\n    div:first-of-type {\n      flex: 2;\n    }\n  }\n\n  .action {\n    display: flex;\n  }\n\n  .form-row-actions a {\n    cursor: pointer;\n\n    &.delete {\n      color: #FF4136;\n    }\n  }\n\n}\n\n.forms-collection {\n  & > div {\n    padding: 10px;\n  }\n  & > div:nth-child(odd){\n    background-color: #EBEDEE;\n  }\n  .deleting {\n    color: #FF4136;\n    background-color: #ECEDEE;\n    a {\n      color: #FF4136;\n    }\n    footer {\n      display: none;\n    }\n  }\n  .nf-main-content.content {\n    display: flex;\n    div {\n      flex: 1;\n    }\n    div:first-of-type {\n      flex: 2;\n    }\n  }\n  footer ul {\n    margin: 0;\n    padding-top: 20px;\n    display: flex;\n    li {\n      a.delete {\n        color: red;\n      }\n      &:after {\n        content: ' |';\n        margin: auto 5px;\n      }\n      &:last-child:after {\n        content: '';\n      }\n    }\n  }\n}\n\n.nf-template-grid {\n  .section-head {\n    font-size: 36px;\n    font-weight: bold;\n    width: 75%;\n    display: block;\n    border-bottom: 1px solid #ccc;\n    padding-bottom: 15px;\n    margin: 60px 0px 25px 10px;\n  }\n\n  .template-list {\n    display: flex;\n    justify-content: space-between;\n    flex-wrap: wrap;\n\n    & > div {\n      display: flex;\n      width: 50%;\n    }\n\n    .template {\n      display: grid;\n      width: 100%;\n      a {\n        color: #424242;\n        display: block;\n        margin: 5px;\n        padding: 30px;\n        border: 1px solid #ccc;\n        border-radius: 4px;\n        min-height: 80px;\n        cursor: pointer;\n\n        &:hover {\n          background: #1EA9EA;\n          color: #fff;\n        }\n\n        .title {\n          display: block;\n          font-size: 20px;\n          margin-bottom: 10px\n        }\n      }\n    }\n\n    .ad {\n      a {\n        border-color: #EBEDEE;\n      }\n    }\n\n    .default {\n      a {\n        background: #EBEDEE;\n        border-color: #EBEDEE;\n      }\n    }\n\n    .autogenerate {\n      a {\n        border-color: #1EA9EA;\n        background: #F2FAFE;\n\n        .title .nf-ai-sparkle {\n          color: #1EA9EA;\n          margin-right: 8px;\n          font-size: 18px;\n        }\n\n        &:hover {\n          background: #1EA9EA;\n\n          .title .nf-ai-sparkle {\n            color: #fff;\n          }\n        }\n      }\n    }\n  }\n}\n\ntable .forms-table-row li {\n    display: inline-block;\n}\n\n.modal-template {\n  padding: 20px;\n  img {\n    width: 100%;\n  }\n  iframe {\n    width: 100%;\n    height: 214px;\n  }\n  p:first-of-type {\n    font-size: 16px;\n    font-weight: bold;\n    line-height: 20px;\n    padding: 16px 40px;\n    text-align: center;\n  }\n  .actions {\n    margin-top: 30px;\n    &::after {\n      display: block;\n      clear: both;\n      content: \"\";\n    }\n  }\n  .primary.nf-button {\n    float: right;\n  }\n}\n\n/*\n * Custom AI sparkle glyph: no icon set we ship carries the modern sparkle\n * convention, so it's a masked SVG painted with currentColor — it inherits\n * and transitions color exactly like a font icon.\n */\n.nf-ai-sparkle {\n  display: inline-block;\n  width: 1em;\n  height: 1em;\n  vertical-align: -0.125em;\n  background-color: currentColor;\n  -webkit-mask: url(../img/nf-ai-sparkle.svg) no-repeat center;\n  -webkit-mask-size: contain;\n  mask: url(../img/nf-ai-sparkle.svg) no-repeat center;\n  mask-size: contain;\n}\n\n.nf-ai-form-builder {\n  @include ai-model.model-picker(7px, inherit, 12px, 12px);\n\n  label {\n    display: block;\n    margin: 0 0 6px;\n    color: #3c434a;\n    font-size: 13px;\n    font-weight: 600;\n  }\n\n  .nf-ai-model-picker {\n    position: relative;\n    margin-bottom: 14px;\n  }\n\n  .nf-ai-model-trigger {\n    width: 100%;\n    min-height: 40px;\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    padding: 0 10px;\n    border: 1px solid #c3c4c7;\n    border-radius: 5px;\n    background: #fff;\n    color: #2c3338;\n    text-align: left;\n    cursor: pointer;\n  }\n\n  .nf-ai-model-menu {\n    @include ai-model.model-menu-chrome(320px, 10px, .14);\n\n    // The trigger sits above the prompt in the widget, so this list opens down\n    // and has to clear the dashboard widget chrome it overlaps.\n    z-index: 100;\n    top: calc(100% + 5px);\n  }\n\n  .nf-ai-model-picker:not(.is-open) .nf-ai-model-menu {\n    display: none;\n  }\n\n  .nf-ai-model-search {\n    margin-bottom: 10px;\n  }\n\n  .nf-ai-model-group {\n    padding: 7px 0;\n  }\n\n  textarea {\n    width: 100%;\n    box-sizing: border-box;\n    padding: 10px;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    resize: vertical;\n  }\n\n  .nf-ai-prompt-meta {\n    display: flex;\n    justify-content: flex-end;\n    min-height: 20px;\n    margin: 4px 0 8px;\n  }\n\n  .nf-ai-prompt-count {\n    color: #646970;\n    font-size: 12px;\n  }\n\n  .nf-ai-prompt-count.is-over {\n    color: #b32d2e;\n    font-weight: 600;\n  }\n\n  /* Full border, not a left accent bar; #b32d2e clears AA on this tint where\n     #d63638 did not. */\n  #nf-ai-form-error {\n    margin-top: 10px;\n    padding: 8px 12px;\n    border: 1px solid #f0b3b4;\n    border-radius: 4px;\n    background: #fcf0f1;\n    color: #b32d2e;\n  }\n\n  .nf-ai-privacy {\n    margin: 6px 0 0;\n    font-size: 12px;\n    line-height: 1.4;\n    color: #646970;\n  }\n\n  .primary.nf-button:disabled {\n    opacity: 0.6;\n    cursor: wait;\n  }\n}\n\n/* The model list overlays the prompt instead of changing modal dimensions. */\n.nf-ai-form-modal .jBox-container,\n.nf-ai-form-modal .jBox-content {\n  overflow: visible;\n}\n\n.nf-ai-progress {\n  padding: 10px 10px 4px;\n\n  .nf-ai-progress-orb {\n    width: 64px;\n    height: 64px;\n    margin: 6px auto 24px;\n    border-radius: 50%;\n    background: #F2FAFE;\n    border: 2px solid #1EA9EA;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n\n    .nf-ai-sparkle {\n      font-size: 26px;\n      color: #1EA9EA;\n      animation: nf-ai-orb-pulse 1.6s ease-in-out infinite;\n    }\n\n    &.is-ready {\n      background: #1EA9EA;\n      border-color: #1EA9EA;\n\n      .nf-ai-sparkle {\n        color: #fff;\n        animation: none;\n      }\n    }\n  }\n\n  .nf-ai-stages {\n    list-style: none;\n    margin: 0 auto;\n    padding: 0;\n    max-width: 280px;\n  }\n\n  .nf-ai-stage {\n    display: flex;\n    align-items: center;\n    padding: 9px 0;\n    color: #9aa2a8;\n    transition: color 0.3s ease;\n\n    .nf-ai-stage-ico {\n      width: 24px;\n      text-align: center;\n      margin-right: 12px;\n\n      .dashicons {\n        font-size: 17px;\n      }\n    }\n\n    &.is-pending {\n      .dashicons {\n        color: #cfd6da;\n      }\n    }\n\n    &.is-active {\n      color: #14232c;\n      font-weight: 600;\n\n      .dashicons {\n        color: #1EA9EA;\n      }\n    }\n\n    &.is-done {\n      color: #3c4a44;\n\n      .dashicons {\n        color: #2E9E5B;\n      }\n    }\n  }\n\n  .nf-ai-progress-ready {\n    text-align: center;\n    margin: 20px 0 6px;\n    color: #2E9E5B;\n    font-weight: 600;\n  }\n}\n\n@keyframes nf-ai-orb-pulse {\n  0%, 100% { transform: scale(1); opacity: 1; }\n  50% { transform: scale(1.12); opacity: 0.75; }\n}\n\n.nf-ai-spin {\n  animation: nf-ai-spin-anim 1s linear infinite;\n}\n\n@keyframes nf-ai-spin-anim {\n  from { transform: rotate(0deg); }\n  to { transform: rotate(360deg); }\n}\n\n/* Toast for generation results that land after the progress modal was\n   dismissed — the user stays where they are and opens the form when ready. */\n.nf-ai-toast {\n  position: fixed;\n  right: 20px;\n  bottom: 20px;\n  z-index: 10001;\n  max-width: 340px;\n  background: #fff;\n  border: 1px solid #e8eaec;\n  border-radius: 10px;\n  box-shadow: 0 8px 24px rgba(16, 24, 31, 0.18);\n  padding: 14px 40px 14px 16px;\n  font-size: 14px;\n  line-height: 1.5;\n  color: #3c434a;\n  animation: nf-ai-toast-in 0.18s ease-out;\n\n  a {\n    color: #1EA9EA;\n    font-weight: 600;\n  }\n\n  /* State reads from the border all the way round rather than an accent edge. */\n  &.is-error {\n    border-color: #f0b3b4;\n  }\n\n  .nf-ai-toast-close {\n    position: absolute;\n    top: 6px;\n    right: 6px;\n    background: none;\n    border: 0;\n    cursor: pointer;\n    color: #646970;\n    font-size: 16px;\n    line-height: 1;\n    padding: 4px 6px;\n    border-radius: 6px;\n\n    &:hover {\n      background: #f0f0f1;\n    }\n  }\n}\n\n@keyframes nf-ai-toast-in {\n  from { opacity: 0; transform: translateY(8px); }\n  to { opacity: 1; transform: none; }\n}\n","// The drop-down panel both pickers open is the same piece of chrome: a bordered\n// white card that stretches the width of its trigger and scrolls its own list.\n// Only the arbitrary sizing differs between the two hosts, so it is passed in;\n// where the panel is anchored and how it stacks are genuinely per-surface and\n// stay at the call site with the rest of that surface's positioning.\n@mixin model-menu-chrome($max-height, $padding, $shadow-alpha) {\n  position: absolute;\n  right: 0;\n  left: 0;\n  max-height: $max-height;\n  overflow-y: auto;\n  padding: $padding;\n  border: 1px solid #c3c4c7;\n  border-radius: 6px;\n  background: #fff;\n  box-shadow: 0 8px 24px rgba(0, 0, 0, $shadow-alpha);\n}\n\n@mixin model-picker($option-padding, $option-size, $heading-size, $show-all-size) {\n  // The menu owns its wheel events, so it also has to stop the scroll from\n  // continuing into whatever is behind it once the list reaches an end.\n  .nf-ai-model-menu {\n    overscroll-behavior: contain;\n  }\n\n  .nf-ai-model-search {\n    width: 100%;\n    box-sizing: border-box;\n  }\n\n  .nf-ai-model-group {\n    border-top: 1px solid #f0f0f1;\n  }\n\n  .nf-ai-model-group strong {\n    display: block;\n    padding: 2px 7px 5px;\n    color: #646970;\n    font-size: $heading-size;\n  }\n\n  .nf-ai-model-option,\n  .nf-ai-model-show-all {\n    display: block;\n    width: 100%;\n    padding: $option-padding;\n    border: 0;\n    border-radius: 3px;\n    background: transparent;\n    color: #2c3338;\n    font-size: $option-size;\n    text-align: left;\n    cursor: pointer;\n  }\n\n  .nf-ai-model-option:hover,\n  .nf-ai-model-option:focus,\n  .nf-ai-model-option.is-active,\n  .nf-ai-model-option.is-selected {\n    background: #f0f6fc;\n    color: #135e96;\n  }\n\n  // Arrow keys move a cursor through the list while focus stays in the search\n  // field, so the option under that cursor needs a mark of its own.\n  .nf-ai-model-option.is-active {\n    outline: 2px solid #2271b1;\n    outline-offset: -2px;\n  }\n\n  .nf-ai-model-option.is-extra,\n  .nf-ai-model-menu.is-searching .nf-ai-model-show-all,\n  .nf-ai-model-group.show-all .nf-ai-model-show-all {\n    display: none;\n  }\n\n  .nf-ai-model-group.show-all .nf-ai-model-option.is-extra,\n  .nf-ai-model-menu.is-searching .nf-ai-model-option.is-extra {\n    display: block;\n  }\n\n  // Search filtering owns visibility here so the keyboard cursor and the\n  // stylesheet cannot disagree about which options are on offer. It follows\n  // the rules above so a filtered-out option stays hidden either way.\n  .nf-ai-model-option.is-filtered-out {\n    display: none;\n  }\n\n  .nf-ai-model-show-all {\n    color: #2271b1;\n    font-size: $show-all-size;\n  }\n}\n","/*\n * NF Modal — the one modal skin for every jBox Modal/Confirm in core\n * (dashboard and builder). jBox stays the engine; this replaces its default\n * theme so ad modals, the AI builder, service setup, delete confirms, and\n * batch progress all read as one polished system.\n */\n\n$nf-modal-radius: 12px;\n$nf-modal-accent: #1EA9EA;\n$nf-modal-accent-hover: #1590c9;\n$nf-modal-ink: #1d2327;\n$nf-modal-ink-2: #3c434a;\n$nf-modal-line: #e8eaec;\n\n/* Backdrop: dim + soft blur. Carries its own full-screen positioning because\n   the dashboard loads jBox's JS without jBox's base stylesheet. */\n.jBox-overlay {\n    position: fixed !important;\n    top: 0;\n    left: 0;\n    width: 100% !important;\n    height: 100% !important;\n    background: rgba(16, 24, 31, 0.55) !important;\n    backdrop-filter: blur(2px);\n}\n\n.jBox-wrapper.jBox-Modal,\n.jBox-wrapper.jBox-Confirm {\n    /* The wrapper paints its own square white background behind the rounded\n       container — clear it or the corners read as square. */\n    background: transparent !important;\n\n    .jBox-container {\n        background: #fff;\n        border-radius: $nf-modal-radius;\n        border: 1px solid rgba(0, 0, 0, 0.06);\n        box-shadow: 0 24px 64px rgba(16, 24, 31, 0.22), 0 2px 8px rgba(16, 24, 31, 0.10);\n        overflow: hidden;\n        animation: nf-modal-in 0.18s ease-out;\n    }\n\n    /* Header: white, left-aligned semibold title — no grey bar */\n    .jBox-title {\n        background: #fff;\n        border-bottom: 0;\n        border-radius: $nf-modal-radius $nf-modal-radius 0 0;\n        padding: 20px 56px 0 24px;\n        font-size: 18px;\n        font-weight: 600;\n        line-height: 1.3;\n        color: $nf-modal-ink;\n        text-align: left;\n        text-shadow: none;\n        width: auto;\n    }\n\n    .jBox-content {\n        padding: 14px 24px 20px;\n        font-size: 14px;\n        line-height: 1.55;\n        color: $nf-modal-ink-2;\n        width: auto;\n\n        p:first-of-type {\n            /* Neutralize legacy \"modal-template\" hero-paragraph treatment. */\n            font-size: 14px;\n            font-weight: 400;\n            line-height: 1.55;\n            padding: 0;\n            text-align: left;\n        }\n    }\n\n    /* Close: ghost square inside the modal, top right. Flex-centered so the\n       icon can't drift regardless of how jBox positions its svg. */\n    .jBox-closeButton {\n        top: 12px !important;\n        right: 12px !important;\n        width: 32px !important;\n        height: 32px !important;\n        background: transparent !important;\n        border-radius: 8px;\n        box-shadow: none !important;\n        transition: background 0.15s ease;\n        display: flex !important;\n        align-items: center;\n        justify-content: center;\n\n        &:hover {\n            background: #f0f0f1 !important;\n        }\n\n        svg {\n            position: static !important;\n            width: 12px !important;\n            height: 12px !important;\n            margin: 0 !important;\n\n            path {\n                fill: #646970 !important;\n            }\n        }\n\n        &::before {\n            display: none !important;\n            box-shadow: none !important;\n        }\n    }\n\n    &.jBox-closeButton-box::before {\n        display: none;\n    }\n\n    /* Buttons inside modals: calm, rounded, right-aligned rows */\n    .nf-button,\n    .jBox-Confirm-button {\n        border-radius: 8px;\n        font-size: 14px;\n        font-weight: 600;\n        text-transform: none;\n        letter-spacing: 0;\n        padding: 9px 16px;\n        height: auto;\n        line-height: 1.3;\n        cursor: pointer;\n        transition: background 0.15s ease, border-color 0.15s ease;\n    }\n\n    .nf-button.primary,\n    .jBox-Confirm-button-submit {\n        background: $nf-modal-accent;\n        border: 1px solid $nf-modal-accent;\n        color: #fff;\n\n        &:hover {\n            background: $nf-modal-accent-hover;\n            border-color: $nf-modal-accent-hover;\n        }\n    }\n\n    .nf-button.secondary,\n    .jBox-Confirm-button-cancel {\n        background: #fff;\n        border: 1px solid #d0d5d9;\n        color: $nf-modal-ink-2;\n\n        &:hover {\n            background: #f6f7f7;\n        }\n    }\n\n    /* Footer rows produced by our various modal builders */\n    .buttons,\n    .actions {\n        display: flex;\n        justify-content: flex-end;\n        gap: 8px;\n        margin-top: 20px;\n        padding-top: 16px;\n        border-top: 1px solid $nf-modal-line;\n\n        .nf-button {\n            float: none;\n        }\n\n        &::after {\n            display: none;\n        }\n    }\n\n    /* Inputs inside modals */\n    textarea,\n    input[type=\"text\"],\n    input[type=\"email\"] {\n        border: 1px solid #d0d5d9;\n        border-radius: 8px;\n        padding: 10px 12px;\n        font-size: 14px;\n        line-height: 1.5;\n        width: 100%;\n        box-sizing: border-box;\n\n        &:focus {\n            border-color: $nf-modal-accent;\n            box-shadow: 0 0 0 1px $nf-modal-accent;\n            outline: none;\n        }\n    }\n}\n\n/* Confirm: left-align content, white footer, no center shouting */\n.jBox-wrapper.jBox-Confirm .jBox-content {\n    text-align: left;\n    padding: 14px 24px 20px;\n}\n\n.jBox-Confirm-footer {\n    background: #fff;\n    border-top: 1px solid $nf-modal-line;\n    border-radius: 0 0 $nf-modal-radius $nf-modal-radius;\n    text-align: right;\n    padding: 12px 24px;\n    height: auto !important;\n}\n\n@keyframes nf-modal-in {\n    from {\n        opacity: 0;\n        transform: translateY(8px) scale(0.985);\n    }\n    to {\n        opacity: 1;\n        transform: none;\n    }\n}\n","@use 'notices/oauth';\n@use 'sections/widgets';\n@use 'sections/services';\n@use 'sections/apps';\n@use 'sections/memberships';\n@use 'sections/promotions';\n@use 'widgets/forms';\n@use '../shared/nf-modal';\n\nhtml {\n  overflow: auto!important; /* Override normalize.scss */\n}\n\n::-webkit-scrollbar {\n    display: none;\n}\n\n.ninja-forms-app {\n\n}\n\na {\n  color: #1EA9EA;\n  text-decoration: none;\n  outline: none !important;\n  border: 0;\n}\na:focus {\n  outline: none !important;\n  box-shadow: unset; // Override WP focus state.\n}\n\n#wpwrap,\n#wpcontent {\n  background-color: #fff;\n}\n\n#wpcontent {\n  padding: 0;\n\n  .wrap {\n    margin: 0;\n  }\n}\n\n/** Hide anything that isn't our page wrap, ie Admin Notices */\n#wpbody-content > div:not(.wrap) {\n  display: none;\n}\n\n@mixin wrap {\n  width: 100%;\n  max-width: 50rem;\n  margin: auto;\n}\n\n#ninja-forms-dashboard {\n\n  box-sizing: border-box;\n\n  .nf-widget {\n    background-color: #fff;\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    margin-bottom: 20px;\n  }\n\n  header {\n\n    &.topbar {\n      background-color: #EBEDEE;\n      margin-bottom: 40px;\n    }\n\n    .nf-notice-promo {\n      background-color: #ef4748;\n      padding: 8px 0;\n      width: 100%;\n\n      .wrap {\n        @include wrap;\n\n        align-items: center;\n        display: flex;\n        flex-direction: row;\n        justify-content: space-between;\n      }\n\n      strong {\n        color: white;\n        display: block;\n\n        a {\n          color: white;\n          text-decoration: none;\n\n          &:hover {\n            text-decoration: underline;\n          }\n        }\n      }\n\n      a {\n        background: none;\n        box-shadow: none;\n        border: none;\n        color: white;\n        cursor: pointer;\n        height: 16px;\n        width: 16px;\n\n        svg {\n          height: 16px;\n          width: 16px;\n        }\n\n        .sr-only {\n          border-width: 0;\n          clip: rect(0, 0, 0, 0);\n          height: 1px;\n          margin: -1px;\n          overflow: hidden;\n          padding: 0;\n          position: absolute;\n          white-space: nowrap;\n          width: 1px;\n        }\n      }\n    }\n\n    .app-title {\n      @include wrap;\n      background-image: url(\"../img/nf-logo-dashboard.png\");\n      background-size: 315px 48px;\n      background-position: left bottom;\n      background-repeat: no-repeat;\n      height: 52px;\n      //padding: 10px;\n      strong {\n        display: block;\n        text-indent: -9999px;\n      }\n    }\n  }\n\n  nav {\n    @include wrap;\n    margin-bottom: 40px;\n\n    ul {\n      display: flex;\n      margin: 0;\n\n      li {\n\n        a {\n          color: #424242;\n          cursor: pointer;\n          font-size: 16px;\n          margin: 0 16px 10px 16px;\n          margin-bottom: 10px;\n          padding: 16px 0 8px;\n\n          &.active {\n            border-bottom: 2px solid #424242;\n          }\n        }\n      }\n    }\n  }\n\n\n  div.nf-main-content {\n    @include wrap;\n  }\n\n  .form-row-actions {\n\n    display: none;\n\n    li {\n      font-size: 12px;\n    }\n\n  }\n  .nf-table-display {\n\n    td {\n      white-space:nowrap;\n    }\n\n    td:nth-child(1) {\n      width: 100%;\n    }\n\n    td:nth-child(2),\n    td:nth-child(3) {\n      width: 250px;\n    }\n\n    .title {\n      display: block;\n      max-width: 24rem;\n      overflow: hidden;\n    }\n\n  }\n\n  tr.show-actions {\n\n    .title {\n      display: block;\n      margin-bottom: 30px;\n    }\n\n    .form-row-actions {\n\n      display: flex;\n      background: #ECEDEE;\n      position: absolute;\n      padding-top: 6px;\n      bottom: 0;\n      z-index: 1;\n      margin: 0;\n\n      li {\n        padding: 0 10px;\n      }\n\n    }\n\n  }\n\n  .nf-search {\n\n    border-bottom: 1px solid #ECEDEE;\n\n    &::before {\n      top: 16px;\n    }\n\n    input[type=search] {\n      width: auto;\n    }\n\n  }\n\n  .nf-item-controls .nf-item-control a {\n    margin-left: 20px;\n    width: 24px;\n    cursor: pointer;\n  }\n\n  // Ensure dashboard \"Add New\" button passes WCAG contrast.\n  .add.nf-button.primary {\n    background: #0a6f9e;\n    border-color: #0a6f9e;\n    color: #fff;\n\n    &:hover,\n    &:focus {\n      background: #085b81;\n      border-color: #085b81;\n      color: #fff;\n    }\n  }\n\n  // WCAG 2.2 AA compliant link colors (#0073aa = 4.9:1 contrast on white)\n  .widget-forms table tbody td {\n    .title a {\n      color: #0073aa;\n      text-decoration: none;\n\n      &:hover,\n      &:focus {\n        color: #005a87;\n        text-decoration: underline;\n      }\n    }\n\n    .form-row-actions a {\n      color: #0073aa;\n\n      &:hover,\n      &:focus {\n        color: #005a87;\n      }\n    }\n  }\n}\n\n// WP admin footer review prompt: #555 on white = 7.5:1 (AAA compliant)\n#footer-thankyou {\n  color: #555;\n\n  a {\n    color: #0073aa;\n\n    &:hover,\n    &:focus {\n      color: #005a87;\n    }\n  }\n}\n\n/*\nNotices\n---------------------------------------------*/\n\n/*\nSections\n---------------------------------------------*/\n\n/*\nWidgets\n---------------------------------------------*/\n\n/*\njBox\n---------------------------------------------*/\n\n/* Modal styling lives in assets/scss/shared/_nf-modal.scss — one skin for\n   every jBox modal in the dashboard and the builder. */\n.jBox-Modal {\n    background-color: white;\n}\n\n/*\nLoading Spinner\n---------------------------------------------*/\n\n.nf-loading-spinner {\n  width: 40px;\n  height: 40px;\n  margin: 15px auto;\n  background-color: rgba(208,208,208,.5);\n\n  border-radius: 100%;\n  animation: nf-scaleout 1.0s infinite ease-in-out;\n}\n\n@-webkit-keyframes nf-scaleout {\n  0% { transform: scale(0) }\n  100% {\n    transform: scale(1.0);\n    opacity: 0;\n  }\n}\n\n@keyframes nf-scaleout {\n  0% {\n    transform: scale(0);\n  } 100% {\n      transform: scale(1.0);\n      opacity: 0;\n    }\n}\n\n.apps-container {\n  display: flex;\n  justify-content: space-between;\n  flex-flow: row wrap;\n  padding: 10px;\n\n  .nf-box {\n      background: #fff;\n      flex-basis: 48%;\n  }\n\n  .nf-box-inside {\n    border: 1px solid #ccc;\n    border-radius: 4px;\n    padding: 10px;\n  }\n\n  .nf-extend {\n      float: left;\n      margin: 0 0 20px 0;\n      width: 300px;\n      position: relative;\n  }\n  .nf-extend img {\n      margin-bottom: 10px;\n      max-width: 100%;\n      height: auto;\n  }\n\n  .nf-extend h2 {\n      white-space: nowrap;\n      overflow: hidden;\n  }\n\n  .nf-extend-content p {\n      min-height: 100px;\n  }\n\n  .nf-extend-buttons {\n\n    &::after {\n\n      clear:        both;\n      content:      \"\";\n      display:      block;\n\n    }\n\n  }\n\n  .nf-extend .nf-button {\n      float: right;\n  }\n\n  .nf-extend .nf-doc-button {\n      float: left;\n  }\n\n}\n\n/*\nPromotions\n---------------------------------------------*/\n\n.promotion--wrapper {\n  > div {\n    a {\n        position: relative;\n        display: block;\n        background: #f1f1f1;\n        padding: 16px 80px;\n        text-align: center;\n        border-radius: 4px;\n        font-size: 16px;\n        color: #ef4748 !important;\n        overflow: hidden;\n        line-height: 24px;\n      > .cta {\n          font-size: 22px;\n      }\n      > .dashicons, .dashicons-before::before {\n          position: absolute;\n          left: 0;\n          top: -20px;\n          font-size: 90px;\n          transform: rotate(20deg);\n      }\n    }\n  }\n}\n\n.promotion--wrapper {\n  > div {\n    a.nf-remove-promo-styling {\n      padding: 0;\n      height: 83px;\n    }\n  }\n}"]}