Your IP : 216.73.217.81
{"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":"AAAA,wBACG,GACG,oECEJ,CDCC,IACG,+DCCJ,CDEC,GACG,wECAJ,CACF,CDIA,mBACE,gBAAA,CACA,mBAAA,CACA,iBCFF,CDKA,oBACE,WCFF,CDKA,mBAEE,wBAAA,CACA,UAAA,CAFA,aAAA,CAGA,WAAA,CACA,oBCFF,CDKA,qBAKE,wBAAA,CAJA,iBAAA,CAEA,cAAA,CADA,SAAA,CAEA,kBCDF,CDIA,iCACE,uCAAA,CACA,kBCDF,CDGA,8CACE,UAAA,CACA,aAAA,CACA,WCAF,CC/CA,QACE,qBAAA,CACA,qBAAA,CACA,iBAAA,CAEA,YDkDF,CChDE,uBAHA,kBDsDF,CC7CA,oBACE,QAAA,CACA,SDgDF,CC9CA,mBACE,YAAA,CAEA,cAAA,CADA,6BDkDF,CC/CE,kCACE,SDiDJ,CC/CI,4CACE,wBDiDN,CC5CE,mCAEE,iBD6CJ,CC3CI,uCACE,kBD6CN,CC1CI,kDACE,cAAA,CACA,kBD4CN,CCzCI,kDACE,cAAA,CACA,eAAA,CACA,aD2CN,CCpCI,qCACE,cAAA,CACA,iBDsCN,CCnCI,sCACE,aAAA,CACA,gBDqCN,CClCI,oCACE,eAAA,CACA,gBAAA,CACA,iBDoCN,CCjCI,oCAGE,QAAA,CACA,4BAAA,CAFA,kBAAA,CADA,eDsCN,CChCI,qCAEE,UAAA,CACA,cAAA,CAEA,MAAA,CADA,iBDkCN,CC9BI,qDACE,eAAA,CACA,wBDgCN,CCxBA,oBAEE,iBD0BF,CCxBE,kCACE,cAAA,CACA,eAAA,CACA,eAAA,CACA,iBD0BJ,CCvBE,+BACE,kBDyBJ,CEpIA,iCACE,GACE,uBFuIF,CACF,CEpIA,uBACE,kDFsIF,CElIE,0BACE,eFqIJ,CEnIE,+BACE,eFqIJ,CEnIE,wCAEE,kBAAA,CADA,eFsIJ,CEjIA,qBAEE,wBAAA,CADA,qBAAA,CAEA,2BFoIF,CElIA,4BACE,4BAAA,CACA,+BAAA,CACA,oBFqIF,CEnIA,4BACE,yBAAA,CACA,kCAAA,CACA,uBFsIF,CE1HI,4DACE,qBAAA,CAEA,YAAA,CACA,qBAAA,CAFA,gBF+HN,CE3HM,+DACE,YF6HR,CEzHI,gEAGE,YAAA,CADA,aAAA,CAEA,qBAAA,CAHA,YF8HN,CEzHM,kEAEE,YAAA,CADA,YF4HR,CEvHI,gEACE,eFyHN,CErHI,mEAIE,iBAAA,CAEA,uBAAA,CACA,2BAAA,CAFA,qBAAA,CAKA,gCAAA,CADA,iBAAA,CARA,UAAA,CACA,aAAA,CASA,aAAA,CAHA,eAAA,CALA,UF+HN,CEnHI,8FACE,uDFqHN,CEnHI,uGAEE,oBAAA,CADA,sDFsHN,CEnHI,4FACE,qDFqHN,CEnHI,qHACE,0DFqHN,CEnHI,+FACE,yDFqHN,CEnHI,iGACE,uDFqHN,CEnHI,0FACE,yDFqHN,CEnHI,kGACE,2DFqHN,CGvOA,oBAIE,qBAAA,CAFA,eAAA,CADA,UH8OF,CGxOA,4BACE,gBH2OF,CIjPA,GACE,eJoPF,CIhPE,wBACE,cAAA,CACA,eAAA,CACA,gBJmPJ,CIjPM,oCACE,eJmPR,CIhPI,8BACE,uBAAA,CACA,eAAA,CACA,iBJkPN,CIhPI,yCACE,eJkPN,CIhPI,0CACE,eJkPN,CI/OE,qBACE,YJiPJ,CIhPI,yBACE,MJkPN,CIhPI,uCACE,MJkPN,CI9OE,sBACE,YJgPJ,CI7OE,kCACE,cJ+OJ,CI7OI,yCACE,aJ+ON,CIxOE,sBACE,YJ2OJ,CIzOE,qCACE,wBJ2OJ,CIzOE,4BAEE,wBAAA,CADA,aJ4OJ,CI1OI,8BACE,aJ4ON,CI1OI,mCACE,YJ4ON,CIzOE,2CACE,YJ2OJ,CI1OI,+CACE,MJ4ON,CI1OI,6DACE,MJ4ON,CIzOE,4BAGE,YAAA,CAFA,QAAA,CACA,gBJ4OJ,CIzOM,wCACE,SJ2OR,CIzOM,qCACE,YAAA,CACA,eJ2OR,CIzOM,gDACE,UJ2OR,CIpOE,gCAKE,4BAAA,CADA,aAAA,CAHA,cAAA,CACA,eAAA,CAKA,uBAAA,CADA,mBAAA,CAHA,SJ2OJ,CIpOE,iCACE,YAAA,CAEA,cAAA,CADA,6BJuOJ,CIpOI,qCACE,YAAA,CACA,SJsON,CInOI,2CACE,YAAA,CACA,UJqON,CIpOM,6CAKE,qBAAA,CACA,iBAAA,CALA,aAAA,CAOA,cAAA,CANA,aAAA,CACA,UAAA,CAIA,eAAA,CAHA,YJ0OR,CIpOQ,mDACE,kBAAA,CACA,UJsOV,CInOQ,oDACE,aAAA,CACA,cAAA,CACA,kBJqOV,CI/NM,uCACE,oBJiOR,CI5NM,4CACE,kBAAA,CACA,oBJ8NR,CIzNM,iDAEE,kBAAA,CADA,oBJ4NR,CIzNQ,uEACE,aAAA,CAEA,cAAA,CADA,gBJ4NV,CIxNQ,uDACE,kBJ0NV,CIxNU,6EACE,UJ0NZ,CIlNA,0BACI,oBJqNJ,CIlNA,gBACE,YJqNF,CIpNE,oBACE,UJsNJ,CIpNE,uBAEE,YAAA,CADA,UJuNJ,CIpNE,gCACE,cAAA,CACA,eAAA,CACA,gBAAA,CACA,iBAAA,CACA,iBJsNJ,CIpNE,yBACE,eJsNJ,CIrNI,+BAEE,UAAA,CACA,UAAA,CAFA,aJyNN,CIpNE,mCACE,WJsNJ,CI7MA,eAKE,6BAAA,CAJA,oBAAA,CAEA,UAAA,CAIA,yBAAA,CACA,2DAAA,CAAA,mDAAA,CACA,iBAAA,CALA,sBAAA,CAFA,SJ4NF,CKnaE,sCACE,2BLsaJ,CKnaE,wCAEE,qBAAA,CADA,ULsaJ,CKlaE,uCACE,4BLoaJ,CKjaE,8CAGE,aAAA,CAFA,aAAA,CAGA,cDiM2C,CCnM3C,mBLqaJ,CKhaE,kFAOE,sBAAA,CAFA,QAAA,CACA,iBAAA,CAEA,aAAA,CAGA,cAAA,CATA,aAAA,CAOA,iBDqLkC,CC1LlC,WD0L6B,CCpL7B,eAAA,CAPA,UL0aJ,CK/ZE,kMAIE,kBAAA,CACA,aLiaJ,CK5ZE,kDACE,yBAAA,CACA,mBL8ZJ,CK3ZE,gMAGE,YL6ZJ,CK1ZE,6JAEE,aL4ZJ,CKtZE,wDACE,YLwZJ,CKrZE,0CACE,aAAA,CACA,cLuZJ,CIxQE,0BAGE,aAAA,CAFA,aAAA,CAGA,cAAA,CACA,eAAA,CAHA,cJ6QJ,CIvQE,wCAEE,kBAAA,CADA,iBJ0QJ,CItQE,yCAIE,kBAAA,CAKA,eAAA,CAFA,wBAAA,CACA,iBAAA,CAEA,aAAA,CAEA,cAAA,CATA,YAAA,CAEA,6BAAA,CAHA,eAAA,CAIA,cAAA,CAKA,eAAA,CAVA,UJmRJ,CIrQE,sCCvPA,eAAA,CAFA,wBAAA,CACA,iBAAA,CAEA,qCAAA,CAPA,MAAA,CACA,gBD6PsC,CC5PtC,eAAA,CACA,YD2P6C,CChQ7C,iBAAA,CACA,OAAA,CDoQE,oBAAA,CADA,WJ8QJ,CI1QE,wEACE,YJ4QJ,CIzQE,wCACE,kBJ2QJ,CIxQE,uCACE,aJ0QJ,CIvQE,6BAIE,qBAAA,CACA,iBAAA,CAHA,qBAAA,CACA,YAAA,CAGA,eAAA,CALA,UJ8QJ,CItQE,uCACE,YAAA,CACA,wBAAA,CAEA,gBAAA,CADA,eJyQJ,CIrQE,wCACE,aAAA,CACA,cJuQJ,CIpQE,gDACE,aAAA,CACA,eJsQJ,CIjQE,sCAKE,kBAAA,CAFA,wBAAA,CACA,iBAAA,CAEA,aAAA,CALA,eAAA,CACA,gBJ2QJ,CIpQE,mCAIE,aAAA,CAFA,cAAA,CACA,eAAA,CAFA,cJyQJ,CInQE,gDAEE,WAAA,CADA,UJsQJ,CIhQA,kEAEE,gBJoQF,CIjQA,gBACE,qBJoQF,CIlQE,oCAQE,kBAAA,CAHA,kBAAA,CACA,wBAAA,CAFA,iBAAA,CAGA,YAAA,CALA,WAAA,CAOA,sBAAA,CANA,oBAAA,CAFA,UJ4QJ,CIlQI,mDAGE,mDAAA,CADA,aAAA,CADA,cJsQN,CIjQI,6CACE,kBAAA,CACA,oBJmQN,CIjQM,4DAEE,cAAA,CADA,UJoQR,CI9PE,8BACE,eAAA,CACA,aAAA,CAEA,eAAA,CADA,SJiQJ,CI7PE,6BAEE,kBAAA,CAEA,aAAA,CAHA,YAAA,CAEA,aAAA,CAEA,yBJ+PJ,CI7PI,8CAGE,iBAAA,CADA,iBAAA,CADA,UJiQN,CI7PM,yDACE,cJ+PR,CI1PM,mDACE,aJ4PR,CIxPI,uCACE,aAAA,CACA,eJ0PN,CIxPM,kDACE,aJ0PR,CItPI,qCACE,aJwPN,CItPM,gDACE,aJwPR,CInPE,sCAGE,aAAA,CACA,eAAA,CAFA,iBAAA,CADA,iBJwPJ,CIjPA,2BACE,MAAgC,SAAA,CAArB,kBJsPX,CIrPA,IAA8B,WAAA,CAAxB,qBJyPN,CACF,CIvPA,YACE,4CJyPF,CItPA,2BACE,GAAO,sBJ0PP,CIzPA,GAAK,uBJ4PL,CACF,CIxPA,aAcE,sCAAA,CARA,eAAA,CACA,wBAAA,CACA,kBAAA,CALA,WAAA,CAMA,wCAAA,CAIA,aAAA,CAFA,cAAA,CACA,eAAA,CAPA,eAAA,CAKA,2BAAA,CATA,cAAA,CACA,UAAA,CAEA,aJsQF,CI1PE,eACE,aAAA,CACA,eJ4PJ,CIxPE,sBACE,oBJ6PJ,CI1PE,gCAIE,eAAA,CACA,QAAA,CAMA,iBAAA,CAJA,aAAA,CADA,cAAA,CAEA,cAAA,CACA,aAAA,CACA,eAAA,CATA,iBAAA,CAEA,SAAA,CADA,OJqQJ,CI1PI,sCACE,kBJ4PN,CIvPA,0BACE,GAAO,SAAA,CAAY,yBJ4PnB,CI3PA,GAAK,SAAA,CAAY,cJ+PjB,CACF,CMxtBA,cAOI,yBAAA,CADA,uCAAA,CADA,qBAAA,CAFA,MAAA,CAFA,wBAAA,CACA,KAAA,CAEA,oBNquBJ,CM/tBA,oDAII,gCNkuBJ,CMhuBI,oFAMI,mCAAA,CALA,eAAA,CAEA,gCAAA,CADA,kBA3BU,CA6BV,qEAAA,CACA,eNouBR,CM/tBI,4EACI,eAAA,CACA,eAAA,CACA,2BAAA,CAKA,aAxCO,CAqCP,cAAA,CACA,eAAA,CACA,eAAA,CAHA,wBAAA,CAKA,eAAA,CACA,gBAAA,CACA,UNsuBR,CMnuBI,gFAII,aAjDS,CA+CT,cAAA,CACA,gBAAA,CAFA,sBAAA,CAIA,UNsuBR,CMpuBQ,gHAEI,cAAA,CACA,eAAA,CACA,gBAAA,CACA,SAAA,CACA,eNuuBZ,CMjuBI,wFAUI,kBAAA,CALA,gCAAA,CACA,iBAAA,CACA,yBAAA,CAEA,sBAAA,CALA,qBAAA,CAOA,sBAAA,CATA,oBAAA,CADA,kBAAA,CAOA,+BAAA,CALA,oBNivBR,CMvuBQ,oGACI,4BN0uBZ,CMvuBQ,gGAGI,qBAAA,CACA,kBAAA,CAHA,yBAAA,CACA,oBN4uBZ,CMxuBY,0GACI,sBN2uBhB,CMvuBQ,sGAEI,yBAAA,CADA,sBN2uBZ,CMtuBI,4GACI,YNyuBR,CMruBI,wKAEI,iBAAA,CAQA,cAAA,CAPA,cAAA,CACA,eAAA,CAIA,WAAA,CAFA,gBAAA,CAGA,eAAA,CAFA,gBAAA,CAFA,mBAAA,CAMA,sDN6uBR,CM1uBI,sMAEI,kBA1HU,CA2HV,wBAAA,CACA,UN8uBR,CM5uBQ,8NACI,kBA9HY,CA+HZ,oBNivBZ,CM7uBI,0MAEI,eAAA,CACA,wBAAA,CACA,aNivBR,CM/uBQ,kOACI,kBNovBZ,CM/uBI,4IAOI,4BAAA,CALA,YAAA,CAEA,OAAA,CADA,wBAAA,CAEA,eAAA,CACA,gBNwvBR,CMrvBQ,wLACI,UN0vBZ,CMvvBQ,oKACI,YN4vBZ,CMvvBI,oPAGI,wBAAA,CACA,iBAAA,CAKA,qBAAA,CAHA,cAAA,CACA,eAAA,CAFA,iBAAA,CAGA,UNiwBR,CM9vBQ,wRACI,oBA/KM,CAgLN,4BAAA,CACA,YNqwBZ,CM/vBA,yCAEI,sBAAA,CADA,eNowBJ,CMhwBA,qBACI,eAAA,CAEA,2BAAA,CADA,4BAAA,CAIA,qBAAA,CADA,iBAAA,CADA,gBNqwBJ,CMhwBA,uBACI,GACI,SAAA,CACA,qCNmwBN,CMjwBE,GACI,SAAA,CACA,cNmwBN,CACF,CO/8BA,KACE,uBPi9BF,CO98BA,oBACI,YPi9BJ,CO18BA,EAIE,QAAA,CAHA,aAAA,CACA,oBP+8BF,CO38BA,UAHE,sBPm9BF,COh9BA,QAEE,gBP88BF,CO38BA,mBAEE,qBP88BF,CO38BA,WACE,SP88BF,CO58BE,iBACE,QP88BJ,COz8BA,+BACE,YP68BF,COp8BA,uBAEE,qBPs8BF,COp8BE,kCACE,qBAAA,CACA,qBAAA,CACA,iBAAA,CACA,kBPs8BJ,COj8BI,qCACE,wBAAA,CACA,kBPm8BN,COh8BI,+CACE,wBAAA,CACA,aAAA,CACA,UPk8BN,COh8BM,qDAGE,kBAAA,CACA,YAAA,CACA,kBAAA,CACA,6BAAA,CAhCN,WAAA,CADA,eAAA,CADA,UPq+BF,COh8BM,sDACE,UAAA,CACA,aPk8BR,COh8BQ,wDACE,UAAA,CACA,oBPk8BV,COh8BU,8DACE,yBPk8BZ,CO77BM,iDACE,eAAA,CAEA,WAAA,CADA,eAAA,CAEA,UAAA,CACA,cAAA,CACA,WAAA,CACA,UP+7BR,CO77BQ,qDACE,WAAA,CACA,UP+7BV,CO57BQ,0DAEE,kBAAA,CADA,cAAA,CAEA,UAAA,CACA,WAAA,CACA,eAAA,CACA,SAAA,CACA,iBAAA,CACA,kBAAA,CACA,SP87BV,COz7BI,yCAEE,kDAAA,CAEA,0BAAA,CACA,2BAAA,CAFA,0BAAA,CAGA,WAAA,CAnFJ,WAAA,CADA,eAAA,CADA,UPkhCF,CO37BM,gDACE,aAAA,CACA,mBP67BR,COx7BE,2BAEE,qBAAA,CA/FF,eAAA,CADA,UP4hCF,CO17BI,8BACE,YAAA,CACA,QP47BN,COx7BQ,mCACE,aAAA,CACA,cAAA,CACA,cAAA,CAEA,kBAAA,CACA,kBP07BV,COx7BU,0CACE,+BP07BZ,COl7BE,2CAvHA,WAAA,CADA,eAAA,CADA,UPgjCF,COn7BE,yCAEE,YPo7BJ,COl7BI,4CACE,cPo7BN,CO96BI,4CACE,kBPg7BN,CO76BI,wDACE,UP+6BN,CO56BI,kHAEE,WP86BN,CO36BI,gDACE,aAAA,CACA,eAAA,CACA,eP66BN,COt6BI,8CACE,aAAA,CACA,kBPw6BN,COr6BI,yDAGE,kBAAA,CAGA,QAAA,CAJA,YAAA,CAMA,QAAA,CAHA,eAAA,CADA,iBAAA,CAGA,SPu6BN,COp6BM,4DACE,cPs6BR,CO/5BE,kCAEE,+BPg6BJ,CO95BI,yCACE,QPg6BN,CO75BI,qDACE,UP+5BN,CO15BE,4DAGE,cAAA,CAFA,gBAAA,CACA,UP65BJ,COx5BE,8CACE,kBAAA,CACA,oBAAA,CACA,UP05BJ,COx5BI,wGAEE,kBAAA,CACA,oBAAA,CACA,UPy5BN,COn5BI,6DACE,aAAA,CACA,oBPq5BN,COn5BM,sIAEE,aAAA,CACA,yBPo5BR,COh5BI,wEACE,aPk5BN,COh5BM,4JAEE,aPi5BR,CO14BA,iBACE,UP64BF,CO34BE,mBACE,aP64BJ,CO34BI,kDAEE,aP44BN,COr3BA,YACI,qBPs4BJ,CO/3BA,oBAOE,6CAAA,CAHA,kCAAA,CAEA,kBAAA,CAJA,WAAA,CACA,gBAAA,CAFA,UP04BF,COz3BA,uBACE,GACE,kBPq4BF,COp4BE,GAEE,SAAA,CADA,kBPu4BJ,CACF,COn4BA,gBACE,YAAA,CAEA,kBAAA,CADA,6BAAA,CAEA,YPq4BF,COn4BE,wBACI,eAAA,CACA,cPq4BN,COl4BE,+BACE,qBAAA,CACA,iBAAA,CACA,YPo4BJ,COj4BE,2BACI,UAAA,CACA,eAAA,CAEA,iBAAA,CADA,WPo4BN,COj4BE,+BAGI,WAAA,CAFA,kBAAA,CACA,cPo4BN,COh4BE,8BAEI,eAAA,CADA,kBPm4BN,CO/3BE,qCACI,gBPi4BN,CO53BI,yCAEE,UAAA,CACA,UAAA,CACA,aP63BN,COv3BE,sCACI,WPy3BN,COt3BE,0CACI,UPw3BN,CO72BI,0BAGI,kBAAA,CAGA,iBAAA,CAEA,uBAAA,CANA,aAAA,CAKA,cAAA,CAGA,gBAAA,CADA,eAAA,CALA,iBAAA,CAHA,iBAAA,CAIA,iBPw3BR,COl3BM,+BACI,cPo3BV,COl3BM,wFAII,cAAA,CAFA,MAAA,CADA,iBAAA,CAEA,SAAA,CAEA,uBPo3BV,CO52BI,kDAEE,WAAA,CADA,SPg3BN","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}"]}