Plugin Directory

Changeset 3252174


Ignore:
Timestamp:
03/07/2025 01:13:51 PM (12 months ago)
Author:
instawp
Message:

Update to version 0.1.0.83 from GitHub

Location:
instawp-connect
Files:
28 edited
1 copied

Legend:

Unmodified
Added
Removed
  • instawp-connect/tags/0.1.0.83/assets/css/common.min.css

    r3208404 r3252174  
    1 #wpadminbar li#wp-admin-bar-instawp-template-migrate a,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:active,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:focus,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:visited,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:hover{background:#6b2fad;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px}#wpadminbar li#wp-admin-bar-instawp_staging_site a,#wpadminbar li#wp-admin-bar-instawp_staging_site a:active,#wpadminbar li#wp-admin-bar-instawp_staging_site a:focus,#wpadminbar li#wp-admin-bar-instawp_staging_site a:visited,#wpadminbar li#wp-admin-bar-instawp_staging_site a:hover{background:#ea580c;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:10px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp-go-live a,#wpadminbar li#wp-admin-bar-instawp-go-live a:active,#wpadminbar li#wp-admin-bar-instawp-go-live a:focus,#wpadminbar li#wp-admin-bar-instawp-go-live a:visited,#wpadminbar li#wp-admin-bar-instawp-go-live a:hover{background:#10a372;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading{position:relative;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading:after{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid hsla(0,0%,100%,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px}#wpadminbar li#wp-admin-bar-instawp>a{display:flex;justify-content:center;align-items:center}#wpadminbar li#wp-admin-bar-instawp.recording-on>a:before{content:"󱄱";width:12px;height:12px;background-color:#e91e63;border-radius:50%;animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;box-sizing:border-box}@keyframes blink{50%{opacity:0}}@keyframes loading{0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}/*# sourceMappingURL=common.min.css.map */
     1 #wpadminbar li#wp-admin-bar-instawp-template-migrate a,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:active,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:focus,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:visited,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:hover{background:#6b2fad;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px}#wpadminbar li#wp-admin-bar-instawp_staging_site a,#wpadminbar li#wp-admin-bar-instawp_staging_site a:active,#wpadminbar li#wp-admin-bar-instawp_staging_site a:focus,#wpadminbar li#wp-admin-bar-instawp_staging_site a:visited,#wpadminbar li#wp-admin-bar-instawp_staging_site a:hover{background:#ea580c;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:10px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover{background:#11a472;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:30px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover:before{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid rgba(255,255,255,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px;padding:0}#wpadminbar li#wp-admin-bar-instawp-go-live a,#wpadminbar li#wp-admin-bar-instawp-go-live a:active,#wpadminbar li#wp-admin-bar-instawp-go-live a:focus,#wpadminbar li#wp-admin-bar-instawp-go-live a:visited,#wpadminbar li#wp-admin-bar-instawp-go-live a:hover{background:#10a372;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading{position:relative;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading:after{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid rgba(255,255,255,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px}#wpadminbar li#wp-admin-bar-instawp>a{display:flex;justify-content:center;align-items:center}#wpadminbar li#wp-admin-bar-instawp.recording-on>a:before{content:"󱄱";width:12px;height:12px;background-color:#e91e63;border-radius:50%;animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;box-sizing:border-box}body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover:before{height:16px;width:16px}.deactivate-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);align-items:center;z-index:999999}.deactivate-modal .deactivate-modal-content{background-color:#fff;border-radius:.5rem;padding:1.5rem;max-width:24rem;width:100%;position:absolute;top:20%;left:50%;transform:translateX(-50%)}.deactivate-modal .deactivate-modal-content h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.deactivate-modal .deactivate-modal-content p{font-size:14px;line-height:21px;margin-bottom:1rem}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions{display:flex;justify-content:flex-end;gap:1rem}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions .deactivate-modal-cancel{padding:.5rem 1rem;background-color:#166534;border-radius:.375rem;border:none;cursor:pointer;color:#f1f1f1}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions .deactivate-modal-confirm{padding:.5rem 1rem;background-color:#fee2e2;border-radius:.375rem;border:none;cursor:pointer}@keyframes blink{50%{opacity:0}}@keyframes loading{0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}/*# sourceMappingURL=common.min.css.map */
  • instawp-connect/tags/0.1.0.83/assets/css/common.min.css.map

    r3208404 r3252174  
    1 {"version":3,"sourceRoot":"","sources":["../src/common.scss"],"names":[],"mappings":"CAMQ,8SAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBAKJ,0RAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAKJ,iQAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eAGJ,oDACI,kBACA,eAEA,0DACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,oCACA,wBACA,qCACA,iBAMR,sCACI,aACA,uBACA,mBAKI,0DACI,aACA,WACA,YACA,yBACA,kBACA,qBACA,sBACA,mCACA,sBAOpB,iBACI,IACI,WAIR,mBACI,GACI,uBAEJ,IACI,yBAEJ,KACI","file":"common.min.css"}
     1{"version":3,"sourceRoot":"","sources":["../src/common.scss"],"names":[],"mappings":"CAMQ,8SAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBAKJ,0RAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAKJ,ySAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAEA,4UACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,sCACA,wBACA,qCACA,iBACA,UAMR,iQAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eAGJ,oDACI,kBACA,eAEA,0DACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,sCACA,wBACA,qCACA,iBAMR,sCACI,aACA,uBACA,mBAKI,0DACI,aACA,WACA,YACA,yBACA,kBACA,qBACA,sBACA,mCACA,sBAgBA,ocACI,YACA,WAQxB,kBACI,aACA,eACA,MACA,OACA,WACA,YACA,gCACA,mBACA,eAEA,4CACI,sBACA,oBACA,eACA,gBACA,WACA,kBACA,QACA,SACA,2BAEA,+CACI,mBACA,gBACA,mBAGJ,8CACI,eACA,iBACA,mBAGJ,sEACI,aACA,yBACA,SAEA,+FACI,mBACA,yBACA,sBACA,YACA,eACA,cAGJ,gGACI,mBACA,yBACA,sBACA,YACA,eAMhB,iBACI,IACI,WAIR,mBACI,GACI,uBAEJ,IACI,yBAEJ,KACI","file":"common.min.css"}
  • instawp-connect/tags/0.1.0.83/assets/css/tailwind.min.css

    r3239817 r3252174  
    1 /*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-8{top:-2rem}.bottom-3{bottom:.75rem}.end-1{inset-inline-end:.25rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-4{top:1rem}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.float-start{float:inline-start}.float-end{float:inline-end}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-start{clear:inline-start}.clear-end{clear:inline-end}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.\!m-0{margin:0!important}.m-4{margin:1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!mr-1{margin-right:.25rem!important}.\!mr-3{margin-right:.75rem!important}.\!mt-0{margin-top:0!important}.-mb-8{margin-bottom:-2rem}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.box-border{box-sizing:border-box}.box-content{box-sizing:initial}.line-clamp-none{overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-\[300px\]{max-height:300px}.min-h-\[378px\]{min-height:378px}.\!w-80{width:20rem!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-36{min-width:9rem}.min-w-full{min-width:100%}.max-w-\[85\%\]{max-width:85%}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.caption-top{caption-side:top}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:initial}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin-reverse{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}.animate-spin-reverse{animation:spin-reverse 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x:pan-x}.touch-pan-left,.touch-pan-x{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x:pan-left}.touch-pan-right{--tw-pan-x:pan-right}.touch-pan-right,.touch-pan-y{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y:pan-y}.touch-pan-up{--tw-pan-y:pan-up}.touch-pan-down,.touch-pan-up{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y:pan-down}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-proximity{--tw-scroll-snap-strictness:proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-normal{align-content:normal}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-stretch{justify-content:stretch}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.text-ellipsis,.truncate{text-overflow:ellipsis}.text-clip{text-overflow:clip}.hyphens-none{-webkit-hyphens:none;hyphens:none}.hyphens-manual{-webkit-hyphens:manual;hyphens:manual}.hyphens-auto{-webkit-hyphens:auto;hyphens:auto}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-break-spaces{white-space:break-spaces}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-tr-lg{border-top-right-radius:.5rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-y-0{border-top-width:0;border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-blueCust-200{--tw-border-opacity:1;border-color:rgb(107 47 173/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-grayCust-100{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-grayCust-350{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity))}.border-primary-900{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.border-l-orange-400{--tw-border-opacity:1;border-left-color:rgb(251 146 60/var(--tw-border-opacity))}.bg-\[\#005e54\]{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-\[rgb\(255\2c 0\2c 0\)\]{--tw-bg-opacity:1;background-color:rgb(255 0 0/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-blueCust-100{background-color:#6b2fad99}.bg-blueCust-200{--tw-bg-opacity:1;background-color:rgb(107 47 173/var(--tw-bg-opacity))}.bg-blueCust-50{background-color:#6b2fad0d}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-grayCust-250{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-350{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-grayCust-400{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-850{--tw-bg-opacity:1;background-color:rgb(52 53 65/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgb(17 191 133/var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-50,.bg-yellowCust-150{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:initial}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:initial}.bg-origin-content{background-origin:content-box}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-5{padding-left:1.25rem}.pr-0{padding-right:0}.pr-5{padding-right:1.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:initial}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal}.ordinal,.slashed-zero{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero}.lining-nums{--tw-numeric-figure:lining-nums}.lining-nums,.oldstyle-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.tabular-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.stacked-fractions{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.leading-6{line-height:1.5rem}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-\[\#e9950c\]{--tw-text-opacity:1;color:rgb(233 149 12/var(--tw-text-opacity))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-grayCust-150{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.text-grayCust-200{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-grayCust-300{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-grayCust-450{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-grayCust-50{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-grayCust-500{--tw-text-opacity:1;color:rgb(217 63 33/var(--tw-text-opacity))}.text-grayCust-550{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-grayCust-750{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-grayCust-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-grayCust-900{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800,.text-redCust-100{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-yellowCust-200{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.\!shadow,.\!shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content:"this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.forced-color-adjust-auto{forced-color-adjust:auto}.forced-color-adjust-none{forced-color-adjust:none}.instawp-qa-tools .instawp-manager{margin-right:1rem;border-radius:.375rem;padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:#3341551a}.instawp-qa-tools .instawp-manager:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1536px){.sm\:container{max-width:1536px}}}.hover\:rounded-lg:hover{border-radius:.5rem}.hover\:border-primary-700:hover{--tw-border-opacity:1;border-color:rgb(17 191 133/var(--tw-border-opacity))}.hover\:border-primary-900:hover{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-primary-800:hover{--tw-bg-opacity:1;background-color:rgb(11 108 99/var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.hover\:font-bold:hover{font-weight:700}.hover\:text-amber-600:hover{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.hover\:text-orange-900:hover{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-0:hover{outline-width:0}.hover\:ring-0:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.before\:hover\:text-center:hover:before,.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-0:focus{border-width:0}.focus\:border-grayCust-350:focus{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.focus\:border-primary-900:focus{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.focus\:text-amber-600:focus{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.focus\:text-blue-800:focus{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.focus\:text-primary-700:focus{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:outline-0:focus{outline-width:0}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-900:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 94 84/var(--tw-ring-opacity))}.focus\:hover\:text-center:hover:focus,.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.active\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:inline-block{display:inline-block}.group.failed .group-\[\.failed\]\:text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.group.invalid .group-\[\.invalid\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.sent .group-\[\.sent\]\:text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.group.skipped .group-\[\.skipped\]\:text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}@media (min-width:640px){.sm\:mt-px{margin-top:1px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:underline{text-decoration-line:underline}}@media (min-width:768px){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}}@media (min-width:1024px){.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){@media (min-width:1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}.\[\&\.completed1\]\:text-red-500.completed1{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.\[\&\.completed\]\:bg-green-200.completed{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity))}.\[\&\.completed\]\:text-green-900.completed{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity))}.\[\&\.error\]\:bg-red-200.error{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.\[\&\.error\]\:text-red-800.error{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.\[\&\.invalid\]\:bg-yellow-200.invalid{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity))}.\[\&\.invalid\]\:text-yellow-800.invalid{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.\[\&\.pending\]\:bg-sky-200.pending{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.\[\&\.pending\]\:text-sky-800.pending{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}
     1/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.inset-0{inset:0}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-8{top:-2rem}.bottom-3{bottom:.75rem}.end-1{inset-inline-end:.25rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-4{top:1rem}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.float-start{float:inline-start}.float-end{float:inline-end}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-start{clear:inline-start}.clear-end{clear:inline-end}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.\!m-0{margin:0!important}.m-4{margin:1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!mr-1{margin-right:.25rem!important}.\!mr-3{margin-right:.75rem!important}.\!mt-0{margin-top:0!important}.-mb-8{margin-bottom:-2rem}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.box-border{box-sizing:border-box}.box-content{box-sizing:initial}.line-clamp-none{overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-\[300px\]{max-height:300px}.min-h-\[378px\]{min-height:378px}.\!w-80{width:20rem!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-36{min-width:9rem}.min-w-full{min-width:100%}.max-w-\[85\%\]{max-width:85%}.max-w-sm{max-width:24rem}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.caption-top{caption-side:top}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:initial}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin-reverse{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}.animate-spin-reverse{animation:spin-reverse 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x:pan-x}.touch-pan-left,.touch-pan-x{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x:pan-left}.touch-pan-right{--tw-pan-x:pan-right}.touch-pan-right,.touch-pan-y{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y:pan-y}.touch-pan-up{--tw-pan-y:pan-up}.touch-pan-down,.touch-pan-up{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y:pan-down}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-proximity{--tw-scroll-snap-strictness:proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-normal{align-content:normal}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-stretch{justify-content:stretch}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.text-ellipsis,.truncate{text-overflow:ellipsis}.text-clip{text-overflow:clip}.hyphens-none{-webkit-hyphens:none;hyphens:none}.hyphens-manual{-webkit-hyphens:manual;hyphens:manual}.hyphens-auto{-webkit-hyphens:auto;hyphens:auto}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-break-spaces{white-space:break-spaces}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-tr-lg{border-top-right-radius:.5rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-y-0{border-top-width:0;border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-blueCust-200{--tw-border-opacity:1;border-color:rgb(107 47 173/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-grayCust-100{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-grayCust-350{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity))}.border-primary-900{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.border-l-orange-400{--tw-border-opacity:1;border-left-color:rgb(251 146 60/var(--tw-border-opacity))}.bg-\[\#005e54\]{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-\[rgb\(255\2c 0\2c 0\)\]{--tw-bg-opacity:1;background-color:rgb(255 0 0/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-blueCust-100{background-color:#6b2fad99}.bg-blueCust-200{--tw-bg-opacity:1;background-color:rgb(107 47 173/var(--tw-bg-opacity))}.bg-blueCust-50{background-color:#6b2fad0d}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-grayCust-250{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-350{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-grayCust-400{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-850{--tw-bg-opacity:1;background-color:rgb(52 53 65/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgb(17 191 133/var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-50,.bg-yellowCust-150{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:initial}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:initial}.bg-origin-content{background-origin:content-box}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-5{padding-left:1.25rem}.pr-0{padding-right:0}.pr-5{padding-right:1.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:initial}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal}.ordinal,.slashed-zero{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero}.lining-nums{--tw-numeric-figure:lining-nums}.lining-nums,.oldstyle-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.tabular-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.stacked-fractions{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.leading-6{line-height:1.5rem}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-\[\#e9950c\]{--tw-text-opacity:1;color:rgb(233 149 12/var(--tw-text-opacity))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-grayCust-150{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.text-grayCust-200{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-grayCust-300{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-grayCust-450{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-grayCust-50{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-grayCust-500{--tw-text-opacity:1;color:rgb(217 63 33/var(--tw-text-opacity))}.text-grayCust-550{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-grayCust-750{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-grayCust-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-grayCust-900{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800,.text-redCust-100{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-yellowCust-200{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.\!shadow,.\!shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content:"this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.forced-color-adjust-auto{forced-color-adjust:auto}.forced-color-adjust-none{forced-color-adjust:none}.instawp-qa-tools .instawp-manager{margin-right:1rem;border-radius:.375rem;padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:#3341551a}.instawp-qa-tools .instawp-manager:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1536px){.sm\:container{max-width:1536px}}}.hover\:rounded-lg:hover{border-radius:.5rem}.hover\:border-primary-700:hover{--tw-border-opacity:1;border-color:rgb(17 191 133/var(--tw-border-opacity))}.hover\:border-primary-900:hover{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-primary-800:hover{--tw-bg-opacity:1;background-color:rgb(11 108 99/var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.hover\:font-bold:hover{font-weight:700}.hover\:text-amber-600:hover{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.hover\:text-orange-900:hover{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-0:hover{outline-width:0}.hover\:ring-0:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.before\:hover\:text-center:hover:before,.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-0:focus{border-width:0}.focus\:border-grayCust-350:focus{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.focus\:border-primary-900:focus{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.focus\:text-amber-600:focus{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.focus\:text-blue-800:focus{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.focus\:text-primary-700:focus{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:outline-0:focus{outline-width:0}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-900:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 94 84/var(--tw-ring-opacity))}.focus\:hover\:text-center:hover:focus,.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.active\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:inline-block{display:inline-block}.group.failed .group-\[\.failed\]\:text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.group.invalid .group-\[\.invalid\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.sent .group-\[\.sent\]\:text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.group.skipped .group-\[\.skipped\]\:text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}@media (min-width:640px){.sm\:mt-px{margin-top:1px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:underline{text-decoration-line:underline}}@media (min-width:768px){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}}@media (min-width:1024px){.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){@media (min-width:1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}.\[\&\.completed1\]\:text-red-500.completed1{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.\[\&\.completed\]\:bg-green-200.completed{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity))}.\[\&\.completed\]\:text-green-900.completed{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity))}.\[\&\.error\]\:bg-red-200.error{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.\[\&\.error\]\:text-red-800.error{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.\[\&\.invalid\]\:bg-yellow-200.invalid{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity))}.\[\&\.invalid\]\:text-yellow-800.invalid{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.\[\&\.pending\]\:bg-sky-200.pending{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.\[\&\.pending\]\:text-sky-800.pending{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}
  • instawp-connect/tags/0.1.0.83/assets/js/common.js

    r3085407 r3252174  
    1414            success: function (response) {
    1515                console.log(response)
    16                 if(el.attr('target') === 'cache') {
     16                if (el.attr('target') === 'cache') {
    1717                    const urlObj = new URL(window.location.href);
    1818                    urlObj.searchParams.delete('instawp-cache-cleared');
     
    3535        window.location = el.attr('href');
    3636    });
     37
     38    $(document).on('click', 'tr[data-slug="instawp-connect"] .deactivate > a', function (e) {
     39        if (instawp_common.mig_in_progress && instawp_common.mig_in_progress === 'yes') {
     40            e.preventDefault();
     41
     42            $('#deactivate-modal').fadeIn('100');
     43
     44            return false;
     45        }
     46    });
     47
     48    $(document).on('click', '#cancel-deactivate', function (e) {
     49        $('#deactivate-modal').fadeOut('100');
     50    });
     51
     52    $(document).on('click', '#confirm-deactivate', function (e) {
     53        window.location.href = $('tr[data-slug="instawp-connect"] .deactivate > a').attr('href');
     54    });
     55
    3756})(jQuery, window, document, instawp_common);
    3857
  • instawp-connect/tags/0.1.0.83/assets/js/scripts.js

    r3216309 r3252174  
    14991499    });
    15001500
    1501 
    15021501    $(document).on('click', '.instawp-update-plugin', function (e) {
    15031502        e.preventDefault();
  • instawp-connect/tags/0.1.0.83/assets/src/common.scss

    r3122113 r3252174  
    3636            user-select: none;
    3737            -webkit-user-drag: none;
     38        }
     39    }
     40
     41    li#wp-admin-bar-instawp_mig_in_progress {
     42        a,
     43        a:active,
     44        a:focus,
     45        a:visited,
     46        a:hover {
     47            background: #11a472;
     48            color: #f1f1f1;
     49            outline: none;
     50            border: none;
     51            box-shadow: none;
     52            padding-left: 30px;
     53            padding-right: 10px;
     54            cursor: pointer;
     55            user-select: none;
     56            -webkit-user-drag: none;
     57
     58            &:before {
     59                content: ' ';
     60                position: absolute;
     61                height: 10px;
     62                width: 10px;
     63                top: 50%;
     64                left: 16px;
     65                transform: translate(-50%, -50%);
     66                border-radius: 50%;
     67                border: 3px solid rgb(255 255 255 / 20%);
     68                border-right-color: #fff;
     69                animation: loading 1s linear infinite;
     70                margin: -8px -8px;
     71                padding: 0;
     72            }
    3873        }
    3974    }
     
    101136}
    102137
     138body {
     139    &.tools_page_instawp {
     140        #wpadminbar {
     141            li#wp-admin-bar-instawp_mig_in_progress {
     142                a,
     143                a:active,
     144                a:focus,
     145                a:visited,
     146                a:hover {
     147                    &:before {
     148                        height: 16px;
     149                        width: 16px;
     150                    }
     151                }
     152            }
     153        }
     154    }
     155}
     156
     157.deactivate-modal {
     158    display: none;
     159    position: fixed;
     160    top: 0;
     161    left: 0;
     162    width: 100%;
     163    height: 100%;
     164    background-color: rgba(0, 0, 0, 0.6);
     165    align-items: center;
     166    z-index: 999999;
     167
     168    .deactivate-modal-content {
     169        background-color: white;
     170        border-radius: 0.5rem;
     171        padding: 1.5rem;
     172        max-width: 24rem;
     173        width: 100%;
     174        position: absolute;
     175        top: 20%;
     176        left: 50%;
     177        transform: translateX(-50%);
     178
     179        h3 {
     180            font-size: 1.125rem;
     181            font-weight: 600;
     182            margin-bottom: 1rem;
     183        }
     184
     185        p {
     186            font-size: 14px;
     187            line-height: 21px;
     188            margin-bottom: 1rem;
     189        }
     190
     191        .deactivate-modal-actions {
     192            display: flex;
     193            justify-content: flex-end;
     194            gap: 1rem;
     195
     196            .deactivate-modal-cancel {
     197                padding: 0.5rem 1rem;
     198                background-color: #166534;
     199                border-radius: 0.375rem;
     200                border: none;
     201                cursor: pointer;
     202                color: #f1f1f1;
     203            }
     204
     205            .deactivate-modal-confirm {
     206                padding: 0.5rem 1rem;
     207                background-color: #fee2e2;
     208                border-radius: 0.375rem;
     209                border: none;
     210                cursor: pointer;
     211            }
     212        }
     213    }
     214}
     215
    103216@keyframes blink {
    104217    50% {
  • instawp-connect/tags/0.1.0.83/includes/apis/class-instawp-rest-api-migration.php

    r3250876 r3252174  
    5050
    5151        $migrate_key              = sanitize_text_field( $request->get_param( 'migrate_key' ) );
     52        $is_end_to_end            = sanitize_text_field( $request->get_param( 'is_end_to_end' ) );
    5253        $migrate_settings         = $request->get_param( 'migrate_settings' );
    5354        $migrate_settings['mode'] = 'pull';
     
    7172
    7273        Option::update_option( 'instawp_migration_details', array(
    73             'migrate_key' => $migrate_key,
     74            'migrate_key'   => $migrate_key,
     75            'is_end_to_end' => $is_end_to_end,
    7476            //'dest_url'    => Helper::get_args_option( 'serve_url', $pre_check_response ),
    75             'started_at'  => current_time( 'mysql', 1 ),
    76             'status'      => 'initiated',
    77             'mode'        => 'pull',
     77            'started_at'    => current_time( 'mysql', 1 ),
     78            'status'        => 'initiated',
     79            'mode'          => 'pull',
    7880        ) );
    7981
     
    117119        }
    118120
     121        $is_end_to_end = sanitize_text_field( $request->get_param( 'is_end_to_end' ) );
     122
    119123        Option::update_option( 'instawp_migration_details', array(
    120             'migrate_key' => $migrate_key,
    121             'dest_url'    => $dest_file_url,
    122             'started_at'  => current_time( 'mysql', 1 ),
    123             'status'      => 'initiated',
    124             'mode'        => 'push',
     124            'migrate_key'   => $migrate_key,
     125            'is_end_to_end' => $is_end_to_end,
     126            'dest_url'      => $dest_file_url,
     127            'started_at'    => current_time( 'mysql', 1 ),
     128            'status'        => 'initiated',
     129            'mode'          => 'push',
    125130        ) );
    126131
  • instawp-connect/tags/0.1.0.83/includes/apis/class-instawp-rest-api.php

    r3239817 r3252174  
    2222        add_action( 'rest_api_init', array( $this, 'add_api_routes' ) );
    2323        add_filter( 'rest_authentication_errors', array( $this, 'rest_access' ), 999 );
    24         add_filter( 'bb_exclude_endpoints_from_restriction', array( $this, 'endpoints_from_restriction_callback' ), 99, 2 );
     24        add_filter( 'bb_exclude_endpoints_from_restriction', array( $this, 'endpoints_from_restriction_callback' ), 99, 2 );
    2525        add_action( 'init', array( $this, 'perform_actions' ), 0 );
    2626    }
     
    4545        ) );
    4646
    47         register_rest_route( $this->namespace . '/' . $this->version_2, '/refresh-staging-sites-list', array(
    48             'methods'             => 'POST',
    49             'callback'            => array( $this, 'refresh_staging_sites_list' ),
    50             'permission_callback' => '__return_true',
    51         ) );
     47        register_rest_route( $this->namespace . '/' . $this->version_2, '/refresh-staging-sites-list', array(
     48            'methods'             => 'POST',
     49            'callback'            => array( $this, 'refresh_staging_sites_list' ),
     50            'permission_callback' => '__return_true',
     51        ) );
    5252
    5353        register_rest_route( $this->namespace . '/' . $this->version_2, '/disconnect', array(
     
    6969        ) );
    7070
    71         register_rest_route( $this->namespace . '/' . $this->version_2, '/temporary-login', array(
    72             array(
    73                 'methods'             => 'POST',
    74                 'callback'            => array( $this, 'temporary_login' ),
    75                 'args'                => array(
    76                     'i' => array(
    77                         'required'          => true,
    78                         'validate_callback' => function( $param, $request, $key ) {
    79                             return is_numeric( $param );
    80                         },
    81                     ),
    82                     'e' => array(
    83                         'required'          => true,
    84                         'validate_callback' => function( $param, $request, $key ) {
    85                             return strtotime( $param ) !== false;
    86                         },
    87                     ),
    88                     'r' => array(
    89                         'default'           => 1,
    90                         'validate_callback' => function( $param, $request, $key ) {
    91                             return is_numeric( $param );
    92                         },
    93                     ),
    94                 ),
    95                 'permission_callback' => '__return_true',
    96             ),
    97             array(
    98                 'methods'             => 'DELETE',
    99                 'callback'            => array( $this, 'delete_temporary_login' ),
    100                 'permission_callback' => '__return_true',
    101             ),
    102         ) );
     71        register_rest_route( $this->namespace . '/' . $this->version_2, '/temporary-login', array(
     72            array(
     73                'methods'             => 'POST',
     74                'callback'            => array( $this, 'temporary_login' ),
     75                'args'                => array(
     76                    'i' => array(
     77                        'required'          => true,
     78                        'validate_callback' => function ( $param, $request, $key ) {
     79                            return is_numeric( $param );
     80                        },
     81                    ),
     82                    'e' => array(
     83                        'required'          => true,
     84                        'validate_callback' => function ( $param, $request, $key ) {
     85                            return strtotime( $param ) !== false;
     86                        },
     87                    ),
     88                    'r' => array(
     89                        'default'           => 1,
     90                        'validate_callback' => function ( $param, $request, $key ) {
     91                            return is_numeric( $param );
     92                        },
     93                    ),
     94                ),
     95                'permission_callback' => '__return_true',
     96            ),
     97            array(
     98                'methods'             => 'DELETE',
     99                'callback'            => array( $this, 'delete_temporary_login' ),
     100                'permission_callback' => '__return_true',
     101            ),
     102        ) );
    103103
    104104        register_rest_route( $this->namespace . '/' . $this->version_2, '/heartbeat', array(
     
    114114        ) );
    115115
    116         register_rest_route( $this->namespace . '/' . $this->version_3, '/create-update-task', array(
    117             'methods'             => 'POST',
    118             'callback'            => array( $this, 'create_update_task' ),
    119             'args'                => array(
    120                 'items' => array(
    121                     'required'          => true,
    122                     'validate_callback' => function( $param, $request, $key ) {
    123                         return is_array( $param );
    124                     },
    125                 ),
    126             ),
    127             'permission_callback' => '__return_true',
    128         ) );
     116        register_rest_route( $this->namespace . '/' . $this->version_3, '/create-update-task', array(
     117            'methods'             => 'POST',
     118            'callback'            => array( $this, 'create_update_task' ),
     119            'args'                => array(
     120                'items' => array(
     121                    'required'          => true,
     122                    'validate_callback' => function ( $param, $request, $key ) {
     123                        return is_array( $param );
     124                    },
     125                ),
     126            ),
     127            'permission_callback' => '__return_true',
     128        ) );
    129129    }
    130130
     
    229229            $allowed_domains = array(
    230230                'https://stage.instawp.io',
    231                 'https://dev.instawp.io', 
     231                'https://dev.instawp.io',
    232232                'https://app.instawp.io',
    233233            );
    234234
    235             $domain_to_set = defined( 'INSTAWP_API_DOMAIN' ) 
     235            $domain_to_set = defined( 'INSTAWP_API_DOMAIN' )
    236236                ? INSTAWP_API_DOMAIN
    237237                : ( in_array( $api_domain, $allowed_domains ) ? $api_domain : '' );
    238                
     238
    239239            if ( empty( $domain_to_set ) ) {
    240240                return $this->send_response( array(
     
    243243                ) );
    244244            }
    245            
     245
    246246            Helper::set_api_domain( $domain_to_set );
    247247        }
     
    352352    }
    353353
    354     /**
    355     * Refresh staging site list.
    356     *
    357     * @param WP_REST_Request $request
    358     *
    359     * @return WP_Error|WP_HTTP_Response|WP_REST_Response
    360     */
    361     public function refresh_staging_sites_list( WP_REST_Request $request ) {
    362         $response = $this->validate_api_request( $request );
    363         if ( is_wp_error( $response ) ) {
    364             return $this->throw_error( $response );
    365         }
    366 
    367         instawp_set_staging_sites_list();
    368 
    369         return $this->send_response( array(
    370             'status'  => true,
    371             'message' => __( 'Staging Site List Refreshed.', 'instawp-connect' ),
    372         ) );
    373     }
     354    /**
     355    * Refresh staging site list.
     356    *
     357    * @param WP_REST_Request $request
     358    *
     359    * @return WP_Error|WP_HTTP_Response|WP_REST_Response
     360    */
     361    public function refresh_staging_sites_list( WP_REST_Request $request ) {
     362        $response = $this->validate_api_request( $request );
     363        if ( is_wp_error( $response ) ) {
     364            return $this->throw_error( $response );
     365        }
     366
     367        instawp_set_staging_sites_list();
     368
     369        return $this->send_response( array(
     370            'status'  => true,
     371            'message' => __( 'Staging Site List Refreshed.', 'instawp-connect' ),
     372        ) );
     373    }
    374374
    375375    /**
     
    405405        }
    406406
    407         $param_user     = $request->get_param( 's' );
    408         $redirect       = $request->get_param( 'redir' );
     407        $param_user = $request->get_param( 's' );
     408        $redirect   = $request->get_param( 'redir' );
     409
     410        error_log( 'received payload. s: ' . $param_user );
     411        error_log( 'received payload. redir: ' . $redirect );
     412
    409413        $login_userinfo = instawp_get_user_to_login( base64_decode( $param_user ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
    410414
     
    425429            $args['redir'] = rawurlencode( $redirect );
    426430        }
    427         $auto_login_url    = add_query_arg( $args, Helper::wp_site_url() );
     431        $auto_login_url = add_query_arg( $args, Helper::wp_site_url() );
    428432
    429433        Option::update_option( 'instawp_login_code', array(
     
    460464
    461465        return $this->send_response( array(
    462             'success' => true,
    463             'message' => $setting ? __( 'Activity log is enabled.', 'instawp-connect' ) : __( 'Activity log is disabled.', 'instawp-connect' ),
    464         ) );
    465     }
    466 
    467     /**
    468     * Temporary Auto login url generate
    469     * */
    470     public function temporary_login( WP_REST_Request $request ) {
    471 
    472         $response = $this->validate_api_request( $request );
    473         if ( is_wp_error( $response ) ) {
    474             return $this->throw_error( $response );
    475         }
    476 
    477         $param_user_id = $request->get_param( 'i' );
    478         $param_expiry  = $request->get_param( 'e' );
    479         $param_reuse   = $request->get_param( 'r' );
    480 
    481         $user_to_login = get_userdata( $param_user_id );
    482         if ( ! $user_to_login instanceof \WP_User ) {
    483             return $this->send_response( array(
    484                 'success' => false,
    485                 'message' => esc_html__( 'No login information found.', 'instawp-connect' ),
    486             ) );
    487         }
    488 
    489         $token       = Helper::get_random_string( 120 );
    490         $expiry_time = get_date_from_gmt( $param_expiry, 'U' );
    491 
    492         $user_metas = array(
    493             '_instawp_temporary_login'            => 'yes',
    494             '_instawp_temporary_login_token'      => $token,
    495             '_instawp_temporary_login_expiration' => $expiry_time,
    496             '_instawp_temporary_login_attempt'    => $param_reuse,
    497         );
    498 
    499         foreach ( $user_metas as $meta_key => $meta_value ) {
    500             update_user_meta( $user_to_login->ID, $meta_key, $meta_value );
    501         }
    502 
    503         $login_url = add_query_arg( array(
    504             'iwp-temp-login' => $token,
    505         ), Helper::wp_site_url() );
    506 
    507         return $this->send_response( array(
    508             'success'   => true,
    509             'login_url' => $login_url,
    510         ) );
    511     }
    512 
    513     /**
    514     * Temporary Auto login url delete all
    515     * */
    516     public function delete_temporary_login( WP_REST_Request $request ) {
    517 
    518         $response = $this->validate_api_request( $request );
    519         if ( is_wp_error( $response ) ) {
    520             return $this->throw_error( $response );
    521         }
    522 
    523         $param_user_id = $request->get_param( 'i' );
    524         if ( ! empty( $param_user_id ) ) {
    525             $user_ids = array( $param_user_id );
    526         } else {
    527             $user_ids = get_users( array(
    528                 'meta_key'   => '_instawp_temporary_login',
    529                 'meta_value' => 'yes',
    530                 'fields'     => 'ID',
    531             ) );
    532         }
    533 
    534         if ( ! empty( $user_ids ) ) {
    535             foreach ( $user_ids as $user_id ) {
    536                 delete_user_meta( $user_id, '_instawp_temporary_login' );
    537                 delete_user_meta( $user_id, '_instawp_temporary_login_token' );
    538                 delete_user_meta( $user_id, '_instawp_temporary_login_expiration' );
    539                 delete_user_meta( $user_id, '_instawp_temporary_login_attempt' );
    540             }
    541         }
    542 
    543         return $this->send_response( array(
    544             'success' => true,
    545             'message' => __( 'All Temporary logins are removed.', 'instawp-connect' ),
    546         ) );
    547     }
     466            'success' => true,
     467            'message' => $setting ? __( 'Activity log is enabled.', 'instawp-connect' ) : __( 'Activity log is disabled.', 'instawp-connect' ),
     468        ) );
     469    }
     470
     471    /**
     472    * Temporary Auto login url generate
     473    * */
     474    public function temporary_login( WP_REST_Request $request ) {
     475
     476        $response = $this->validate_api_request( $request );
     477        if ( is_wp_error( $response ) ) {
     478            return $this->throw_error( $response );
     479        }
     480
     481        $param_user_id = $request->get_param( 'i' );
     482        $param_expiry  = $request->get_param( 'e' );
     483        $param_reuse   = $request->get_param( 'r' );
     484
     485        $user_to_login = get_userdata( $param_user_id );
     486        if ( ! $user_to_login instanceof \WP_User ) {
     487            return $this->send_response( array(
     488                'success' => false,
     489                'message' => esc_html__( 'No login information found.', 'instawp-connect' ),
     490            ) );
     491        }
     492
     493        $token       = Helper::get_random_string( 120 );
     494        $expiry_time = get_date_from_gmt( $param_expiry, 'U' );
     495
     496        $user_metas = array(
     497            '_instawp_temporary_login'            => 'yes',
     498            '_instawp_temporary_login_token'      => $token,
     499            '_instawp_temporary_login_expiration' => $expiry_time,
     500            '_instawp_temporary_login_attempt'    => $param_reuse,
     501        );
     502
     503        foreach ( $user_metas as $meta_key => $meta_value ) {
     504            update_user_meta( $user_to_login->ID, $meta_key, $meta_value );
     505        }
     506
     507        $login_url = add_query_arg( array(
     508            'iwp-temp-login' => $token,
     509        ), Helper::wp_site_url() );
     510
     511        return $this->send_response( array(
     512            'success'   => true,
     513            'login_url' => $login_url,
     514        ) );
     515    }
     516
     517    /**
     518    * Temporary Auto login url delete all
     519    * */
     520    public function delete_temporary_login( WP_REST_Request $request ) {
     521
     522        $response = $this->validate_api_request( $request );
     523        if ( is_wp_error( $response ) ) {
     524            return $this->throw_error( $response );
     525        }
     526
     527        $param_user_id = $request->get_param( 'i' );
     528        if ( ! empty( $param_user_id ) ) {
     529            $user_ids = array( $param_user_id );
     530        } else {
     531            $user_ids = get_users( array(
     532                'meta_key'   => '_instawp_temporary_login',
     533                'meta_value' => 'yes',
     534                'fields'     => 'ID',
     535            ) );
     536        }
     537
     538        if ( ! empty( $user_ids ) ) {
     539            foreach ( $user_ids as $user_id ) {
     540                delete_user_meta( $user_id, '_instawp_temporary_login' );
     541                delete_user_meta( $user_id, '_instawp_temporary_login_token' );
     542                delete_user_meta( $user_id, '_instawp_temporary_login_expiration' );
     543                delete_user_meta( $user_id, '_instawp_temporary_login_attempt' );
     544            }
     545        }
     546
     547        return $this->send_response( array(
     548            'success' => true,
     549            'message' => __( 'All Temporary logins are removed.', 'instawp-connect' ),
     550        ) );
     551    }
    548552
    549553    /**
     
    585589    }
    586590
    587     /**
    588     * Handle create update task api
    589     *
    590     * @param WP_REST_Request $request
    591     *
    592     * @return WP_REST_Response
    593     */
    594     public function create_update_task( WP_REST_Request $request ) {
    595         $response = $this->validate_api_request( $request );
    596         if ( is_wp_error( $response ) ) {
    597             return $this->throw_error( $response );
    598         }
    599 
    600         $parameters = $this->filter_params( $request );
    601         $items      = ! empty( $parameters['items'] ) ? array_map( 'sanitize_text_field', $parameters['items'] ) : array();
    602 
    603         if ( empty( $items ) ) {
    604             return $this->send_response( array(
    605                 'success' => false,
    606                 'message' => __( 'No items found', 'instawp-connect' ),
    607             ) );
    608         }
    609 
    610         as_unschedule_all_actions( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
    611         as_enqueue_async_action( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
    612 
    613         return $this->send_response( array(
    614             'success' => true,
    615             'message' => __( 'Update task create successfully', 'instawp-connect' ),
    616         ) );
    617     }
     591    /**
     592    * Handle create update task api
     593    *
     594    * @param WP_REST_Request $request
     595    *
     596    * @return WP_REST_Response
     597    */
     598    public function create_update_task( WP_REST_Request $request ) {
     599        $response = $this->validate_api_request( $request );
     600        if ( is_wp_error( $response ) ) {
     601            return $this->throw_error( $response );
     602        }
     603
     604        $parameters = $this->filter_params( $request );
     605        $items      = ! empty( $parameters['items'] ) ? array_map( 'sanitize_text_field', $parameters['items'] ) : array();
     606
     607        if ( empty( $items ) ) {
     608            return $this->send_response( array(
     609                'success' => false,
     610                'message' => __( 'No items found', 'instawp-connect' ),
     611            ) );
     612        }
     613
     614        as_unschedule_all_actions( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
     615        as_enqueue_async_action( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
     616
     617        return $this->send_response( array(
     618            'success' => true,
     619            'message' => __( 'Update task create successfully', 'instawp-connect' ),
     620        ) );
     621    }
    618622
    619623    /**
     
    634638    }
    635639
    636     /**
    637      * Bypass BuddyBoss endpoints blocking
    638      */
    639     public function endpoints_from_restriction_callback( $default_exclude_endpoint, $current_endpoint ) {
    640         if ( strpos( $current_endpoint, 'instawp-connect' ) !== false ) {
    641             $default_exclude_endpoint[] = $current_endpoint;
    642         }
    643         return $default_exclude_endpoint;
    644     }
     640    /**
     641     * Bypass BuddyBoss endpoints blocking
     642     */
     643    public function endpoints_from_restriction_callback( $default_exclude_endpoint, $current_endpoint ) {
     644        if ( strpos( $current_endpoint, 'instawp-connect' ) !== false ) {
     645            $default_exclude_endpoint[] = $current_endpoint;
     646        }
     647
     648        return $default_exclude_endpoint;
     649    }
    645650
    646651    /**
     
    655660    /**
    656661     * Get bearer token from header
    657      * 
    658      * @param WP_REST_Request $request
    659      * 
     662     *
     663     * @param WP_REST_Request $request
     664     *
    660665     * @return string|WP_Error
    661666     */
     
    663668        // get authorization header value.
    664669        $bearer_token = sanitize_text_field( $request->get_header( 'authorization' ) );
    665         if ( ! empty( $bearer_token ) ) {
    666             $bearer_token = str_ireplace( 'bearer', '', $bearer_token );
    667         } else {
    668             $bearer_token = sanitize_text_field( $request->get_header( 'x_iwp_auth' ) );
    669         }
    670         $bearer_token = trim( $bearer_token );
     670        if ( ! empty( $bearer_token ) ) {
     671            $bearer_token = str_ireplace( 'bearer', '', $bearer_token );
     672        } else {
     673            $bearer_token = sanitize_text_field( $request->get_header( 'x_iwp_auth' ) );
     674        }
     675        $bearer_token = trim( $bearer_token );
    671676
    672677        // check if the bearer token is empty
     
    688693     */
    689694    public function validate_api_request( WP_REST_Request $request, $option = '', $match_key = false ) {
    690        
     695
    691696        // get bearer token.
    692697        $bearer_token = $this->get_bearer_token( $request );
     
    703708
    704709        if ( count( $api_key_exploded ) > 1 ) {
    705             $api_key = $api_key_exploded[1];
    706         }
    707 
    708         if ( empty( $api_key ) ) {
    709             return new WP_Error( 403, esc_html__( 'Empty api key.', 'instawp-connect' ) );
    710         }
    711 
    712         $is_matched = false;
    713 
    714         // match the api key with bearer token
    715         if ( $match_key && hash_equals( $api_key, $bearer_token ) ) {
    716             $is_matched = true;
    717         }
    718 
    719         if ( ! $is_matched ) {
    720             $api_key_hash = hash( 'sha256', $api_key );
    721 
    722             // match the api key hash with bearer token
    723             if ( ! hash_equals( $api_key_hash, $bearer_token ) ) {
    724                 return new WP_Error( 403, esc_html__( 'Invalid bearer token.', 'instawp-connect' ) );
    725             }
    726         }
     710            $api_key = $api_key_exploded[1];
     711        }
     712
     713        if ( empty( $api_key ) ) {
     714            return new WP_Error( 403, esc_html__( 'Empty api key.', 'instawp-connect' ) );
     715        }
     716
     717        $is_matched = false;
     718
     719        // match the api key with bearer token
     720        if ( $match_key && hash_equals( $api_key, $bearer_token ) ) {
     721            $is_matched = true;
     722        }
     723
     724        if ( ! $is_matched ) {
     725            $api_key_hash = hash( 'sha256', $api_key );
     726
     727            // match the api key hash with bearer token
     728            if ( ! hash_equals( $api_key_hash, $bearer_token ) ) {
     729                return new WP_Error( 403, esc_html__( 'Invalid bearer token.', 'instawp-connect' ) );
     730            }
     731        }
    727732
    728733        if ( ! empty( $option ) && ! $this->is_enabled( $option ) ) {
  • instawp-connect/tags/0.1.0.83/includes/class-instawp-hooks.php

    r3239817 r3252174  
    8080                $diff                = $today_date->diff( $plan_activated_date );
    8181                $remaining_days      = $current_plan['trial'] - $diff->days;
    82                
     82
    8383                if ( $remaining_days <= 0 ) {
    8484                    $api_response = Curl::do_curl( "connects/{$connect_id}/delete", array(), array(), 'DELETE' );
     
    128128            $api_key        = Helper::get_api_key();
    129129            $access_token   = isset( $_REQUEST['access_token'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) : '';
    130             $jwt            = isset( $_REQUEST['jwt'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['jwt'] ) ) : '';
     130            $jwt            = isset( $_REQUEST['jwt'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['jwt'] ) ) : '';
    131131            $success_status = isset( $_REQUEST['success'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['success'] ) ) : '';
    132132            $instawp_nonce  = isset( $_REQUEST['instawp-nonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['instawp-nonce'] ) ) : '';
     
    235235                );
    236236            }
     237
     238            $migration_details = Option::get_option( 'instawp_migration_details' );
     239            $migration_status  = InstaWP_Setting::get_args_option( 'status', $migration_details );
     240            $is_end_to_end     = (bool) InstaWP_Setting::get_args_option( 'is_end_to_end', $migration_details );
     241
     242            if ( $migration_status === 'initiated' && $is_end_to_end ) {
     243
     244                $e2e_tracking_url = InstaWP_Setting::get_args_option( 'e2e_tracking_url', $migration_details );
     245                $e2e_tracking_url = empty( $e2e_tracking_url ) ? '#' : $e2e_tracking_url;
     246
     247                $admin_bar->add_node(
     248                    array(
     249                        'id'     => 'instawp_mig_in_progress',
     250                        'title'  => __( 'Migration in Progress', 'instawp-connect' ),
     251                        'href'   => $e2e_tracking_url,
     252                        'meta'   => array(
     253                            'class' => 'instawp-mig-in-progress',
     254                        ),
     255                        'parent' => 'top-secondary',
     256                    )
     257                );
     258
     259                add_action( 'admin_footer', array( $this, 'deactivation_warning_modal' ) );
     260            }
     261        }
     262
     263        public function deactivation_warning_modal() {
     264            ?>
     265            <div id="deactivate-modal" class="deactivate-modal">
     266                <div class="deactivate-modal-content">
     267                    <h3><?php esc_html_e( 'Are you sure?', 'instawp-connect' ); ?></h3>
     268                    <p><?php esc_html_e( 'An active migration is in progress. Deactivating the plugin will stop the migration. Do you want to proceed?', 'instawp-connect' ); ?></p>
     269                    <div class="deactivate-modal-actions">
     270                        <button id="confirm-deactivate" class="deactivate-modal-confirm"><?php esc_html_e( 'Yes, Deactivate', 'instawp-connect' ); ?></button>
     271                        <button id="cancel-deactivate" class="deactivate-modal-cancel"><?php esc_html_e( 'No, Continue Migration', 'instawp-connect' ); ?></button>
     272                    </div>
     273                </div>
     274            </div>
     275            <?php
    237276        }
    238277
  • instawp-connect/tags/0.1.0.83/includes/class-instawp-tools.php

    r3245569 r3252174  
    13171317
    13181318    public static function get_localize_data() {
    1319         return array(
     1319
     1320        global $current_screen;
     1321
     1322        $localize_data = array(
    13201323            'ajax_url' => admin_url( 'admin-ajax.php' ),
    13211324            'trans'    => array(
     
    13281331            'security' => wp_create_nonce( 'instawp-connect' ),
    13291332        );
     1333
     1334        if ( $current_screen->base === 'plugins' ) {
     1335            $migration_details = Option::get_option( 'instawp_migration_details' );
     1336            $migration_status  = InstaWP_Setting::get_args_option( 'status', $migration_details );
     1337            $is_end_to_end     = (bool) InstaWP_Setting::get_args_option( 'is_end_to_end', $migration_details );
     1338
     1339            if ( $migration_status === 'initiated' && $is_end_to_end ) {
     1340                $localize_data['mig_in_progress'] = 'yes';
     1341            }
     1342        }
     1343
     1344        return apply_filters( 'instawp/filters/localize_data', $localize_data );
    13301345    }
    13311346
  • instawp-connect/tags/0.1.0.83/includes/functions.php

    r3239817 r3252174  
    102102
    103103        foreach ( $tables as $table ) {
    104             $wpdb->query("TRUNCATE TABLE {$table}");
     104            $wpdb->query( "TRUNCATE TABLE {$table}" );
    105105        }
    106106    }
     
    229229                instawp_destroy_connect();
    230230            }
    231            
     231
    232232            delete_option( 'instawp_backup_part_size' );
    233233            delete_option( 'instawp_max_file_size_allowed' );
     
    246246            delete_option( 'instawp_last_heartbeat_sent' );
    247247            delete_option( 'instawp_is_staging' );
    248             delete_option( 'instawp_staging_sites' );
    249             delete_option( 'instawp_is_event_syncing' );
     248            delete_option( 'instawp_staging_sites' );
     249            delete_option( 'instawp_is_event_syncing' );
    250250
    251251            delete_transient( 'instawp_migration_completed' );
     
    369369        }
    370370
    371         $connect_id = instawp_get_connect_id();
    372         if ( empty( $connect_id ) ) {
    373             return false;
    374         }
     371        $connect_id = instawp_get_connect_id();
     372        if ( empty( $connect_id ) ) {
     373            return false;
     374        }
    375375
    376376        $api_response = Curl::do_curl( 'connects/' . $connect_id . '/staging-sites', array(), array(), 'GET' );
     
    391391            Option::update_option( 'instawp_staging_sites', $staging_sites );
    392392
    393             return true;
    394         }
    395 
    396         return false;
     393            return true;
     394        }
     395
     396        return false;
    397397    }
    398398}
     
    400400/**
    401401 * Get Migration headers
    402  * 
     402 *
    403403 * @param string $hash
    404  * 
     404 *
    405405 * @return array
    406406 */
     
    785785            $user_to_login = get_user_by( 'login', $username );
    786786            $message       = esc_html__( 'Login information for the given username', 'instawp-connect' );
     787        } elseif ( is_email( $username ) ) {
     788            $user_to_login = get_user_by( 'email', $username );
     789            $message       = esc_html__( 'Login information could not found with username, but found with the given email address.', 'instawp-connect' );
    787790        } elseif ( ! empty( $default_username = Option::get_option( 'instawp_default_username' ) ) && ! empty( $default_username ) ) {
    788791            $user_to_login = get_user_by( 'login', $default_username );
    789             $message       = esc_html__( 'Login information for the given username didn\'t found, You are going to login with default login username.', 'instawp-connect' );
     792            $message       = esc_html__( 'Login information for the given username/email didn\'t found, You are going to login with default login username.', 'instawp-connect' );
    790793        } else {
    791794            $admin_users   = get_users( array( 'role' => 'administrator' ) );
    792795            $user_to_login = is_array( $admin_users ) && isset( $admin_users[0] ) ? $admin_users[0] : false;
    793             $message       = esc_html__( 'No login found with given username and default username, You are going to login with first admin user.', 'instawp-connect' );
     796            $message       = esc_html__( 'No login found with given username/email and default username, You are going to login with first admin user.', 'instawp-connect' );
    794797        }
    795798
     
    806809
    807810if ( ! function_exists( 'instawp_get_user_by_token' ) ) {
    808     /**
    809     * @param $token
    810     *
    811     * @return \WP_User|null
    812     */
    813     function instawp_get_user_by_token( $token ) {
    814         $users = get_users( array(
    815             'meta_key'   => '_instawp_temporary_login_token',
    816             'meta_value' => $token,
    817         ) );
    818 
    819         if ( empty( $users ) ) {
    820             return null;
    821         }
    822 
    823         return $users[0];
    824     }
     811    /**
     812    * @param $token
     813    *
     814    * @return \WP_User|null
     815    */
     816    function instawp_get_user_by_token( $token ) {
     817        $users = get_users( array(
     818            'meta_key'   => '_instawp_temporary_login_token',
     819            'meta_value' => $token,
     820        ) );
     821
     822        if ( empty( $users ) ) {
     823            return null;
     824        }
     825
     826        return $users[0];
     827    }
    825828}
    826829
    827830if ( ! function_exists( 'instawp_is_user_login_expired' ) ) {
    828     function instawp_is_user_login_expired( $user_id ) {
    829         $expiration = get_user_meta( $user_id, '_instawp_temporary_login_expiration', true );
    830 
    831         if ( empty( $expiration ) ) {
    832             return true;
    833         }
    834 
    835         return time() > $expiration;
    836     }
     831    function instawp_is_user_login_expired( $user_id ) {
     832        $expiration = get_user_meta( $user_id, '_instawp_temporary_login_expiration', true );
     833
     834        if ( empty( $expiration ) ) {
     835            return true;
     836        }
     837
     838        return time() > $expiration;
     839    }
    837840}
    838841
    839842if ( ! function_exists( 'instawp_is_user_attempt_expired' ) ) {
    840     function instawp_is_user_attempt_expired( $user_id ) {
    841         $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
    842 
    843         if ( empty( $attempt ) ) {
    844             return true;
    845         }
    846 
    847         return $attempt <= 0;
    848     }
     843    function instawp_is_user_attempt_expired( $user_id ) {
     844        $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
     845
     846        if ( empty( $attempt ) ) {
     847            return true;
     848        }
     849
     850        return $attempt <= 0;
     851    }
    849852}
    850853
    851854if ( ! function_exists( 'instawp_reduce_login_attempt' ) ) {
    852     function instawp_reduce_login_attempt( $user_id ) {
    853         $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
    854 
    855         if ( empty( $attempt ) ) {
    856             return false;
    857         }
    858 
    859         --$attempt;
    860 
    861         return update_user_meta( $user_id, '_instawp_temporary_login_attempt', $attempt );
    862     }
     855    function instawp_reduce_login_attempt( $user_id ) {
     856        $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
     857
     858        if ( empty( $attempt ) ) {
     859            return false;
     860        }
     861
     862        -- $attempt;
     863
     864        return update_user_meta( $user_id, '_instawp_temporary_login_attempt', $attempt );
     865    }
    863866}
    864867
    865868if ( ! function_exists( 'instawp_is_bot_request' ) ) {
    866     function instawp_is_bot_request() {
    867         $user_agent      = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
    868         $referer         = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
    869         $bot_user_agents = array(
    870             'googlebot',
    871             'bingbot',
    872             'slurp',
    873             'duckduckbot',
    874             'baiduspider',
    875             'yandexbot',
    876             'sogou',
    877             'exabot',
    878             'facebot',
    879             'ia_archiver',
    880             'mediapartners-google',
    881             'adsbot-google',
    882             'feedfetcher-google',
    883             'google-read-aloud',
    884             'google-structured-data-testing-tool',
    885             'googlebot-image',
    886             'googlebot-news',
    887             'googlebot-video',
    888             'bingpreview',
    889             'msnbot',
    890             'aolbuild',
    891             'ask jeeves',
    892             'fast-webcrawler',
    893             'gigablast',
    894             'infoseek',
    895             'inktomi',
    896             'looksmart',
    897             'lycos',
    898             'bingbot',
    899             'msnbot',
    900             'bingpreview',
    901             'facebookexternalhit',
    902             'linkedinbot',
    903             'twitterbot',
    904             'applebot',
    905             'petalbot',
    906             'mj12bot',
    907             'ahrefsbot',
    908             'semrushbot',
    909             'dotbot',
    910             'zoominfobot',
    911             'yandeximages',
    912             'yandexvideo',
    913             'yandeximages',
    914             'yandexmedia',
    915             'yandexblogs',
    916             'yandexfavicons',
    917             'yandexdirect',
    918             'yandexsearchshop',
    919             'yandexmetrika',
    920             'yandexnews',
    921             'yandexbrowser',
    922             'yandexmobile',
    923             'yandexreplay',
    924             'baidu',
    925             'baiduspider',
    926             'baiduimagespider',
    927             'baidunews',
    928             'baiduvideo',
    929             'baidutranscoder',
    930             'baidufed',
    931             'baidulocal',
    932             'baidumap',
    933             'baidutop',
    934             'baidumobile',
    935             'baiduapimonitor',
    936             'baidu-wapspider',
    937             'baidumoniitor',
    938             'sogou spider',
    939             'sogou inst spider',
    940             'sogou spider2',
    941             'sogou mobile spider',
    942             'sogou news spider',
    943             'sogou video spider',
    944             'exabot',
    945             'seznam',
    946             'seznambot',
    947             'seznam zbozi',
    948             'seznam-ppc-cz',
    949             'seznam-social',
    950             'seznam-tout',
    951             'seznam-dispute',
    952             'seznam-kr',
    953             'seznam-nachricht',
    954             'mojeekbot',
    955             'mojeek',
    956             'teoma',
    957             'gigabot',
    958             'gigabotfast',
    959             'gigabotvideo',
    960             'gigabotimage',
    961             'ia_archiver',
    962             'dotbot',
    963             'MJ12bot',
    964             'ahrefsbot',
    965             'semrushbot',
    966             'zoominfobot',
    967             'spinn3r',
    968             'aboundexbot',
    969             'curious george',
    970             'sitelock spider',
    971             'blexbot',
    972             'wotbox',
    973             'rogerbot',
    974             'embedly',
    975             'linkfluence',
    976             'backlink-crawler',
    977             'twitterbot',
    978             'redditbot',
    979             'pinterestbot',
    980             'slackbot',
    981             'whatsapp',
    982             'flipboard',
    983             'tumblr',
    984             'vkshare',
    985             'okhttp',
    986             'discordbot',
    987             'skypeuripreview',
    988             'telegrambot',
    989             'applebot',
    990             'scrapy',
    991             'phpscraper',
    992             'python-urllib',
    993             'lxml',
    994             'pycurl',
    995             'httpclient',
    996             'okhttp',
    997             'httpful',
    998             'guzzle',
    999             'httpclient',
    1000             'postman',
    1001             'curl',
    1002             'wget',
    1003             'python-requests',
    1004             'python-urllib',
    1005             'java',
    1006             'go-http-client',
    1007             'okhttp',
    1008             'perl',
    1009             'libwww-perl',
    1010             'mechanize',
    1011             'node-fetch',
    1012             'axios',
    1013             'httpie',
    1014             'requests',
    1015             'botify',
    1016             'deepcrawl',
    1017             'screaming frog',
    1018             'onpage.org',
    1019             'contentkingapp',
    1020             'ubermetrics',
    1021             'sitebulb',
    1022             'serpstatbot',
    1023             'audisto',
    1024             'seobility',
    1025             'siteanalyzer',
    1026             'seochatbot',
    1027             'linkdex',
    1028             'scrapybot',
    1029             'serpwoo',
    1030             'pythons',
    1031             'awario',
    1032             'monitorbacklinks',
    1033             'digg',
    1034             'bingpreview',
    1035             'aboundexbot',
    1036             'top100bot',
    1037             'topsy',
    1038             'tineye',
    1039             'proximic',
    1040             'gigablast',
    1041             'yacybot',
    1042             'everyone-webcrawler',
    1043             'nutch',
    1044             'commoncrawl',
    1045             'semanticbot',
    1046             'gocrawler',
    1047             'scrapy',
    1048             'scrapybot',
    1049             'curl',
    1050             'wget',
    1051             'python',
    1052             'php',
    1053             'perl',
    1054             'java',
    1055             'go-http-client',
    1056             'rust',
    1057             'dotbot',
    1058             'httpclient',
    1059             'axios',
    1060             'pycurl',
    1061             'okhttp',
    1062             'requests',
    1063             'guzzle',
    1064             'httpie',
    1065             'node-fetch',
    1066             'dart',
    1067             'ahrefsbot',
    1068             'semrushbot',
    1069             'dotbot',
    1070             'mj12bot',
    1071             'petalbot',
    1072             'zoominfobot',
    1073             'spinn3r',
    1074             'curious george',
    1075             'wotbox',
    1076             'blexbot',
    1077             'archive.org',
    1078             'ia_archiver',
    1079             'archive',
    1080             'crawler',
    1081         );
    1082         $known_domains   = array(
    1083             'facebook.com',
    1084             'twitter.com',
    1085             'linkedin.com',
    1086             'whatsapp.com',
    1087             'slack.com',
    1088             'telegram.org',
    1089             'discord.com',
    1090             'pinterest.com',
    1091         );
    1092 
    1093         foreach ( $bot_user_agents as $bot ) {
    1094             if ( stripos( $user_agent, $bot ) !== false ) {
    1095                 return true;
    1096             }
    1097         }
    1098 
    1099         foreach ( $known_domains as $domain ) {
    1100             if ( stripos( $referer, $domain ) !== false ) {
    1101                 return true;
    1102             }
    1103         }
    1104 
    1105         return false;
    1106     }
     869    function instawp_is_bot_request() {
     870        $user_agent      = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
     871        $referer         = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
     872        $bot_user_agents = array(
     873            'googlebot',
     874            'bingbot',
     875            'slurp',
     876            'duckduckbot',
     877            'baiduspider',
     878            'yandexbot',
     879            'sogou',
     880            'exabot',
     881            'facebot',
     882            'ia_archiver',
     883            'mediapartners-google',
     884            'adsbot-google',
     885            'feedfetcher-google',
     886            'google-read-aloud',
     887            'google-structured-data-testing-tool',
     888            'googlebot-image',
     889            'googlebot-news',
     890            'googlebot-video',
     891            'bingpreview',
     892            'msnbot',
     893            'aolbuild',
     894            'ask jeeves',
     895            'fast-webcrawler',
     896            'gigablast',
     897            'infoseek',
     898            'inktomi',
     899            'looksmart',
     900            'lycos',
     901            'bingbot',
     902            'msnbot',
     903            'bingpreview',
     904            'facebookexternalhit',
     905            'linkedinbot',
     906            'twitterbot',
     907            'applebot',
     908            'petalbot',
     909            'mj12bot',
     910            'ahrefsbot',
     911            'semrushbot',
     912            'dotbot',
     913            'zoominfobot',
     914            'yandeximages',
     915            'yandexvideo',
     916            'yandeximages',
     917            'yandexmedia',
     918            'yandexblogs',
     919            'yandexfavicons',
     920            'yandexdirect',
     921            'yandexsearchshop',
     922            'yandexmetrika',
     923            'yandexnews',
     924            'yandexbrowser',
     925            'yandexmobile',
     926            'yandexreplay',
     927            'baidu',
     928            'baiduspider',
     929            'baiduimagespider',
     930            'baidunews',
     931            'baiduvideo',
     932            'baidutranscoder',
     933            'baidufed',
     934            'baidulocal',
     935            'baidumap',
     936            'baidutop',
     937            'baidumobile',
     938            'baiduapimonitor',
     939            'baidu-wapspider',
     940            'baidumoniitor',
     941            'sogou spider',
     942            'sogou inst spider',
     943            'sogou spider2',
     944            'sogou mobile spider',
     945            'sogou news spider',
     946            'sogou video spider',
     947            'exabot',
     948            'seznam',
     949            'seznambot',
     950            'seznam zbozi',
     951            'seznam-ppc-cz',
     952            'seznam-social',
     953            'seznam-tout',
     954            'seznam-dispute',
     955            'seznam-kr',
     956            'seznam-nachricht',
     957            'mojeekbot',
     958            'mojeek',
     959            'teoma',
     960            'gigabot',
     961            'gigabotfast',
     962            'gigabotvideo',
     963            'gigabotimage',
     964            'ia_archiver',
     965            'dotbot',
     966            'MJ12bot',
     967            'ahrefsbot',
     968            'semrushbot',
     969            'zoominfobot',
     970            'spinn3r',
     971            'aboundexbot',
     972            'curious george',
     973            'sitelock spider',
     974            'blexbot',
     975            'wotbox',
     976            'rogerbot',
     977            'embedly',
     978            'linkfluence',
     979            'backlink-crawler',
     980            'twitterbot',
     981            'redditbot',
     982            'pinterestbot',
     983            'slackbot',
     984            'whatsapp',
     985            'flipboard',
     986            'tumblr',
     987            'vkshare',
     988            'okhttp',
     989            'discordbot',
     990            'skypeuripreview',
     991            'telegrambot',
     992            'applebot',
     993            'scrapy',
     994            'phpscraper',
     995            'python-urllib',
     996            'lxml',
     997            'pycurl',
     998            'httpclient',
     999            'okhttp',
     1000            'httpful',
     1001            'guzzle',
     1002            'httpclient',
     1003            'postman',
     1004            'curl',
     1005            'wget',
     1006            'python-requests',
     1007            'python-urllib',
     1008            'java',
     1009            'go-http-client',
     1010            'okhttp',
     1011            'perl',
     1012            'libwww-perl',
     1013            'mechanize',
     1014            'node-fetch',
     1015            'axios',
     1016            'httpie',
     1017            'requests',
     1018            'botify',
     1019            'deepcrawl',
     1020            'screaming frog',
     1021            'onpage.org',
     1022            'contentkingapp',
     1023            'ubermetrics',
     1024            'sitebulb',
     1025            'serpstatbot',
     1026            'audisto',
     1027            'seobility',
     1028            'siteanalyzer',
     1029            'seochatbot',
     1030            'linkdex',
     1031            'scrapybot',
     1032            'serpwoo',
     1033            'pythons',
     1034            'awario',
     1035            'monitorbacklinks',
     1036            'digg',
     1037            'bingpreview',
     1038            'aboundexbot',
     1039            'top100bot',
     1040            'topsy',
     1041            'tineye',
     1042            'proximic',
     1043            'gigablast',
     1044            'yacybot',
     1045            'everyone-webcrawler',
     1046            'nutch',
     1047            'commoncrawl',
     1048            'semanticbot',
     1049            'gocrawler',
     1050            'scrapy',
     1051            'scrapybot',
     1052            'curl',
     1053            'wget',
     1054            'python',
     1055            'php',
     1056            'perl',
     1057            'java',
     1058            'go-http-client',
     1059            'rust',
     1060            'dotbot',
     1061            'httpclient',
     1062            'axios',
     1063            'pycurl',
     1064            'okhttp',
     1065            'requests',
     1066            'guzzle',
     1067            'httpie',
     1068            'node-fetch',
     1069            'dart',
     1070            'ahrefsbot',
     1071            'semrushbot',
     1072            'dotbot',
     1073            'mj12bot',
     1074            'petalbot',
     1075            'zoominfobot',
     1076            'spinn3r',
     1077            'curious george',
     1078            'wotbox',
     1079            'blexbot',
     1080            'archive.org',
     1081            'ia_archiver',
     1082            'archive',
     1083            'crawler',
     1084        );
     1085        $known_domains   = array(
     1086            'facebook.com',
     1087            'twitter.com',
     1088            'linkedin.com',
     1089            'whatsapp.com',
     1090            'slack.com',
     1091            'telegram.org',
     1092            'discord.com',
     1093            'pinterest.com',
     1094        );
     1095
     1096        foreach ( $bot_user_agents as $bot ) {
     1097            if ( stripos( $user_agent, $bot ) !== false ) {
     1098                return true;
     1099            }
     1100        }
     1101
     1102        foreach ( $known_domains as $domain ) {
     1103            if ( stripos( $referer, $domain ) !== false ) {
     1104                return true;
     1105            }
     1106        }
     1107
     1108        return false;
     1109    }
    11071110}
    11081111
     
    12561259
    12571260if ( ! function_exists( 'instawp_connect_activate_plan' ) ) {
    1258     function instawp_connect_activate_plan( $plan_id ) {
    1259         $connect_id = instawp_get_connect_id();
     1261    function instawp_connect_activate_plan( $plan_id ) {
     1262        $connect_id = instawp_get_connect_id();
    12601263        if ( empty( $connect_id ) ) {
    12611264            return array(
     
    12651268        }
    12661269
    1267         $response = Curl::do_curl( "connects/{$connect_id}/subscribe", array(
    1268             'plan_id' => $plan_id,
    1269         ) );   
    1270 
    1271         if ( empty( $response['success'] ) ) {
    1272             return array(
    1273                 'success' => false,
    1274                 'message' => $response['message'],
    1275             );
    1276         }
     1270        $response = Curl::do_curl( "connects/{$connect_id}/subscribe", array(
     1271            'plan_id' => $plan_id,
     1272        ) );
     1273
     1274        if ( empty( $response['success'] ) ) {
     1275            return array(
     1276                'success' => false,
     1277                'message' => $response['message'],
     1278            );
     1279        }
    12771280
    12781281        Option::update_option( 'instawp_connect_plan_id', $plan_id );
     
    12821285        }
    12831286
    1284         return array(
     1287        return array(
    12851288            'success' => true,
    12861289            'message' => __( 'Plan activated successfully', 'instawp-connect' ),
    12871290        );
    1288     }
     1291    }
    12891292}
    12901293
    12911294
    12921295if ( ! function_exists( 'instawp_destroy_connect' ) ) {
    1293     function instawp_destroy_connect( $mode = 'disconnect' ) {
    1294         $connect_id = instawp_get_connect_id();
    1295         if ( empty( $connect_id ) ) {
    1296             return array(
    1297                 'success' => false,
    1298                 'message' => __( 'Connect ID not found', 'instawp-connect' ),
    1299             );
    1300         }
     1296    function instawp_destroy_connect( $mode = 'disconnect' ) {
     1297        $connect_id = instawp_get_connect_id();
     1298        if ( empty( $connect_id ) ) {
     1299            return array(
     1300                'success' => false,
     1301                'message' => __( 'Connect ID not found', 'instawp-connect' ),
     1302            );
     1303        }
    13011304
    13021305        if ( $mode === 'delete' ) {
     
    13061309        }
    13071310
    1308         if ( empty( $api_response['success'] ) ) {
    1309             return array(
    1310                 'success' => false,
    1311                 'message' => $api_response['message'],
    1312             );
    1313         }
    1314 
    1315         return array(
    1316             'success' => true,
    1317             'message' => __( 'Connect disconnected successfully', 'instawp-connect' ),
    1318         );
    1319     }
     1311        if ( empty( $api_response['success'] ) ) {
     1312            return array(
     1313                'success' => false,
     1314                'message' => $api_response['message'],
     1315            );
     1316        }
     1317
     1318        return array(
     1319            'success' => true,
     1320            'message' => __( 'Connect disconnected successfully', 'instawp-connect' ),
     1321        );
     1322    }
    13201323}
    13211324
    13221325if ( ! function_exists( 'instawp_is_connected_origin_valid' ) ) {
    1323     function instawp_is_connected_origin_valid() {
     1326    function instawp_is_connected_origin_valid() {
    13241327        $connect_origin = Helper::get_connect_origin();
    1325         $current_url    = Helper::wp_site_url();
     1328        $current_url    = Helper::wp_site_url();
    13261329
    13271330        if ( ! empty( $connect_origin ) ) {
    13281331            return hash_equals( $connect_origin, md5( $current_url ) );
    13291332        }
    1330         return true;
    1331     }
    1332 }
     1333
     1334        return true;
     1335    }
     1336}
  • instawp-connect/tags/0.1.0.83/instawp-connect.php

    r3250876 r3252174  
    88 * Plugin Name:       InstaWP Connect
    99 * Description:       1-click WordPress plugin for Staging, Migrations, Management, Sync and Companion plugin for InstaWP.
    10  * Version:           0.1.0.82
     10 * Version:           0.1.0.83
    1111 * Author:            InstaWP Team
    1212 * Author URI:        https://instawp.com/
     
    2828global $wpdb;
    2929
    30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.82' );
     30defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.83' );
    3131defined( 'INSTAWP_API_DOMAIN_PROD' ) || define( 'INSTAWP_API_DOMAIN_PROD', 'https://app.instawp.io' );
    3232
     
    121121    InstaWP_Tools::instawp_reset_permalink();
    122122    Option::delete_option( 'instawp_last_heartbeat_sent' );
     123    Option::delete_option( 'instawp_migration_details' );
    123124
    124125    $connect_id = instawp_get_connect_id();
     
    155156
    156157run_instawp();
    157 
  • instawp-connect/tags/0.1.0.83/migrate/templates/main.php

    r3218292 r3252174  
    2121}
    2222
    23 if ( ! empty( $_GET['debug'] ) && current_user_can( 'manage_options' ) ) {
    24     $file_path = INSTAWP_PLUGIN_DIR . '/migrate/templates/debug/' . sanitize_text_field( wp_unslash( $_GET['debug'] ) ) . '.php';
     23/**
     24 * Jaed and Sayan discussed and made the decision to remove this functionality.
     25 *
     26 * If there is no requirement comes in the future, we will permanently delete this with the associates files.
     27 */
    2528
    26     if ( file_exists( $file_path ) ) {
    27         include $file_path;
    28 
    29         return;
    30     }
    31 }
     29//if ( ! empty( $_GET['debug'] ) && current_user_can( 'manage_options' ) ) {
     30//  $file_path = INSTAWP_PLUGIN_DIR . '/migrate/templates/debug/' . sanitize_file_name( wp_unslash( $_GET['debug'] ) ) . '.php';
     31//
     32//  if ( file_exists( $file_path ) ) {
     33//      include $file_path;
     34//
     35//      return;
     36//  }
     37//}
    3238
    3339$connect_classes = array();
  • instawp-connect/tags/0.1.0.83/readme.txt

    r3250876 r3252174  
    55Tested up to: 6.7
    66Requires PHP: 7.0
    7 Stable tag: 0.1.0.82
     7Stable tag: 0.1.0.83
    88License: GPLv3 or later
    99License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
     
    9999== Changelog ==
    100100
    101 = 0.1.0.82 - 5 March 2025 =
     101= 0.1.0.83 - 07 March 2025 =
     102- NEW: Added plugin deactivation warning while there is a migration in progress.
     103- NEW: Added migration in progress notification on the top admin bar.
     104- FIX: Removed un-used codes.
     105- FIX: Added email support on magic login api.
     106
     107= 0.1.0.82 - 05 March 2025 =
    102108- FIX: Optimized query for fetching sync events.
    103109- FIX: Fixed post migration cleanup for auto migration of demo site.
  • instawp-connect/trunk/assets/css/common.min.css

    r3208404 r3252174  
    1 #wpadminbar li#wp-admin-bar-instawp-template-migrate a,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:active,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:focus,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:visited,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:hover{background:#6b2fad;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px}#wpadminbar li#wp-admin-bar-instawp_staging_site a,#wpadminbar li#wp-admin-bar-instawp_staging_site a:active,#wpadminbar li#wp-admin-bar-instawp_staging_site a:focus,#wpadminbar li#wp-admin-bar-instawp_staging_site a:visited,#wpadminbar li#wp-admin-bar-instawp_staging_site a:hover{background:#ea580c;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:10px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp-go-live a,#wpadminbar li#wp-admin-bar-instawp-go-live a:active,#wpadminbar li#wp-admin-bar-instawp-go-live a:focus,#wpadminbar li#wp-admin-bar-instawp-go-live a:visited,#wpadminbar li#wp-admin-bar-instawp-go-live a:hover{background:#10a372;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading{position:relative;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading:after{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid hsla(0,0%,100%,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px}#wpadminbar li#wp-admin-bar-instawp>a{display:flex;justify-content:center;align-items:center}#wpadminbar li#wp-admin-bar-instawp.recording-on>a:before{content:"󱄱";width:12px;height:12px;background-color:#e91e63;border-radius:50%;animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;box-sizing:border-box}@keyframes blink{50%{opacity:0}}@keyframes loading{0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}/*# sourceMappingURL=common.min.css.map */
     1 #wpadminbar li#wp-admin-bar-instawp-template-migrate a,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:active,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:focus,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:visited,#wpadminbar li#wp-admin-bar-instawp-template-migrate a:hover{background:#6b2fad;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px}#wpadminbar li#wp-admin-bar-instawp_staging_site a,#wpadminbar li#wp-admin-bar-instawp_staging_site a:active,#wpadminbar li#wp-admin-bar-instawp_staging_site a:focus,#wpadminbar li#wp-admin-bar-instawp_staging_site a:visited,#wpadminbar li#wp-admin-bar-instawp_staging_site a:hover{background:#ea580c;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:10px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover{background:#11a472;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:30px;padding-right:10px;cursor:pointer;user-select:none;-webkit-user-drag:none}#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited:before,#wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover:before{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid rgba(255,255,255,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px;padding:0}#wpadminbar li#wp-admin-bar-instawp-go-live a,#wpadminbar li#wp-admin-bar-instawp-go-live a:active,#wpadminbar li#wp-admin-bar-instawp-go-live a:focus,#wpadminbar li#wp-admin-bar-instawp-go-live a:visited,#wpadminbar li#wp-admin-bar-instawp-go-live a:hover{background:#10a372;color:#f1f1f1;outline:none;border:none;box-shadow:none;padding-left:28px;padding-right:28px;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading{position:relative;transition:.3s}#wpadminbar li#wp-admin-bar-instawp-go-live.loading:after{content:" ";position:absolute;height:10px;width:10px;top:50%;left:16px;transform:translate(-50%, -50%);border-radius:50%;border:3px solid rgba(255,255,255,.2);border-right-color:#fff;animation:loading 1s linear infinite;margin:-8px -8px}#wpadminbar li#wp-admin-bar-instawp>a{display:flex;justify-content:center;align-items:center}#wpadminbar li#wp-admin-bar-instawp.recording-on>a:before{content:"󱄱";width:12px;height:12px;background-color:#e91e63;border-radius:50%;animation-name:blink;animation-duration:1s;animation-iteration-count:infinite;box-sizing:border-box}body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:active:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:focus:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:visited:before,body.tools_page_instawp #wpadminbar li#wp-admin-bar-instawp_mig_in_progress a:hover:before{height:16px;width:16px}.deactivate-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background-color:rgba(0,0,0,.6);align-items:center;z-index:999999}.deactivate-modal .deactivate-modal-content{background-color:#fff;border-radius:.5rem;padding:1.5rem;max-width:24rem;width:100%;position:absolute;top:20%;left:50%;transform:translateX(-50%)}.deactivate-modal .deactivate-modal-content h3{font-size:1.125rem;font-weight:600;margin-bottom:1rem}.deactivate-modal .deactivate-modal-content p{font-size:14px;line-height:21px;margin-bottom:1rem}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions{display:flex;justify-content:flex-end;gap:1rem}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions .deactivate-modal-cancel{padding:.5rem 1rem;background-color:#166534;border-radius:.375rem;border:none;cursor:pointer;color:#f1f1f1}.deactivate-modal .deactivate-modal-content .deactivate-modal-actions .deactivate-modal-confirm{padding:.5rem 1rem;background-color:#fee2e2;border-radius:.375rem;border:none;cursor:pointer}@keyframes blink{50%{opacity:0}}@keyframes loading{0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)}}/*# sourceMappingURL=common.min.css.map */
  • instawp-connect/trunk/assets/css/common.min.css.map

    r3208404 r3252174  
    1 {"version":3,"sourceRoot":"","sources":["../src/common.scss"],"names":[],"mappings":"CAMQ,8SAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBAKJ,0RAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAKJ,iQAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eAGJ,oDACI,kBACA,eAEA,0DACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,oCACA,wBACA,qCACA,iBAMR,sCACI,aACA,uBACA,mBAKI,0DACI,aACA,WACA,YACA,yBACA,kBACA,qBACA,sBACA,mCACA,sBAOpB,iBACI,IACI,WAIR,mBACI,GACI,uBAEJ,IACI,yBAEJ,KACI","file":"common.min.css"}
     1{"version":3,"sourceRoot":"","sources":["../src/common.scss"],"names":[],"mappings":"CAMQ,8SAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBAKJ,0RAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAKJ,ySAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eACA,iBACA,uBAEA,4UACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,sCACA,wBACA,qCACA,iBACA,UAMR,iQAKI,mBACA,cACA,aACA,YACA,gBACA,kBACA,mBACA,eAGJ,oDACI,kBACA,eAEA,0DACI,YACA,kBACA,YACA,WACA,QACA,UACA,gCACA,kBACA,sCACA,wBACA,qCACA,iBAMR,sCACI,aACA,uBACA,mBAKI,0DACI,aACA,WACA,YACA,yBACA,kBACA,qBACA,sBACA,mCACA,sBAgBA,ocACI,YACA,WAQxB,kBACI,aACA,eACA,MACA,OACA,WACA,YACA,gCACA,mBACA,eAEA,4CACI,sBACA,oBACA,eACA,gBACA,WACA,kBACA,QACA,SACA,2BAEA,+CACI,mBACA,gBACA,mBAGJ,8CACI,eACA,iBACA,mBAGJ,sEACI,aACA,yBACA,SAEA,+FACI,mBACA,yBACA,sBACA,YACA,eACA,cAGJ,gGACI,mBACA,yBACA,sBACA,YACA,eAMhB,iBACI,IACI,WAIR,mBACI,GACI,uBAEJ,IACI,yBAEJ,KACI","file":"common.min.css"}
  • instawp-connect/trunk/assets/css/tailwind.min.css

    r3239817 r3252174  
    1 /*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-8{top:-2rem}.bottom-3{bottom:.75rem}.end-1{inset-inline-end:.25rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-4{top:1rem}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.float-start{float:inline-start}.float-end{float:inline-end}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-start{clear:inline-start}.clear-end{clear:inline-end}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.\!m-0{margin:0!important}.m-4{margin:1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!mr-1{margin-right:.25rem!important}.\!mr-3{margin-right:.75rem!important}.\!mt-0{margin-top:0!important}.-mb-8{margin-bottom:-2rem}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.box-border{box-sizing:border-box}.box-content{box-sizing:initial}.line-clamp-none{overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-\[300px\]{max-height:300px}.min-h-\[378px\]{min-height:378px}.\!w-80{width:20rem!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-36{min-width:9rem}.min-w-full{min-width:100%}.max-w-\[85\%\]{max-width:85%}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.caption-top{caption-side:top}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:initial}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin-reverse{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}.animate-spin-reverse{animation:spin-reverse 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x:pan-x}.touch-pan-left,.touch-pan-x{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x:pan-left}.touch-pan-right{--tw-pan-x:pan-right}.touch-pan-right,.touch-pan-y{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y:pan-y}.touch-pan-up{--tw-pan-y:pan-up}.touch-pan-down,.touch-pan-up{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y:pan-down}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-proximity{--tw-scroll-snap-strictness:proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-normal{align-content:normal}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-stretch{justify-content:stretch}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.text-ellipsis,.truncate{text-overflow:ellipsis}.text-clip{text-overflow:clip}.hyphens-none{-webkit-hyphens:none;hyphens:none}.hyphens-manual{-webkit-hyphens:manual;hyphens:manual}.hyphens-auto{-webkit-hyphens:auto;hyphens:auto}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-break-spaces{white-space:break-spaces}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-tr-lg{border-top-right-radius:.5rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-y-0{border-top-width:0;border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-blueCust-200{--tw-border-opacity:1;border-color:rgb(107 47 173/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-grayCust-100{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-grayCust-350{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity))}.border-primary-900{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.border-l-orange-400{--tw-border-opacity:1;border-left-color:rgb(251 146 60/var(--tw-border-opacity))}.bg-\[\#005e54\]{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-\[rgb\(255\2c 0\2c 0\)\]{--tw-bg-opacity:1;background-color:rgb(255 0 0/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-blueCust-100{background-color:#6b2fad99}.bg-blueCust-200{--tw-bg-opacity:1;background-color:rgb(107 47 173/var(--tw-bg-opacity))}.bg-blueCust-50{background-color:#6b2fad0d}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-grayCust-250{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-350{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-grayCust-400{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-850{--tw-bg-opacity:1;background-color:rgb(52 53 65/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgb(17 191 133/var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-50,.bg-yellowCust-150{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:initial}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:initial}.bg-origin-content{background-origin:content-box}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-5{padding-left:1.25rem}.pr-0{padding-right:0}.pr-5{padding-right:1.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:initial}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal}.ordinal,.slashed-zero{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero}.lining-nums{--tw-numeric-figure:lining-nums}.lining-nums,.oldstyle-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.tabular-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.stacked-fractions{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.leading-6{line-height:1.5rem}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-\[\#e9950c\]{--tw-text-opacity:1;color:rgb(233 149 12/var(--tw-text-opacity))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-grayCust-150{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.text-grayCust-200{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-grayCust-300{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-grayCust-450{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-grayCust-50{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-grayCust-500{--tw-text-opacity:1;color:rgb(217 63 33/var(--tw-text-opacity))}.text-grayCust-550{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-grayCust-750{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-grayCust-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-grayCust-900{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800,.text-redCust-100{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-yellowCust-200{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.\!shadow,.\!shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content:"this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.forced-color-adjust-auto{forced-color-adjust:auto}.forced-color-adjust-none{forced-color-adjust:none}.instawp-qa-tools .instawp-manager{margin-right:1rem;border-radius:.375rem;padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:#3341551a}.instawp-qa-tools .instawp-manager:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1536px){.sm\:container{max-width:1536px}}}.hover\:rounded-lg:hover{border-radius:.5rem}.hover\:border-primary-700:hover{--tw-border-opacity:1;border-color:rgb(17 191 133/var(--tw-border-opacity))}.hover\:border-primary-900:hover{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-primary-800:hover{--tw-bg-opacity:1;background-color:rgb(11 108 99/var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.hover\:font-bold:hover{font-weight:700}.hover\:text-amber-600:hover{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.hover\:text-orange-900:hover{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-0:hover{outline-width:0}.hover\:ring-0:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.before\:hover\:text-center:hover:before,.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-0:focus{border-width:0}.focus\:border-grayCust-350:focus{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.focus\:border-primary-900:focus{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.focus\:text-amber-600:focus{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.focus\:text-blue-800:focus{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.focus\:text-primary-700:focus{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:outline-0:focus{outline-width:0}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-900:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 94 84/var(--tw-ring-opacity))}.focus\:hover\:text-center:hover:focus,.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.active\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:inline-block{display:inline-block}.group.failed .group-\[\.failed\]\:text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.group.invalid .group-\[\.invalid\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.sent .group-\[\.sent\]\:text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.group.skipped .group-\[\.skipped\]\:text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}@media (min-width:640px){.sm\:mt-px{margin-top:1px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:underline{text-decoration-line:underline}}@media (min-width:768px){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}}@media (min-width:1024px){.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){@media (min-width:1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}.\[\&\.completed1\]\:text-red-500.completed1{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.\[\&\.completed\]\:bg-green-200.completed{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity))}.\[\&\.completed\]\:text-green-900.completed{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity))}.\[\&\.error\]\:bg-red-200.error{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.\[\&\.error\]\:text-red-800.error{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.\[\&\.invalid\]\:bg-yellow-200.invalid{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity))}.\[\&\.invalid\]\:text-yellow-800.invalid{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.\[\&\.pending\]\:bg-sky-200.pending{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.\[\&\.pending\]\:text-sky-800.pending{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}
     1/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.\!static{position:static!important}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-inset-1{inset:-.25rem}.inset-0{inset:0}.-right-2{right:-.5rem}.-top-1{top:-.25rem}.-top-8{top:-2rem}.bottom-3{bottom:.75rem}.end-1{inset-inline-end:.25rem}.left-4{left:1rem}.right-3{right:.75rem}.top-0{top:0}.top-4{top:1rem}.isolate{isolation:isolate}.isolation-auto{isolation:auto}.float-start{float:inline-start}.float-end{float:inline-end}.float-right{float:right}.float-left{float:left}.float-none{float:none}.clear-start{clear:inline-start}.clear-end{clear:inline-end}.clear-left{clear:left}.clear-right{clear:right}.clear-both{clear:both}.clear-none{clear:none}.\!m-0{margin:0!important}.m-4{margin:1rem}.-mx-6{margin-left:-1.5rem;margin-right:-1.5rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-9{margin-left:2.25rem;margin-right:2.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.\!mr-1{margin-right:.25rem!important}.\!mr-3{margin-right:.75rem!important}.\!mt-0{margin-top:0!important}.-mb-8{margin-bottom:-2rem}.-ml-px{margin-left:-1px}.-mt-1{margin-top:-.25rem}.mb-1{margin-bottom:.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-6{margin-right:1.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.box-border{box-sizing:border-box}.box-content{box-sizing:initial}.line-clamp-none{overflow:visible;display:block;-webkit-box-orient:horizontal;-webkit-line-clamp:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.inline-table{display:inline-table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-column{display:table-column}.table-column-group{display:table-column-group}.table-footer-group{display:table-footer-group}.table-header-group{display:table-header-group}.table-row-group{display:table-row-group}.table-row{display:table-row}.flow-root{display:flow-root}.grid{display:grid}.inline-grid{display:inline-grid}.contents{display:contents}.list-item{display:list-item}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.h-1{height:.25rem}.h-10{height:2.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-80{height:20rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-48{max-height:12rem}.max-h-\[300px\]{max-height:300px}.min-h-\[378px\]{min-height:378px}.\!w-80{width:20rem!important}.w-0{width:0}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-2{width:.5rem}.w-2\/3{width:66.666667%}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/5{width:60%}.w-4{width:1rem}.w-44{width:11rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-8{width:2rem}.w-\[140px\]{width:140px}.w-\[this-is\\\\\]{width:this-is\\}.w-\[this-is\]{width:this-is}.w-\[weird-and-invalid\]{width:weird-and-invalid}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.min-w-36{min-width:9rem}.min-w-full{min-width:100%}.max-w-\[85\%\]{max-width:85%}.max-w-sm{max-width:24rem}.flex-shrink{flex-shrink:1}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.flex-grow,.grow{flex-grow:1}.table-auto{table-layout:auto}.table-fixed{table-layout:fixed}.caption-top{caption-side:top}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.border-separate{border-collapse:initial}.\!transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.transform,.transform-cpu{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-gpu{transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform-none{transform:none}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}@keyframes spin-reverse{0%{transform:rotate(1turn)}to{transform:rotate(0deg)}}.animate-spin-reverse{animation:spin-reverse 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-auto{touch-action:auto}.touch-none{touch-action:none}.touch-pan-x{--tw-pan-x:pan-x}.touch-pan-left,.touch-pan-x{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-left{--tw-pan-x:pan-left}.touch-pan-right{--tw-pan-x:pan-right}.touch-pan-right,.touch-pan-y{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-y{--tw-pan-y:pan-y}.touch-pan-up{--tw-pan-y:pan-up}.touch-pan-down,.touch-pan-up{touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-pan-down{--tw-pan-y:pan-down}.touch-pinch-zoom{--tw-pinch-zoom:pinch-zoom;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.select-all{-webkit-user-select:all;-moz-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.resize-none{resize:none}.resize-y{resize:vertical}.resize-x{resize:horizontal}.resize{resize:both}.snap-none{scroll-snap-type:none}.snap-x{scroll-snap-type:x var(--tw-scroll-snap-strictness)}.snap-y{scroll-snap-type:y var(--tw-scroll-snap-strictness)}.snap-both{scroll-snap-type:both var(--tw-scroll-snap-strictness)}.snap-mandatory{--tw-scroll-snap-strictness:mandatory}.snap-proximity{--tw-scroll-snap-strictness:proximity}.snap-start{scroll-snap-align:start}.snap-end{scroll-snap-align:end}.snap-center{scroll-snap-align:center}.snap-align-none{scroll-snap-align:none}.snap-normal{scroll-snap-stop:normal}.snap-always{scroll-snap-stop:always}.list-inside{list-style-position:inside}.list-outside{list-style-position:outside}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.appearance-auto{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.break-before-auto{-moz-column-break-before:auto;break-before:auto}.break-before-avoid{-moz-column-break-before:avoid;break-before:avoid}.break-before-all{-moz-column-break-before:all;break-before:all}.break-before-avoid-page{-moz-column-break-before:avoid;break-before:avoid-page}.break-before-page{-moz-column-break-before:page;break-before:page}.break-before-left{-moz-column-break-before:left;break-before:left}.break-before-right{-moz-column-break-before:right;break-before:right}.break-before-column{-moz-column-break-before:column;break-before:column}.break-inside-auto{-moz-column-break-inside:auto;break-inside:auto}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.break-inside-avoid-page{break-inside:avoid-page}.break-inside-avoid-column{-moz-column-break-inside:avoid;break-inside:avoid-column}.break-after-auto{-moz-column-break-after:auto;break-after:auto}.break-after-avoid{-moz-column-break-after:avoid;break-after:avoid}.break-after-all{-moz-column-break-after:all;break-after:all}.break-after-avoid-page{-moz-column-break-after:avoid;break-after:avoid-page}.break-after-page{-moz-column-break-after:page;break-after:page}.break-after-left{-moz-column-break-after:left;break-after:left}.break-after-right{-moz-column-break-after:right;break-after:right}.break-after-column{-moz-column-break-after:column;break-after:column}.grid-flow-row{grid-auto-flow:row}.grid-flow-col{grid-auto-flow:column}.grid-flow-dense{grid-auto-flow:dense}.grid-flow-row-dense{grid-auto-flow:row dense}.grid-flow-col-dense{grid-auto-flow:column dense}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-row-reverse{flex-direction:row-reverse}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-wrap-reverse{flex-wrap:wrap-reverse}.flex-nowrap{flex-wrap:nowrap}.place-content-center{place-content:center}.place-content-start{place-content:start}.place-content-end{place-content:end}.place-content-between{place-content:space-between}.place-content-around{place-content:space-around}.place-content-evenly{place-content:space-evenly}.place-content-baseline{place-content:baseline}.place-content-stretch{place-content:stretch}.place-items-start{place-items:start}.place-items-end{place-items:end}.place-items-center{place-items:center}.place-items-baseline{place-items:baseline}.place-items-stretch{place-items:stretch}.content-normal{align-content:normal}.content-center{align-content:center}.content-start{align-content:flex-start}.content-end{align-content:flex-end}.content-between{align-content:space-between}.content-around{align-content:space-around}.content-evenly{align-content:space-evenly}.content-baseline{align-content:baseline}.content-stretch{align-content:stretch}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-normal{justify-content:normal}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-stretch{justify-content:stretch}.justify-items-start{justify-items:start}.justify-items-end{justify-items:end}.justify-items-center{justify-items:center}.justify-items-stretch{justify-items:stretch}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.75rem*var(--tw-space-x-reverse));margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(1rem*var(--tw-space-x-reverse));margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-reverse>:not([hidden])~:not([hidden]){--tw-space-y-reverse:1}.space-x-reverse>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-right-width:calc(1px*var(--tw-divide-x-reverse));border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px*var(--tw-divide-y-reverse))}.divide-y-reverse>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:1}.divide-x-reverse>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:1}.divide-solid>:not([hidden])~:not([hidden]){border-style:solid}.divide-dashed>:not([hidden])~:not([hidden]){border-style:dashed}.divide-dotted>:not([hidden])~:not([hidden]){border-style:dotted}.divide-double>:not([hidden])~:not([hidden]){border-style:double}.divide-none>:not([hidden])~:not([hidden]){border-style:none}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(229 231 235/var(--tw-divide-opacity))}.divide-gray-300>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(209 213 219/var(--tw-divide-opacity))}.place-self-auto{place-self:auto}.place-self-start{place-self:start}.place-self-end{place-self:end}.place-self-center{place-self:center}.place-self-stretch{place-self:stretch}.self-auto{align-self:auto}.self-start{align-self:flex-start}.self-end{align-self:flex-end}.self-center{align-self:center}.self-stretch{align-self:stretch}.self-baseline{align-self:baseline}.justify-self-auto{justify-self:auto}.justify-self-start{justify-self:start}.justify-self-end{justify-self:end}.justify-self-center{justify-self:center}.justify-self-stretch{justify-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-clip{overflow:clip}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-clip{overflow-x:clip}.overflow-y-clip{overflow-y:clip}.overflow-x-visible{overflow-x:visible}.overflow-y-visible{overflow-y:visible}.overflow-x-scroll{overflow-x:scroll}.overflow-y-scroll{overflow-y:scroll}.overscroll-auto{overscroll-behavior:auto}.overscroll-contain{overscroll-behavior:contain}.overscroll-none{overscroll-behavior:none}.overscroll-y-auto{overscroll-behavior-y:auto}.overscroll-y-contain{overscroll-behavior-y:contain}.overscroll-y-none{overscroll-behavior-y:none}.overscroll-x-auto{overscroll-behavior-x:auto}.overscroll-x-contain{overscroll-behavior-x:contain}.overscroll-x-none{overscroll-behavior-x:none}.scroll-auto{scroll-behavior:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;white-space:nowrap}.overflow-ellipsis,.text-ellipsis,.truncate{text-overflow:ellipsis}.text-clip{text-overflow:clip}.hyphens-none{-webkit-hyphens:none;hyphens:none}.hyphens-manual{-webkit-hyphens:manual;hyphens:manual}.hyphens-auto{-webkit-hyphens:auto;hyphens:auto}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-break-spaces{white-space:break-spaces}.text-wrap{text-wrap:wrap}.text-nowrap{text-wrap:nowrap}.text-balance{text-wrap:balance}.text-pretty{text-wrap:pretty}.break-normal{overflow-wrap:normal;word-break:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.break-keep{word-break:keep-all}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[3px\]{border-radius:3px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-b{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-b-2xl{border-bottom-right-radius:1rem;border-bottom-left-radius:1rem}.rounded-e{border-start-end-radius:.25rem;border-end-end-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.rounded-r{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.rounded-r-md{border-top-right-radius:.375rem;border-bottom-right-radius:.375rem}.rounded-s{border-start-start-radius:.25rem;border-end-start-radius:.25rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-t-md{border-top-left-radius:.375rem;border-top-right-radius:.375rem}.rounded-bl{border-bottom-left-radius:.25rem}.rounded-bl-lg{border-bottom-left-radius:.5rem}.rounded-br{border-bottom-right-radius:.25rem}.rounded-br-lg{border-bottom-right-radius:.5rem}.rounded-ee{border-end-end-radius:.25rem}.rounded-es{border-end-start-radius:.25rem}.rounded-se{border-start-end-radius:.25rem}.rounded-ss{border-start-start-radius:.25rem}.rounded-tl{border-top-left-radius:.25rem}.rounded-tl-lg{border-top-left-radius:.5rem}.rounded-tr{border-top-right-radius:.25rem}.rounded-tr-lg{border-top-right-radius:.5rem}.\!border-0{border-width:0!important}.border{border-width:1px}.border-2{border-width:2px}.border-x{border-left-width:1px;border-right-width:1px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-y-0{border-top-width:0;border-bottom-width:0}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[1px\]{border-bottom-width:1px}.border-e{border-inline-end-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0}.border-s{border-inline-start-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-dotted{border-style:dotted}.border-double{border-style:double}.border-hidden{border-style:hidden}.border-none{border-style:none}.border-blueCust-200{--tw-border-opacity:1;border-color:rgb(107 47 173/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-grayCust-100{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-grayCust-350{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity:1;border-color:rgb(249 115 22/var(--tw-border-opacity))}.border-primary-900{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity))}.border-red-400{--tw-border-opacity:1;border-color:rgb(248 113 113/var(--tw-border-opacity))}.border-transparent{border-color:#0000}.border-yellow-500{--tw-border-opacity:1;border-color:rgb(234 179 8/var(--tw-border-opacity))}.border-zinc-700{--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.border-l-orange-400{--tw-border-opacity:1;border-left-color:rgb(251 146 60/var(--tw-border-opacity))}.bg-\[\#005e54\]{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-\[\#fff\]{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-\[rgb\(255\2c 0\2c 0\)\]{--tw-bg-opacity:1;background-color:rgb(255 0 0/var(--tw-bg-opacity))}.bg-amber-600{--tw-bg-opacity:1;background-color:rgb(217 119 6/var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity))}.bg-blueCust-100{background-color:#6b2fad99}.bg-blueCust-200{--tw-bg-opacity:1;background-color:rgb(107 47 173/var(--tw-bg-opacity))}.bg-blueCust-50{background-color:#6b2fad0d}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.bg-grayCust-250{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-350{--tw-bg-opacity:1;background-color:rgb(209 213 219/var(--tw-bg-opacity))}.bg-grayCust-400{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-grayCust-850{--tw-bg-opacity:1;background-color:rgb(52 53 65/var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity))}.bg-primary-700{--tw-bg-opacity:1;background-color:rgb(17 191 133/var(--tw-bg-opacity))}.bg-primary-900{--tw-bg-opacity:1;background-color:rgb(0 94 84/var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgb(220 38 38/var(--tw-bg-opacity))}.bg-red-700{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.bg-transparent{background-color:initial}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-yellow-100{--tw-bg-opacity:1;background-color:rgb(254 249 195/var(--tw-bg-opacity))}.bg-yellow-50,.bg-yellowCust-150{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity))}.bg-zinc-800{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity:0.5}.decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.box-decoration-slice{-webkit-box-decoration-break:slice;box-decoration-break:slice}.box-decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.bg-fixed{background-attachment:fixed}.bg-local{background-attachment:local}.bg-scroll{background-attachment:scroll}.bg-clip-border{background-clip:initial}.bg-clip-padding{background-clip:padding-box}.bg-clip-content{background-clip:content-box}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-repeat{background-repeat:repeat}.bg-no-repeat{background-repeat:no-repeat}.bg-repeat-x{background-repeat:repeat-x}.bg-repeat-y{background-repeat:repeat-y}.bg-repeat-round{background-repeat:round}.bg-repeat-space{background-repeat:space}.bg-origin-border{background-origin:border-box}.bg-origin-padding{background-origin:initial}.bg-origin-content{background-origin:content-box}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-fill{-o-object-fit:fill;object-fit:fill}.object-none{-o-object-fit:none;object-fit:none}.object-scale-down{-o-object-fit:scale-down;object-fit:scale-down}.p-0{padding:0}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.\!px-3{padding-left:.75rem!important;padding-right:.75rem!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-24{padding-left:6rem;padding-right:6rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-12{padding-bottom:3rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-0{padding-left:0}.pl-5{padding-left:1.25rem}.pr-0{padding-right:0}.pr-5{padding-right:1.25rem}.pt-10{padding-top:2.5rem}.pt-16{padding-top:4rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-start{text-align:start}.text-end{text-align:end}.align-baseline{vertical-align:initial}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.align-text-top{vertical-align:text-top}.align-text-bottom{vertical-align:text-bottom}.align-sub{vertical-align:sub}.align-super{vertical-align:super}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[16px\]{font-size:16px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.italic{font-style:italic}.not-italic{font-style:normal}.normal-nums{font-variant-numeric:normal}.ordinal{--tw-ordinal:ordinal}.ordinal,.slashed-zero{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.slashed-zero{--tw-slashed-zero:slashed-zero}.lining-nums{--tw-numeric-figure:lining-nums}.lining-nums,.oldstyle-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.oldstyle-nums{--tw-numeric-figure:oldstyle-nums}.proportional-nums{--tw-numeric-spacing:proportional-nums}.proportional-nums,.tabular-nums{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tabular-nums{--tw-numeric-spacing:tabular-nums}.diagonal-fractions{--tw-numeric-fraction:diagonal-fractions}.diagonal-fractions,.stacked-fractions{font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.stacked-fractions{--tw-numeric-fraction:stacked-fractions}.leading-6{line-height:1.5rem}.text-\[\#336699\]\/\[\.35\]{color:#33669959}.text-\[\#e9950c\]{--tw-text-opacity:1;color:rgb(233 149 12/var(--tw-text-opacity))}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.text-blue-800{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.text-gray-100{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-grayCust-150{--tw-text-opacity:1;color:rgb(51 51 51/var(--tw-text-opacity))}.text-grayCust-200{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-grayCust-300{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.text-grayCust-450{--tw-text-opacity:1;color:rgb(161 161 170/var(--tw-text-opacity))}.text-grayCust-50{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.text-grayCust-500{--tw-text-opacity:1;color:rgb(217 63 33/var(--tw-text-opacity))}.text-grayCust-550{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-grayCust-750{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.text-grayCust-800{--tw-text-opacity:1;color:rgb(39 39 42/var(--tw-text-opacity))}.text-grayCust-900{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity))}.text-primary-700{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.text-primary-900{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgb(248 113 113/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity))}.text-red-800,.text-redCust-100{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.text-yellow-800{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.text-yellowCust-200{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.overline{text-decoration-line:overline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.decoration-solid{text-decoration-style:solid}.decoration-double{text-decoration-style:double}.decoration-dotted{text-decoration-style:dotted}.decoration-dashed{text-decoration-style:dashed}.decoration-wavy{text-decoration-style:wavy}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.subpixel-antialiased{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.bg-blend-normal{background-blend-mode:normal}.bg-blend-multiply{background-blend-mode:multiply}.bg-blend-screen{background-blend-mode:screen}.bg-blend-overlay{background-blend-mode:overlay}.bg-blend-darken{background-blend-mode:darken}.bg-blend-lighten{background-blend-mode:lighten}.bg-blend-color-dodge{background-blend-mode:color-dodge}.bg-blend-color-burn{background-blend-mode:color-burn}.bg-blend-hard-light{background-blend-mode:hard-light}.bg-blend-soft-light{background-blend-mode:soft-light}.bg-blend-difference{background-blend-mode:difference}.bg-blend-exclusion{background-blend-mode:exclusion}.bg-blend-hue{background-blend-mode:hue}.bg-blend-saturation{background-blend-mode:saturation}.bg-blend-color{background-blend-mode:color}.bg-blend-luminosity{background-blend-mode:luminosity}.mix-blend-normal{mix-blend-mode:normal}.mix-blend-multiply{mix-blend-mode:multiply}.mix-blend-screen{mix-blend-mode:screen}.mix-blend-overlay{mix-blend-mode:overlay}.mix-blend-darken{mix-blend-mode:darken}.mix-blend-lighten{mix-blend-mode:lighten}.mix-blend-color-dodge{mix-blend-mode:color-dodge}.mix-blend-color-burn{mix-blend-mode:color-burn}.mix-blend-hard-light{mix-blend-mode:hard-light}.mix-blend-soft-light{mix-blend-mode:soft-light}.mix-blend-difference{mix-blend-mode:difference}.mix-blend-exclusion{mix-blend-mode:exclusion}.mix-blend-hue{mix-blend-mode:hue}.mix-blend-saturation{mix-blend-mode:saturation}.mix-blend-color{mix-blend-mode:color}.mix-blend-luminosity{mix-blend-mode:luminosity}.mix-blend-plus-lighter{mix-blend-mode:plus-lighter}.\!shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important}.\!shadow,.\!shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid #0000;outline-offset:2px}.outline{outline-style:solid}.outline-dashed{outline-style:dashed}.outline-dotted{outline-style:dotted}.outline-double{outline-style:double}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-inset{--tw-ring-inset:inset}.ring-black{--tw-ring-opacity:1;--tw-ring-color:rgb(0 0 0/var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity:0.05}.blur{--tw-blur:blur(8px)}.blur,.drop-shadow{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f)}.grayscale{--tw-grayscale:grayscale(100%)}.grayscale,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.invert{--tw-invert:invert(100%)}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.\!filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter-none{filter:none}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-grayscale{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-grayscale{--tw-backdrop-grayscale:grayscale(100%)}.backdrop-invert{--tw-backdrop-invert:invert(100%)}.backdrop-invert,.backdrop-sepia{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-sepia{--tw-backdrop-sepia:sepia(100%)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter-none{-webkit-backdrop-filter:none;backdrop-filter:none}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.content-\[\'this-is-also-valid\]-weirdly-enough\'\]{--tw-content:"this-is-also-valid]-weirdly-enough";content:var(--tw-content)}.forced-color-adjust-auto{forced-color-adjust:auto}.forced-color-adjust-none{forced-color-adjust:none}.instawp-qa-tools .instawp-manager{margin-right:1rem;border-radius:.375rem;padding:.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:#3341551a}.instawp-qa-tools .instawp-manager:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}@media (min-width:640px){.sm\:container{width:100%}@media (min-width:640px){.sm\:container{max-width:640px}}@media (min-width:768px){.sm\:container{max-width:768px}}@media (min-width:1024px){.sm\:container{max-width:1024px}}@media (min-width:1280px){.sm\:container{max-width:1280px}}@media (min-width:1536px){.sm\:container{max-width:1536px}}}.hover\:rounded-lg:hover{border-radius:.5rem}.hover\:border-primary-700:hover{--tw-border-opacity:1;border-color:rgb(17 191 133/var(--tw-border-opacity))}.hover\:border-primary-900:hover{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.hover\:bg-primary-800:hover{--tw-bg-opacity:1;background-color:rgb(11 108 99/var(--tw-bg-opacity))}.hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgb(185 28 28/var(--tw-bg-opacity))}.hover\:bg-zinc-800:hover{--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.hover\:font-bold:hover{font-weight:700}.hover\:text-amber-600:hover{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.hover\:text-orange-900:hover{--tw-text-opacity:1;color:rgb(124 45 18/var(--tw-text-opacity))}.hover\:text-primary-700:hover{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.hover\:text-primary-900:hover{--tw-text-opacity:1;color:rgb(0 94 84/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:outline-0:hover{outline-width:0}.hover\:ring-0:hover{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.before\:hover\:text-center:hover:before,.hover\:before\:text-center:hover:before{content:var(--tw-content);text-align:center}.focus\:z-10:focus{z-index:10}.focus\:border-0:focus{border-width:0}.focus\:border-grayCust-350:focus{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.focus\:border-primary-900:focus{--tw-border-opacity:1;border-color:rgb(0 94 84/var(--tw-border-opacity))}.focus\:text-amber-600:focus{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity))}.focus\:text-blue-800:focus{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity))}.focus\:text-primary-700:focus{--tw-text-opacity:1;color:rgb(17 191 133/var(--tw-text-opacity))}.focus\:text-white:focus{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.focus\:shadow-none:focus{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:outline-0:focus{outline-width:0}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-0:focus,.focus\:ring-1:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-900:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 94 84/var(--tw-ring-opacity))}.focus\:hover\:text-center:hover:focus,.hover\:focus\:text-center:focus:hover{text-align:center}.focus-visible\:outline-none:focus-visible{outline:2px solid #0000;outline-offset:2px}.active\:text-white:active{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.group:hover .group-hover\:inline-block{display:inline-block}.group.failed .group-\[\.failed\]\:text-rose-500{--tw-text-opacity:1;color:rgb(244 63 94/var(--tw-text-opacity))}.group.invalid .group-\[\.invalid\]\:text-red-300{--tw-text-opacity:1;color:rgb(252 165 165/var(--tw-text-opacity))}.group.sent .group-\[\.sent\]\:text-emerald-300{--tw-text-opacity:1;color:rgb(110 231 183/var(--tw-text-opacity))}.group.skipped .group-\[\.skipped\]\:text-yellow-300{--tw-text-opacity:1;color:rgb(253 224 71/var(--tw-text-opacity))}@media (min-width:640px){.sm\:mt-px{margin-top:1px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:rounded-lg{border-radius:.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:pt-2{padding-top:.5rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:underline{text-decoration-line:underline}}@media (min-width:768px){.md\:w-1\/2{width:50%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-nowrap{flex-wrap:nowrap}}@media (min-width:1024px){.lg\:-mx-8{margin-left:-2rem;margin-right:-2rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (prefers-color-scheme:dark){@media (min-width:1024px){.dark\:lg\:hover\:\[paint-order\:markers\]:hover{paint-order:markers}}}.\[\&\.completed1\]\:text-red-500.completed1{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.\[\&\.completed\]\:bg-green-200.completed{--tw-bg-opacity:1;background-color:rgb(187 247 208/var(--tw-bg-opacity))}.\[\&\.completed\]\:text-green-900.completed{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity))}.\[\&\.error\]\:bg-red-200.error{--tw-bg-opacity:1;background-color:rgb(254 202 202/var(--tw-bg-opacity))}.\[\&\.error\]\:text-red-800.error{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity))}.\[\&\.invalid\]\:bg-yellow-200.invalid{--tw-bg-opacity:1;background-color:rgb(254 240 138/var(--tw-bg-opacity))}.\[\&\.invalid\]\:text-yellow-800.invalid{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity))}.\[\&\.pending\]\:bg-sky-200.pending{--tw-bg-opacity:1;background-color:rgb(186 230 253/var(--tw-bg-opacity))}.\[\&\.pending\]\:text-sky-800.pending{--tw-text-opacity:1;color:rgb(7 89 133/var(--tw-text-opacity))}
  • instawp-connect/trunk/assets/js/common.js

    r3085407 r3252174  
    1414            success: function (response) {
    1515                console.log(response)
    16                 if(el.attr('target') === 'cache') {
     16                if (el.attr('target') === 'cache') {
    1717                    const urlObj = new URL(window.location.href);
    1818                    urlObj.searchParams.delete('instawp-cache-cleared');
     
    3535        window.location = el.attr('href');
    3636    });
     37
     38    $(document).on('click', 'tr[data-slug="instawp-connect"] .deactivate > a', function (e) {
     39        if (instawp_common.mig_in_progress && instawp_common.mig_in_progress === 'yes') {
     40            e.preventDefault();
     41
     42            $('#deactivate-modal').fadeIn('100');
     43
     44            return false;
     45        }
     46    });
     47
     48    $(document).on('click', '#cancel-deactivate', function (e) {
     49        $('#deactivate-modal').fadeOut('100');
     50    });
     51
     52    $(document).on('click', '#confirm-deactivate', function (e) {
     53        window.location.href = $('tr[data-slug="instawp-connect"] .deactivate > a').attr('href');
     54    });
     55
    3756})(jQuery, window, document, instawp_common);
    3857
  • instawp-connect/trunk/assets/js/scripts.js

    r3216309 r3252174  
    14991499    });
    15001500
    1501 
    15021501    $(document).on('click', '.instawp-update-plugin', function (e) {
    15031502        e.preventDefault();
  • instawp-connect/trunk/assets/src/common.scss

    r3122113 r3252174  
    3636            user-select: none;
    3737            -webkit-user-drag: none;
     38        }
     39    }
     40
     41    li#wp-admin-bar-instawp_mig_in_progress {
     42        a,
     43        a:active,
     44        a:focus,
     45        a:visited,
     46        a:hover {
     47            background: #11a472;
     48            color: #f1f1f1;
     49            outline: none;
     50            border: none;
     51            box-shadow: none;
     52            padding-left: 30px;
     53            padding-right: 10px;
     54            cursor: pointer;
     55            user-select: none;
     56            -webkit-user-drag: none;
     57
     58            &:before {
     59                content: ' ';
     60                position: absolute;
     61                height: 10px;
     62                width: 10px;
     63                top: 50%;
     64                left: 16px;
     65                transform: translate(-50%, -50%);
     66                border-radius: 50%;
     67                border: 3px solid rgb(255 255 255 / 20%);
     68                border-right-color: #fff;
     69                animation: loading 1s linear infinite;
     70                margin: -8px -8px;
     71                padding: 0;
     72            }
    3873        }
    3974    }
     
    101136}
    102137
     138body {
     139    &.tools_page_instawp {
     140        #wpadminbar {
     141            li#wp-admin-bar-instawp_mig_in_progress {
     142                a,
     143                a:active,
     144                a:focus,
     145                a:visited,
     146                a:hover {
     147                    &:before {
     148                        height: 16px;
     149                        width: 16px;
     150                    }
     151                }
     152            }
     153        }
     154    }
     155}
     156
     157.deactivate-modal {
     158    display: none;
     159    position: fixed;
     160    top: 0;
     161    left: 0;
     162    width: 100%;
     163    height: 100%;
     164    background-color: rgba(0, 0, 0, 0.6);
     165    align-items: center;
     166    z-index: 999999;
     167
     168    .deactivate-modal-content {
     169        background-color: white;
     170        border-radius: 0.5rem;
     171        padding: 1.5rem;
     172        max-width: 24rem;
     173        width: 100%;
     174        position: absolute;
     175        top: 20%;
     176        left: 50%;
     177        transform: translateX(-50%);
     178
     179        h3 {
     180            font-size: 1.125rem;
     181            font-weight: 600;
     182            margin-bottom: 1rem;
     183        }
     184
     185        p {
     186            font-size: 14px;
     187            line-height: 21px;
     188            margin-bottom: 1rem;
     189        }
     190
     191        .deactivate-modal-actions {
     192            display: flex;
     193            justify-content: flex-end;
     194            gap: 1rem;
     195
     196            .deactivate-modal-cancel {
     197                padding: 0.5rem 1rem;
     198                background-color: #166534;
     199                border-radius: 0.375rem;
     200                border: none;
     201                cursor: pointer;
     202                color: #f1f1f1;
     203            }
     204
     205            .deactivate-modal-confirm {
     206                padding: 0.5rem 1rem;
     207                background-color: #fee2e2;
     208                border-radius: 0.375rem;
     209                border: none;
     210                cursor: pointer;
     211            }
     212        }
     213    }
     214}
     215
    103216@keyframes blink {
    104217    50% {
  • instawp-connect/trunk/includes/apis/class-instawp-rest-api-migration.php

    r3250876 r3252174  
    5050
    5151        $migrate_key              = sanitize_text_field( $request->get_param( 'migrate_key' ) );
     52        $is_end_to_end            = sanitize_text_field( $request->get_param( 'is_end_to_end' ) );
    5253        $migrate_settings         = $request->get_param( 'migrate_settings' );
    5354        $migrate_settings['mode'] = 'pull';
     
    7172
    7273        Option::update_option( 'instawp_migration_details', array(
    73             'migrate_key' => $migrate_key,
     74            'migrate_key'   => $migrate_key,
     75            'is_end_to_end' => $is_end_to_end,
    7476            //'dest_url'    => Helper::get_args_option( 'serve_url', $pre_check_response ),
    75             'started_at'  => current_time( 'mysql', 1 ),
    76             'status'      => 'initiated',
    77             'mode'        => 'pull',
     77            'started_at'    => current_time( 'mysql', 1 ),
     78            'status'        => 'initiated',
     79            'mode'          => 'pull',
    7880        ) );
    7981
     
    117119        }
    118120
     121        $is_end_to_end = sanitize_text_field( $request->get_param( 'is_end_to_end' ) );
     122
    119123        Option::update_option( 'instawp_migration_details', array(
    120             'migrate_key' => $migrate_key,
    121             'dest_url'    => $dest_file_url,
    122             'started_at'  => current_time( 'mysql', 1 ),
    123             'status'      => 'initiated',
    124             'mode'        => 'push',
     124            'migrate_key'   => $migrate_key,
     125            'is_end_to_end' => $is_end_to_end,
     126            'dest_url'      => $dest_file_url,
     127            'started_at'    => current_time( 'mysql', 1 ),
     128            'status'        => 'initiated',
     129            'mode'          => 'push',
    125130        ) );
    126131
  • instawp-connect/trunk/includes/apis/class-instawp-rest-api.php

    r3239817 r3252174  
    2222        add_action( 'rest_api_init', array( $this, 'add_api_routes' ) );
    2323        add_filter( 'rest_authentication_errors', array( $this, 'rest_access' ), 999 );
    24         add_filter( 'bb_exclude_endpoints_from_restriction', array( $this, 'endpoints_from_restriction_callback' ), 99, 2 );
     24        add_filter( 'bb_exclude_endpoints_from_restriction', array( $this, 'endpoints_from_restriction_callback' ), 99, 2 );
    2525        add_action( 'init', array( $this, 'perform_actions' ), 0 );
    2626    }
     
    4545        ) );
    4646
    47         register_rest_route( $this->namespace . '/' . $this->version_2, '/refresh-staging-sites-list', array(
    48             'methods'             => 'POST',
    49             'callback'            => array( $this, 'refresh_staging_sites_list' ),
    50             'permission_callback' => '__return_true',
    51         ) );
     47        register_rest_route( $this->namespace . '/' . $this->version_2, '/refresh-staging-sites-list', array(
     48            'methods'             => 'POST',
     49            'callback'            => array( $this, 'refresh_staging_sites_list' ),
     50            'permission_callback' => '__return_true',
     51        ) );
    5252
    5353        register_rest_route( $this->namespace . '/' . $this->version_2, '/disconnect', array(
     
    6969        ) );
    7070
    71         register_rest_route( $this->namespace . '/' . $this->version_2, '/temporary-login', array(
    72             array(
    73                 'methods'             => 'POST',
    74                 'callback'            => array( $this, 'temporary_login' ),
    75                 'args'                => array(
    76                     'i' => array(
    77                         'required'          => true,
    78                         'validate_callback' => function( $param, $request, $key ) {
    79                             return is_numeric( $param );
    80                         },
    81                     ),
    82                     'e' => array(
    83                         'required'          => true,
    84                         'validate_callback' => function( $param, $request, $key ) {
    85                             return strtotime( $param ) !== false;
    86                         },
    87                     ),
    88                     'r' => array(
    89                         'default'           => 1,
    90                         'validate_callback' => function( $param, $request, $key ) {
    91                             return is_numeric( $param );
    92                         },
    93                     ),
    94                 ),
    95                 'permission_callback' => '__return_true',
    96             ),
    97             array(
    98                 'methods'             => 'DELETE',
    99                 'callback'            => array( $this, 'delete_temporary_login' ),
    100                 'permission_callback' => '__return_true',
    101             ),
    102         ) );
     71        register_rest_route( $this->namespace . '/' . $this->version_2, '/temporary-login', array(
     72            array(
     73                'methods'             => 'POST',
     74                'callback'            => array( $this, 'temporary_login' ),
     75                'args'                => array(
     76                    'i' => array(
     77                        'required'          => true,
     78                        'validate_callback' => function ( $param, $request, $key ) {
     79                            return is_numeric( $param );
     80                        },
     81                    ),
     82                    'e' => array(
     83                        'required'          => true,
     84                        'validate_callback' => function ( $param, $request, $key ) {
     85                            return strtotime( $param ) !== false;
     86                        },
     87                    ),
     88                    'r' => array(
     89                        'default'           => 1,
     90                        'validate_callback' => function ( $param, $request, $key ) {
     91                            return is_numeric( $param );
     92                        },
     93                    ),
     94                ),
     95                'permission_callback' => '__return_true',
     96            ),
     97            array(
     98                'methods'             => 'DELETE',
     99                'callback'            => array( $this, 'delete_temporary_login' ),
     100                'permission_callback' => '__return_true',
     101            ),
     102        ) );
    103103
    104104        register_rest_route( $this->namespace . '/' . $this->version_2, '/heartbeat', array(
     
    114114        ) );
    115115
    116         register_rest_route( $this->namespace . '/' . $this->version_3, '/create-update-task', array(
    117             'methods'             => 'POST',
    118             'callback'            => array( $this, 'create_update_task' ),
    119             'args'                => array(
    120                 'items' => array(
    121                     'required'          => true,
    122                     'validate_callback' => function( $param, $request, $key ) {
    123                         return is_array( $param );
    124                     },
    125                 ),
    126             ),
    127             'permission_callback' => '__return_true',
    128         ) );
     116        register_rest_route( $this->namespace . '/' . $this->version_3, '/create-update-task', array(
     117            'methods'             => 'POST',
     118            'callback'            => array( $this, 'create_update_task' ),
     119            'args'                => array(
     120                'items' => array(
     121                    'required'          => true,
     122                    'validate_callback' => function ( $param, $request, $key ) {
     123                        return is_array( $param );
     124                    },
     125                ),
     126            ),
     127            'permission_callback' => '__return_true',
     128        ) );
    129129    }
    130130
     
    229229            $allowed_domains = array(
    230230                'https://stage.instawp.io',
    231                 'https://dev.instawp.io', 
     231                'https://dev.instawp.io',
    232232                'https://app.instawp.io',
    233233            );
    234234
    235             $domain_to_set = defined( 'INSTAWP_API_DOMAIN' ) 
     235            $domain_to_set = defined( 'INSTAWP_API_DOMAIN' )
    236236                ? INSTAWP_API_DOMAIN
    237237                : ( in_array( $api_domain, $allowed_domains ) ? $api_domain : '' );
    238                
     238
    239239            if ( empty( $domain_to_set ) ) {
    240240                return $this->send_response( array(
     
    243243                ) );
    244244            }
    245            
     245
    246246            Helper::set_api_domain( $domain_to_set );
    247247        }
     
    352352    }
    353353
    354     /**
    355     * Refresh staging site list.
    356     *
    357     * @param WP_REST_Request $request
    358     *
    359     * @return WP_Error|WP_HTTP_Response|WP_REST_Response
    360     */
    361     public function refresh_staging_sites_list( WP_REST_Request $request ) {
    362         $response = $this->validate_api_request( $request );
    363         if ( is_wp_error( $response ) ) {
    364             return $this->throw_error( $response );
    365         }
    366 
    367         instawp_set_staging_sites_list();
    368 
    369         return $this->send_response( array(
    370             'status'  => true,
    371             'message' => __( 'Staging Site List Refreshed.', 'instawp-connect' ),
    372         ) );
    373     }
     354    /**
     355    * Refresh staging site list.
     356    *
     357    * @param WP_REST_Request $request
     358    *
     359    * @return WP_Error|WP_HTTP_Response|WP_REST_Response
     360    */
     361    public function refresh_staging_sites_list( WP_REST_Request $request ) {
     362        $response = $this->validate_api_request( $request );
     363        if ( is_wp_error( $response ) ) {
     364            return $this->throw_error( $response );
     365        }
     366
     367        instawp_set_staging_sites_list();
     368
     369        return $this->send_response( array(
     370            'status'  => true,
     371            'message' => __( 'Staging Site List Refreshed.', 'instawp-connect' ),
     372        ) );
     373    }
    374374
    375375    /**
     
    405405        }
    406406
    407         $param_user     = $request->get_param( 's' );
    408         $redirect       = $request->get_param( 'redir' );
     407        $param_user = $request->get_param( 's' );
     408        $redirect   = $request->get_param( 'redir' );
     409
     410        error_log( 'received payload. s: ' . $param_user );
     411        error_log( 'received payload. redir: ' . $redirect );
     412
    409413        $login_userinfo = instawp_get_user_to_login( base64_decode( $param_user ) ); // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
    410414
     
    425429            $args['redir'] = rawurlencode( $redirect );
    426430        }
    427         $auto_login_url    = add_query_arg( $args, Helper::wp_site_url() );
     431        $auto_login_url = add_query_arg( $args, Helper::wp_site_url() );
    428432
    429433        Option::update_option( 'instawp_login_code', array(
     
    460464
    461465        return $this->send_response( array(
    462             'success' => true,
    463             'message' => $setting ? __( 'Activity log is enabled.', 'instawp-connect' ) : __( 'Activity log is disabled.', 'instawp-connect' ),
    464         ) );
    465     }
    466 
    467     /**
    468     * Temporary Auto login url generate
    469     * */
    470     public function temporary_login( WP_REST_Request $request ) {
    471 
    472         $response = $this->validate_api_request( $request );
    473         if ( is_wp_error( $response ) ) {
    474             return $this->throw_error( $response );
    475         }
    476 
    477         $param_user_id = $request->get_param( 'i' );
    478         $param_expiry  = $request->get_param( 'e' );
    479         $param_reuse   = $request->get_param( 'r' );
    480 
    481         $user_to_login = get_userdata( $param_user_id );
    482         if ( ! $user_to_login instanceof \WP_User ) {
    483             return $this->send_response( array(
    484                 'success' => false,
    485                 'message' => esc_html__( 'No login information found.', 'instawp-connect' ),
    486             ) );
    487         }
    488 
    489         $token       = Helper::get_random_string( 120 );
    490         $expiry_time = get_date_from_gmt( $param_expiry, 'U' );
    491 
    492         $user_metas = array(
    493             '_instawp_temporary_login'            => 'yes',
    494             '_instawp_temporary_login_token'      => $token,
    495             '_instawp_temporary_login_expiration' => $expiry_time,
    496             '_instawp_temporary_login_attempt'    => $param_reuse,
    497         );
    498 
    499         foreach ( $user_metas as $meta_key => $meta_value ) {
    500             update_user_meta( $user_to_login->ID, $meta_key, $meta_value );
    501         }
    502 
    503         $login_url = add_query_arg( array(
    504             'iwp-temp-login' => $token,
    505         ), Helper::wp_site_url() );
    506 
    507         return $this->send_response( array(
    508             'success'   => true,
    509             'login_url' => $login_url,
    510         ) );
    511     }
    512 
    513     /**
    514     * Temporary Auto login url delete all
    515     * */
    516     public function delete_temporary_login( WP_REST_Request $request ) {
    517 
    518         $response = $this->validate_api_request( $request );
    519         if ( is_wp_error( $response ) ) {
    520             return $this->throw_error( $response );
    521         }
    522 
    523         $param_user_id = $request->get_param( 'i' );
    524         if ( ! empty( $param_user_id ) ) {
    525             $user_ids = array( $param_user_id );
    526         } else {
    527             $user_ids = get_users( array(
    528                 'meta_key'   => '_instawp_temporary_login',
    529                 'meta_value' => 'yes',
    530                 'fields'     => 'ID',
    531             ) );
    532         }
    533 
    534         if ( ! empty( $user_ids ) ) {
    535             foreach ( $user_ids as $user_id ) {
    536                 delete_user_meta( $user_id, '_instawp_temporary_login' );
    537                 delete_user_meta( $user_id, '_instawp_temporary_login_token' );
    538                 delete_user_meta( $user_id, '_instawp_temporary_login_expiration' );
    539                 delete_user_meta( $user_id, '_instawp_temporary_login_attempt' );
    540             }
    541         }
    542 
    543         return $this->send_response( array(
    544             'success' => true,
    545             'message' => __( 'All Temporary logins are removed.', 'instawp-connect' ),
    546         ) );
    547     }
     466            'success' => true,
     467            'message' => $setting ? __( 'Activity log is enabled.', 'instawp-connect' ) : __( 'Activity log is disabled.', 'instawp-connect' ),
     468        ) );
     469    }
     470
     471    /**
     472    * Temporary Auto login url generate
     473    * */
     474    public function temporary_login( WP_REST_Request $request ) {
     475
     476        $response = $this->validate_api_request( $request );
     477        if ( is_wp_error( $response ) ) {
     478            return $this->throw_error( $response );
     479        }
     480
     481        $param_user_id = $request->get_param( 'i' );
     482        $param_expiry  = $request->get_param( 'e' );
     483        $param_reuse   = $request->get_param( 'r' );
     484
     485        $user_to_login = get_userdata( $param_user_id );
     486        if ( ! $user_to_login instanceof \WP_User ) {
     487            return $this->send_response( array(
     488                'success' => false,
     489                'message' => esc_html__( 'No login information found.', 'instawp-connect' ),
     490            ) );
     491        }
     492
     493        $token       = Helper::get_random_string( 120 );
     494        $expiry_time = get_date_from_gmt( $param_expiry, 'U' );
     495
     496        $user_metas = array(
     497            '_instawp_temporary_login'            => 'yes',
     498            '_instawp_temporary_login_token'      => $token,
     499            '_instawp_temporary_login_expiration' => $expiry_time,
     500            '_instawp_temporary_login_attempt'    => $param_reuse,
     501        );
     502
     503        foreach ( $user_metas as $meta_key => $meta_value ) {
     504            update_user_meta( $user_to_login->ID, $meta_key, $meta_value );
     505        }
     506
     507        $login_url = add_query_arg( array(
     508            'iwp-temp-login' => $token,
     509        ), Helper::wp_site_url() );
     510
     511        return $this->send_response( array(
     512            'success'   => true,
     513            'login_url' => $login_url,
     514        ) );
     515    }
     516
     517    /**
     518    * Temporary Auto login url delete all
     519    * */
     520    public function delete_temporary_login( WP_REST_Request $request ) {
     521
     522        $response = $this->validate_api_request( $request );
     523        if ( is_wp_error( $response ) ) {
     524            return $this->throw_error( $response );
     525        }
     526
     527        $param_user_id = $request->get_param( 'i' );
     528        if ( ! empty( $param_user_id ) ) {
     529            $user_ids = array( $param_user_id );
     530        } else {
     531            $user_ids = get_users( array(
     532                'meta_key'   => '_instawp_temporary_login',
     533                'meta_value' => 'yes',
     534                'fields'     => 'ID',
     535            ) );
     536        }
     537
     538        if ( ! empty( $user_ids ) ) {
     539            foreach ( $user_ids as $user_id ) {
     540                delete_user_meta( $user_id, '_instawp_temporary_login' );
     541                delete_user_meta( $user_id, '_instawp_temporary_login_token' );
     542                delete_user_meta( $user_id, '_instawp_temporary_login_expiration' );
     543                delete_user_meta( $user_id, '_instawp_temporary_login_attempt' );
     544            }
     545        }
     546
     547        return $this->send_response( array(
     548            'success' => true,
     549            'message' => __( 'All Temporary logins are removed.', 'instawp-connect' ),
     550        ) );
     551    }
    548552
    549553    /**
     
    585589    }
    586590
    587     /**
    588     * Handle create update task api
    589     *
    590     * @param WP_REST_Request $request
    591     *
    592     * @return WP_REST_Response
    593     */
    594     public function create_update_task( WP_REST_Request $request ) {
    595         $response = $this->validate_api_request( $request );
    596         if ( is_wp_error( $response ) ) {
    597             return $this->throw_error( $response );
    598         }
    599 
    600         $parameters = $this->filter_params( $request );
    601         $items      = ! empty( $parameters['items'] ) ? array_map( 'sanitize_text_field', $parameters['items'] ) : array();
    602 
    603         if ( empty( $items ) ) {
    604             return $this->send_response( array(
    605                 'success' => false,
    606                 'message' => __( 'No items found', 'instawp-connect' ),
    607             ) );
    608         }
    609 
    610         as_unschedule_all_actions( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
    611         as_enqueue_async_action( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
    612 
    613         return $this->send_response( array(
    614             'success' => true,
    615             'message' => __( 'Update task create successfully', 'instawp-connect' ),
    616         ) );
    617     }
     591    /**
     592    * Handle create update task api
     593    *
     594    * @param WP_REST_Request $request
     595    *
     596    * @return WP_REST_Response
     597    */
     598    public function create_update_task( WP_REST_Request $request ) {
     599        $response = $this->validate_api_request( $request );
     600        if ( is_wp_error( $response ) ) {
     601            return $this->throw_error( $response );
     602        }
     603
     604        $parameters = $this->filter_params( $request );
     605        $items      = ! empty( $parameters['items'] ) ? array_map( 'sanitize_text_field', $parameters['items'] ) : array();
     606
     607        if ( empty( $items ) ) {
     608            return $this->send_response( array(
     609                'success' => false,
     610                'message' => __( 'No items found', 'instawp-connect' ),
     611            ) );
     612        }
     613
     614        as_unschedule_all_actions( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
     615        as_enqueue_async_action( 'instawp_create_update_task', array( $items ), 'instawp-connect' );
     616
     617        return $this->send_response( array(
     618            'success' => true,
     619            'message' => __( 'Update task create successfully', 'instawp-connect' ),
     620        ) );
     621    }
    618622
    619623    /**
     
    634638    }
    635639
    636     /**
    637      * Bypass BuddyBoss endpoints blocking
    638      */
    639     public function endpoints_from_restriction_callback( $default_exclude_endpoint, $current_endpoint ) {
    640         if ( strpos( $current_endpoint, 'instawp-connect' ) !== false ) {
    641             $default_exclude_endpoint[] = $current_endpoint;
    642         }
    643         return $default_exclude_endpoint;
    644     }
     640    /**
     641     * Bypass BuddyBoss endpoints blocking
     642     */
     643    public function endpoints_from_restriction_callback( $default_exclude_endpoint, $current_endpoint ) {
     644        if ( strpos( $current_endpoint, 'instawp-connect' ) !== false ) {
     645            $default_exclude_endpoint[] = $current_endpoint;
     646        }
     647
     648        return $default_exclude_endpoint;
     649    }
    645650
    646651    /**
     
    655660    /**
    656661     * Get bearer token from header
    657      * 
    658      * @param WP_REST_Request $request
    659      * 
     662     *
     663     * @param WP_REST_Request $request
     664     *
    660665     * @return string|WP_Error
    661666     */
     
    663668        // get authorization header value.
    664669        $bearer_token = sanitize_text_field( $request->get_header( 'authorization' ) );
    665         if ( ! empty( $bearer_token ) ) {
    666             $bearer_token = str_ireplace( 'bearer', '', $bearer_token );
    667         } else {
    668             $bearer_token = sanitize_text_field( $request->get_header( 'x_iwp_auth' ) );
    669         }
    670         $bearer_token = trim( $bearer_token );
     670        if ( ! empty( $bearer_token ) ) {
     671            $bearer_token = str_ireplace( 'bearer', '', $bearer_token );
     672        } else {
     673            $bearer_token = sanitize_text_field( $request->get_header( 'x_iwp_auth' ) );
     674        }
     675        $bearer_token = trim( $bearer_token );
    671676
    672677        // check if the bearer token is empty
     
    688693     */
    689694    public function validate_api_request( WP_REST_Request $request, $option = '', $match_key = false ) {
    690        
     695
    691696        // get bearer token.
    692697        $bearer_token = $this->get_bearer_token( $request );
     
    703708
    704709        if ( count( $api_key_exploded ) > 1 ) {
    705             $api_key = $api_key_exploded[1];
    706         }
    707 
    708         if ( empty( $api_key ) ) {
    709             return new WP_Error( 403, esc_html__( 'Empty api key.', 'instawp-connect' ) );
    710         }
    711 
    712         $is_matched = false;
    713 
    714         // match the api key with bearer token
    715         if ( $match_key && hash_equals( $api_key, $bearer_token ) ) {
    716             $is_matched = true;
    717         }
    718 
    719         if ( ! $is_matched ) {
    720             $api_key_hash = hash( 'sha256', $api_key );
    721 
    722             // match the api key hash with bearer token
    723             if ( ! hash_equals( $api_key_hash, $bearer_token ) ) {
    724                 return new WP_Error( 403, esc_html__( 'Invalid bearer token.', 'instawp-connect' ) );
    725             }
    726         }
     710            $api_key = $api_key_exploded[1];
     711        }
     712
     713        if ( empty( $api_key ) ) {
     714            return new WP_Error( 403, esc_html__( 'Empty api key.', 'instawp-connect' ) );
     715        }
     716
     717        $is_matched = false;
     718
     719        // match the api key with bearer token
     720        if ( $match_key && hash_equals( $api_key, $bearer_token ) ) {
     721            $is_matched = true;
     722        }
     723
     724        if ( ! $is_matched ) {
     725            $api_key_hash = hash( 'sha256', $api_key );
     726
     727            // match the api key hash with bearer token
     728            if ( ! hash_equals( $api_key_hash, $bearer_token ) ) {
     729                return new WP_Error( 403, esc_html__( 'Invalid bearer token.', 'instawp-connect' ) );
     730            }
     731        }
    727732
    728733        if ( ! empty( $option ) && ! $this->is_enabled( $option ) ) {
  • instawp-connect/trunk/includes/class-instawp-hooks.php

    r3239817 r3252174  
    8080                $diff                = $today_date->diff( $plan_activated_date );
    8181                $remaining_days      = $current_plan['trial'] - $diff->days;
    82                
     82
    8383                if ( $remaining_days <= 0 ) {
    8484                    $api_response = Curl::do_curl( "connects/{$connect_id}/delete", array(), array(), 'DELETE' );
     
    128128            $api_key        = Helper::get_api_key();
    129129            $access_token   = isset( $_REQUEST['access_token'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['access_token'] ) ) : '';
    130             $jwt            = isset( $_REQUEST['jwt'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['jwt'] ) ) : '';
     130            $jwt            = isset( $_REQUEST['jwt'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['jwt'] ) ) : '';
    131131            $success_status = isset( $_REQUEST['success'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['success'] ) ) : '';
    132132            $instawp_nonce  = isset( $_REQUEST['instawp-nonce'] ) ? sanitize_text_field( wp_unslash( $_REQUEST['instawp-nonce'] ) ) : '';
     
    235235                );
    236236            }
     237
     238            $migration_details = Option::get_option( 'instawp_migration_details' );
     239            $migration_status  = InstaWP_Setting::get_args_option( 'status', $migration_details );
     240            $is_end_to_end     = (bool) InstaWP_Setting::get_args_option( 'is_end_to_end', $migration_details );
     241
     242            if ( $migration_status === 'initiated' && $is_end_to_end ) {
     243
     244                $e2e_tracking_url = InstaWP_Setting::get_args_option( 'e2e_tracking_url', $migration_details );
     245                $e2e_tracking_url = empty( $e2e_tracking_url ) ? '#' : $e2e_tracking_url;
     246
     247                $admin_bar->add_node(
     248                    array(
     249                        'id'     => 'instawp_mig_in_progress',
     250                        'title'  => __( 'Migration in Progress', 'instawp-connect' ),
     251                        'href'   => $e2e_tracking_url,
     252                        'meta'   => array(
     253                            'class' => 'instawp-mig-in-progress',
     254                        ),
     255                        'parent' => 'top-secondary',
     256                    )
     257                );
     258
     259                add_action( 'admin_footer', array( $this, 'deactivation_warning_modal' ) );
     260            }
     261        }
     262
     263        public function deactivation_warning_modal() {
     264            ?>
     265            <div id="deactivate-modal" class="deactivate-modal">
     266                <div class="deactivate-modal-content">
     267                    <h3><?php esc_html_e( 'Are you sure?', 'instawp-connect' ); ?></h3>
     268                    <p><?php esc_html_e( 'An active migration is in progress. Deactivating the plugin will stop the migration. Do you want to proceed?', 'instawp-connect' ); ?></p>
     269                    <div class="deactivate-modal-actions">
     270                        <button id="confirm-deactivate" class="deactivate-modal-confirm"><?php esc_html_e( 'Yes, Deactivate', 'instawp-connect' ); ?></button>
     271                        <button id="cancel-deactivate" class="deactivate-modal-cancel"><?php esc_html_e( 'No, Continue Migration', 'instawp-connect' ); ?></button>
     272                    </div>
     273                </div>
     274            </div>
     275            <?php
    237276        }
    238277
  • instawp-connect/trunk/includes/class-instawp-tools.php

    r3245569 r3252174  
    13171317
    13181318    public static function get_localize_data() {
    1319         return array(
     1319
     1320        global $current_screen;
     1321
     1322        $localize_data = array(
    13201323            'ajax_url' => admin_url( 'admin-ajax.php' ),
    13211324            'trans'    => array(
     
    13281331            'security' => wp_create_nonce( 'instawp-connect' ),
    13291332        );
     1333
     1334        if ( $current_screen->base === 'plugins' ) {
     1335            $migration_details = Option::get_option( 'instawp_migration_details' );
     1336            $migration_status  = InstaWP_Setting::get_args_option( 'status', $migration_details );
     1337            $is_end_to_end     = (bool) InstaWP_Setting::get_args_option( 'is_end_to_end', $migration_details );
     1338
     1339            if ( $migration_status === 'initiated' && $is_end_to_end ) {
     1340                $localize_data['mig_in_progress'] = 'yes';
     1341            }
     1342        }
     1343
     1344        return apply_filters( 'instawp/filters/localize_data', $localize_data );
    13301345    }
    13311346
  • instawp-connect/trunk/includes/functions.php

    r3239817 r3252174  
    102102
    103103        foreach ( $tables as $table ) {
    104             $wpdb->query("TRUNCATE TABLE {$table}");
     104            $wpdb->query( "TRUNCATE TABLE {$table}" );
    105105        }
    106106    }
     
    229229                instawp_destroy_connect();
    230230            }
    231            
     231
    232232            delete_option( 'instawp_backup_part_size' );
    233233            delete_option( 'instawp_max_file_size_allowed' );
     
    246246            delete_option( 'instawp_last_heartbeat_sent' );
    247247            delete_option( 'instawp_is_staging' );
    248             delete_option( 'instawp_staging_sites' );
    249             delete_option( 'instawp_is_event_syncing' );
     248            delete_option( 'instawp_staging_sites' );
     249            delete_option( 'instawp_is_event_syncing' );
    250250
    251251            delete_transient( 'instawp_migration_completed' );
     
    369369        }
    370370
    371         $connect_id = instawp_get_connect_id();
    372         if ( empty( $connect_id ) ) {
    373             return false;
    374         }
     371        $connect_id = instawp_get_connect_id();
     372        if ( empty( $connect_id ) ) {
     373            return false;
     374        }
    375375
    376376        $api_response = Curl::do_curl( 'connects/' . $connect_id . '/staging-sites', array(), array(), 'GET' );
     
    391391            Option::update_option( 'instawp_staging_sites', $staging_sites );
    392392
    393             return true;
    394         }
    395 
    396         return false;
     393            return true;
     394        }
     395
     396        return false;
    397397    }
    398398}
     
    400400/**
    401401 * Get Migration headers
    402  * 
     402 *
    403403 * @param string $hash
    404  * 
     404 *
    405405 * @return array
    406406 */
     
    785785            $user_to_login = get_user_by( 'login', $username );
    786786            $message       = esc_html__( 'Login information for the given username', 'instawp-connect' );
     787        } elseif ( is_email( $username ) ) {
     788            $user_to_login = get_user_by( 'email', $username );
     789            $message       = esc_html__( 'Login information could not found with username, but found with the given email address.', 'instawp-connect' );
    787790        } elseif ( ! empty( $default_username = Option::get_option( 'instawp_default_username' ) ) && ! empty( $default_username ) ) {
    788791            $user_to_login = get_user_by( 'login', $default_username );
    789             $message       = esc_html__( 'Login information for the given username didn\'t found, You are going to login with default login username.', 'instawp-connect' );
     792            $message       = esc_html__( 'Login information for the given username/email didn\'t found, You are going to login with default login username.', 'instawp-connect' );
    790793        } else {
    791794            $admin_users   = get_users( array( 'role' => 'administrator' ) );
    792795            $user_to_login = is_array( $admin_users ) && isset( $admin_users[0] ) ? $admin_users[0] : false;
    793             $message       = esc_html__( 'No login found with given username and default username, You are going to login with first admin user.', 'instawp-connect' );
     796            $message       = esc_html__( 'No login found with given username/email and default username, You are going to login with first admin user.', 'instawp-connect' );
    794797        }
    795798
     
    806809
    807810if ( ! function_exists( 'instawp_get_user_by_token' ) ) {
    808     /**
    809     * @param $token
    810     *
    811     * @return \WP_User|null
    812     */
    813     function instawp_get_user_by_token( $token ) {
    814         $users = get_users( array(
    815             'meta_key'   => '_instawp_temporary_login_token',
    816             'meta_value' => $token,
    817         ) );
    818 
    819         if ( empty( $users ) ) {
    820             return null;
    821         }
    822 
    823         return $users[0];
    824     }
     811    /**
     812    * @param $token
     813    *
     814    * @return \WP_User|null
     815    */
     816    function instawp_get_user_by_token( $token ) {
     817        $users = get_users( array(
     818            'meta_key'   => '_instawp_temporary_login_token',
     819            'meta_value' => $token,
     820        ) );
     821
     822        if ( empty( $users ) ) {
     823            return null;
     824        }
     825
     826        return $users[0];
     827    }
    825828}
    826829
    827830if ( ! function_exists( 'instawp_is_user_login_expired' ) ) {
    828     function instawp_is_user_login_expired( $user_id ) {
    829         $expiration = get_user_meta( $user_id, '_instawp_temporary_login_expiration', true );
    830 
    831         if ( empty( $expiration ) ) {
    832             return true;
    833         }
    834 
    835         return time() > $expiration;
    836     }
     831    function instawp_is_user_login_expired( $user_id ) {
     832        $expiration = get_user_meta( $user_id, '_instawp_temporary_login_expiration', true );
     833
     834        if ( empty( $expiration ) ) {
     835            return true;
     836        }
     837
     838        return time() > $expiration;
     839    }
    837840}
    838841
    839842if ( ! function_exists( 'instawp_is_user_attempt_expired' ) ) {
    840     function instawp_is_user_attempt_expired( $user_id ) {
    841         $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
    842 
    843         if ( empty( $attempt ) ) {
    844             return true;
    845         }
    846 
    847         return $attempt <= 0;
    848     }
     843    function instawp_is_user_attempt_expired( $user_id ) {
     844        $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
     845
     846        if ( empty( $attempt ) ) {
     847            return true;
     848        }
     849
     850        return $attempt <= 0;
     851    }
    849852}
    850853
    851854if ( ! function_exists( 'instawp_reduce_login_attempt' ) ) {
    852     function instawp_reduce_login_attempt( $user_id ) {
    853         $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
    854 
    855         if ( empty( $attempt ) ) {
    856             return false;
    857         }
    858 
    859         --$attempt;
    860 
    861         return update_user_meta( $user_id, '_instawp_temporary_login_attempt', $attempt );
    862     }
     855    function instawp_reduce_login_attempt( $user_id ) {
     856        $attempt = get_user_meta( $user_id, '_instawp_temporary_login_attempt', true );
     857
     858        if ( empty( $attempt ) ) {
     859            return false;
     860        }
     861
     862        -- $attempt;
     863
     864        return update_user_meta( $user_id, '_instawp_temporary_login_attempt', $attempt );
     865    }
    863866}
    864867
    865868if ( ! function_exists( 'instawp_is_bot_request' ) ) {
    866     function instawp_is_bot_request() {
    867         $user_agent      = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
    868         $referer         = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
    869         $bot_user_agents = array(
    870             'googlebot',
    871             'bingbot',
    872             'slurp',
    873             'duckduckbot',
    874             'baiduspider',
    875             'yandexbot',
    876             'sogou',
    877             'exabot',
    878             'facebot',
    879             'ia_archiver',
    880             'mediapartners-google',
    881             'adsbot-google',
    882             'feedfetcher-google',
    883             'google-read-aloud',
    884             'google-structured-data-testing-tool',
    885             'googlebot-image',
    886             'googlebot-news',
    887             'googlebot-video',
    888             'bingpreview',
    889             'msnbot',
    890             'aolbuild',
    891             'ask jeeves',
    892             'fast-webcrawler',
    893             'gigablast',
    894             'infoseek',
    895             'inktomi',
    896             'looksmart',
    897             'lycos',
    898             'bingbot',
    899             'msnbot',
    900             'bingpreview',
    901             'facebookexternalhit',
    902             'linkedinbot',
    903             'twitterbot',
    904             'applebot',
    905             'petalbot',
    906             'mj12bot',
    907             'ahrefsbot',
    908             'semrushbot',
    909             'dotbot',
    910             'zoominfobot',
    911             'yandeximages',
    912             'yandexvideo',
    913             'yandeximages',
    914             'yandexmedia',
    915             'yandexblogs',
    916             'yandexfavicons',
    917             'yandexdirect',
    918             'yandexsearchshop',
    919             'yandexmetrika',
    920             'yandexnews',
    921             'yandexbrowser',
    922             'yandexmobile',
    923             'yandexreplay',
    924             'baidu',
    925             'baiduspider',
    926             'baiduimagespider',
    927             'baidunews',
    928             'baiduvideo',
    929             'baidutranscoder',
    930             'baidufed',
    931             'baidulocal',
    932             'baidumap',
    933             'baidutop',
    934             'baidumobile',
    935             'baiduapimonitor',
    936             'baidu-wapspider',
    937             'baidumoniitor',
    938             'sogou spider',
    939             'sogou inst spider',
    940             'sogou spider2',
    941             'sogou mobile spider',
    942             'sogou news spider',
    943             'sogou video spider',
    944             'exabot',
    945             'seznam',
    946             'seznambot',
    947             'seznam zbozi',
    948             'seznam-ppc-cz',
    949             'seznam-social',
    950             'seznam-tout',
    951             'seznam-dispute',
    952             'seznam-kr',
    953             'seznam-nachricht',
    954             'mojeekbot',
    955             'mojeek',
    956             'teoma',
    957             'gigabot',
    958             'gigabotfast',
    959             'gigabotvideo',
    960             'gigabotimage',
    961             'ia_archiver',
    962             'dotbot',
    963             'MJ12bot',
    964             'ahrefsbot',
    965             'semrushbot',
    966             'zoominfobot',
    967             'spinn3r',
    968             'aboundexbot',
    969             'curious george',
    970             'sitelock spider',
    971             'blexbot',
    972             'wotbox',
    973             'rogerbot',
    974             'embedly',
    975             'linkfluence',
    976             'backlink-crawler',
    977             'twitterbot',
    978             'redditbot',
    979             'pinterestbot',
    980             'slackbot',
    981             'whatsapp',
    982             'flipboard',
    983             'tumblr',
    984             'vkshare',
    985             'okhttp',
    986             'discordbot',
    987             'skypeuripreview',
    988             'telegrambot',
    989             'applebot',
    990             'scrapy',
    991             'phpscraper',
    992             'python-urllib',
    993             'lxml',
    994             'pycurl',
    995             'httpclient',
    996             'okhttp',
    997             'httpful',
    998             'guzzle',
    999             'httpclient',
    1000             'postman',
    1001             'curl',
    1002             'wget',
    1003             'python-requests',
    1004             'python-urllib',
    1005             'java',
    1006             'go-http-client',
    1007             'okhttp',
    1008             'perl',
    1009             'libwww-perl',
    1010             'mechanize',
    1011             'node-fetch',
    1012             'axios',
    1013             'httpie',
    1014             'requests',
    1015             'botify',
    1016             'deepcrawl',
    1017             'screaming frog',
    1018             'onpage.org',
    1019             'contentkingapp',
    1020             'ubermetrics',
    1021             'sitebulb',
    1022             'serpstatbot',
    1023             'audisto',
    1024             'seobility',
    1025             'siteanalyzer',
    1026             'seochatbot',
    1027             'linkdex',
    1028             'scrapybot',
    1029             'serpwoo',
    1030             'pythons',
    1031             'awario',
    1032             'monitorbacklinks',
    1033             'digg',
    1034             'bingpreview',
    1035             'aboundexbot',
    1036             'top100bot',
    1037             'topsy',
    1038             'tineye',
    1039             'proximic',
    1040             'gigablast',
    1041             'yacybot',
    1042             'everyone-webcrawler',
    1043             'nutch',
    1044             'commoncrawl',
    1045             'semanticbot',
    1046             'gocrawler',
    1047             'scrapy',
    1048             'scrapybot',
    1049             'curl',
    1050             'wget',
    1051             'python',
    1052             'php',
    1053             'perl',
    1054             'java',
    1055             'go-http-client',
    1056             'rust',
    1057             'dotbot',
    1058             'httpclient',
    1059             'axios',
    1060             'pycurl',
    1061             'okhttp',
    1062             'requests',
    1063             'guzzle',
    1064             'httpie',
    1065             'node-fetch',
    1066             'dart',
    1067             'ahrefsbot',
    1068             'semrushbot',
    1069             'dotbot',
    1070             'mj12bot',
    1071             'petalbot',
    1072             'zoominfobot',
    1073             'spinn3r',
    1074             'curious george',
    1075             'wotbox',
    1076             'blexbot',
    1077             'archive.org',
    1078             'ia_archiver',
    1079             'archive',
    1080             'crawler',
    1081         );
    1082         $known_domains   = array(
    1083             'facebook.com',
    1084             'twitter.com',
    1085             'linkedin.com',
    1086             'whatsapp.com',
    1087             'slack.com',
    1088             'telegram.org',
    1089             'discord.com',
    1090             'pinterest.com',
    1091         );
    1092 
    1093         foreach ( $bot_user_agents as $bot ) {
    1094             if ( stripos( $user_agent, $bot ) !== false ) {
    1095                 return true;
    1096             }
    1097         }
    1098 
    1099         foreach ( $known_domains as $domain ) {
    1100             if ( stripos( $referer, $domain ) !== false ) {
    1101                 return true;
    1102             }
    1103         }
    1104 
    1105         return false;
    1106     }
     869    function instawp_is_bot_request() {
     870        $user_agent      = isset( $_SERVER['HTTP_USER_AGENT'] ) ? $_SERVER['HTTP_USER_AGENT'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
     871        $referer         = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : ''; // phpcs:ignore WordPress.Security.ValidatedSanitizedInput.MissingUnslash, WordPress.Security.ValidatedSanitizedInput.InputNotSanitized
     872        $bot_user_agents = array(
     873            'googlebot',
     874            'bingbot',
     875            'slurp',
     876            'duckduckbot',
     877            'baiduspider',
     878            'yandexbot',
     879            'sogou',
     880            'exabot',
     881            'facebot',
     882            'ia_archiver',
     883            'mediapartners-google',
     884            'adsbot-google',
     885            'feedfetcher-google',
     886            'google-read-aloud',
     887            'google-structured-data-testing-tool',
     888            'googlebot-image',
     889            'googlebot-news',
     890            'googlebot-video',
     891            'bingpreview',
     892            'msnbot',
     893            'aolbuild',
     894            'ask jeeves',
     895            'fast-webcrawler',
     896            'gigablast',
     897            'infoseek',
     898            'inktomi',
     899            'looksmart',
     900            'lycos',
     901            'bingbot',
     902            'msnbot',
     903            'bingpreview',
     904            'facebookexternalhit',
     905            'linkedinbot',
     906            'twitterbot',
     907            'applebot',
     908            'petalbot',
     909            'mj12bot',
     910            'ahrefsbot',
     911            'semrushbot',
     912            'dotbot',
     913            'zoominfobot',
     914            'yandeximages',
     915            'yandexvideo',
     916            'yandeximages',
     917            'yandexmedia',
     918            'yandexblogs',
     919            'yandexfavicons',
     920            'yandexdirect',
     921            'yandexsearchshop',
     922            'yandexmetrika',
     923            'yandexnews',
     924            'yandexbrowser',
     925            'yandexmobile',
     926            'yandexreplay',
     927            'baidu',
     928            'baiduspider',
     929            'baiduimagespider',
     930            'baidunews',
     931            'baiduvideo',
     932            'baidutranscoder',
     933            'baidufed',
     934            'baidulocal',
     935            'baidumap',
     936            'baidutop',
     937            'baidumobile',
     938            'baiduapimonitor',
     939            'baidu-wapspider',
     940            'baidumoniitor',
     941            'sogou spider',
     942            'sogou inst spider',
     943            'sogou spider2',
     944            'sogou mobile spider',
     945            'sogou news spider',
     946            'sogou video spider',
     947            'exabot',
     948            'seznam',
     949            'seznambot',
     950            'seznam zbozi',
     951            'seznam-ppc-cz',
     952            'seznam-social',
     953            'seznam-tout',
     954            'seznam-dispute',
     955            'seznam-kr',
     956            'seznam-nachricht',
     957            'mojeekbot',
     958            'mojeek',
     959            'teoma',
     960            'gigabot',
     961            'gigabotfast',
     962            'gigabotvideo',
     963            'gigabotimage',
     964            'ia_archiver',
     965            'dotbot',
     966            'MJ12bot',
     967            'ahrefsbot',
     968            'semrushbot',
     969            'zoominfobot',
     970            'spinn3r',
     971            'aboundexbot',
     972            'curious george',
     973            'sitelock spider',
     974            'blexbot',
     975            'wotbox',
     976            'rogerbot',
     977            'embedly',
     978            'linkfluence',
     979            'backlink-crawler',
     980            'twitterbot',
     981            'redditbot',
     982            'pinterestbot',
     983            'slackbot',
     984            'whatsapp',
     985            'flipboard',
     986            'tumblr',
     987            'vkshare',
     988            'okhttp',
     989            'discordbot',
     990            'skypeuripreview',
     991            'telegrambot',
     992            'applebot',
     993            'scrapy',
     994            'phpscraper',
     995            'python-urllib',
     996            'lxml',
     997            'pycurl',
     998            'httpclient',
     999            'okhttp',
     1000            'httpful',
     1001            'guzzle',
     1002            'httpclient',
     1003            'postman',
     1004            'curl',
     1005            'wget',
     1006            'python-requests',
     1007            'python-urllib',
     1008            'java',
     1009            'go-http-client',
     1010            'okhttp',
     1011            'perl',
     1012            'libwww-perl',
     1013            'mechanize',
     1014            'node-fetch',
     1015            'axios',
     1016            'httpie',
     1017            'requests',
     1018            'botify',
     1019            'deepcrawl',
     1020            'screaming frog',
     1021            'onpage.org',
     1022            'contentkingapp',
     1023            'ubermetrics',
     1024            'sitebulb',
     1025            'serpstatbot',
     1026            'audisto',
     1027            'seobility',
     1028            'siteanalyzer',
     1029            'seochatbot',
     1030            'linkdex',
     1031            'scrapybot',
     1032            'serpwoo',
     1033            'pythons',
     1034            'awario',
     1035            'monitorbacklinks',
     1036            'digg',
     1037            'bingpreview',
     1038            'aboundexbot',
     1039            'top100bot',
     1040            'topsy',
     1041            'tineye',
     1042            'proximic',
     1043            'gigablast',
     1044            'yacybot',
     1045            'everyone-webcrawler',
     1046            'nutch',
     1047            'commoncrawl',
     1048            'semanticbot',
     1049            'gocrawler',
     1050            'scrapy',
     1051            'scrapybot',
     1052            'curl',
     1053            'wget',
     1054            'python',
     1055            'php',
     1056            'perl',
     1057            'java',
     1058            'go-http-client',
     1059            'rust',
     1060            'dotbot',
     1061            'httpclient',
     1062            'axios',
     1063            'pycurl',
     1064            'okhttp',
     1065            'requests',
     1066            'guzzle',
     1067            'httpie',
     1068            'node-fetch',
     1069            'dart',
     1070            'ahrefsbot',
     1071            'semrushbot',
     1072            'dotbot',
     1073            'mj12bot',
     1074            'petalbot',
     1075            'zoominfobot',
     1076            'spinn3r',
     1077            'curious george',
     1078            'wotbox',
     1079            'blexbot',
     1080            'archive.org',
     1081            'ia_archiver',
     1082            'archive',
     1083            'crawler',
     1084        );
     1085        $known_domains   = array(
     1086            'facebook.com',
     1087            'twitter.com',
     1088            'linkedin.com',
     1089            'whatsapp.com',
     1090            'slack.com',
     1091            'telegram.org',
     1092            'discord.com',
     1093            'pinterest.com',
     1094        );
     1095
     1096        foreach ( $bot_user_agents as $bot ) {
     1097            if ( stripos( $user_agent, $bot ) !== false ) {
     1098                return true;
     1099            }
     1100        }
     1101
     1102        foreach ( $known_domains as $domain ) {
     1103            if ( stripos( $referer, $domain ) !== false ) {
     1104                return true;
     1105            }
     1106        }
     1107
     1108        return false;
     1109    }
    11071110}
    11081111
     
    12561259
    12571260if ( ! function_exists( 'instawp_connect_activate_plan' ) ) {
    1258     function instawp_connect_activate_plan( $plan_id ) {
    1259         $connect_id = instawp_get_connect_id();
     1261    function instawp_connect_activate_plan( $plan_id ) {
     1262        $connect_id = instawp_get_connect_id();
    12601263        if ( empty( $connect_id ) ) {
    12611264            return array(
     
    12651268        }
    12661269
    1267         $response = Curl::do_curl( "connects/{$connect_id}/subscribe", array(
    1268             'plan_id' => $plan_id,
    1269         ) );   
    1270 
    1271         if ( empty( $response['success'] ) ) {
    1272             return array(
    1273                 'success' => false,
    1274                 'message' => $response['message'],
    1275             );
    1276         }
     1270        $response = Curl::do_curl( "connects/{$connect_id}/subscribe", array(
     1271            'plan_id' => $plan_id,
     1272        ) );
     1273
     1274        if ( empty( $response['success'] ) ) {
     1275            return array(
     1276                'success' => false,
     1277                'message' => $response['message'],
     1278            );
     1279        }
    12771280
    12781281        Option::update_option( 'instawp_connect_plan_id', $plan_id );
     
    12821285        }
    12831286
    1284         return array(
     1287        return array(
    12851288            'success' => true,
    12861289            'message' => __( 'Plan activated successfully', 'instawp-connect' ),
    12871290        );
    1288     }
     1291    }
    12891292}
    12901293
    12911294
    12921295if ( ! function_exists( 'instawp_destroy_connect' ) ) {
    1293     function instawp_destroy_connect( $mode = 'disconnect' ) {
    1294         $connect_id = instawp_get_connect_id();
    1295         if ( empty( $connect_id ) ) {
    1296             return array(
    1297                 'success' => false,
    1298                 'message' => __( 'Connect ID not found', 'instawp-connect' ),
    1299             );
    1300         }
     1296    function instawp_destroy_connect( $mode = 'disconnect' ) {
     1297        $connect_id = instawp_get_connect_id();
     1298        if ( empty( $connect_id ) ) {
     1299            return array(
     1300                'success' => false,
     1301                'message' => __( 'Connect ID not found', 'instawp-connect' ),
     1302            );
     1303        }
    13011304
    13021305        if ( $mode === 'delete' ) {
     
    13061309        }
    13071310
    1308         if ( empty( $api_response['success'] ) ) {
    1309             return array(
    1310                 'success' => false,
    1311                 'message' => $api_response['message'],
    1312             );
    1313         }
    1314 
    1315         return array(
    1316             'success' => true,
    1317             'message' => __( 'Connect disconnected successfully', 'instawp-connect' ),
    1318         );
    1319     }
     1311        if ( empty( $api_response['success'] ) ) {
     1312            return array(
     1313                'success' => false,
     1314                'message' => $api_response['message'],
     1315            );
     1316        }
     1317
     1318        return array(
     1319            'success' => true,
     1320            'message' => __( 'Connect disconnected successfully', 'instawp-connect' ),
     1321        );
     1322    }
    13201323}
    13211324
    13221325if ( ! function_exists( 'instawp_is_connected_origin_valid' ) ) {
    1323     function instawp_is_connected_origin_valid() {
     1326    function instawp_is_connected_origin_valid() {
    13241327        $connect_origin = Helper::get_connect_origin();
    1325         $current_url    = Helper::wp_site_url();
     1328        $current_url    = Helper::wp_site_url();
    13261329
    13271330        if ( ! empty( $connect_origin ) ) {
    13281331            return hash_equals( $connect_origin, md5( $current_url ) );
    13291332        }
    1330         return true;
    1331     }
    1332 }
     1333
     1334        return true;
     1335    }
     1336}
  • instawp-connect/trunk/instawp-connect.php

    r3250876 r3252174  
    88 * Plugin Name:       InstaWP Connect
    99 * Description:       1-click WordPress plugin for Staging, Migrations, Management, Sync and Companion plugin for InstaWP.
    10  * Version:           0.1.0.82
     10 * Version:           0.1.0.83
    1111 * Author:            InstaWP Team
    1212 * Author URI:        https://instawp.com/
     
    2828global $wpdb;
    2929
    30 defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.82' );
     30defined( 'INSTAWP_PLUGIN_VERSION' ) || define( 'INSTAWP_PLUGIN_VERSION', '0.1.0.83' );
    3131defined( 'INSTAWP_API_DOMAIN_PROD' ) || define( 'INSTAWP_API_DOMAIN_PROD', 'https://app.instawp.io' );
    3232
     
    121121    InstaWP_Tools::instawp_reset_permalink();
    122122    Option::delete_option( 'instawp_last_heartbeat_sent' );
     123    Option::delete_option( 'instawp_migration_details' );
    123124
    124125    $connect_id = instawp_get_connect_id();
     
    155156
    156157run_instawp();
    157 
  • instawp-connect/trunk/migrate/templates/main.php

    r3218292 r3252174  
    2121}
    2222
    23 if ( ! empty( $_GET['debug'] ) && current_user_can( 'manage_options' ) ) {
    24     $file_path = INSTAWP_PLUGIN_DIR . '/migrate/templates/debug/' . sanitize_text_field( wp_unslash( $_GET['debug'] ) ) . '.php';
     23/**
     24 * Jaed and Sayan discussed and made the decision to remove this functionality.
     25 *
     26 * If there is no requirement comes in the future, we will permanently delete this with the associates files.
     27 */
    2528
    26     if ( file_exists( $file_path ) ) {
    27         include $file_path;
    28 
    29         return;
    30     }
    31 }
     29//if ( ! empty( $_GET['debug'] ) && current_user_can( 'manage_options' ) ) {
     30//  $file_path = INSTAWP_PLUGIN_DIR . '/migrate/templates/debug/' . sanitize_file_name( wp_unslash( $_GET['debug'] ) ) . '.php';
     31//
     32//  if ( file_exists( $file_path ) ) {
     33//      include $file_path;
     34//
     35//      return;
     36//  }
     37//}
    3238
    3339$connect_classes = array();
  • instawp-connect/trunk/readme.txt

    r3250876 r3252174  
    55Tested up to: 6.7
    66Requires PHP: 7.0
    7 Stable tag: 0.1.0.82
     7Stable tag: 0.1.0.83
    88License: GPLv3 or later
    99License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
     
    9999== Changelog ==
    100100
    101 = 0.1.0.82 - 5 March 2025 =
     101= 0.1.0.83 - 07 March 2025 =
     102- NEW: Added plugin deactivation warning while there is a migration in progress.
     103- NEW: Added migration in progress notification on the top admin bar.
     104- FIX: Removed un-used codes.
     105- FIX: Added email support on magic login api.
     106
     107= 0.1.0.82 - 05 March 2025 =
    102108- FIX: Optimized query for fetching sync events.
    103109- FIX: Fixed post migration cleanup for auto migration of demo site.
Note: See TracChangeset for help on using the changeset viewer.