From ff5fb920b29d7848d9717535c3fa6b83659fa700 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 14:16:17 +0000 Subject: [PATCH 01/21] chore: add missing tailwind colors --- tailwind.config.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tailwind.config.js b/tailwind.config.js index c9e8e8f61a..101cb0b195 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -49,6 +49,7 @@ module.exports = { hover: "#990c1a", border: "#6a0812", mellow: "#df3034", + 300: "#D74D42", }, white: { default: "#FFF", @@ -100,6 +101,7 @@ module.exports = { hover: "#00692f", border: "#003618", green: "#006435", + 300: "#29A35A", }, black: { default: "#000", From 3e3a32e2ead50af404b5ed849b61b5ce730c3814 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 14:17:11 +0000 Subject: [PATCH 02/21] style(daily limits widget): add new css rules for component --- app/assets/stylesheets/index.css | 2 +- .../components/remaining-messages.css | 34 +++++++++++++++++++ app/assets/stylesheets/tailwind/style.css | 1 + 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 app/assets/stylesheets/tailwind/components/remaining-messages.css diff --git a/app/assets/stylesheets/index.css b/app/assets/stylesheets/index.css index aac8a22643..0f4fa6444f 100644 --- a/app/assets/stylesheets/index.css +++ b/app/assets/stylesheets/index.css @@ -1 +1 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code{font-family:monospace,monospace;font-size:1em}sub{bottom:-.25em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:lato;line-height:1.5}*,:after,:before{border:0 solid #afb9c3;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,pre{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}.container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:320px){.container{max-width:320px}}@media (min-width:375px){.container{max-width:375px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}.contain-floats:after{clear:both;content:"";display:block}a,abbr,acronym,address,aside,b,big,blockquote,caption,center,code,dd,details,div,dl,dt,em,embed,fieldset,figure,footer,form,h1,h2,h3,header,i,img,label,legend,li,mark,menu,nav,ol,output,p,pre,q,s,section,span,strike,strong,sub,summary,table,tbody,td,th,thead,time,tr,tt,u,ul,var{margin:0;padding:0}b,blockquote,caption,center,h1,h2,h3,i,input,p,pre,strike,strong,sub,table,tbody,td,textarea,th,thead,tr,tt,u,var{font-family:inherit;font-size:inherit;font-weight:400;line-height:inherit}abbr[title],acronym[title]{text-decoration:none}legend{box-sizing:border-box;display:table;max-width:100%;overflow:hidden}details{clear:both;display:block}details summary{--text-opacity:1;border-color:#213045;color:#213045;color:rgba(33,48,69,var(--text-opacity));cursor:pointer;display:inline-block;margin-bottom:1.5rem;padding-left:25px;position:relative;text-decoration:underline}details summary:before{border-color:transparent;border-left-color:inherit;border-style:solid;border-width:7px 0 7px 12.124px;bottom:0;-webkit-clip-path:polygon(0 0,100% 50%,0 100%);clip-path:polygon(0 0,100% 50%,0 100%);content:"";display:block;height:0;left:0;margin:auto;position:absolute;top:0;width:0}details summary:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}details summary:focus{outline:3px solid #ffbf47;outline-offset:0}summary::-moz-details-marker,summary::-ms-details-marker,summary::-o-details-marker,summary::-webkit-details-marker,summary::details-marker{display:none}details summary::-webkit-details-marker{display:none}details[open]>summary:before{border-color:transparent;border-style:solid;border-top-color:inherit;border-width:12.124px 7px 0;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);display:block;height:0;width:0}details[open]:not(:last-child){margin-bottom:1.5rem}details .arrow{display:none;font-size:1.6rem}details [id^=details-content]{box-shadow:inset 5px 0 0 #b5babe;padding-left:25px}fieldset.after-error-summary{margin-top:-15px}@media (min-width:640px){fieldset.after-error-summary{margin-top:-30px}}textarea{display:block}.form-label,.form-label-bold{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;padding-bottom:2px}.form-label{font-weight:400}.form-label,.form-label.heading-small{font-size:1.9rem;line-height:1.25;margin-bottom:.5rem}.form-label.heading-small{font-weight:700;margin-top:0}.form-label+.hint{display:block;margin-bottom:.5rem;margin-top:-5px}.form-label-bold{font-weight:700}.form-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:1.9rem;font-weight:400;line-height:1.25;margin-top:-2px;padding-bottom:2px}.form-label .form-hint,.form-label-bold .form-hint{margin-top:0;padding-bottom:0}.input{border-color:#000;border-style:solid;border-width:2px;font-size:1.9rem;padding:.75rem .5rem}.form-control{--border-opacity:1;border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));box-sizing:border-box;font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.25;padding:5px 4px 4px;width:100%}@media (min-width:768px){.form-control{width:50%}.form-control.form-control-1-1{width:100%}}.form-control-5em{width:100%}@media (min-width:768px){.form-control-5em{width:5em}}input.form-control,textarea.form-control{-webkit-appearance:none;border-radius:0}textarea.form-control{background-image:none;opacity:1}option:active,option:checked,select:focus::-ms-value{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}#add_template_by_template_type legend{font-size:1.2em;font-weight:700}.multiple-choice{clear:left;display:block;float:none;margin-bottom:1rem;padding:0;padding-left:38px;position:relative}@media (min-width:640px){.multiple-choice{float:left}}.multiple-choice [type=checkbox],.multiple-choice [type=radio]{cursor:pointer;height:38px;left:0;opacity:0;outline:2px solid transparent;outline-offset:2px;position:absolute;top:0;width:38px;z-index:1}.multiple-choice>label{cursor:pointer;display:block;padding:8px 15px 9px 12px;touch-action:manipulation}@media (min-width:640px){.mutiple-choice label{float:left;padding-bottom:7px;padding-top:7px}}.multiple-choice [type=radio]+label:before{--border-opacity:1;background-color:transparent;border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));border-radius:50%;box-sizing:content-box;content:"";height:34px;left:0;position:absolute;top:0;width:34px}.multiple-choice [type=radio]+label:after{--border-opacity:1;border:10px solid #000;border-color:rgba(0,0,0,var(--border-opacity));border-radius:50%;content:"";height:0;left:9px;opacity:0;position:absolute;top:9px;width:0}.multiple-choice [type=checkbox]+label:before{border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));height:34px;left:0;top:0;width:34px}.multiple-choice [type=checkbox]+label:after,.multiple-choice [type=checkbox]+label:before{--border-opacity:1;background-color:transparent;box-sizing:content-box;content:"";position:absolute}.multiple-choice [type=checkbox]+label:after{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;--transform-rotate:-45deg;border-style:solid;border-top-color:transparent;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity));border-width:0 0 5px 5px;height:7px;left:8px;opacity:0;top:10px;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));width:17px}.multiple-choice [type=radio]:focus+label:before{box-shadow:0 0 0 4px #ffbf47}.multiple-choice [type=checkbox]:focus+label:before{box-shadow:0 0 0 3px #ffbf47}.multiple-choice input:checked+label:after{opacity:1}.multiple-choice input:disabled{cursor:default}.multiple-choice input:disabled+label{opacity:.5}.multiple-choice:last-child,.multiple-choice:last-of-type{margin-bottom:0}.inline .multiple-choice{clear:none}@media (min-width:640px){.inline .multiple-choice{margin-bottom:0;margin-right:3rem}}.form-group{margin-bottom:1rem}.form-group-error{--border-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-left-width:4px;margin-right:1rem;padding-left:1rem}@media (min-width:768px){.form-group-error{border-left-width:5px;padding-left:1.5rem}}.form-control-error{--border-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-width:4px}.error-message{--text-opacity:1;clear:both;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:block;font-size:1.9rem;font-size:2rem;font-weight:700;line-height:1.25;margin:0;padding:2px 0}.form-label .error-message,.form-label-bold .error-message{padding-bottom:0;padding-top:4px}ol,ul{list-style-type:none}.list{margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0}.list li{margin-bottom:.5rem}.list-bullet{list-style-type:disc;padding-left:2rem}.list-bullet .list-bullet{list-style:circle}ol.list-custom{counter-reset:list-counter 0}ol.list-custom li{counter-increment:list-counter}ol.list-custom li:before{content:var(--prefix,"") " " counter(list-counter) var(--suffix,". ");display:list-item;font-weight:700}.list ul{list-style-type:circle}.list ul ul{list-style-type:square}.panel{--border-opacity:1;border-left:solid;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));box-sizing:border-box;clear:both;margin-bottom:.7895em;padding:.7895em}.panel:first-child{margin-top:0}.panel:last-child,.panel:only-child{margin-bottom:0}.panel-border-wide{border-left-width:10px}.panel-container{display:flex;flex-direction:column;margin-bottom:3rem;width:100%}@media (min-width:1024px){.panel-container{flex-direction:row}}.panel-container>*{--border-opacity:1;border:1px solid #c0c1c3;border-color:rgba(192,193,195,var(--border-opacity));display:inline-block;flex:1 1 0%;min-width:200px;padding:1em}.panel-preview{margin-left:0;margin-top:1.5rem}@media (min-width:1024px){.panel-preview{margin-left:1.5rem;margin-top:0}}.panel-container>.panel-input{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-left-width:24px}.panel-container h3{margin-top:0}.panel-preview ol li,.panel-preview ul li{margin-bottom:.5rem;margin-top:.5rem}.grid-row{margin-bottom:0;margin-left:-1.5rem;margin-right:-1.5rem;margin-top:0}.align-with-heading{display:block;margin-top:13px;padding-left:2px;padding-right:2px;text-align:center}.align-with-heading-copy{display:block;margin-top:25px}.align-with-heading-copy-right{display:block;margin-bottom:19px;margin-left:0;margin-right:0;margin-top:21px;text-align:right}main{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.375}p{line-height:1.5em;margin-bottom:1.25em;margin-top:.3125em;max-width:80ch}p+p{margin-top:2.25em}@media (min-width:640px){p{margin-bottom:1.0526em;margin-top:.0658em}}a{-webkit-tap-highlight-color:rgba(0,0,0,.3);border-bottom-width:2px;border-color:transparent;text-decoration:underline}a:link,a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}a:focus{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:2px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));outline:2px solid transparent;outline-offset:2px;text-decoration:none}a:link:focus{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}a[target=_blank]:after{clip:rect(0,0,0,0);border-width:0;content:var(--opens-in-new-tab);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[class*=delete-link] a:link,[class*=delete-link] a:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}[class*=delete-link] a:active,[class*=delete-link] a:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}[class*=delete-link] a:focus{--border-opacity:1;--text-opacity:1;border-color:#df3034;border-color:rgba(223,48,52,var(--border-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}.heading-small,.page-content h3{display:block;font-family:lato;font-size:1.9rem;font-weight:700;line-height:1.25;margin-bottom:1.0526em;margin-top:2.3684em}@media (min-width:768px){.heading-small,.page-content h3{margin-top:2.3684em;max-width:80ch}}.heading-medium,.page-content h2{display:block;font-family:lato;font-size:2rem;font-weight:700;line-height:1.25;margin-bottom:.5em;margin-top:1.25em;margin-top:3rem}@media (min-width:640px){.heading-medium,.page-content h2{font-size:2.4rem;margin-bottom:.8333em;margin-top:1.875em}}.heading-large,.page-content h1,.page-content.home h2{display:block;font-family:lato;font-size:3.6rem;font-weight:700;line-height:1.111;margin-bottom:.4167em;margin-top:.2em}.heading-large .heading-secondary{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:2.4rem;line-height:1.25;padding-bottom:6px;padding-top:9px}@media (min-width:768px){.heading-large,.page-content h1,.page-content.home h2{margin-bottom:.5556em;margin-top:.25em}.heading-large .heading-secondary{padding-bottom:4px;padding-top:6px}}.heading-xlarge{margin-bottom:2rem}.heading-upcoming-jobs{margin-top:1.5rem}main{font-family:Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.product-page-intro h1{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}hr{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));border-width:0;display:block;height:1px;margin-bottom:3rem;margin-top:3rem;padding:0}b,strong{font-weight:700}.w-max-content{width:-moz-max-content;width:max-content}.placeholder,.placeholder-conditional,.placeholder-no-brackets{word-wrap:break-word;--bg-opacity:1;--text-opacity:1;word-wrap:break-word;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-radius:20px;box-shadow:inset .47em 0 0 0 #fff,inset -.47em 0 0 0 #fff,inset 0 -.15em 0 0 #fff,inset 0 .15em 0 0 #fff;color:#000;color:rgba(0,0,0,var(--text-opacity));display:inline;overflow-wrap:break-word}.sms-message-wrapper .placeholder,.sms-message-wrapper .placeholder-no-brackets{box-shadow:inset .47em 0 0 0 #dee0e2,inset -.47em 0 0 0 #dee0e2,inset 0 -.18em 0 0 #dee0e2,inset 0 .18em 0 0 #dee0e2}.placeholder-no-brackets{border-radius:1px;box-shadow:inset 0 -.1em 0 0 #fff,inset 0 .1em 0 0 #fff;padding-left:3px;padding-right:3px}.placeholder-conditional{border-radius:0;border-bottom-left-radius:20px;border-bottom-right-radius:8px;border-top-left-radius:20px;border-top-right-radius:8px;box-shadow:inset .47em 0 0 0 #fff,inset -.89em 0 0 0 #fff,inset 0 -.16em 0 0 #fff,inset 0 .16em 0 0 #fff}.sms-message-wrapper .placeholder-conditional{box-shadow:inset .47em 0 0 0 #dee0e2,inset -.89em 0 0 0 #dee0e2,inset 0 -.18em 0 0 #dee0e2,inset 0 .18em 0 0 #dee0e2}.placeholder-redacted{background-color:currentColor;box-shadow:inset 0 -.35em 0 0 #fff;opacity:.8;padding-bottom:0;padding-left:.5em;padding-right:.5em;padding-top:0;position:relative;top:.1em}.sms-message-wrapper .placeholder-redacted{box-shadow:inset 0 -.35em 0 0 #dee0e2}:focus+p .sms-message-wrapper .placeholder-redacted{box-shadow:inset 0 -.35em 0 0 #ffbf47}.autocomplete__input{z-index:5}.autocomplete__input--focused{outline-color:#ffbf47}.banner,.banner-default,.banner-default-with-tick,.banner-with-tick{--border-opacity:1;--text-opacity:1;border:4px solid #00672f;border-color:rgba(0,103,47,var(--border-opacity));clear:both;color:#00672f;color:rgba(0,103,47,var(--text-opacity));display:block;font-size:1.9rem;font-weight:700;line-height:1.25;margin:3rem 0 1.5rem;padding:1.5rem;position:relative;text-align:left}.banner-default-with-tick:focus,.banner:focus{outline:3px solid #ffbf47;outline-offset:0}.banner-dangerous{--border-opacity:1;--text-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));margin-top:1.5rem}.banner-dangerous p{margin-bottom:1.5rem;margin-top:1.5rem}.banner-dangerous p:last-child{margin-bottom:0}.banner-dangerous p:first-child{margin-top:0}.banner-title{border-style:none;font-size:2.4rem;font-weight:700;padding-left:0}.banner-default-with-tick,.banner-with-tick{background-image:url(/static/images/tick.svg);background-position:15px 15px;background-repeat:no-repeat;background-size:19px;padding:1.5rem 4.5rem}.banner-list-bullet{font-weight:400;margin-bottom:0}.column-main .heading-large,.column-main>.heading-medium{word-wrap:break-word;margin:1.5rem 0 2rem;overflow-wrap:break-word}.column-main .heading-large.top-gutter-0,.column-main>.heading-medium.top-gutter-0{margin-top:0}#content{outline:2px solid transparent;outline-offset:2px;padding-bottom:3rem}@media (min-width:768px){#content{padding-bottom:90px}}#content,.global-cookie-message p{margin:0 1.5rem;max-width:960px}@media (min-width:768px){#content,.global-cookie-message p{margin-left:3rem;margin-right:3rem}}@media (min-width:1024px){#content,.global-cookie-message p{margin-left:auto;margin-right:auto}}#content.home-page-content{margin-left:0;margin-right:0;max-width:none;padding-bottom:0}footer #footer-primary a:link,footer #footer-primary a:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}footer #footer-primary a img,footer #footer-primary a:focus,footer #footer-secondary a:link,footer #footer-secondary a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}footer #footer-primary a img{content:url(/static/images/external-white.svg)}footer #footer-primary a:focus img{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));content:url(/static/images/external.svg)}@media (min-width:1024px){footer #footer-secondary li{align-items:center;display:flex}footer #footer-secondary li:not(:last-child) .separator{height:4px;line-height:0;padding-left:1.5rem;padding-right:1.5rem}}.page-footer{margin-bottom:3rem;position:relative}.page-footer-delete-link{margin-left:1.5rem}.page-footer-delete-link a:link,.page-footer-delete-link a:visited{--text-opacity:1;border-color:transparent;border-width:2px;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:inline-block;padding:.25rem;vertical-align:center}.page-footer-delete-link a:active,.page-footer-delete-link a:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}.page-footer-delete-link a:focus{--border-opacity:1;--text-opacity:1;border-color:#df3034;border-color:rgba(223,48,52,var(--border-opacity));border-width:2px;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.page-footer-delete-link-without-button{display:inline-block;font-size:1.9rem;line-height:1.25;margin-left:0}.page-footer-secondary-link{display:block;margin-top:3rem;width:-moz-max-content;width:max-content}.page-footer-right-aligned-link{position:absolute;right:0;top:10px}.page-footer .button{margin-right:1rem}.page-footer .js-cancel{margin:0}.table,table{border-collapse:collapse;border-spacing:0;margin-bottom:3rem;width:100%}table td,table th{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;font-size:1.9rem;line-height:1.25;padding:.632em 1.05em .4743em 0;text-align:left}thead th{font-weight:700}.table-field-heading:last-child,td:last-child,th:last-child{padding-right:0!important}table .numeric{text-align:right}td.numeric{font-family:Noto Sans,Arial,sans-serif}table caption{text-align:left}.table-font-xsmall td.table-field-index,.table-font-xsmall th{font-weight:700}.table-font-xsmall td{font-weight:400}.table-font-xsmall td,.table-font-xsmall th{font-size:1.6rem;line-height:1.25;padding:.75em 1.25em .5625em 0}td{vertical-align:top}.table-heading{margin:1.5rem 0;text-align:left}.table-row-group{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;border-width:1px 0}.dashboard-table .heading-medium{margin-bottom:.5rem}.dashboard-table .table{table-layout:fixed}.dashboard-table .table-field-headings th{font-size:1px}.dashboard-table .table-field-headings-visible th{padding-bottom:.5rem}.dashboard-table .table-row th{display:table-cell;font-weight:400;width:52.5%}.settings-table table{margin-bottom:.5rem;table-layout:fixed}.settings-table th:first-child{width:35%}.settings-table th:last-child{width:17.5%}.settings-table td.table-field-left-aligned:first-child div{white-space:normal}.settings-table td.table-field-left-aligned ul li{margin-bottom:.5rem}.settings-table .table-heading{margin-bottom:2rem}.table-field{vertical-align:top}.table-field-index{font-size:1.9rem;font-weight:700;line-height:1.25;position:relative;width:15px}.table-field-index a:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.table-field-index a:focus:before{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));z-index:-1}.table-field p{margin:0 0 .5rem}.table-field-error{--border-opacity:1;border:solid #b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-width:0 0 0 4px;padding-left:7px}.table-field-noborder{border-width:0}.table-field-headings th{padding:1px}.table-field-headings-visible{height:auto}.table-field-headings-visible th{padding:.75em 1.25em .5625em 0}.table-field-headings th,.table-field-headings-visible th{font-size:1.9rem;font-weight:700;line-height:1.25}.dashboard-table .table-field-heading-first,.dashboard-table .table-field-headings-first,.dashboard-table .table-field-headings-visible-first{width:52.5%}.table+.table-show-more-link{margin-top:-30px}.table-field-error-label{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:block;font-weight:700}.table-field-invisible-error{border:solid transparent;border-width:0 0 0 4px;display:block;padding-left:7px}.table-field-status-default{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.table-field-status-error{font-weight:700}.table-field-status-error,.table-field-status-error .status-hint,.table-field-status-error a:link,.table-field-status-error a:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.table-field-status-error .status-hint{display:block;font-weight:400;margin-top:.5rem}.table-field-status-no,.table-field-status-yes{background-position:50% 50%;background-repeat:no-repeat;background-size:19px;display:block;text-indent:-999em}.table-field-status-yes{background-image:url(/static/images/tick.svg)}.table-field-right-aligned{text-align:right}.table-field-heading-right-aligned{display:block;text-align:right}.table-field-right-aligned a{position:relative}.table-field-right-aligned a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.table-field-right-aligned a:active,.table-field-right-aligned a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.table-field-right-aligned a:active:before,.table-field-right-aligned a:focus:before{--border-opacity:1;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity));border-style:solid;border-width:15px 3px 15px 15px;right:-3px}.table-empty-message,.table-no-data{--text-opacity:1;--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;border-width:1px 0;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;line-height:1.25;padding-bottom:.5625em;padding-left:0;padding-right:0;padding-top:.75em}.table-no-data{margin-bottom:4rem;margin-top:1rem}.table-show-more-link{--text-opacity:1;--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;font-weight:400;line-height:1.25;margin-bottom:4rem;padding:1rem 0;text-align:center}a.table-show-more-link{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.wide-left-hand-column{display:block;max-width:560px}.truncate-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.do-not-truncate-text{white-space:normal!important}.spreadsheet thead{-webkit-user-select:none;-moz-user-select:none;user-select:none}.spreadsheet .table{margin-bottom:0}.spreadsheet .table-field-index,.spreadsheet th{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity));font-weight:700;text-align:center}.spreadsheet td,.spreadsheet th{--border-opacity:1;border:1px solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));padding-left:1rem;padding-right:1rem}.spreadsheet td{border-top-width:0;min-width:194px - 11px}.spreadsheet td:first-child{min-width:auto}.spreadsheet .fullscreen-fixed-table{z-index:1000}.spreadsheet .fullscreen-fixed-table .table-field-heading-first{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity))}.body-copy-table table td,.body-copy-table table th{word-wrap:break-word;font-size:1.9rem;font-weight:400;line-height:1.25;overflow-wrap:break-word}.body-copy-table table thead th{font-size:1.9rem;font-weight:700;line-height:1.25}.preview-banner a,header a:hover{text-decoration:underline!important}header a:focus:visited,header a:link,header a:link:focus,header a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));text-decoration:none}a:focus #live-banner,a:hover #live-banner{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}.navigation{padding:0}.navigation-service{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;font-size:0;margin:0 0 1rem;position:relative}.navigation-service-name{display:inline-block;font-weight:700;max-width:50%;padding-left:0}.navigation-service-name,.navigation-service-switch{font-size:1.9rem;line-height:1.25;padding-bottom:11px;padding-right:0;padding-top:14px}.navigation-service-switch{font-weight:400;padding-left:1.5rem;position:absolute;right:0;text-align:right;top:0}.navigation-service-switch:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation-service-switch:focus{--border-opacity:1;--text-opacity:1;border-bottom:1px;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity));border-left-width:10px;border-right-width:3px;border-style:solid;color:#000;color:rgba(0,0,0,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;right:-3px}.navigation-service-back-to{display:inline-block;font-size:1.9rem;font-weight:400;line-height:1.25;padding-bottom:11px;padding-left:0;padding-right:1.5rem;padding-top:14px;text-decoration:none}.navigation-service-back-to:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation li{font-size:1.9rem;font-weight:400;line-height:1.25;list-style-type:none;margin:0}.navigation a{display:block;padding:.5rem 0;position:relative;top:5px}.navigation a:link,.navigation a:visited{text-decoration:none}.navigation a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.navigation a.selected{font-size:1.9rem;font-weight:700;left:-.5px;letter-spacing:-.01em;line-height:1.25;position:relative}@media (min-width:768px){.sub-navigation{margin-top:45px}}.sub-navigation ol,.sub-navigation ul{list-style-type:none;margin:0;padding:0}.sub-navigation__item{--border-opacity:1;border-bottom:1px;border-color:#dee0e2;border-color:rgba(222,224,226,var(--border-opacity));border-style:solid;display:block;font-size:1.6rem;font-weight:400;line-height:1.25;padding:1rem 0}.sub-navigation__item a:link{text-decoration:none}.sub-navigation__item a:active,.sub-navigation__item a:hover{text-decoration:underline}ol ol .sub-navigation__item{padding-left:3rem}.sub-navigation__item--active{font-size:1.6rem;font-weight:700;line-height:1.25}.sub-navigation__item--active a:link,.sub-navigation__item--active a:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.header--active{--border-opacity:1!important;border-bottom-width:4px!important;border-color:#213045!important;border-color:rgba(33,48,69,var(--border-opacity))!important}.menu--active{font-weight:700}.adminnav--active{--bg-opacity:1;--border-opacity:1;background-color:#eee;background-color:rgba(238,238,238,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-left-width:4px;font-weight:800}.menu-divider{background:#c6c6c6;height:1px;left:124px;width:102px}.shadow{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.big-number{display:block}.big-number-number{display:block;font-size:2.7rem;font-weight:700;line-height:1;padding-bottom:1rem}.big-number-dark{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;padding:1.5rem}.big-number-label{display:inline-block;font-size:1.9rem}.big-number-status{--text-opacity:1;--bg-opacity:1;background-color:#00703c;background-color:rgba(0,112,60,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;font-size:1.9rem}.big-number-status:hover>div{text-decoration:none}.big-number-with-status{margin-bottom:2rem;position:relative}.big-number-link,.big-number-with-status>.big-number{--text-opacity:1;--bg-opacity:1;--border-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-style:solid;border-width:2px}.big-number-link,.big-number-link-normal,.big-number-with-status>.big-number{color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;text-decoration:none}.big-number-link-normal{--text-opacity:1}.big-number-link-warning{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;text-decoration:none}.big-number-link:hover,.big-number-link:hover .big-number{--text-opacity:1;color:#d5e8f3;color:rgba(213,232,243,var(--text-opacity))}.big-number-link:active,.big-number-link:focus{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));outline:3px solid #ffbf47;outline-offset:0}.big-number-link:active .big-number-label,.big-number-link:active span,.big-number-link:focus .big-number-label,.big-number-link:focus span,.big-number-link:hover .big-number-label,.big-number-link:hover span{text-decoration:none}.big-number-status-link:active,.big-number-status-link:hover,.big-number-status-link:link,.big-number-status-link:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.big-number-status-link:active,.big-number-status-link:focus{background-color:revert;border-width:0;box-shadow:none;outline:3px solid #ffbf47;outline-offset:0}div[class*=review-email-status-]:active,div[class*=review-email-status-]:focus{outline:3px solid #ffbf47;outline-offset:0}div[class*=review-email-status-]:hover div[class~=review-email-label] span,div[class*=review-email-status-]:hover div[class~=review-email-link] span{text-decoration:none}.normal{background-color:#00703c;background-color:rgba(0,112,60,var(--bg-opacity));border-color:#00703c;border-color:rgba(0,112,60,var(--border-opacity))}.critical,.normal{--bg-opacity:1;--border-opacity:1}.critical{background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity));border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity))}.neutral{background:#49535d;border-color:#49535d}.textbox-highlight-wrapper{position:relative}.textbox-highlight-textbox{background-color:transparent;resize:none;z-index:20}.textbox-highlight-background,.textbox-highlight-foreground,.textbox-highlight-mask,.textbox-highlight-textbox{box-sizing:border-box;display:block;font-size:1.9rem;line-height:1.31579;margin:0;overflow:hidden;padding:4px;position:relative}.textbox-highlight-background{word-wrap:break-word;border:2px solid transparent;color:transparent;left:0;overflow-wrap:break-word;padding-bottom:1.5rem;pointer-events:none;position:absolute;top:0;white-space:pre-wrap;z-index:10}.textbox-highlight-background .placeholder{color:transparent}.extra-tracking .form-control{font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;letter-spacing:.04em;line-height:1.25;padding-left:.5rem}@media (min-width:768px){.textbox-colour-preview{border-radius:50%;box-shadow:inset 0 0 0 1px rgba(#0b0c0c,.2);display:inline-block;height:38px;margin-left:.5rem;transition:background .3s ease-out;vertical-align:top;width:38px}}.js-enabled .file-upload-label{display:inline-block;font-size:1.9rem;font-weight:700;line-height:1.25;margin:0 0 1rem;position:relative}.js-enabled .file-upload-label .error-message{padding:0}.js-enabled .file-upload-field{font-size:.1px;height:100%;left:0;min-width:100%;opacity:0;position:absolute;top:0;z-index:-1}.js-enabled .file-upload-field:focus+#file-upload-button{outline:3px solid #ffbf47;outline-offset:0}.js-enabled .file-upload-button,.js-enabled .file-upload-button-cancel{display:inline-block;margin-right:.5rem}.js-enabled .file-upload-filename{display:inline-block;font-size:1.9rem;font-weight:700;line-height:1.25;padding-left:1.5rem}.js-enabled .file-upload-submit{display:none}.js-enabled .file-upload-alternate-link{display:inline-block;line-height:2}.js-enabled .file-upload-alternate-link a{font-size:1.9rem;font-weight:700;line-height:1.25}.browse-list{margin-bottom:1.5rem}.browse-list .browse-sub-list{margin-left:3rem;margin-top:1.5rem}@media (min-width:768px){.browse-list .browse-sub-list{margin-left:60px}}.browse-list-item,.browse-list-sub-item{list-style-type:none;margin-bottom:1.5rem}.browse-list-item,.browse-list-link,.browse-list-sub-item{font-size:2.4rem;font-weight:700;line-height:1.25}.browse-list-link-destructive,.browse-list-link-destructive:link,.browse-list-link-destructive:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));font-size:2.4rem;font-weight:700;line-height:1.25}.browse-list-link-destructive:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}.browse-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;margin:.5rem 0 1rem}.sms-message-wrapper{word-wrap:break-word;--bg-opacity:1;--border-opacity:1;background-color:#dee0e2;background-color:rgba(222,224,226,var(--bg-opacity));border-color:#dee0e2;border-color:rgba(222,224,226,var(--border-opacity));border-radius:.5rem;border-style:solid;border-width:1px;box-sizing:border-box;clear:both;margin:0 0 3rem;max-width:464px;padding:1.5rem;position:relative;white-space:normal;width:100%}.sms-message-wrapper:after{border-color:transparent transparent #dee0e2 #dee0e2;border-style:solid;border-width:10px 13px;bottom:-5px;content:"";display:block;position:absolute;right:-20px;transform:rotate(20deg)}.sms-message-recipient,.sms-message-sender{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;margin:0;padding-bottom:8px;padding-bottom:.5rem;padding-top:2px}.email-message{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.email-message-table{border-width:0;border-bottom:1px #bfc1c3;border-style:solid;font-size:1.9rem;font-weight:400;line-height:1.25;vertical-align:top}.email-message-meta td{word-wrap:break-word;overflow-wrap:break-word;padding-right:6rem;width:99%}.email-message-body table td{border-width:0;font-family:inherit!important;padding:0}.email-message-body li:first-child{margin-top:0!important}.button,a.button,a.button:active,a.button:link,a.button:visited{--text-opacity:1;--bg-opacity:1;align-items:center;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));box-shadow:0 2px 0 #1a3152;color:#fff;color:rgba(255,255,255,var(--text-opacity));cursor:pointer;display:inline-flex;font-size:1.9rem;line-height:1.25;min-height:45px;padding:.55em 1em .45em;text-decoration:none;vertical-align:top}.button.shadow-none,a.button.shadow-none,a.button.shadow-none:active,a.button.shadow-none:link,a.button.shadow-none:visited{padding:.5em 1em}.button:hover,a.button:hover{--bg-opacity:1;background-color:#284162;background-color:rgba(40,65,98,var(--bg-opacity))}.button:focus,a.button:focus{border-color:transparent;box-shadow:0 0 0 3px #ffbf47;outline:3px solid #ffbf47;outline-offset:0}.button-blue-lighter,a.button-blue-lighter,a.button-blue-lighter:link,a.button-blue-lighter:visited{--bg-opacity:1;--border-opacity:1;--text-opacity:1;background-color:#b2e3ff;background-color:rgba(178,227,255,var(--bg-opacity));border-bottom-width:2px;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));color:#000;color:rgba(0,0,0,var(--text-opacity));font-size:2rem;font-weight:700;padding:1rem 1.25rem}.button-blue-lighter:hover,a.button-blue-lighter:hover{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity))}.button-blue-lighter:focus,a.button-blue-lighter:focus{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-color:transparent;box-shadow:0;outline:2px solid transparent;outline-offset:2px}.button-red,a.button-red,a.button-red:link,a.button-red:visited{--bg-opacity:1;background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity));box-shadow:0 2px 0 #6a0812}.button-red:hover,a.button-red:hover{--bg-opacity:1;background-color:#990c1a;background-color:rgba(153,12,26,var(--bg-opacity))}.button-secondary,a.button-secondary,a.button-secondary:link,a.button-secondary:visited{--text-opacity:1;--bg-opacity:1;background-color:#dee0e2;background-color:rgba(222,224,226,var(--bg-opacity));box-shadow:0 2px 0 #b5babe;color:#000;color:rgba(0,0,0,var(--text-opacity));font-size:1em}.button-secondary:hover,a.button-secondary:hover{--bg-opacity:1;background-color:#d0d3d6;background-color:rgba(208,211,214,var(--bg-opacity))}.button-secondary:focus,a.button-secondary:focus{border-color:transparent;box-shadow:0 0 0 3px #ffbf47;outline:1px solid #ffbf47}.button.disabled,a.button.disabled{cursor:default;opacity:.5}.button-link,a.button-link,a.button-link:link,a.button-link:visited{background-color:transparent;border-bottom-width:2px;border-color:transparent;box-shadow:none;padding:1rem 1.25rem;text-decoration:underline}.button-link:hover,a.button-link:hover{text-decoration:none}.button-link:focus,a.button-link:focus{--bg-opacity:1;--text-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;text-decoration:none}.selection-summary__text--folders{background-image:url(/static/images/folder-black.svg);background-position:0 4px;background-repeat:no-repeat;background-size:39px auto;font-size:1.9rem;font-weight:400;margin-bottom:1.5rem;padding:1rem 1.5rem .5rem 5rem;text-transform:none}.selection-summary__text--folders:focus{outline:2px solid transparent;outline-offset:2px}.selection-content .checkboxes-nested{margin-bottom:0}.multiple-choice .conditional{display:none;padding:8px 15px 0 12px}.multiple-choice input:checked~.conditional{display:block}.multiple-choice .conditional,.select-nested .multiple-choice{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));float:none;position:relative}.multiple-choice .conditional .form-group{margin-bottom:0}.multiple-choice .conditional:before,.select-nested .multiple-choice:before{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));bottom:0;content:"";height:100%;left:17px;position:absolute;width:4px}.multiple-choice .conditional:before{left:-22px}.multiple-choice .conditional label,.select-nested .multiple-choice label{float:none}.radios-nested{margin-bottom:1rem}.has-conditional input:checked+label .block-label-hint:after,.radios-nested .block-label-hint:after{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));content:"";height:calc(100% - 45px);left:16px;position:absolute;top:45px;width:4px}.select-nested .multiple-choice ul{margin-bottom:-5px;margin-top:.5rem;padding-left:12px}.select-nested .multiple-choice [type=checkbox]+label:before,.select-nested .multiple-choice [type=radio]+label:before{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}[data-module*=collapsible] button[aria-expanded=true]{margin-top:2rem}.conditional-radio-panel{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 0 4px;margin:-20px 0 0 17px;padding:10px 0 0 28px}.multiple-choice{z-index:10}.multiple-choice .block-label:before{box-shadow:0 5px 0 #fff}.multiple-choice input:disabled+label{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));cursor:default;opacity:1}.pill li{flex-grow:1;float:left;text-align:left;width:25%}.pill{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-width:2px}.pill,.pill>a+a{--border-opacity:1}.pill>a+a{border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-left-width:2px}.pill a,.pill-selected-item{align-self:center;display:block;float:left;padding-bottom:1.25rem;padding-top:1.25rem;text-decoration:none;width:100%}.pill a{border-bottom-width:0;cursor:pointer;position:relative}.pill a .pill-content{text-decoration:none}.pill a:hover .pill-label{text-decoration:underline}.pill a:active,.pill a:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;z-index:10}a.pill-selected-item{--bg-opacity:1;background-color:#f0f2f5;background-color:rgba(240,242,245,var(--bg-opacity));outline:1px solid hsla(0,0%,100%,.1);outline-offset:0;position:relative;z-index:10}a.pill-selected-item:hover{--bg-opacity:1;--text-opacity:1;background-color:#24508f;background-color:rgba(36,80,143,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}a.pill-selected-item:focus{outline:3px solid #ffbf47;outline-offset:0;z-index:1000}a.pill-unselected-item{outline:1px solid hsla(0,0%,100%,.1);outline-offset:0;position:relative;z-index:10}a.pill-unselected-item:link,a.pill-unselected-item:visited{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}a.pill-unselected-item:hover{--bg-opacity:1;background-color:#24508f;background-color:rgba(36,80,143,var(--bg-opacity))}a.pill-unselected-item:active,a.pill-unselected-item:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}a.pill-unselected-item:focus{outline:3px solid #ffbf47;outline-offset:0;z-index:1000}.pill-centered-item{text-align:center}.pill-count-item{padding-left:.75rem;padding-right:.75rem}.pill-separate-item{display:block;padding:1rem 1.5rem;text-align:center}.pill-separate-item:link,.pill-separate-item:visited{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));text-decoration:underline}.pill-separate-item:focus,.pill-separate-item:hover,.pill-separate-item:link:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}.show-more,.show-more-empty{--border-opacity:1;border-bottom-width:0;border-color:#bfc1c3;border-top:1px #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;display:block;font-size:1.6rem;font-weight:400;line-height:1.25;margin:1.5rem 0 3rem;padding:0;text-align:center}.show-more-empty:focus,.show-more:focus{--border-opacity:1;background-color:transparent;border-bottom-width:0;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));margin-bottom:3rem;outline:2px solid transparent;outline-offset:2px}.show-more-empty:focus span,.show-more:focus span{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:1px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));outline:2px solid transparent;outline-offset:2px}.show-more span,.show-more-empty span{--bg-opacity:1;--border-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border-bottom:1px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-style:solid;display:inline-block;outline:10px solid #fff;position:relative;top:-11px}.show-more-empty{margin-top:-10px}.api-key{display:flex;padding-bottom:38px;position:relative}.api-key-key{display:block;font-family:monospace;margin:auto 0;padding-bottom:10px;padding-left:0;padding-right:0;padding-top:0}.api-key-name{font-weight:700;line-height:1.25;margin-bottom:5px}.previous-and-next-navigation{display:block;margin:3rem -1.5rem}.previous-and-next-navigation .group{margin:0;padding:0}.previous-and-next-navigation .page{font-size:1.6rem;font-weight:400;line-height:1.25;list-style-type:none;margin:0;padding:0;width:50%}.previous-and-next-navigation .page a{display:flex;padding:1.5rem;text-decoration:none}.previous-and-next-navigation .pagination-part-title{display:block;font-size:2.7rem;font-weight:700;line-height:1.25;margin-left:1.5rem}.previous-and-next-navigation .page a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.previous-and-next-navigation .page a:active,.previous-and-next-navigation .page a:hover{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity))}.previous-and-next-navigation .pagination-icon{display:inline-block;height:.684em;margin-top:.684em;width:.894em}.previous-and-next-navigation .pagination-label{display:block;margin-top:.1em;text-decoration:underline}.previous-and-next-navigation .pagination-label:empty{display:none}@media (min-width:640px){.previous-and-next-navigation .next-page{margin-left:auto}.previous-and-next-navigation .next-page a{justify-content:flex-end}.previous-and-next-navigation .next-page .pagination-part-title{margin-left:0;margin-right:1.5rem}}.form-control.list-form-control{margin-bottom:0;padding-left:1.84em;width:100%}.list-entry{margin-bottom:1.5rem;position:relative;vertical-align:middle}.list-entry label{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.list-entry .form-group{margin-bottom:1rem}.list-entry-remove{display:block;font-size:1.9rem;line-height:1.25;margin-bottom:1.5rem;margin-top:.5rem;overflow:hidden;position:static}@media (min-width:640px){.list-entry-remove{display:inline-block;left:100%;margin:0 0 0 1rem;position:absolute;top:0}}.text-box-number-label{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));float:left;font-size:1.9rem;font-weight:700;left:10px;margin:6px -1.6em 0 0;pointer-events:none;position:relative;width:1.6em}.message-name{font-size:2.4rem;font-weight:700;line-height:1.25;margin:0}.message-name a{margin-bottom:-30px;padding-bottom:3rem}.message-name a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.message-name a:hover .message-name-separator:before{--border-opacity:1;border-color:#0154b0;border-color:rgba(1,84,176,var(--border-opacity))}.message-name a:focus{border-width:0;outline:3px solid #ffbf47;outline-offset:0}.message-name a .message-name-separator{margin-left:-2px;margin-right:-2px}.message-name a .message-name-separator:before{--border-opacity:1;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity))}.message-type{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));margin:0 0 2rem;pointer-events:none}#template-list{margin-top:3rem}#template-list.top-gutter-5px{margin-top:.5rem}.template-list-item-with-checkbox{padding-left:6rem;position:relative}.template-list-item-with-checkbox .multiple-choice{left:0;position:absolute}.template-list-item-hidden-by-default{display:none}.template-list-item-without-ancestors .message-name a,.template-list-item-without-ancestors .message-name a:first-child{display:block}.template-list-item-without-ancestors .message-name a.template-list-folder:first-child{background-position:0 2px;padding-left:0;text-indent:40px}.template-list-folder{background-image:url(/static/images/folder-blue-bold.png);background-image:url(/static/images/folder-blue-bold.svg);background-position:0 4px;background-repeat:no-repeat;background-size:auto 20px;display:inline;padding-left:4rem}.template-list-folder:hover{background-image:url(/static/images/folder-blue-bold-hover.png);background-image:url(/static/images/folder-blue-bold-hover.svg)}.template-list-template a{display:inline}.template-list-empty{padding:1.5rem 0 1rem}.template-list-empty,.template-list-selected-counter{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.template-list-selected-counter{margin:1.5rem 0}@media (min-width:1024px){.template-list-selected-counter{margin:0;position:absolute;right:0;top:29px}}.content-fixed .template-list-selected-counter{right:15px}.grid-row .folder-heading{word-wrap:break-word;display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;vertical-align:baseline}.folder-heading a,.folder-heading-folder{background-position:0 4px;background-repeat:no-repeat;background-size:auto 19px;display:inline;font-size:1.9rem;min-height:3rem;vertical-align:top}.folder-heading-folder{background-image:url(/static/images/folder-black-bold.png);background-image:url(/static/images/folder-black-bold.svg);padding:0 0 0 3rem}.folder-heading-folder-group:not(:last-child){margin-bottom:1rem;margin-right:1rem}.folder-heading-folder-truncated{overflow:hidden;padding:0 0 0 3rem;white-space:nowrap;width:0}.folder-heading-folder-root-truncated{max-width:5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-heading a{display:inline}.folder-heading a.folder-heading-folder{background-image:url(/static/images/folder-blue-bold.png);background-image:url(/static/images/folder-blue-bold.svg);display:inline}.folder-heading a.folder-heading-folder:hover{background-image:url(/static/images/folder-blue-bold-hover.png);background-image:url(/static/images/folder-blue-bold-hover.svg)}.folder-heading a.folder-heading-folder-truncated{display:inline-block}.folder-heading a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.folder-heading-manage-link{display:block;min-height:3rem;text-align:right}.folder-heading-separator,.message-name-separator{display:inline-block;height:3rem;position:relative;vertical-align:top;width:2rem}.folder-heading-separator:before,.message-name-separator:before{--border-opacity:1;--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;--transform-rotate:45deg;border-color:#595959;border-color:rgba(89,89,89,var(--border-opacity));border-style:solid;border-width:2px 2px 0 0;bottom:-9px;content:"";display:block;height:9px;margin:auto 0;position:absolute;right:7px;top:-9px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));width:9px}.fullscreen-content{--bg-opacity:1;--border-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border:0 solid #bfc1c3;border-bottom-width:1px;border-color:rgba(191,193,195,var(--border-opacity));box-sizing:border-box;margin:0 0 3rem;overflow:hidden;overflow-x:scroll;padding:0;z-index:10}.fullscreen-content.table-truncated{border-width:0;margin-bottom:0}.fullscreen-content .table{margin-bottom:0}.fullscreen-content tr:last-child td{border-bottom-width:0}.fullscreen-content .table-field-error-label,.fullscreen-content .table-field-left-aligned,.fullscreen-content th{white-space:nowrap}.fullscreen-right-shadow{height:100%;position:absolute;right:0;top:0;width:4px;z-index:200}.fullscreen-right-shadow.visible.with-transition{transition:box-shadow .6s ease-out}.fullscreen-right-shadow.visible{box-shadow:inset -1px 0 0 0 #bfc1c3;box-shadow:inset -3px 0 0 0 hsla(210,3%,76%,.2)}.fullscreen-scrollable-table{overflow-x:auto;overflow-y:hidden}.fullscreen-scrollable-table .table-field-heading-first,.fullscreen-scrollable-table .table-field-index{display:none}.fullscreen-scrollable-table .table-field-left-aligned{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));position:relative;z-index:150}.fullscreen-scrollable-table::-webkit-scrollbar{-webkit-appearance:none}.fullscreen-scrollable-table::-webkit-scrollbar:horizontal{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));height:11px}.fullscreen-scrollable-table::-webkit-scrollbar-thumb{--border-opacity:1;background-color:rgba(0,0,0,.5);border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));border-radius:8px;border-style:solid;border-width:2px}.fullscreen-scrollable-table::-webkit-scrollbar-track{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border-radius:8px}.fullscreen-fixed-table{overflow:hidden;position:absolute;top:0}.fullscreen-fixed-table .table-field-heading{visibility:hidden}.fullscreen-fixed-table .table-field-left-aligned{position:absolute;visibility:hidden;width:0;z-index:100}.fullscreen-fixed-table .table-field-heading-first,.fullscreen-fixed-table .table-field-index{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));position:relative;transition:none;z-index:200}.fullscreen-fixed-table .table-field-index a{font-size:1.6rem}.fullscreen-scrolled-table{padding-bottom:2rem}.fullscreen-scrolled-table .table-field-heading-first,.fullscreen-scrolled-table .table-field-index{box-shadow:1px 0 0 0 #bfc1c3;box-shadow:3px 0 0 0 hsla(210,3%,76%,.2);transition:box-shadow .3s ease-in-out}.fullscreen-shim{margin-bottom:3rem;pointer-events:none;position:relative;width:100%;z-index:9}.fullscreen-shim+.table-show-more-link{margin-top:-28px}svg.table-overflow{--text-opacity:1;color:#bfc1c3;color:rgba(191,193,195,var(--text-opacity));margin-bottom:3rem}svg.table-overflow rect{fill:url(#cut)}@media (min-width:640px){svg.table-overflow rect{fill:url(#cut-sm)}}@media (min-width:768px){svg.table-overflow rect{fill:url(#cut-md)}}@media (min-width:1024px){svg.table-overflow rect{fill:url(#cut-lg)}}.tick-cross-cross,.tick-cross-tick{background-position:0 6px;background-repeat:no-repeat;background-size:19px 19px;display:inline-block;font-size:1.9rem;font-weight:400;line-height:1.25;padding:6px 0 5px 25px}.tick-cross-tick{background-image:url(/static/images/tick.svg)}.tick-cross-cross{--text-opacity:1;background-image:url(/static/images/cross-grey.svg);color:#595959;color:rgba(89,89,89,var(--text-opacity))}.tick-cross-list-permissions{margin-top:.5rem}.tick-cross-list-permissions li{display:block;margin-right:.53m}.tick-cross-list-edit-link{right:-135px;text-align:right;top:-25px}.tick-cross-list-edit-link a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.tick-cross-list-edit-link a:active,.tick-cross-list-edit-link a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.tick-cross-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));padding-top:.5rem}.js-stick-at-bottom-when-scrolling,.js-stick-at-top-when-scrolling{margin-left:-15px;overflow:hidden;padding:1rem 0 0 1.5rem;position:relative}.js-stick-at-bottom-when-scrolling .form-group,.js-stick-at-top-when-scrolling .form-group{margin-bottom:2rem}.js-stick-at-bottom-when-scrolling .form-group legend,.js-stick-at-top-when-scrolling .form-group legend{outline:2px solid transparent;outline-offset:2px}.js-stick-at-bottom-when-scrolling .back-top-top-link,.js-stick-at-top-when-scrolling .back-top-top-link{opacity:0;position:absolute;right:15px;top:30px;transition-duration:.1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-bottom-when-scrolling .template-list-selected-counter,.js-stick-at-top-when-scrolling .template-list-selected-counter{margin-bottom:1.5rem;margin-top:1.5rem;position:relative;right:0;top:0}.js-stick-at-top-when-scrolling{margin-bottom:.5rem;margin-top:-10px;top:5px;transition:top .1s ease-out,box-shadow 1s ease-in-out}.js-stick-at-bottom-when-scrolling{margin-top:-20px;padding:2rem 0 2rem 1.5rem;transition:bottom .1s ease-out,box-shadow 1s ease-in-out}.js-stick-at-bottom-when-scrolling+.js-stick-at-bottom-when-scrolling{margin-top:-40px}.js-stick-at-bottom-when-scrolling .page-footer{margin-bottom:0;min-height:50px}.js-stick-at-bottom-when-scrolling .page-footer-delete-link-without-button{margin-top:1rem}.page-footer-delete-link-without-button .notification-status{margin:0}.page-footer-delete-link-without-button .button-secondary{margin-right:1.5rem}.content-fixed,.content-fixed-onload{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));margin-top:0;padding-right:1.5rem;position:fixed;z-index:100}.content-fixed .back-to-top-link,.content-fixed-onload .back-to-top-link{opacity:1;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-top-when-scrolling.content-fixed,.js-stick-at-top-when-scrolling.content-fixed-onload{margin-top:0;top:0}.js-stick-at-top-when-scrolling.content-fixed__top{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;box-shadow:0 2px 0 0 hsla(210,3%,76%,.2)}.js-stick-at-top-when-scrolling.content-fixed{transition:background .3s ease-in-out,margin-top .3s ease-out}.js-stick-at-bottom-when-scrolling.content-fixed,.js-stick-at-bottom-when-scrolling.content-fixed-onload{bottom:0;top:auto}.js-stick-at-bottom-when-scrolling.content-fixed__bottom{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:1px 0 0;box-shadow:0 -2px 0 0 hsla(210,3%,76%,.2)}.js-stick-at-bottom-when-scrolling.content-fixed{transition-duration:.3s;transition-property:background;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-bottom-when-scrolling-loaded.content-fixed-onload{transition-property:none}.shim{display:block;margin-bottom:.5rem}.js-cancel{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));cursor:pointer;display:inline-block;margin-right:-10px;margin-top:-10px;padding:1rem 1rem .5rem;text-decoration:underline}.js-cancel:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.js-cancel:active,.js-cancel:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px}.stick-at-top-when-scrolling{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding-bottom:1.5rem;padding-top:1.5rem;position:sticky;top:0;z-index:50}.stick-at-top-when-scrolling .page-footer{margin-bottom:1.5rem}.task-list{--border-opacity:1;border-color:#bfc1c3;border-top:1px #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;margin:3rem 0}.task-list-item{position:relative}.task-list-item a{--border-opacity:1;border-bottom:1px;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;display:block;padding-right:20%;padding:1.5rem 0;position:relative}.task-list-item a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.task-list-item a:focus{--text-opacity:1;border-color:transparent;box-shadow:0 2px 0 3px #1a3152;color:#000;color:rgba(0,0,0,var(--text-opacity));margin-bottom:-2px;outline:3px solid #ffbf47;outline-offset:0;padding-bottom:16px;padding-top:16px;top:-1px}.task-list-item:focus-within .task-list-indicator-completed{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.task-list-indicator-completed,.task-list-indicator-not-completed{display:inline-block;font-size:1.6rem;font-weight:700;line-height:1.25;margin-top:-15px;min-width:20%;padding:3px 8px 1px;pointer-events:none;position:absolute;right:0;text-align:right;top:28px;z-index:2}.task-list-indicator-completed{--text-opacity:1;color:#00672f;color:rgba(0,103,47,var(--text-opacity));letter-spacing:.02em}.back-link,.task-list-indicator-not-completed{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.back-link{--border-opacity:1;border-bottom:1px;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity));border-style:solid;display:inline-block;font-size:1.6rem;font-weight:400;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem;padding-left:14px;position:relative;text-decoration:none}.back-link:focus{border-bottom-width:1px}.back-link:link,.back-link:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.back-link:after,.back-link:before{border-color:transparent;border-style:solid;content:"";position:absolute}.back-link:before{border-right-color:inherit;border-width:5px 6px 5px 0;bottom:1px;-webkit-clip-path:polygon(0 50%,100% 100%,100% 0);clip-path:polygon(0 50%,100% 100%,100% 0);display:block;height:0;left:0;margin:auto;top:-1px;width:0}.back-link:after{border-width:15px 30px 15px 3px;content:"";height:100%;left:-3px;top:-15px;width:100%}.preview-fullpage-border{box-shadow:0 0 0 5px #ffbf47;height:calc(100% - 10px);left:5px;pointer-events:none;position:fixed;top:5px;width:calc(100% - 10px);z-index:99}.dashboard table th{border-bottom-width:0}.dashboard table td,.dashboard table th{font-size:1.9rem;font-weight:400;line-height:1.25}.dashboard table td{border-width:0}.dashboard>.heading-medium:first-of-type{margin-top:6rem}.keyline-block{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:1px 0 0;padding-top:1.5rem}.spark-bar{--text-opacity:1;background:linear-gradient(to right,#afb9c3 var(--data),transparent 0);color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;padding:1rem .5rem;text-align:left;width:100%}.file-list-filename{border-bottom-width:2px;border-color:transparent;display:block;font-size:1.9rem;font-weight:700;line-height:1.25;margin-bottom:-30px;margin-top:-10px;padding-bottom:3rem;padding-top:1rem}.file-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:1.6rem;font-weight:400;line-height:1.25;max-width:580px;pointer-events:none}.failure-highlight{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));font-size:1.9rem;font-weight:700;line-height:1.25}.template-usage-table{--border-opacity:1;border:0 solid #bfc1c3;border-bottom-width:1px;border-color:rgba(191,193,195,var(--border-opacity));border-top-width:1px;margin-bottom:4rem;margin-top:1rem}.template-usage-table .table{margin-bottom:.5rem}.align-with-message-body{display:block;margin-top:36px}.user-list{font-size:1.9rem;font-weight:400;line-height:1.25;margin-bottom:3rem;margin-top:3rem}.user-list-item{padding-bottom:1.5rem;padding-left:0;padding-top:1.5rem;vertical-align:baseline}.user-list-item .label{font-weight:700}.user-list-item .hint{--text-opacity:1;color:#49535d;color:rgba(73,83,93,var(--text-opacity));font-weight:400}.user-list-item:last-child{--border-opacity:1;border-bottom-width:1px;border-color:#afb9c3;border-color:rgba(175,185,195,var(--border-opacity))}.user-list-edit-link{text-align:right}.api-notifications{--border-opacity:1;border:solid #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-width:0 0 1px;font-family:monospace}.api-notifications-item{grid-gap:.5rem;--border-opacity:1;border-color:#afb9c3;border-top:1px #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-style:solid;display:flex;gap:.5rem;padding:0;vertical-align:baseline}.api-notifications-item:before{--bg-opacity:1;--text-opacity:1;--border-opacity:1;background-color:#cfd5dd;background-color:rgba(207,213,221,var(--bg-opacity));border:solid #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-width:0 1px 0 0;color:#343c45;color:rgba(52,60,69,var(--text-opacity));font-weight:400;padding:.5rem;text-align:right;width:2ch}.api-notifications-item-title{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));display:block;text-decoration:none}.api-notifications-item-recipient{display:inline}.api-notifications-item-meta{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block}.api-notifications-item-time{text-align:right}.api-notifications-item-key{display:inline-block;padding-left:46px!important}.api-notifications-item-data{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));padding-left:31px}.api-notifications-item-data-item{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));padding-bottom:1.5rem}.template-container{position:relative}.edit-template-link{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;padding:1rem 1.5rem;position:absolute;z-index:10000}.edit-template-link:link,.edit-template-link:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.edit-template-link:hover{--text-opacity:1;color:#d5e8f3;color:rgba(213,232,243,var(--text-opacity))}.notification-status{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;font-weight:400;line-height:1.25;margin-top:-15px}.notification-status.error{font-weight:700}.notification-status-cancelled,.notification-status.error,.notification-status.error a{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.notification-status-cancelled{font-size:1.9rem;font-weight:700;line-height:1.25}.wp-block-cover{color:var(--text);position:relative}.wp-block-cover.bg-blue-slightlight{--bg:#284162;--text:#fff;--interactive:#b2e3ff}.wp-block-cover.bg-gray{--bg:#eee;--text:#000;--interactive:#213045}.wp-block-cover a:not(.button):not(:focus){color:var(--interactive)}.wp-block-cover>span{background-color:var(--bg);height:100%;margin:0 calc(50% - 50vw);max-width:100vw;position:absolute;width:100vw}.wp-block-cover .wp-block-cover__inner-container{padding-bottom:5rem;padding-top:5rem;position:relative}.wp-block-cover.flow .wp-block-cover__inner-container>:not(template)+:not(template){margin-top:6rem}.wp-block-columns{flex-direction:column}.wp-block-columns>:not(template)+:not(template){margin-top:3rem}.wp-block-columns.stack-swap>:not(template)+:not(template){margin-top:0}.page-content>*+.wp-block-columns{margin-top:6rem}.wp-block-column>h1:first-child,.wp-block-column>h2:first-child,.wp-block-column>h3:first-child{margin-top:0}@media (max-width:1024px){.wp-block-column[style*=flex-basis]{flex-basis:100%!important}}.wp-block-column[style*="3rem"]{align-items:center;box-sizing:content-box;display:flex;height:3rem}.stack-swap .wp-block-column>.wp-block-image:only-child{display:none}@media (min-width:1024px){.wp-block-columns{display:flex;flex-direction:row;margin-left:-1.5rem;margin-right:-1.5rem;width:calc(100% + 3rem)}.wp-block-columns>:not(template)+:not(template){margin-top:0}.wp-block-column{flex-grow:0;padding-left:1.5rem;padding-right:1.5rem}.wp-block-column>:not(template)+:not(template){margin-top:3rem}.stack-swap .wp-block-column>.wp-block-image:only-child{display:block}.stack-swap .wp-block-column *+.wp-block-image{display:none}}.has-text-align-center{margin-left:auto;margin-right:auto;text-align:center}.wp-block-buttons{display:flex}.wp-block-buttons>:not(:last-child){margin-right:3rem}.wp-block-button a,.wp-block-button a:link,.wp-block-button a:visited{color:inherit;text-decoration:inherit}.wp-block-columns.panel-container{margin-left:0;margin-right:0;max-width:80ch;width:100%}.wp-block-columns.panel-container .panel-preview :first-child{margin-top:0}.wp-block-columns.panel-container .panel-preview ol li+li,.wp-block-columns.panel-container .panel-preview ul li+li{padding:0}.page-content ul{list-style-type:disc;margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0 0 0 2rem}.page-content ul ul{list-style-type:circle}.page-content ul ul ul{list-style-type:square}.page-content ol li+li,.page-content ul li+li{padding-top:1rem}.page-content ol{list-style-type:decimal;margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0 0 0 2rem}.page-content blockquote{--border-opacity:1;border-left:solid;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-left-width:10px;box-sizing:border-box;clear:both;margin-bottom:.7895em;padding:.7895em}.wp .page-content.home a{font-size:2rem}.wp .page-content.home p+ul{margin-top:-.5rem}.visually-hidden,.visuallyhidden{clip:rect(0 0 0 0);border-width:0;margin:-1px;padding:0}.research-mode{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-radius:.25rem;color:#fff;color:rgba(255,255,255,var(--text-opacity));display:inline-block;font-weight:700;padding:.5rem 1rem}.js-enabled .live-search{display:block;visibility:visible}.live-search .form-group{margin-bottom:20px}.send-one-off-form .form-group{margin-bottom:2rem}.loading-indicator:after{animation:ellipsis 1.5s steps(4) infinite;content:"\2026";display:inline-block;overflow:hidden;vertical-align:bottom;width:0}@media (min-width:768px){.inline.block-label{display:inline-block;float:none}}.block-label-hint,.hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.block-label-hint{font-size:1.9rem;font-weight:400;line-height:1.25;margin-top:.5rem}.bordered-text-box{max-width:100%;outline:2px solid #000;padding:.5rem}#organisation_type{display:none}.space-y-gutter>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(3rem*var(--space-y-reverse));margin-top:calc(3rem*(1 - var(--space-y-reverse)))}.space-x-gutter>:not(template)~:not(template){--space-x-reverse:0;margin-left:calc(3rem*(1 - var(--space-x-reverse)));margin-right:calc(3rem*var(--space-x-reverse))}.space-y-gutterHalf>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(1.5rem*var(--space-y-reverse));margin-top:calc(1.5rem*(1 - var(--space-y-reverse)))}.space-y-doubleGutter>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(6rem*var(--space-y-reverse));margin-top:calc(6rem*(1 - var(--space-y-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-bottom-width:calc(1px*var(--divide-y-reverse));border-top-width:calc(1px*(1 - var(--divide-y-reverse)))}.divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#afb9c3;border-color:rgba(175,185,195,var(--divide-opacity))}.divide-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#eee;border-color:rgba(238,238,238,var(--divide-opacity))}.divide-gray-grey2>:not(template)~:not(template){--divide-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--divide-opacity))}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.bg-red{--bg-opacity:1;background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-blue-lighter{--bg-opacity:1;background-color:#b2e3ff;background-color:rgba(178,227,255,var(--bg-opacity))}.bg-blue{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity))}.bg-blue-slightlight{--bg-opacity:1;background-color:#284162;background-color:rgba(40,65,98,var(--bg-opacity))}.bg-gray{--bg-opacity:1;background-color:#eee;background-color:rgba(238,238,238,var(--bg-opacity))}.bg-gray-border{--bg-opacity:1;background-color:#b5babe;background-color:rgba(181,186,190,var(--bg-opacity))}.bg-yellow{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-transparent{background-color:transparent}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.focus\:bg-yellow:focus{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity))}.border-gray-300{--border-opacity:1;border-color:#afb9c3;border-color:rgba(175,185,195,var(--border-opacity))}.border-gray{--border-opacity:1;border-color:#eee;border-color:rgba(238,238,238,var(--border-opacity))}.border-gray-border{--border-opacity:1;border-color:#b5babe;border-color:rgba(181,186,190,var(--border-opacity))}.border-gray-grey2{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity))}.border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.border-transparent{border-color:transparent}.focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.focus\:border-blue:focus{--border-opacity:1;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity))}.focus\:border-yellow:focus{--border-opacity:1;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border-solid{border-style:solid}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t-0{border-top-width:0}.border-b-0{border-bottom-width:0}.border-l-1{border-left-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.focus\:border-2:focus{border-width:2px}.focus\:border-b-0:focus{border-bottom-width:0}.focus\:border-b-2:focus{border-bottom-width:2px}.focus\:border-b-4:focus{border-bottom-width:4px}.box-border{box-sizing:border-box}.cursor-pointer{cursor:pointer}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row-group{display:table-row-group}.table-row{display:table-row}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-no-wrap{flex-wrap:nowrap}.place-items-start{place-items:start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.content-end{align-content:flex-end}.self-center{align-self:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-self-center{justify-self:center}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.float-right{float:right}.float-left{float:left}.clear-left{clear:left}.clear-both{clear:both}.font-sans{font-family:lato}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-bold{font-weight:700}.h-1{height:.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-24{height:6rem}.h-auto{height:auto}.h-full{height:100%}.text-xs{font-size:1.3rem}.text-small{font-size:1.6rem}.text-smaller{font-size:1.9rem}.text-base{font-size:2rem}.text-title{font-size:2.4rem}.text-titlelarge{font-size:2.7rem}.text-lg{font-size:3.6rem}.text-xl{font-size:3.8rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-0{margin:0}.m-auto{margin:auto}.my-0{margin-bottom:0;margin-top:0}.mx-0{margin-left:0;margin-right:0}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-gutterAndAHalf{margin-bottom:4.5rem;margin-top:4.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mt-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.mb-6{margin-bottom:1.5rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.mt-16{margin-top:4rem}.mb-16{margin-bottom:4rem}.mb-20{margin-bottom:5rem}.mb-24{margin-bottom:6rem}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.mt-gutterHalf{margin-top:1.5rem}.mr-gutterHalf{margin-right:1.5rem}.mb-gutterHalf{margin-bottom:1.5rem}.mb-gutterAndAHalf{margin-bottom:4.5rem}.mb-doubleGutter{margin-bottom:6rem}.-mt-1{margin-top:-.25rem}.-ml-2{margin-left:-.5rem}.-mt-8{margin-top:-2rem}.-mt-12{margin-top:-3rem}.max-w-xl{max-width:36rem}.max-w-80ch{max-width:80ch}.min-h-screen{min-height:100vh}.min-h-target{min-height:45px}.object-none{-o-object-fit:none;object-fit:none}.object-center{-o-object-position:center;object-position:center}.opacity-0{opacity:0}.opacity-100{opacity:1}.focus\:outline-none:focus,.outline-none{outline:2px solid transparent;outline-offset:2px}.focus\:outline-black:focus{outline:1px solid #000;outline-offset:0}.focus\:outline-yellow:focus{outline:3px solid #ffbf47;outline-offset:0}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-10{padding:2.5rem}.p-gutterHalf{padding:1.5rem}.py-0{padding-bottom:0;padding-top:0}.px-0{padding-left:0;padding-right:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.px-gutterHalf{padding-left:1.5rem;padding-right:1.5rem}.py-doubleGutter{padding-bottom:6rem;padding-top:6rem}.px-doubleGutter{padding-left:6rem;padding-right:6rem}.pl-0{padding-left:0}.pt-1{padding-top:.25rem}.pl-2{padding-left:.5rem}.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pt-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-gutter{padding-right:3rem}.pl-gutter{padding-left:3rem}.pt-gutterHalf{padding-top:1.5rem}.pl-doubleGutter{padding-left:6rem}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.right-0{right:0}.left-0{left:0}.bottom-2{bottom:2px}.top-full{top:100%}.resize{resize:both}.shadow-button2{box-shadow:0 2px 0 #26374a}.shadow-none{box-shadow:none}.focus\:shadow-outline:focus{box-shadow:0 0 0 3px #ffbf47}.focus\:shadow-insetLine2:focus{box-shadow:inset 0 -2px 0 0 #26374a}.text-left{text-align:left}.text-right{text-align:right}.text-red{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-blue{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#49535d;color:rgba(73,83,93,var(--text-opacity))}.text-gray-grey1{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.text-yellow{--text-opacity:1;color:#ffbf47;color:rgba(255,191,71,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.visited\:text-white:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.visited\:text-blue:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.visited\:text-black:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.link\:text-white:link{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.focus\:text-blue:focus,.link\:text-blue:link{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.italic{font-style:italic}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.focus\:no-underline:focus,.hover\:no-underline:hover{text-decoration:none}.ordinal{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-ordinal:ordinal;font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.tracking-wide{letter-spacing:.025em}.visible{visibility:visible}.whitespace-no-wrap{white-space:nowrap}.break-words{word-wrap:break-word;overflow-wrap:break-word}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\/2{width:50%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-full{width:100%}.z-50{z-index:50}.gap-2{grid-gap:.5rem;gap:.5rem}.gap-4{grid-gap:1rem;gap:1rem}.gap-16{grid-gap:4rem;gap:4rem}.gap-x-2{grid-column-gap:.5rem;-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-gutter{grid-column-gap:3rem;-moz-column-gap:3rem;column-gap:3rem}.gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.gap-y-gutterAndAHalf{grid-row-gap:4.5rem;row-gap:4.5rem}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-1{grid-column:span 1/span 1}.auto-rows-min{grid-auto-rows:min-content}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.rotate-180{--transform-rotate:180deg}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-opacity{transition-property:opacity}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes ellipsis{to{width:1.25em}}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;background-color:#dee0e2;font-size:62.5%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;color:#0b0c0c;font-size:160%;font-weight:400;line-height:1.5}body,button,html,input,table,td,th{font-family:Noto Sans,Arial,sans-serif}article,aside,body,div,footer,h1,h2,h3,h4,h5,h6,header,hgroup,html,nav,section{margin:0;padding:0;vertical-align:baseline}main{display:block}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button;margin-right:2px}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}section[id]:target{--yellow:#ffbf47;--white:#fff;animation:target 3s linear 3s forwards;box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--yellow);scroll-margin-top:30px}@keyframes target{0%{box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--yellow)}to{box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--white)}}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.hidden,.js-enabled .js-hidden{display:none;visibility:hidden}.visually-hidden,.visuallyhidden{height:1px;left:-9999em;overflow:hidden;position:absolute;top:auto;width:1px}.visually-hidden.focusable:active,.visually-hidden.focusable:focus,.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.flip{padding-top:2px;transform:rotate(-180deg);transition:all .5s ease}label{display:block;font-size:1.9rem;padding-bottom:.5rem}.group:after,.group:before{content:"\0020";display:block;height:0;overflow:hidden}.group:after{clear:both}.group{zoom:1}.content-fixed{position:fixed;top:0}.shim{display:block}.focus\:input:focus,.input{outline:2px solid transparent;outline-offset:2px}.line-under{text-underline-position:under}.feature-box{width:75%}@media (min-width:1024px){.feature-box{width:33.333333%}}.quote-box{font-size:1.6rem;margin-bottom:2.5rem}.quote-box div:first-child{font-style:italic;font-weight:700;margin-bottom:.5rem}.phone{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.border-box{border:1px solid #000;font-size:.9em;margin-bottom:2rem;padding:2rem}.border-box strong{font-weight:700}.skiplink:focus{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:2px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));left:0;outline:2px solid transparent;outline-offset:2px;padding:.5rem;text-decoration:none;z-index:1}.skiplink{left:-9999em;position:absolute}.skiplink:focus,.skiplink:visited{color:#0b0c0c}#skiplink-container{background:#0b0c0c;text-align:center}#skiplink-container div{margin:0 auto;max-width:1020px;text-align:left}#skiplink-container .skiplink{display:-moz-inline-stack;display:inline-block;margin:.75em 0 0 30px}@media (min-width:320px){.xs\:hidden{display:none}.xs\:text-lg{font-size:3.6rem}}@media (min-width:375px){.smaller\:hidden{display:none}.smaller\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (min-width:640px){.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:self-start{align-self:flex-start}.sm\:mx-4{margin-left:1rem;margin-right:1rem}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:self-end{align-self:flex-end}.md\:float-right{float:right}.md\:float-left{float:left}.md\:text-xxl{font-size:6.5rem}.md\:mb-gutter{margin-bottom:3rem}.md\:max-w-2\/3{max-width:66.666667%}.md\:visible{visibility:visible}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/4{width:25%}.md\:w-3\/4{width:75%}.md\:w-1\/6{width:16.666667%}.md\:w-3\/6{width:50%}.md\:w-5\/6{width:83.333333%}.md\:w-full{width:100%}.md\:w-5\/8{width:62.5%}.md\:gap-4{grid-gap:1rem;gap:1rem}.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\:col-span-2{grid-column:span 2/span 2}}@media (min-width:1024px){.lg\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(0px*var(--space-y-reverse));margin-top:calc(0px*(1 - var(--space-y-reverse)))}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:flex-row{flex-direction:row}.lg\:flex-wrap{flex-wrap:wrap}.lg\:items-center{align-items:center}.lg\:items-baseline{align-items:baseline}.lg\:self-center{align-self:center}.lg\:justify-between{justify-content:space-between}.lg\:text-xxl{font-size:6.5rem}.lg\:list-none{list-style-type:none}.lg\:mb-0{margin-bottom:0}.lg\:mr-3{margin-right:.75rem}.lg\:ml-3{margin-left:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:visible{visibility:visible}.lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-3\/4{width:75%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub{bottom:-.25em;font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}details{display:block}summary{display:list-item}[hidden],template{display:none}blockquote,dd,dl,figure,h1,h2,h3,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset,ol,ul{margin:0;padding:0}ol,ul{list-style:none}html{font-family:lato;line-height:1.5}*,:after,:before{border:0 solid #afb9c3;box-sizing:border-box}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a0aec0}input::placeholder,textarea::placeholder{color:#a0aec0}[role=button],button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{color:inherit;line-height:inherit;padding:0}code,pre{font-family:Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}audio,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}.container{margin-left:auto;margin-right:auto;width:100%}@media (min-width:320px){.container{max-width:320px}}@media (min-width:375px){.container{max-width:375px}}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}.contain-floats:after{clear:both;content:"";display:block}a,abbr,acronym,address,aside,b,big,blockquote,caption,center,code,dd,details,div,dl,dt,em,embed,fieldset,figure,footer,form,h1,h2,h3,header,i,img,label,legend,li,mark,menu,nav,ol,output,p,pre,q,s,section,small,span,strike,strong,sub,summary,table,tbody,td,th,thead,time,tr,tt,u,ul,var{margin:0;padding:0}b,blockquote,caption,center,h1,h2,h3,i,input,p,pre,small,strike,strong,sub,table,tbody,td,textarea,th,thead,tr,tt,u,var{font-family:inherit;font-size:inherit;font-weight:400;line-height:inherit}abbr[title],acronym[title]{text-decoration:none}legend{box-sizing:border-box;display:table;max-width:100%;overflow:hidden}details{clear:both;display:block}details summary{--text-opacity:1;border-color:#213045;color:#213045;color:rgba(33,48,69,var(--text-opacity));cursor:pointer;display:inline-block;margin-bottom:1.5rem;padding-left:25px;position:relative;text-decoration:underline}details summary:before{border-color:transparent;border-left-color:inherit;border-style:solid;border-width:7px 0 7px 12.124px;bottom:0;-webkit-clip-path:polygon(0 0,100% 50%,0 100%);clip-path:polygon(0 0,100% 50%,0 100%);content:"";display:block;height:0;left:0;margin:auto;position:absolute;top:0;width:0}details summary:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}details summary:focus{outline:3px solid #ffbf47;outline-offset:0}summary::-moz-details-marker,summary::-ms-details-marker,summary::-o-details-marker,summary::-webkit-details-marker,summary::details-marker{display:none}details summary::-webkit-details-marker{display:none}details[open]>summary:before{border-color:transparent;border-style:solid;border-top-color:inherit;border-width:12.124px 7px 0;-webkit-clip-path:polygon(0 0,50% 100%,100% 0);clip-path:polygon(0 0,50% 100%,100% 0);display:block;height:0;width:0}details[open]:not(:last-child){margin-bottom:1.5rem}details .arrow{display:none;font-size:1.6rem}details [id^=details-content]{box-shadow:inset 5px 0 0 #b5babe;padding-left:25px}fieldset.after-error-summary{margin-top:-15px}@media (min-width:640px){fieldset.after-error-summary{margin-top:-30px}}textarea{display:block}.form-label,.form-label-bold{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;padding-bottom:2px}.form-label{font-weight:400}.form-label,.form-label.heading-small{font-size:1.9rem;line-height:1.25;margin-bottom:.5rem}.form-label.heading-small{font-weight:700;margin-top:0}.form-label+.hint{display:block;margin-bottom:.5rem;margin-top:-5px}.form-label-bold{font-weight:700}.form-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:1.9rem;font-weight:400;line-height:1.25;margin-top:-2px;padding-bottom:2px}.form-label .form-hint,.form-label-bold .form-hint{margin-top:0;padding-bottom:0}.input{border-color:#000;border-style:solid;border-width:2px;font-size:1.9rem;padding:.75rem .5rem}.form-control{--border-opacity:1;border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));box-sizing:border-box;font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.25;padding:5px 4px 4px;width:100%}@media (min-width:768px){.form-control{width:50%}.form-control.form-control-1-1{width:100%}}.form-control-5em{width:100%}@media (min-width:768px){.form-control-5em{width:5em}}input.form-control,textarea.form-control{-webkit-appearance:none;border-radius:0}textarea.form-control{background-image:none;opacity:1}option:active,option:checked,select:focus::-ms-value{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}#add_template_by_template_type legend{font-size:1.2em;font-weight:700}.multiple-choice{clear:left;display:block;float:none;margin-bottom:1rem;padding:0;padding-left:38px;position:relative}@media (min-width:640px){.multiple-choice{float:left}}.multiple-choice [type=checkbox],.multiple-choice [type=radio]{cursor:pointer;height:38px;left:0;opacity:0;outline:2px solid transparent;outline-offset:2px;position:absolute;top:0;width:38px;z-index:1}.multiple-choice>label{cursor:pointer;display:block;padding:8px 15px 9px 12px;touch-action:manipulation}@media (min-width:640px){.mutiple-choice label{float:left;padding-bottom:7px;padding-top:7px}}.multiple-choice [type=radio]+label:before{--border-opacity:1;background-color:transparent;border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));border-radius:50%;box-sizing:content-box;content:"";height:34px;left:0;position:absolute;top:0;width:34px}.multiple-choice [type=radio]+label:after{--border-opacity:1;border:10px solid #000;border-color:rgba(0,0,0,var(--border-opacity));border-radius:50%;content:"";height:0;left:9px;opacity:0;position:absolute;top:9px;width:0}.multiple-choice [type=checkbox]+label:before{border:2px solid #000;border-color:rgba(0,0,0,var(--border-opacity));height:34px;left:0;top:0;width:34px}.multiple-choice [type=checkbox]+label:after,.multiple-choice [type=checkbox]+label:before{--border-opacity:1;background-color:transparent;box-sizing:content-box;content:"";position:absolute}.multiple-choice [type=checkbox]+label:after{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;--transform-rotate:-45deg;border-style:solid;border-top-color:transparent;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity));border-width:0 0 5px 5px;height:7px;left:8px;opacity:0;top:10px;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));width:17px}.multiple-choice [type=radio]:focus+label:before{box-shadow:0 0 0 4px #ffbf47}.multiple-choice [type=checkbox]:focus+label:before{box-shadow:0 0 0 3px #ffbf47}.multiple-choice input:checked+label:after{opacity:1}.multiple-choice input:disabled{cursor:default}.multiple-choice input:disabled+label{opacity:.5}.multiple-choice:last-child,.multiple-choice:last-of-type{margin-bottom:0}.inline .multiple-choice{clear:none}@media (min-width:640px){.inline .multiple-choice{margin-bottom:0;margin-right:3rem}}.form-group{margin-bottom:1rem}.form-group-error{--border-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-left-width:4px;margin-right:1rem;padding-left:1rem}@media (min-width:768px){.form-group-error{border-left-width:5px;padding-left:1.5rem}}.form-control-error{--border-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-width:4px}.error-message{--text-opacity:1;clear:both;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:block;font-size:1.9rem;font-size:2rem;font-weight:700;line-height:1.25;margin:0;padding:2px 0}.form-label .error-message,.form-label-bold .error-message{padding-bottom:0;padding-top:4px}ol,ul{list-style-type:none}.list{margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0}.list li{margin-bottom:.5rem}.list-bullet{list-style-type:disc;padding-left:2rem}.list-bullet .list-bullet{list-style:circle}ol.list-custom{counter-reset:list-counter 0}ol.list-custom li{counter-increment:list-counter}ol.list-custom li:before{content:var(--prefix,"") " " counter(list-counter) var(--suffix,". ");display:list-item;font-weight:700}.list ul{list-style-type:circle}.list ul ul{list-style-type:square}.panel{--border-opacity:1;border-left:solid;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));box-sizing:border-box;clear:both;margin-bottom:.7895em;padding:.7895em}.panel:first-child{margin-top:0}.panel:last-child,.panel:only-child{margin-bottom:0}.panel-border-wide{border-left-width:10px}.panel-container{display:flex;flex-direction:column;margin-bottom:3rem;width:100%}@media (min-width:1024px){.panel-container{flex-direction:row}}.panel-container>*{--border-opacity:1;border:1px solid #c0c1c3;border-color:rgba(192,193,195,var(--border-opacity));display:inline-block;flex:1 1 0%;min-width:200px;padding:1em}.panel-preview{margin-left:0;margin-top:1.5rem}@media (min-width:1024px){.panel-preview{margin-left:1.5rem;margin-top:0}}.panel-container>.panel-input{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-left-width:24px}.panel-container h3{margin-top:0}.panel-preview ol li,.panel-preview ul li{margin-bottom:.5rem;margin-top:.5rem}.grid-row{margin-bottom:0;margin-left:-1.5rem;margin-right:-1.5rem;margin-top:0}.align-with-heading{display:block;margin-top:13px;padding-left:2px;padding-right:2px;text-align:center}.align-with-heading-copy{display:block;margin-top:25px}.align-with-heading-copy-right{display:block;margin-bottom:19px;margin-left:0;margin-right:0;margin-top:21px;text-align:right}main{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.375}p{line-height:1.5em;margin-bottom:1.25em;margin-top:.3125em;max-width:80ch}p+p{margin-top:2.25em}@media (min-width:640px){p{margin-bottom:1.0526em;margin-top:.0658em}}a{-webkit-tap-highlight-color:rgba(0,0,0,.3);border-bottom-width:2px;border-color:transparent;text-decoration:underline}a:link,a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}a:focus{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:2px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));outline:2px solid transparent;outline-offset:2px;text-decoration:none}a:link:focus{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}a[target=_blank]:after{clip:rect(0,0,0,0);border-width:0;content:var(--opens-in-new-tab);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}[class*=delete-link] a:link,[class*=delete-link] a:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}[class*=delete-link] a:active,[class*=delete-link] a:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}[class*=delete-link] a:focus{--border-opacity:1;--text-opacity:1;border-color:#df3034;border-color:rgba(223,48,52,var(--border-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}.heading-small,.page-content h3{display:block;font-family:lato;font-size:1.9rem;font-weight:700;line-height:1.25;margin-bottom:1.0526em;margin-top:2.3684em}@media (min-width:768px){.heading-small,.page-content h3{margin-top:2.3684em;max-width:80ch}}.heading-medium,.page-content h2{display:block;font-family:lato;font-size:2rem;font-weight:700;line-height:1.25;margin-bottom:.5em;margin-top:1.25em;margin-top:3rem}@media (min-width:640px){.heading-medium,.page-content h2{font-size:2.4rem;margin-bottom:.8333em;margin-top:1.875em}}.heading-large,.page-content h1,.page-content.home h2{display:block;font-family:lato;font-size:3.6rem;font-weight:700;line-height:1.111;margin-bottom:.4167em;margin-top:.2em}.heading-large .heading-secondary{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:2.4rem;line-height:1.25;padding-bottom:6px;padding-top:9px}@media (min-width:768px){.heading-large,.page-content h1,.page-content.home h2{margin-bottom:.5556em;margin-top:.25em}.heading-large .heading-secondary{padding-bottom:4px;padding-top:6px}}.heading-xlarge{margin-bottom:2rem}.heading-upcoming-jobs{margin-top:1.5rem}main{font-family:Noto Sans,Helvetica Neue,Helvetica,Arial,sans-serif}.product-page-intro h1{font-family:Helvetica Neue,Helvetica,Arial,sans-serif}hr{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));border-width:0;display:block;height:1px;margin-bottom:3rem;margin-top:3rem;padding:0}b,strong{font-weight:700}.w-max-content{width:-moz-max-content;width:max-content}.placeholder,.placeholder-conditional,.placeholder-no-brackets{word-wrap:break-word;--bg-opacity:1;--text-opacity:1;word-wrap:break-word;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-radius:20px;box-shadow:inset .47em 0 0 0 #fff,inset -.47em 0 0 0 #fff,inset 0 -.15em 0 0 #fff,inset 0 .15em 0 0 #fff;color:#000;color:rgba(0,0,0,var(--text-opacity));display:inline;overflow-wrap:break-word}.sms-message-wrapper .placeholder,.sms-message-wrapper .placeholder-no-brackets{box-shadow:inset .47em 0 0 0 #dee0e2,inset -.47em 0 0 0 #dee0e2,inset 0 -.18em 0 0 #dee0e2,inset 0 .18em 0 0 #dee0e2}.placeholder-no-brackets{border-radius:1px;box-shadow:inset 0 -.1em 0 0 #fff,inset 0 .1em 0 0 #fff;padding-left:3px;padding-right:3px}.placeholder-conditional{border-radius:0;border-bottom-left-radius:20px;border-bottom-right-radius:8px;border-top-left-radius:20px;border-top-right-radius:8px;box-shadow:inset .47em 0 0 0 #fff,inset -.89em 0 0 0 #fff,inset 0 -.16em 0 0 #fff,inset 0 .16em 0 0 #fff}.sms-message-wrapper .placeholder-conditional{box-shadow:inset .47em 0 0 0 #dee0e2,inset -.89em 0 0 0 #dee0e2,inset 0 -.18em 0 0 #dee0e2,inset 0 .18em 0 0 #dee0e2}.placeholder-redacted{background-color:currentColor;box-shadow:inset 0 -.35em 0 0 #fff;opacity:.8;padding-bottom:0;padding-left:.5em;padding-right:.5em;padding-top:0;position:relative;top:.1em}.sms-message-wrapper .placeholder-redacted{box-shadow:inset 0 -.35em 0 0 #dee0e2}:focus+p .sms-message-wrapper .placeholder-redacted{box-shadow:inset 0 -.35em 0 0 #ffbf47}.autocomplete__input{z-index:5}.autocomplete__input--focused{outline-color:#ffbf47}.banner,.banner-default,.banner-default-with-tick,.banner-with-tick{--border-opacity:1;--text-opacity:1;border:4px solid #00672f;border-color:rgba(0,103,47,var(--border-opacity));clear:both;color:#00672f;color:rgba(0,103,47,var(--text-opacity));display:block;font-size:1.9rem;font-weight:700;line-height:1.25;margin:3rem 0 1.5rem;padding:1.5rem;position:relative;text-align:left}.banner-default-with-tick:focus,.banner:focus{outline:3px solid #ffbf47;outline-offset:0}.banner-dangerous{--border-opacity:1;--text-opacity:1;border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity));color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));margin-top:1.5rem}.banner-dangerous p{margin-bottom:1.5rem;margin-top:1.5rem}.banner-dangerous p:last-child{margin-bottom:0}.banner-dangerous p:first-child{margin-top:0}.banner-title{border-style:none;font-size:2.4rem;font-weight:700;padding-left:0}.banner-default-with-tick,.banner-with-tick{background-image:url(/static/images/tick.svg);background-position:15px 15px;background-repeat:no-repeat;background-size:19px;padding:1.5rem 4.5rem}.banner-list-bullet{font-weight:400;margin-bottom:0}.column-main .heading-large,.column-main>.heading-medium{word-wrap:break-word;margin:1.5rem 0 2rem;overflow-wrap:break-word}.column-main .heading-large.top-gutter-0,.column-main>.heading-medium.top-gutter-0{margin-top:0}#content{outline:2px solid transparent;outline-offset:2px;padding-bottom:3rem}@media (min-width:768px){#content{padding-bottom:90px}}#content,.global-cookie-message p{margin:0 1.5rem;max-width:960px}@media (min-width:768px){#content,.global-cookie-message p{margin-left:3rem;margin-right:3rem}}@media (min-width:1024px){#content,.global-cookie-message p{margin-left:auto;margin-right:auto}}#content.home-page-content{margin-left:0;margin-right:0;max-width:none;padding-bottom:0}footer #footer-primary a:link,footer #footer-primary a:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}footer #footer-primary a img,footer #footer-primary a:focus,footer #footer-secondary a:link,footer #footer-secondary a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}footer #footer-primary a img{content:url(/static/images/external-white.svg)}footer #footer-primary a:focus img{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));content:url(/static/images/external.svg)}@media (min-width:1024px){footer #footer-secondary li{align-items:center;display:flex}footer #footer-secondary li:not(:last-child) .separator{height:4px;line-height:0;padding-left:1.5rem;padding-right:1.5rem}}.page-footer{margin-bottom:3rem;position:relative}.page-footer-delete-link{margin-left:1.5rem}.page-footer-delete-link a:link,.page-footer-delete-link a:visited{--text-opacity:1;border-color:transparent;border-width:2px;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:inline-block;padding:.25rem;vertical-align:center}.page-footer-delete-link a:active,.page-footer-delete-link a:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}.page-footer-delete-link a:focus{--border-opacity:1;--text-opacity:1;border-color:#df3034;border-color:rgba(223,48,52,var(--border-opacity));border-width:2px;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.page-footer-delete-link-without-button{display:inline-block;font-size:1.9rem;line-height:1.25;margin-left:0}.page-footer-secondary-link{display:block;margin-top:3rem;width:-moz-max-content;width:max-content}.page-footer-right-aligned-link{position:absolute;right:0;top:10px}.page-footer .button{margin-right:1rem}.page-footer .js-cancel{margin:0}.table,table{border-collapse:collapse;border-spacing:0;margin-bottom:3rem;width:100%}table td,table th{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;font-size:1.9rem;line-height:1.25;padding:.632em 1.05em .4743em 0;text-align:left}thead th{font-weight:700}.table-field-heading:last-child,td:last-child,th:last-child{padding-right:0!important}table .numeric{text-align:right}td.numeric{font-family:Noto Sans,Arial,sans-serif}table caption{text-align:left}.table-font-xsmall td.table-field-index,.table-font-xsmall th{font-weight:700}.table-font-xsmall td{font-weight:400}.table-font-xsmall td,.table-font-xsmall th{font-size:1.6rem;line-height:1.25;padding:.75em 1.25em .5625em 0}td{vertical-align:top}.table-heading{margin:1.5rem 0;text-align:left}.table-row-group{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;border-width:1px 0}.dashboard-table .heading-medium{margin-bottom:.5rem}.dashboard-table .table{table-layout:fixed}.dashboard-table .table-field-headings th{font-size:1px}.dashboard-table .table-field-headings-visible th{padding-bottom:.5rem}.dashboard-table .table-row th{display:table-cell;font-weight:400;width:52.5%}.settings-table table{margin-bottom:.5rem;table-layout:fixed}.settings-table th:first-child{width:35%}.settings-table th:last-child{width:17.5%}.settings-table td.table-field-left-aligned:first-child div{white-space:normal}.settings-table td.table-field-left-aligned ul li{margin-bottom:.5rem}.settings-table .table-heading{margin-bottom:2rem}.table-field{vertical-align:top}.table-field-index{font-size:1.9rem;font-weight:700;line-height:1.25;position:relative;width:15px}.table-field-index a:before{bottom:0;content:"";left:0;position:absolute;right:0;top:0}.table-field-index a:focus:before{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));z-index:-1}.table-field p{margin:0 0 .5rem}.table-field-error{--border-opacity:1;border:solid #b10e1e;border-color:rgba(177,14,30,var(--border-opacity));border-width:0 0 0 4px;padding-left:7px}.table-field-noborder{border-width:0}.table-field-headings th{padding:1px}.table-field-headings-visible{height:auto}.table-field-headings-visible th{padding:.75em 1.25em .5625em 0}.table-field-headings th,.table-field-headings-visible th{font-size:1.9rem;font-weight:700;line-height:1.25}.dashboard-table .table-field-heading-first,.dashboard-table .table-field-headings-first,.dashboard-table .table-field-headings-visible-first{width:52.5%}.table+.table-show-more-link{margin-top:-30px}.table-field-error-label{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));display:block;font-weight:700}.table-field-invisible-error{border:solid transparent;border-width:0 0 0 4px;display:block;padding-left:7px}.table-field-status-default{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.table-field-status-error{font-weight:700}.table-field-status-error,.table-field-status-error .status-hint,.table-field-status-error a:link,.table-field-status-error a:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.table-field-status-error .status-hint{display:block;font-weight:400;margin-top:.5rem}.table-field-status-no,.table-field-status-yes{background-position:50% 50%;background-repeat:no-repeat;background-size:19px;display:block;text-indent:-999em}.table-field-status-yes{background-image:url(/static/images/tick.svg)}.table-field-right-aligned{text-align:right}.table-field-heading-right-aligned{display:block;text-align:right}.table-field-right-aligned a{position:relative}.table-field-right-aligned a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.table-field-right-aligned a:active,.table-field-right-aligned a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.table-field-right-aligned a:active:before,.table-field-right-aligned a:focus:before{--border-opacity:1;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity));border-style:solid;border-width:15px 3px 15px 15px;right:-3px}.table-empty-message,.table-no-data{--text-opacity:1;--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;border-width:1px 0;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;line-height:1.25;padding-bottom:.5625em;padding-left:0;padding-right:0;padding-top:.75em}.table-no-data{margin-bottom:4rem;margin-top:1rem}.table-show-more-link{--text-opacity:1;--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;font-weight:400;line-height:1.25;margin-bottom:4rem;padding:1rem 0;text-align:center}a.table-show-more-link{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.wide-left-hand-column{display:block;max-width:560px}.truncate-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.do-not-truncate-text{white-space:normal!important}.spreadsheet thead{-webkit-user-select:none;-moz-user-select:none;user-select:none}.spreadsheet .table{margin-bottom:0}.spreadsheet .table-field-index,.spreadsheet th{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity));font-weight:700;text-align:center}.spreadsheet td,.spreadsheet th{--border-opacity:1;border:1px solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));padding-left:1rem;padding-right:1rem}.spreadsheet td{border-top-width:0;min-width:194px - 11px}.spreadsheet td:first-child{min-width:auto}.spreadsheet .fullscreen-fixed-table{z-index:1000}.spreadsheet .fullscreen-fixed-table .table-field-heading-first{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity))}.body-copy-table table td,.body-copy-table table th{word-wrap:break-word;font-size:1.9rem;font-weight:400;line-height:1.25;overflow-wrap:break-word}.body-copy-table table thead th{font-size:1.9rem;font-weight:700;line-height:1.25}.preview-banner a,header a:hover{text-decoration:underline!important}header a:focus:visited,header a:link,header a:link:focus,header a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));text-decoration:none}a:focus #live-banner,a:hover #live-banner{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}.navigation{padding:0}.navigation-service{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;font-size:0;margin:0 0 1rem;position:relative}.navigation-service-name{display:inline-block;font-weight:700;max-width:50%;padding-left:0}.navigation-service-name,.navigation-service-switch{font-size:1.9rem;line-height:1.25;padding-bottom:11px;padding-right:0;padding-top:14px}.navigation-service-switch{font-weight:400;padding-left:1.5rem;position:absolute;right:0;text-align:right;top:0}.navigation-service-switch:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation-service-switch:focus{--border-opacity:1;--text-opacity:1;border-bottom:1px;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity));border-left-width:10px;border-right-width:3px;border-style:solid;color:#000;color:rgba(0,0,0,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;right:-3px}.navigation-service-back-to{display:inline-block;font-size:1.9rem;font-weight:400;line-height:1.25;padding-bottom:11px;padding-left:0;padding-right:1.5rem;padding-top:14px;text-decoration:none}.navigation-service-back-to:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation li{font-size:1.9rem;font-weight:400;line-height:1.25;list-style-type:none;margin:0}.navigation a{display:block;padding:.5rem 0;position:relative;top:5px}.navigation a:link,.navigation a:visited{text-decoration:none}.navigation a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity));text-decoration:underline}.navigation a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.navigation a.selected{font-size:1.9rem;font-weight:700;left:-.5px;letter-spacing:-.01em;line-height:1.25;position:relative}@media (min-width:768px){.sub-navigation{margin-top:45px}}.sub-navigation ol,.sub-navigation ul{list-style-type:none;margin:0;padding:0}.sub-navigation__item{--border-opacity:1;border-bottom:1px;border-color:#dee0e2;border-color:rgba(222,224,226,var(--border-opacity));border-style:solid;display:block;font-size:1.6rem;font-weight:400;line-height:1.25;padding:1rem 0}.sub-navigation__item a:link{text-decoration:none}.sub-navigation__item a:active,.sub-navigation__item a:hover{text-decoration:underline}ol ol .sub-navigation__item{padding-left:3rem}.sub-navigation__item--active{font-size:1.6rem;font-weight:700;line-height:1.25}.sub-navigation__item--active a:link,.sub-navigation__item--active a:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.header--active{--border-opacity:1!important;border-bottom-width:4px!important;border-color:#213045!important;border-color:rgba(33,48,69,var(--border-opacity))!important}.menu--active{font-weight:700}.adminnav--active{--bg-opacity:1;--border-opacity:1;background-color:#eee;background-color:rgba(238,238,238,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-left-width:4px;font-weight:800}.menu-divider{background:#c6c6c6;height:1px;left:124px;width:102px}.shadow{box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.big-number{display:block}.big-number-number{display:block;font-size:2.7rem;font-weight:700;line-height:1;padding-bottom:1rem}.big-number-dark{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;padding:1.5rem}.big-number-label{display:inline-block;font-size:1.9rem}.big-number-status{--text-opacity:1;--bg-opacity:1;background-color:#00703c;background-color:rgba(0,112,60,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;font-size:1.9rem}.big-number-status:hover>div{text-decoration:none}.big-number-with-status{margin-bottom:2rem;position:relative}.big-number-link,.big-number-with-status>.big-number{--text-opacity:1;--bg-opacity:1;--border-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-style:solid;border-width:2px}.big-number-link,.big-number-link-normal,.big-number-with-status>.big-number{color:#fff;color:rgba(255,255,255,var(--text-opacity));display:block;text-decoration:none}.big-number-link-normal{--text-opacity:1}.big-number-link-warning{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;text-decoration:none}.big-number-link:hover,.big-number-link:hover .big-number{--text-opacity:1;color:#d5e8f3;color:rgba(213,232,243,var(--text-opacity))}.big-number-link:active,.big-number-link:focus{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));outline:3px solid #ffbf47;outline-offset:0}.big-number-link:active .big-number-label,.big-number-link:active span,.big-number-link:focus .big-number-label,.big-number-link:focus span,.big-number-link:hover .big-number-label,.big-number-link:hover span{text-decoration:none}.big-number-status-link:active,.big-number-status-link:hover,.big-number-status-link:link,.big-number-status-link:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.big-number-status-link:active,.big-number-status-link:focus{background-color:revert;border-width:0;box-shadow:none;outline:3px solid #ffbf47;outline-offset:0}div[class*=review-email-status-]:active,div[class*=review-email-status-]:focus{outline:3px solid #ffbf47;outline-offset:0}div[class*=review-email-status-]:hover div[class~=review-email-label] span,div[class*=review-email-status-]:hover div[class~=review-email-link] span{text-decoration:none}.normal{background-color:#00703c;background-color:rgba(0,112,60,var(--bg-opacity));border-color:#00703c;border-color:rgba(0,112,60,var(--border-opacity))}.critical,.normal{--bg-opacity:1;--border-opacity:1}.critical{background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity));border-color:#b10e1e;border-color:rgba(177,14,30,var(--border-opacity))}.neutral{background:#49535d;border-color:#49535d}.textbox-highlight-wrapper{position:relative}.textbox-highlight-textbox{background-color:transparent;resize:none;z-index:20}.textbox-highlight-background,.textbox-highlight-foreground,.textbox-highlight-mask,.textbox-highlight-textbox{box-sizing:border-box;display:block;font-size:1.9rem;line-height:1.31579;margin:0;overflow:hidden;padding:4px;position:relative}.textbox-highlight-background{word-wrap:break-word;border:2px solid transparent;color:transparent;left:0;overflow-wrap:break-word;padding-bottom:1.5rem;pointer-events:none;position:absolute;top:0;white-space:pre-wrap;z-index:10}.textbox-highlight-background .placeholder{color:transparent}.extra-tracking .form-control{font-family:Noto Sans,Arial,sans-serif;font-size:1.9rem;letter-spacing:.04em;line-height:1.25;padding-left:.5rem}@media (min-width:768px){.textbox-colour-preview{border-radius:50%;box-shadow:inset 0 0 0 1px rgba(#0b0c0c,.2);display:inline-block;height:38px;margin-left:.5rem;transition:background .3s ease-out;vertical-align:top;width:38px}}.js-enabled .file-upload-label{display:inline-block;font-size:1.9rem;font-weight:700;line-height:1.25;margin:0 0 1rem;position:relative}.js-enabled .file-upload-label .error-message{padding:0}.js-enabled .file-upload-field{font-size:.1px;height:100%;left:0;min-width:100%;opacity:0;position:absolute;top:0;z-index:-1}.js-enabled .file-upload-field:focus+#file-upload-button{outline:3px solid #ffbf47;outline-offset:0}.js-enabled .file-upload-button,.js-enabled .file-upload-button-cancel{display:inline-block;margin-right:.5rem}.js-enabled .file-upload-filename{display:inline-block;font-size:1.9rem;font-weight:700;line-height:1.25;padding-left:1.5rem}.js-enabled .file-upload-submit{display:none}.js-enabled .file-upload-alternate-link{display:inline-block;line-height:2}.js-enabled .file-upload-alternate-link a{font-size:1.9rem;font-weight:700;line-height:1.25}.browse-list{margin-bottom:1.5rem}.browse-list .browse-sub-list{margin-left:3rem;margin-top:1.5rem}@media (min-width:768px){.browse-list .browse-sub-list{margin-left:60px}}.browse-list-item,.browse-list-sub-item{list-style-type:none;margin-bottom:1.5rem}.browse-list-item,.browse-list-link,.browse-list-sub-item{font-size:2.4rem;font-weight:700;line-height:1.25}.browse-list-link-destructive,.browse-list-link-destructive:link,.browse-list-link-destructive:visited{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));font-size:2.4rem;font-weight:700;line-height:1.25}.browse-list-link-destructive:hover{--text-opacity:1;color:#df3034;color:rgba(223,48,52,var(--text-opacity))}.browse-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;margin:.5rem 0 1rem}.sms-message-wrapper{word-wrap:break-word;--bg-opacity:1;--border-opacity:1;background-color:#dee0e2;background-color:rgba(222,224,226,var(--bg-opacity));border-color:#dee0e2;border-color:rgba(222,224,226,var(--border-opacity));border-radius:.5rem;border-style:solid;border-width:1px;box-sizing:border-box;clear:both;margin:0 0 3rem;max-width:464px;padding:1.5rem;position:relative;white-space:normal;width:100%}.sms-message-wrapper:after{border-color:transparent transparent #dee0e2 #dee0e2;border-style:solid;border-width:10px 13px;bottom:-5px;content:"";display:block;position:absolute;right:-20px;transform:rotate(20deg)}.sms-message-recipient,.sms-message-sender{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;margin:0;padding-bottom:8px;padding-bottom:.5rem;padding-top:2px}.email-message{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.email-message-table{border-width:0;border-bottom:1px #bfc1c3;border-style:solid;font-size:1.9rem;font-weight:400;line-height:1.25;vertical-align:top}.email-message-meta td{word-wrap:break-word;overflow-wrap:break-word;padding-right:6rem;width:99%}.email-message-body table td{border-width:0;font-family:inherit!important;padding:0}.email-message-body li:first-child{margin-top:0!important}.button,a.button,a.button:active,a.button:link,a.button:visited{--text-opacity:1;--bg-opacity:1;align-items:center;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));box-shadow:0 2px 0 #1a3152;color:#fff;color:rgba(255,255,255,var(--text-opacity));cursor:pointer;display:inline-flex;font-size:1.9rem;line-height:1.25;min-height:45px;padding:.55em 1em .45em;text-decoration:none;vertical-align:top}.button.shadow-none,a.button.shadow-none,a.button.shadow-none:active,a.button.shadow-none:link,a.button.shadow-none:visited{padding:.5em 1em}.button:hover,a.button:hover{--bg-opacity:1;background-color:#284162;background-color:rgba(40,65,98,var(--bg-opacity))}.button:focus,a.button:focus{border-color:transparent;box-shadow:0 0 0 3px #ffbf47;outline:3px solid #ffbf47;outline-offset:0}.button-blue-lighter,a.button-blue-lighter,a.button-blue-lighter:link,a.button-blue-lighter:visited{--bg-opacity:1;--border-opacity:1;--text-opacity:1;background-color:#b2e3ff;background-color:rgba(178,227,255,var(--bg-opacity));border-bottom-width:2px;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));color:#000;color:rgba(0,0,0,var(--text-opacity));font-size:2rem;font-weight:700;padding:1rem 1.25rem}.button-blue-lighter:hover,a.button-blue-lighter:hover{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity))}.button-blue-lighter:focus,a.button-blue-lighter:focus{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-color:transparent;box-shadow:0;outline:2px solid transparent;outline-offset:2px}.button-red,a.button-red,a.button-red:link,a.button-red:visited{--bg-opacity:1;background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity));box-shadow:0 2px 0 #6a0812}.button-red:hover,a.button-red:hover{--bg-opacity:1;background-color:#990c1a;background-color:rgba(153,12,26,var(--bg-opacity))}.button-secondary,a.button-secondary,a.button-secondary:link,a.button-secondary:visited{--text-opacity:1;--bg-opacity:1;background-color:#dee0e2;background-color:rgba(222,224,226,var(--bg-opacity));box-shadow:0 2px 0 #b5babe;color:#000;color:rgba(0,0,0,var(--text-opacity));font-size:1em}.button-secondary:hover,a.button-secondary:hover{--bg-opacity:1;background-color:#d0d3d6;background-color:rgba(208,211,214,var(--bg-opacity))}.button-secondary:focus,a.button-secondary:focus{border-color:transparent;box-shadow:0 0 0 3px #ffbf47;outline:1px solid #ffbf47}.button.disabled,a.button.disabled{cursor:default;opacity:.5}.button-link,a.button-link,a.button-link:link,a.button-link:visited{background-color:transparent;border-bottom-width:2px;border-color:transparent;box-shadow:none;padding:1rem 1.25rem;text-decoration:underline}.button-link:hover,a.button-link:hover{text-decoration:none}.button-link:focus,a.button-link:focus{--bg-opacity:1;--text-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;text-decoration:none}.selection-summary__text--folders{background-image:url(/static/images/folder-black.svg);background-position:0 4px;background-repeat:no-repeat;background-size:39px auto;font-size:1.9rem;font-weight:400;margin-bottom:1.5rem;padding:1rem 1.5rem .5rem 5rem;text-transform:none}.selection-summary__text--folders:focus{outline:2px solid transparent;outline-offset:2px}.selection-content .checkboxes-nested{margin-bottom:0}.multiple-choice .conditional{display:none;padding:8px 15px 0 12px}.multiple-choice input:checked~.conditional{display:block}.multiple-choice .conditional,.select-nested .multiple-choice{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));float:none;position:relative}.multiple-choice .conditional .form-group{margin-bottom:0}.multiple-choice .conditional:before,.select-nested .multiple-choice:before{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));bottom:0;content:"";height:100%;left:17px;position:absolute;width:4px}.multiple-choice .conditional:before{left:-22px}.multiple-choice .conditional label,.select-nested .multiple-choice label{float:none}.radios-nested{margin-bottom:1rem}.has-conditional input:checked+label .block-label-hint:after,.radios-nested .block-label-hint:after{--bg-opacity:1;background-color:#bfc1c3;background-color:rgba(191,193,195,var(--bg-opacity));content:"";height:calc(100% - 45px);left:16px;position:absolute;top:45px;width:4px}.select-nested .multiple-choice ul{margin-bottom:-5px;margin-top:.5rem;padding-left:12px}.select-nested .multiple-choice [type=checkbox]+label:before,.select-nested .multiple-choice [type=radio]+label:before{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}[data-module*=collapsible] button[aria-expanded=true]{margin-top:2rem}.conditional-radio-panel{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 0 4px;margin:-20px 0 0 17px;padding:10px 0 0 28px}.multiple-choice{z-index:10}.multiple-choice .block-label:before{box-shadow:0 5px 0 #fff}.multiple-choice input:disabled+label{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));cursor:default;opacity:1}.pill li{flex-grow:1;float:left;text-align:left;width:25%}.pill{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-width:2px}.pill,.pill>a+a{--border-opacity:1}.pill>a+a{border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-left-width:2px}.pill a,.pill-selected-item{align-self:center;display:block;float:left;padding-bottom:1.25rem;padding-top:1.25rem;text-decoration:none;width:100%}.pill a{border-bottom-width:0;cursor:pointer;position:relative}.pill a .pill-content{text-decoration:none}.pill a:hover .pill-label{text-decoration:underline}.pill a:active,.pill a:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px;z-index:10}a.pill-selected-item{--bg-opacity:1;background-color:#f0f2f5;background-color:rgba(240,242,245,var(--bg-opacity));outline:1px solid hsla(0,0%,100%,.1);outline-offset:0;position:relative;z-index:10}a.pill-selected-item:hover{--bg-opacity:1;--text-opacity:1;background-color:#24508f;background-color:rgba(36,80,143,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}a.pill-selected-item:focus{outline:3px solid #ffbf47;outline-offset:0;z-index:1000}a.pill-unselected-item{outline:1px solid hsla(0,0%,100%,.1);outline-offset:0;position:relative;z-index:10}a.pill-unselected-item:link,a.pill-unselected-item:visited{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity))}a.pill-unselected-item:hover{--bg-opacity:1;background-color:#24508f;background-color:rgba(36,80,143,var(--bg-opacity))}a.pill-unselected-item:active,a.pill-unselected-item:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}a.pill-unselected-item:focus{outline:3px solid #ffbf47;outline-offset:0;z-index:1000}.pill-centered-item{text-align:center}.pill-count-item{padding-left:.75rem;padding-right:.75rem}.pill-separate-item{display:block;padding:1rem 1.5rem;text-align:center}.pill-separate-item:link,.pill-separate-item:visited{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));text-decoration:underline}.pill-separate-item:focus,.pill-separate-item:hover,.pill-separate-item:link:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity))}.show-more,.show-more-empty{--border-opacity:1;border-bottom-width:0;border-color:#bfc1c3;border-top:1px #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;display:block;font-size:1.6rem;font-weight:400;line-height:1.25;margin:1.5rem 0 3rem;padding:0;text-align:center}.show-more-empty:focus,.show-more:focus{--border-opacity:1;background-color:transparent;border-bottom-width:0;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));margin-bottom:3rem;outline:2px solid transparent;outline-offset:2px}.show-more-empty:focus span,.show-more:focus span{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:1px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));outline:2px solid transparent;outline-offset:2px}.show-more span,.show-more-empty span{--bg-opacity:1;--border-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border-bottom:1px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));border-style:solid;display:inline-block;outline:10px solid #fff;position:relative;top:-11px}.show-more-empty{margin-top:-10px}.api-key{display:flex;padding-bottom:38px;position:relative}.api-key-key{display:block;font-family:monospace;margin:auto 0;padding-bottom:10px;padding-left:0;padding-right:0;padding-top:0}.api-key-name{font-weight:700;line-height:1.25;margin-bottom:5px}.previous-and-next-navigation{display:block;margin:3rem -1.5rem}.previous-and-next-navigation .group{margin:0;padding:0}.previous-and-next-navigation .page{font-size:1.6rem;font-weight:400;line-height:1.25;list-style-type:none;margin:0;padding:0;width:50%}.previous-and-next-navigation .page a{display:flex;padding:1.5rem;text-decoration:none}.previous-and-next-navigation .pagination-part-title{display:block;font-size:2.7rem;font-weight:700;line-height:1.25;margin-left:1.5rem}.previous-and-next-navigation .page a:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.previous-and-next-navigation .page a:active,.previous-and-next-navigation .page a:hover{--bg-opacity:1;background-color:#f8f8f8;background-color:rgba(248,248,248,var(--bg-opacity))}.previous-and-next-navigation .pagination-icon{display:inline-block;height:.684em;margin-top:.684em;width:.894em}.previous-and-next-navigation .pagination-label{display:block;margin-top:.1em;text-decoration:underline}.previous-and-next-navigation .pagination-label:empty{display:none}@media (min-width:640px){.previous-and-next-navigation .next-page{margin-left:auto}.previous-and-next-navigation .next-page a{justify-content:flex-end}.previous-and-next-navigation .next-page .pagination-part-title{margin-left:0;margin-right:1.5rem}}.form-control.list-form-control{margin-bottom:0;padding-left:1.84em;width:100%}.list-entry{margin-bottom:1.5rem;position:relative;vertical-align:middle}.list-entry label{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.list-entry .form-group{margin-bottom:1rem}.list-entry-remove{display:block;font-size:1.9rem;line-height:1.25;margin-bottom:1.5rem;margin-top:.5rem;overflow:hidden;position:static}@media (min-width:640px){.list-entry-remove{display:inline-block;left:100%;margin:0 0 0 1rem;position:absolute;top:0}}.text-box-number-label{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));float:left;font-size:1.9rem;font-weight:700;left:10px;margin:6px -1.6em 0 0;pointer-events:none;position:relative;width:1.6em}.message-name{font-size:2.4rem;font-weight:700;line-height:1.25;margin:0}.message-name a{margin-bottom:-30px;padding-bottom:3rem}.message-name a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.message-name a:hover .message-name-separator:before{--border-opacity:1;border-color:#0154b0;border-color:rgba(1,84,176,var(--border-opacity))}.message-name a:focus{border-width:0;outline:3px solid #ffbf47;outline-offset:0}.message-name a .message-name-separator{margin-left:-2px;margin-right:-2px}.message-name a .message-name-separator:before{--border-opacity:1;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity))}.message-type{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));margin:0 0 2rem;pointer-events:none}#template-list{margin-top:3rem}#template-list.top-gutter-5px{margin-top:.5rem}.template-list-item-with-checkbox{padding-left:6rem;position:relative}.template-list-item-with-checkbox .multiple-choice{left:0;position:absolute}.template-list-item-hidden-by-default{display:none}.template-list-item-without-ancestors .message-name a,.template-list-item-without-ancestors .message-name a:first-child{display:block}.template-list-item-without-ancestors .message-name a.template-list-folder:first-child{background-position:0 2px;padding-left:0;text-indent:40px}.template-list-folder{background-image:url(/static/images/folder-blue-bold.png);background-image:url(/static/images/folder-blue-bold.svg);background-position:0 4px;background-repeat:no-repeat;background-size:auto 20px;display:inline;padding-left:4rem}.template-list-folder:hover{background-image:url(/static/images/folder-blue-bold-hover.png);background-image:url(/static/images/folder-blue-bold-hover.svg)}.template-list-template a{display:inline}.template-list-empty{padding:1.5rem 0 1rem}.template-list-empty,.template-list-selected-counter{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.template-list-selected-counter{margin:1.5rem 0}@media (min-width:1024px){.template-list-selected-counter{margin:0;position:absolute;right:0;top:29px}}.content-fixed .template-list-selected-counter{right:15px}.grid-row .folder-heading{word-wrap:break-word;display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;vertical-align:baseline}.folder-heading a,.folder-heading-folder{background-position:0 4px;background-repeat:no-repeat;background-size:auto 19px;display:inline;font-size:1.9rem;min-height:3rem;vertical-align:top}.folder-heading-folder{background-image:url(/static/images/folder-black-bold.png);background-image:url(/static/images/folder-black-bold.svg);padding:0 0 0 3rem}.folder-heading-folder-group:not(:last-child){margin-bottom:1rem;margin-right:1rem}.folder-heading-folder-truncated{overflow:hidden;padding:0 0 0 3rem;white-space:nowrap;width:0}.folder-heading-folder-root-truncated{max-width:5em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.folder-heading a{display:inline}.folder-heading a.folder-heading-folder{background-image:url(/static/images/folder-blue-bold.png);background-image:url(/static/images/folder-blue-bold.svg);display:inline}.folder-heading a.folder-heading-folder:hover{background-image:url(/static/images/folder-blue-bold-hover.png);background-image:url(/static/images/folder-blue-bold-hover.svg)}.folder-heading a.folder-heading-folder-truncated{display:inline-block}.folder-heading a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.folder-heading-manage-link{display:block;min-height:3rem;text-align:right}.folder-heading-separator,.message-name-separator{display:inline-block;height:3rem;position:relative;vertical-align:top;width:2rem}.folder-heading-separator:before,.message-name-separator:before{--border-opacity:1;--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;--transform-rotate:45deg;border-color:#595959;border-color:rgba(89,89,89,var(--border-opacity));border-style:solid;border-width:2px 2px 0 0;bottom:-9px;content:"";display:block;height:9px;margin:auto 0;position:absolute;right:7px;top:-9px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y));width:9px}.fullscreen-content{--bg-opacity:1;--border-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border:0 solid #bfc1c3;border-bottom-width:1px;border-color:rgba(191,193,195,var(--border-opacity));box-sizing:border-box;margin:0 0 3rem;overflow:hidden;overflow-x:scroll;padding:0;z-index:10}.fullscreen-content.table-truncated{border-width:0;margin-bottom:0}.fullscreen-content .table{margin-bottom:0}.fullscreen-content tr:last-child td{border-bottom-width:0}.fullscreen-content .table-field-error-label,.fullscreen-content .table-field-left-aligned,.fullscreen-content th{white-space:nowrap}.fullscreen-right-shadow{height:100%;position:absolute;right:0;top:0;width:4px;z-index:200}.fullscreen-right-shadow.visible.with-transition{transition:box-shadow .6s ease-out}.fullscreen-right-shadow.visible{box-shadow:inset -1px 0 0 0 #bfc1c3;box-shadow:inset -3px 0 0 0 hsla(210,3%,76%,.2)}.fullscreen-scrollable-table{overflow-x:auto;overflow-y:hidden}.fullscreen-scrollable-table .table-field-heading-first,.fullscreen-scrollable-table .table-field-index{display:none}.fullscreen-scrollable-table .table-field-left-aligned{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));position:relative;z-index:150}.fullscreen-scrollable-table::-webkit-scrollbar{-webkit-appearance:none}.fullscreen-scrollable-table::-webkit-scrollbar:horizontal{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));height:11px}.fullscreen-scrollable-table::-webkit-scrollbar-thumb{--border-opacity:1;background-color:rgba(0,0,0,.5);border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity));border-radius:8px;border-style:solid;border-width:2px}.fullscreen-scrollable-table::-webkit-scrollbar-track{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));border-radius:8px}.fullscreen-fixed-table{overflow:hidden;position:absolute;top:0}.fullscreen-fixed-table .table-field-heading{visibility:hidden}.fullscreen-fixed-table .table-field-left-aligned{position:absolute;visibility:hidden;width:0;z-index:100}.fullscreen-fixed-table .table-field-heading-first,.fullscreen-fixed-table .table-field-index{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));position:relative;transition:none;z-index:200}.fullscreen-fixed-table .table-field-index a{font-size:1.6rem}.fullscreen-scrolled-table{padding-bottom:2rem}.fullscreen-scrolled-table .table-field-heading-first,.fullscreen-scrolled-table .table-field-index{box-shadow:1px 0 0 0 #bfc1c3;box-shadow:3px 0 0 0 hsla(210,3%,76%,.2);transition:box-shadow .3s ease-in-out}.fullscreen-shim{margin-bottom:3rem;pointer-events:none;position:relative;width:100%;z-index:9}.fullscreen-shim+.table-show-more-link{margin-top:-28px}svg.table-overflow{--text-opacity:1;color:#bfc1c3;color:rgba(191,193,195,var(--text-opacity));margin-bottom:3rem}svg.table-overflow rect{fill:url(#cut)}@media (min-width:640px){svg.table-overflow rect{fill:url(#cut-sm)}}@media (min-width:768px){svg.table-overflow rect{fill:url(#cut-md)}}@media (min-width:1024px){svg.table-overflow rect{fill:url(#cut-lg)}}.tick-cross-cross,.tick-cross-tick{background-position:0 6px;background-repeat:no-repeat;background-size:19px 19px;display:inline-block;font-size:1.9rem;font-weight:400;line-height:1.25;padding:6px 0 5px 25px}.tick-cross-tick{background-image:url(/static/images/tick.svg)}.tick-cross-cross{--text-opacity:1;background-image:url(/static/images/cross-grey.svg);color:#595959;color:rgba(89,89,89,var(--text-opacity))}.tick-cross-list-permissions{margin-top:.5rem}.tick-cross-list-permissions li{display:block;margin-right:.53m}.tick-cross-list-edit-link{right:-135px;text-align:right;top:-25px}.tick-cross-list-edit-link a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.tick-cross-list-edit-link a:active,.tick-cross-list-edit-link a:focus{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.tick-cross-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));padding-top:.5rem}.js-stick-at-bottom-when-scrolling,.js-stick-at-top-when-scrolling{margin-left:-15px;overflow:hidden;padding:1rem 0 0 1.5rem;position:relative}.js-stick-at-bottom-when-scrolling .form-group,.js-stick-at-top-when-scrolling .form-group{margin-bottom:2rem}.js-stick-at-bottom-when-scrolling .form-group legend,.js-stick-at-top-when-scrolling .form-group legend{outline:2px solid transparent;outline-offset:2px}.js-stick-at-bottom-when-scrolling .back-top-top-link,.js-stick-at-top-when-scrolling .back-top-top-link{opacity:0;position:absolute;right:15px;top:30px;transition-duration:.1s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-bottom-when-scrolling .template-list-selected-counter,.js-stick-at-top-when-scrolling .template-list-selected-counter{margin-bottom:1.5rem;margin-top:1.5rem;position:relative;right:0;top:0}.js-stick-at-top-when-scrolling{margin-bottom:.5rem;margin-top:-10px;top:5px;transition:top .1s ease-out,box-shadow 1s ease-in-out}.js-stick-at-bottom-when-scrolling{margin-top:-20px;padding:2rem 0 2rem 1.5rem;transition:bottom .1s ease-out,box-shadow 1s ease-in-out}.js-stick-at-bottom-when-scrolling+.js-stick-at-bottom-when-scrolling{margin-top:-40px}.js-stick-at-bottom-when-scrolling .page-footer{margin-bottom:0;min-height:50px}.js-stick-at-bottom-when-scrolling .page-footer-delete-link-without-button{margin-top:1rem}.page-footer-delete-link-without-button .notification-status{margin:0}.page-footer-delete-link-without-button .button-secondary{margin-right:1.5rem}.content-fixed,.content-fixed-onload{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));margin-top:0;padding-right:1.5rem;position:fixed;z-index:100}.content-fixed .back-to-top-link,.content-fixed-onload .back-to-top-link{opacity:1;transition-duration:.3s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-top-when-scrolling.content-fixed,.js-stick-at-top-when-scrolling.content-fixed-onload{margin-top:0;top:0}.js-stick-at-top-when-scrolling.content-fixed__top{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:0 0 1px;box-shadow:0 2px 0 0 hsla(210,3%,76%,.2)}.js-stick-at-top-when-scrolling.content-fixed{transition:background .3s ease-in-out,margin-top .3s ease-out}.js-stick-at-bottom-when-scrolling.content-fixed,.js-stick-at-bottom-when-scrolling.content-fixed-onload{bottom:0;top:auto}.js-stick-at-bottom-when-scrolling.content-fixed__bottom{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:1px 0 0;box-shadow:0 -2px 0 0 hsla(210,3%,76%,.2)}.js-stick-at-bottom-when-scrolling.content-fixed{transition-duration:.3s;transition-property:background;transition-timing-function:cubic-bezier(.4,0,.2,1)}.js-stick-at-bottom-when-scrolling-loaded.content-fixed-onload{transition-property:none}.shim{display:block;margin-bottom:.5rem}.js-cancel{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));cursor:pointer;display:inline-block;margin-right:-10px;margin-top:-10px;padding:1rem 1rem .5rem;text-decoration:underline}.js-cancel:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.js-cancel:active,.js-cancel:focus{--bg-opacity:1;--text-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));color:#213045;color:rgba(33,48,69,var(--text-opacity));outline:2px solid transparent;outline-offset:2px}.stick-at-top-when-scrolling{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity));padding-bottom:1.5rem;padding-top:1.5rem;position:sticky;top:0;z-index:50}.stick-at-top-when-scrolling .page-footer{margin-bottom:1.5rem}.task-list{--border-opacity:1;border-color:#bfc1c3;border-top:1px #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;margin:3rem 0}.task-list-item{position:relative}.task-list-item a{--border-opacity:1;border-bottom:1px;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-style:solid;display:block;padding-right:20%;padding:1.5rem 0;position:relative}.task-list-item a:hover{--text-opacity:1;color:#0154b0;color:rgba(1,84,176,var(--text-opacity))}.task-list-item a:focus{--text-opacity:1;border-color:transparent;box-shadow:0 2px 0 3px #1a3152;color:#000;color:rgba(0,0,0,var(--text-opacity));margin-bottom:-2px;outline:3px solid #ffbf47;outline-offset:0;padding-bottom:16px;padding-top:16px;top:-1px}.task-list-item:focus-within .task-list-indicator-completed{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.task-list-indicator-completed,.task-list-indicator-not-completed{display:inline-block;font-size:1.6rem;font-weight:700;line-height:1.25;margin-top:-15px;min-width:20%;padding:3px 8px 1px;pointer-events:none;position:absolute;right:0;text-align:right;top:28px;z-index:2}.task-list-indicator-completed{--text-opacity:1;color:#00672f;color:rgba(0,103,47,var(--text-opacity));letter-spacing:.02em}.back-link,.task-list-indicator-not-completed{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.back-link{--border-opacity:1;border-bottom:1px;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity));border-style:solid;display:inline-block;font-size:1.6rem;font-weight:400;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem;padding-left:14px;position:relative;text-decoration:none}.back-link:focus{border-bottom-width:1px}.back-link:link,.back-link:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.back-link:after,.back-link:before{border-color:transparent;border-style:solid;content:"";position:absolute}.back-link:before{border-right-color:inherit;border-width:5px 6px 5px 0;bottom:1px;-webkit-clip-path:polygon(0 50%,100% 100%,100% 0);clip-path:polygon(0 50%,100% 100%,100% 0);display:block;height:0;left:0;margin:auto;top:-1px;width:0}.back-link:after{border-width:15px 30px 15px 3px;content:"";height:100%;left:-3px;top:-15px;width:100%}.preview-fullpage-border{box-shadow:0 0 0 5px #ffbf47;height:calc(100% - 10px);left:5px;pointer-events:none;position:fixed;top:5px;width:calc(100% - 10px);z-index:99}.remaining-messages{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));padding:1.5rem}.rm-header{display:inline-block;font-size:1.9rem}.rm-used{font-size:2.7rem;font-weight:700;line-height:1;padding-bottom:1rem}.rm-total{float:right}.rm-bar{align-items:flex-end;box-shadow:inset 0 -10px #cfd5dd;display:flex}.rm-bar-usage{background:currentColor;height:30px;width:max(var(--usage),4px)}.dashboard table th{border-bottom-width:0}.dashboard table td,.dashboard table th{font-size:1.9rem;font-weight:400;line-height:1.25}.dashboard table td{border-width:0}.dashboard>.heading-medium:first-of-type{margin-top:6rem}.keyline-block{--border-opacity:1;border:solid #bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-width:1px 0 0;padding-top:1.5rem}.spark-bar{--text-opacity:1;background:linear-gradient(to right,#afb9c3 var(--data),transparent 0);color:#000;color:rgba(0,0,0,var(--text-opacity));display:block;padding:1rem .5rem;text-align:left;width:100%}.file-list-filename{border-bottom-width:2px;border-color:transparent;display:block;font-size:1.9rem;font-weight:700;line-height:1.25;margin-bottom:-30px;margin-top:-10px;padding-bottom:3rem;padding-top:1rem}.file-list-hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block;font-size:1.6rem;font-weight:400;line-height:1.25;max-width:580px;pointer-events:none}.failure-highlight{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity));font-size:1.9rem;font-weight:700;line-height:1.25}.template-usage-table{--border-opacity:1;border:0 solid #bfc1c3;border-bottom-width:1px;border-color:rgba(191,193,195,var(--border-opacity));border-top-width:1px;margin-bottom:4rem;margin-top:1rem}.template-usage-table .table{margin-bottom:.5rem}.align-with-message-body{display:block;margin-top:36px}.user-list{font-size:1.9rem;font-weight:400;line-height:1.25;margin-bottom:3rem;margin-top:3rem}.user-list-item{padding-bottom:1.5rem;padding-left:0;padding-top:1.5rem;vertical-align:baseline}.user-list-item .label{font-weight:700}.user-list-item .hint{--text-opacity:1;color:#49535d;color:rgba(73,83,93,var(--text-opacity));font-weight:400}.user-list-item:last-child{--border-opacity:1;border-bottom-width:1px;border-color:#afb9c3;border-color:rgba(175,185,195,var(--border-opacity))}.user-list-edit-link{text-align:right}.api-notifications{--border-opacity:1;border:solid #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-width:0 0 1px;font-family:monospace}.api-notifications-item{grid-gap:.5rem;--border-opacity:1;border-color:#afb9c3;border-top:1px #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-style:solid;display:flex;gap:.5rem;padding:0;vertical-align:baseline}.api-notifications-item:before{--bg-opacity:1;--text-opacity:1;--border-opacity:1;background-color:#cfd5dd;background-color:rgba(207,213,221,var(--bg-opacity));border:solid #afb9c3;border-color:rgba(175,185,195,var(--border-opacity));border-width:0 1px 0 0;color:#343c45;color:rgba(52,60,69,var(--text-opacity));font-weight:400;padding:.5rem;text-align:right;width:2ch}.api-notifications-item-title{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity));display:block;text-decoration:none}.api-notifications-item-recipient{display:inline}.api-notifications-item-meta{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));display:block}.api-notifications-item-time{text-align:right}.api-notifications-item-key{display:inline-block;padding-left:46px!important}.api-notifications-item-data{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));padding-left:31px}.api-notifications-item-data-item{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity));padding-bottom:1.5rem}.template-container{position:relative}.edit-template-link{--text-opacity:1;--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));color:#fff;color:rgba(255,255,255,var(--text-opacity));font-size:1.9rem;font-weight:400;line-height:1.25;padding:1rem 1.5rem;position:absolute;z-index:10000}.edit-template-link:link,.edit-template-link:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.edit-template-link:hover{--text-opacity:1;color:#d5e8f3;color:rgba(213,232,243,var(--text-opacity))}.notification-status{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity));font-size:1.6rem;font-weight:400;line-height:1.25;margin-top:-15px}.notification-status.error{font-weight:700}.notification-status-cancelled,.notification-status.error,.notification-status.error a{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.notification-status-cancelled{font-size:1.9rem;font-weight:700;line-height:1.25}.wp-block-cover{color:var(--text);position:relative}.wp-block-cover.bg-blue-slightlight{--bg:#284162;--text:#fff;--interactive:#b2e3ff}.wp-block-cover.bg-gray{--bg:#eee;--text:#000;--interactive:#213045}.wp-block-cover a:not(.button):not(:focus){color:var(--interactive)}.wp-block-cover>span{background-color:var(--bg);height:100%;margin:0 calc(50% - 50vw);max-width:100vw;position:absolute;width:100vw}.wp-block-cover .wp-block-cover__inner-container{padding-bottom:5rem;padding-top:5rem;position:relative}.wp-block-cover.flow .wp-block-cover__inner-container>:not(template)+:not(template){margin-top:6rem}.wp-block-columns{flex-direction:column}.wp-block-columns>:not(template)+:not(template){margin-top:3rem}.wp-block-columns.stack-swap>:not(template)+:not(template){margin-top:0}.page-content>*+.wp-block-columns{margin-top:6rem}.wp-block-column>h1:first-child,.wp-block-column>h2:first-child,.wp-block-column>h3:first-child{margin-top:0}@media (max-width:1024px){.wp-block-column[style*=flex-basis]{flex-basis:100%!important}}.wp-block-column[style*="3rem"]{align-items:center;box-sizing:content-box;display:flex;height:3rem}.stack-swap .wp-block-column>.wp-block-image:only-child{display:none}@media (min-width:1024px){.wp-block-columns{display:flex;flex-direction:row;margin-left:-1.5rem;margin-right:-1.5rem;width:calc(100% + 3rem)}.wp-block-columns>:not(template)+:not(template){margin-top:0}.wp-block-column{flex-grow:0;padding-left:1.5rem;padding-right:1.5rem}.wp-block-column>:not(template)+:not(template){margin-top:3rem}.stack-swap .wp-block-column>.wp-block-image:only-child{display:block}.stack-swap .wp-block-column *+.wp-block-image{display:none}}.has-text-align-center{margin-left:auto;margin-right:auto;text-align:center}.wp-block-buttons{display:flex}.wp-block-buttons>:not(:last-child){margin-right:3rem}.wp-block-button a,.wp-block-button a:link,.wp-block-button a:visited{color:inherit;text-decoration:inherit}.wp-block-columns.panel-container{margin-left:0;margin-right:0;max-width:80ch;width:100%}.wp-block-columns.panel-container .panel-preview :first-child{margin-top:0}.wp-block-columns.panel-container .panel-preview ol li+li,.wp-block-columns.panel-container .panel-preview ul li+li{padding:0}.page-content ul{list-style-type:disc;margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0 0 0 2rem}.page-content ul ul{list-style-type:circle}.page-content ul ul ul{list-style-type:square}.page-content ol li+li,.page-content ul li+li{padding-top:1rem}.page-content ol{list-style-type:decimal;margin-bottom:2rem;margin-top:.5rem;max-width:80ch;padding:0 0 0 2rem}.page-content blockquote{--border-opacity:1;border-left:solid;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity));border-left-width:10px;box-sizing:border-box;clear:both;margin-bottom:.7895em;padding:.7895em}.wp .page-content.home a{font-size:2rem}.wp .page-content.home p+ul{margin-top:-.5rem}.visually-hidden,.visuallyhidden{clip:rect(0 0 0 0);border-width:0;margin:-1px;padding:0}.research-mode{--bg-opacity:1;--text-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity));border-radius:.25rem;color:#fff;color:rgba(255,255,255,var(--text-opacity));display:inline-block;font-weight:700;padding:.5rem 1rem}.js-enabled .live-search{display:block;visibility:visible}.live-search .form-group{margin-bottom:20px}.send-one-off-form .form-group{margin-bottom:2rem}.loading-indicator:after{animation:ellipsis 1.5s steps(4) infinite;content:"\2026";display:inline-block;overflow:hidden;vertical-align:bottom;width:0}@media (min-width:768px){.inline.block-label{display:inline-block;float:none}}.block-label-hint,.hint{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.block-label-hint{font-size:1.9rem;font-weight:400;line-height:1.25;margin-top:.5rem}.bordered-text-box{max-width:100%;outline:2px solid #000;padding:.5rem}#organisation_type{display:none}.space-y-gutter>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(3rem*var(--space-y-reverse));margin-top:calc(3rem*(1 - var(--space-y-reverse)))}.space-x-gutter>:not(template)~:not(template){--space-x-reverse:0;margin-left:calc(3rem*(1 - var(--space-x-reverse)));margin-right:calc(3rem*var(--space-x-reverse))}.space-y-gutterHalf>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(1.5rem*var(--space-y-reverse));margin-top:calc(1.5rem*(1 - var(--space-y-reverse)))}.space-y-doubleGutter>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(6rem*var(--space-y-reverse));margin-top:calc(6rem*(1 - var(--space-y-reverse)))}.divide-y>:not(template)~:not(template){--divide-y-reverse:0;border-bottom-width:calc(1px*var(--divide-y-reverse));border-top-width:calc(1px*(1 - var(--divide-y-reverse)))}.divide-gray-300>:not(template)~:not(template){--divide-opacity:1;border-color:#afb9c3;border-color:rgba(175,185,195,var(--divide-opacity))}.divide-gray>:not(template)~:not(template){--divide-opacity:1;border-color:#eee;border-color:rgba(238,238,238,var(--divide-opacity))}.divide-gray-grey2>:not(template)~:not(template){--divide-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--divide-opacity))}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.bg-red{--bg-opacity:1;background-color:#b10e1e;background-color:rgba(177,14,30,var(--bg-opacity))}.bg-white{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.bg-blue-lighter{--bg-opacity:1;background-color:#b2e3ff;background-color:rgba(178,227,255,var(--bg-opacity))}.bg-blue{--bg-opacity:1;background-color:#213045;background-color:rgba(33,48,69,var(--bg-opacity))}.bg-blue-slightlight{--bg-opacity:1;background-color:#284162;background-color:rgba(40,65,98,var(--bg-opacity))}.bg-gray{--bg-opacity:1;background-color:#eee;background-color:rgba(238,238,238,var(--bg-opacity))}.bg-gray-border{--bg-opacity:1;background-color:#b5babe;background-color:rgba(181,186,190,var(--bg-opacity))}.bg-yellow{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity))}.bg-black{--bg-opacity:1;background-color:#000;background-color:rgba(0,0,0,var(--bg-opacity))}.bg-transparent{background-color:transparent}.focus\:bg-white:focus{--bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--bg-opacity))}.focus\:bg-yellow:focus{--bg-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity))}.border-gray-300{--border-opacity:1;border-color:#afb9c3;border-color:rgba(175,185,195,var(--border-opacity))}.border-gray{--border-opacity:1;border-color:#eee;border-color:rgba(238,238,238,var(--border-opacity))}.border-gray-border{--border-opacity:1;border-color:#b5babe;border-color:rgba(181,186,190,var(--border-opacity))}.border-gray-grey2{--border-opacity:1;border-color:#bfc1c3;border-color:rgba(191,193,195,var(--border-opacity))}.border-black{--border-opacity:1;border-color:#000;border-color:rgba(0,0,0,var(--border-opacity))}.border-transparent{border-color:transparent}.focus\:border-white:focus{--border-opacity:1;border-color:#fff;border-color:rgba(255,255,255,var(--border-opacity))}.focus\:border-blue:focus{--border-opacity:1;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity))}.focus\:border-yellow:focus{--border-opacity:1;border-color:#ffbf47;border-color:rgba(255,191,71,var(--border-opacity))}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border-solid{border-style:solid}.border-0{border-width:0}.border-2{border-width:2px}.border{border-width:1px}.border-t-0{border-top-width:0}.border-b-0{border-bottom-width:0}.border-l-1{border-left-width:1px}.border-b-2{border-bottom-width:2px}.border-b-4{border-bottom-width:4px}.focus\:border-2:focus{border-width:2px}.focus\:border-b-0:focus{border-bottom-width:0}.focus\:border-b-2:focus{border-bottom-width:2px}.focus\:border-b-4:focus{border-bottom-width:4px}.box-border{box-sizing:border-box}.cursor-pointer{cursor:pointer}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-row-group{display:table-row-group}.table-row{display:table-row}.grid{display:grid}.contents{display:contents}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-no-wrap{flex-wrap:nowrap}.place-items-start{place-items:start}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.content-end{align-content:flex-end}.self-center{align-self:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-self-center{justify-self:center}.flex-1{flex:1 1 0%}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.flex-shrink{flex-shrink:1}.float-right{float:right}.float-left{float:left}.clear-left{clear:left}.clear-both{clear:both}.font-sans{font-family:lato}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-bold{font-weight:700}.h-1{height:.25rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-24{height:6rem}.h-auto{height:auto}.h-full{height:100%}.text-xs{font-size:1.3rem}.text-small{font-size:1.6rem}.text-smaller{font-size:1.9rem}.text-base{font-size:2rem}.text-title{font-size:2.4rem}.text-titlelarge{font-size:2.7rem}.text-lg{font-size:3.6rem}.text-xl{font-size:3.8rem}.leading-7{line-height:1.75rem}.leading-none{line-height:1}.leading-tight{line-height:1.25}.list-inside{list-style-position:inside}.list-disc{list-style-type:disc}.list-decimal{list-style-type:decimal}.m-0{margin:0}.m-auto{margin:auto}.my-0{margin-bottom:0;margin-top:0}.mx-0{margin-left:0;margin-right:0}.my-4{margin-bottom:1rem;margin-top:1rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-gutterAndAHalf{margin-bottom:4.5rem;margin-top:4.5rem}.-mx-2{margin-left:-.5rem;margin-right:-.5rem}.mt-0{margin-top:0}.mr-0{margin-right:0}.mb-0{margin-bottom:0}.mt-2{margin-top:.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.ml-2{margin-left:.5rem}.mt-4{margin-top:1rem}.mb-4{margin-bottom:1rem}.mt-5{margin-top:1.25rem}.mr-5{margin-right:1.25rem}.mb-5{margin-bottom:1.25rem}.ml-5{margin-left:1.25rem}.mb-6{margin-bottom:1.5rem}.mt-8{margin-top:2rem}.mr-8{margin-right:2rem}.mb-8{margin-bottom:2rem}.ml-8{margin-left:2rem}.mt-10{margin-top:2.5rem}.mr-10{margin-right:2.5rem}.mb-10{margin-bottom:2.5rem}.ml-10{margin-left:2.5rem}.mt-12{margin-top:3rem}.mb-12{margin-bottom:3rem}.mt-16{margin-top:4rem}.mb-16{margin-bottom:4rem}.mb-20{margin-bottom:5rem}.mb-24{margin-bottom:6rem}.mt-auto{margin-top:auto}.mr-auto{margin-right:auto}.ml-auto{margin-left:auto}.mt-gutterHalf{margin-top:1.5rem}.mr-gutterHalf{margin-right:1.5rem}.mb-gutterHalf{margin-bottom:1.5rem}.mb-gutterAndAHalf{margin-bottom:4.5rem}.mb-doubleGutter{margin-bottom:6rem}.-mt-1{margin-top:-.25rem}.-ml-2{margin-left:-.5rem}.-mt-8{margin-top:-2rem}.-mt-12{margin-top:-3rem}.max-w-xl{max-width:36rem}.max-w-80ch{max-width:80ch}.min-h-screen{min-height:100vh}.min-h-target{min-height:45px}.object-none{-o-object-fit:none;object-fit:none}.object-center{-o-object-position:center;object-position:center}.opacity-0{opacity:0}.opacity-100{opacity:1}.focus\:outline-none:focus,.outline-none{outline:2px solid transparent;outline-offset:2px}.focus\:outline-black:focus{outline:1px solid #000;outline-offset:0}.focus\:outline-yellow:focus{outline:3px solid #ffbf47;outline-offset:0}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.p-0{padding:0}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-10{padding:2.5rem}.p-gutterHalf{padding:1.5rem}.py-0{padding-bottom:0;padding-top:0}.px-0{padding-left:0;padding-right:0}.py-1{padding-bottom:.25rem;padding-top:.25rem}.px-1{padding-left:.25rem;padding-right:.25rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-4{padding-bottom:1rem;padding-top:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.py-24{padding-bottom:6rem;padding-top:6rem}.px-gutterHalf{padding-left:1.5rem;padding-right:1.5rem}.py-doubleGutter{padding-bottom:6rem;padding-top:6rem}.px-doubleGutter{padding-left:6rem;padding-right:6rem}.pl-0{padding-left:0}.pt-1{padding-top:.25rem}.pl-2{padding-left:.5rem}.pt-4{padding-top:1rem}.pb-4{padding-bottom:1rem}.pt-5{padding-top:1.25rem}.pr-5{padding-right:1.25rem}.pl-5{padding-left:1.25rem}.pt-6{padding-top:1.5rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pt-10{padding-top:2.5rem}.pr-10{padding-right:2.5rem}.pl-10{padding-left:2.5rem}.pb-16{padding-bottom:4rem}.pr-gutter{padding-right:3rem}.pl-gutter{padding-left:3rem}.pt-gutterHalf{padding-top:1.5rem}.pl-doubleGutter{padding-left:6rem}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:0}.right-0{right:0}.left-0{left:0}.bottom-2{bottom:2px}.top-full{top:100%}.resize{resize:both}.shadow-button2{box-shadow:0 2px 0 #26374a}.shadow-none{box-shadow:none}.focus\:shadow-outline:focus{box-shadow:0 0 0 3px #ffbf47}.focus\:shadow-insetLine2:focus{box-shadow:inset 0 -2px 0 0 #26374a}.text-left{text-align:left}.text-right{text-align:right}.text-red-300{--text-opacity:1;color:#d74d42;color:rgba(215,77,66,var(--text-opacity))}.text-red{--text-opacity:1;color:#b10e1e;color:rgba(177,14,30,var(--text-opacity))}.text-white{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.text-blue{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.text-gray-600{--text-opacity:1;color:#5e6975;color:rgba(94,105,117,var(--text-opacity))}.text-gray-700{--text-opacity:1;color:#49535d;color:rgba(73,83,93,var(--text-opacity))}.text-gray-grey1{--text-opacity:1;color:#595959;color:rgba(89,89,89,var(--text-opacity))}.text-yellow{--text-opacity:1;color:#ffbf47;color:rgba(255,191,71,var(--text-opacity))}.text-green-300{--text-opacity:1;color:#29a35a;color:rgba(41,163,90,var(--text-opacity))}.text-black{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.visited\:text-white:visited{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.visited\:text-blue:visited{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.visited\:text-black:visited{--text-opacity:1;color:#000;color:rgba(0,0,0,var(--text-opacity))}.link\:text-white:link{--text-opacity:1;color:#fff;color:rgba(255,255,255,var(--text-opacity))}.focus\:text-blue:focus,.link\:text-blue:link{--text-opacity:1;color:#213045;color:rgba(33,48,69,var(--text-opacity))}.italic{font-style:italic}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.underline{text-decoration:underline}.no-underline{text-decoration:none}.hover\:underline:hover{text-decoration:underline}.focus\:no-underline:focus,.hover\:no-underline:hover{text-decoration:none}.ordinal{--font-variant-numeric-ordinal:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-slashed-zero:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-figure:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-spacing:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-fraction:var(--tailwind-empty,/*!*/ /*!*/);--font-variant-numeric-ordinal:ordinal;font-variant-numeric:var(--font-variant-numeric-ordinal) var(--font-variant-numeric-slashed-zero) var(--font-variant-numeric-figure) var(--font-variant-numeric-spacing) var(--font-variant-numeric-fraction)}.tracking-wide{letter-spacing:.025em}.visible{visibility:visible}.whitespace-no-wrap{white-space:nowrap}.break-words{word-wrap:break-word;overflow-wrap:break-word}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-6{width:1.5rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-56{width:14rem}.w-auto{width:auto}.w-1\/2{width:50%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-full{width:100%}.z-50{z-index:50}.gap-2{grid-gap:.5rem;gap:.5rem}.gap-4{grid-gap:1rem;gap:1rem}.gap-16{grid-gap:4rem;gap:4rem}.gap-x-2{grid-column-gap:.5rem;-moz-column-gap:.5rem;column-gap:.5rem}.gap-x-gutter{grid-column-gap:3rem;-moz-column-gap:3rem;column-gap:3rem}.gap-y-1{grid-row-gap:.25rem;row-gap:.25rem}.gap-y-gutterAndAHalf{grid-row-gap:4.5rem;row-gap:4.5rem}.grid-flow-row{grid-auto-flow:row}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.col-span-1{grid-column:span 1/span 1}.auto-rows-min{grid-auto-rows:min-content}.transform{--transform-translate-x:0;--transform-translate-y:0;--transform-rotate:0;--transform-skew-x:0;--transform-skew-y:0;--transform-scale-x:1;--transform-scale-y:1;transform:translateX(var(--transform-translate-x)) translateY(var(--transform-translate-y)) rotate(var(--transform-rotate)) skewX(var(--transform-skew-x)) skewY(var(--transform-skew-y)) scaleX(var(--transform-scale-x)) scaleY(var(--transform-scale-y))}.rotate-180{--transform-rotate:180deg}.transition{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform}.transition-opacity{transition-property:opacity}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150{transition-duration:.15s}@keyframes spin{to{transform:rotate(1turn)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}@keyframes ellipsis{to{width:1.25em}}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;background-color:#dee0e2;font-size:62.5%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fff;color:#0b0c0c;font-size:160%;font-weight:400;line-height:1.5}body,button,html,input,table,td,th{font-family:Noto Sans,Arial,sans-serif}article,aside,body,div,footer,h1,h2,h3,h4,h5,h6,header,hgroup,html,nav,section{margin:0;padding:0;vertical-align:baseline}main{display:block}input[type=search]::-webkit-search-cancel-button{-webkit-appearance:searchfield-cancel-button;margin-right:2px}input[type=search]::-webkit-search-decoration{-webkit-appearance:none}section[id]:target{--yellow:#ffbf47;--white:#fff;animation:target 3s linear 3s forwards;box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--yellow);scroll-margin-top:30px}@keyframes target{0%{box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--yellow)}to{box-shadow:0 0 0 15px var(--white),0 0 0 20px var(--white)}}.decoration-clone{-webkit-box-decoration-break:clone;box-decoration-break:clone}.hidden,.js-enabled .js-hidden{display:none;visibility:hidden}.visually-hidden,.visuallyhidden{height:1px;left:-9999em;overflow:hidden;position:absolute;top:auto;width:1px}.visually-hidden.focusable:active,.visually-hidden.focusable:focus,.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.flip{padding-top:2px;transform:rotate(-180deg);transition:all .5s ease}label{display:block;font-size:1.9rem;padding-bottom:.5rem}.group:after,.group:before{content:"\0020";display:block;height:0;overflow:hidden}.group:after{clear:both}.group{zoom:1}.content-fixed{position:fixed;top:0}.shim{display:block}.focus\:input:focus,.input{outline:2px solid transparent;outline-offset:2px}.line-under{text-underline-position:under}.feature-box{width:75%}@media (min-width:1024px){.feature-box{width:33.333333%}}.quote-box{font-size:1.6rem;margin-bottom:2.5rem}.quote-box div:first-child{font-style:italic;font-weight:700;margin-bottom:.5rem}.phone{clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);height:1px;overflow:hidden;position:absolute!important;white-space:nowrap;width:1px}.border-box{border:1px solid #000;font-size:.9em;margin-bottom:2rem;padding:2rem}.border-box strong{font-weight:700}.skiplink:focus{--bg-opacity:1;--border-opacity:1;background-color:#ffbf47;background-color:rgba(255,191,71,var(--bg-opacity));border-bottom-width:2px;border-color:#213045;border-color:rgba(33,48,69,var(--border-opacity));left:0;outline:2px solid transparent;outline-offset:2px;padding:.5rem;text-decoration:none;z-index:1}.skiplink{left:-9999em;position:absolute}.skiplink:focus,.skiplink:visited{color:#0b0c0c}#skiplink-container{background:#0b0c0c;text-align:center}#skiplink-container div{margin:0 auto;max-width:1020px;text-align:left}#skiplink-container .skiplink{display:-moz-inline-stack;display:inline-block;margin:.75em 0 0 30px}@media (min-width:320px){.xs\:hidden{display:none}.xs\:text-lg{font-size:3.6rem}}@media (min-width:375px){.smaller\:hidden{display:none}.smaller\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (min-width:640px){.sm\:hidden{display:none}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:self-start{align-self:flex-start}.sm\:mx-4{margin-left:1rem;margin-right:1rem}.sm\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}}@media (min-width:768px){.md\:flex{display:flex}.md\:hidden{display:none}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:self-end{align-self:flex-end}.md\:float-right{float:right}.md\:float-left{float:left}.md\:text-xxl{font-size:6.5rem}.md\:mb-gutter{margin-bottom:3rem}.md\:max-w-2\/3{max-width:66.666667%}.md\:visible{visibility:visible}.md\:w-1\/2{width:50%}.md\:w-1\/3{width:33.333333%}.md\:w-2\/3{width:66.666667%}.md\:w-1\/4{width:25%}.md\:w-3\/4{width:75%}.md\:w-1\/6{width:16.666667%}.md\:w-3\/6{width:50%}.md\:w-5\/6{width:83.333333%}.md\:w-full{width:100%}.md\:w-5\/8{width:62.5%}.md\:gap-4{grid-gap:1rem;gap:1rem}.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\:col-span-2{grid-column:span 2/span 2}}@media (min-width:1024px){.lg\:space-y-0>:not(template)~:not(template){--space-y-reverse:0;margin-bottom:calc(0px*var(--space-y-reverse));margin-top:calc(0px*(1 - var(--space-y-reverse)))}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:flex-row{flex-direction:row}.lg\:flex-wrap{flex-wrap:wrap}.lg\:items-center{align-items:center}.lg\:items-baseline{align-items:baseline}.lg\:self-center{align-self:center}.lg\:justify-between{justify-content:space-between}.lg\:text-xxl{font-size:6.5rem}.lg\:list-none{list-style-type:none}.lg\:mb-0{margin-bottom:0}.lg\:mr-3{margin-right:.75rem}.lg\:ml-3{margin-left:.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:visible{visibility:visible}.lg\:w-1\/2{width:50%}.lg\:w-1\/3{width:33.333333%}.lg\:w-3\/4{width:75%}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}} diff --git a/app/assets/stylesheets/tailwind/components/remaining-messages.css b/app/assets/stylesheets/tailwind/components/remaining-messages.css new file mode 100644 index 0000000000..c59103ab59 --- /dev/null +++ b/app/assets/stylesheets/tailwind/components/remaining-messages.css @@ -0,0 +1,34 @@ +@layer components { + /*! purgecss start ignore */ + + .remaining-messages { + @apply bg-blue text-white p-gutterHalf; + } + + .rm-header { + @apply text-smaller inline-block; + } + + .rm-used { + @apply .text-titlelarge pb-4 font-bold leading-none; + } + + .rm-total { + float: right; + } + + .rm-bar { + box-shadow: inset 0 -10px #CFD5DD; + display: flex; + align-items: flex-end; + } + + .rm-bar-usage { + width: max(var(--usage), 4px); + height: 30px; + background: currentColor; + } + + + /*! purgecss end ignore */ +} diff --git a/app/assets/stylesheets/tailwind/style.css b/app/assets/stylesheets/tailwind/style.css index ff9ee344f8..33813c956c 100644 --- a/app/assets/stylesheets/tailwind/style.css +++ b/app/assets/stylesheets/tailwind/style.css @@ -38,6 +38,7 @@ @import "./components/task-list.css"; @import "./components/back-link.css"; @import "./components/preview-fullpage-border.css"; +@import "./components/remaining-messages.css"; /* views */ @import "./views/dashboard.css"; From 3c66b85b9ff090290a679f2b23db7e6cf758df8b Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 14:18:36 +0000 Subject: [PATCH 03/21] feat(daily limits widget): add new component --- .../components/remaining-messages.html | 18 ++++++++++++++++++ app/translations/csv/fr.csv | 1 + 2 files changed, 19 insertions(+) create mode 100644 app/templates/components/remaining-messages.html diff --git a/app/templates/components/remaining-messages.html b/app/templates/components/remaining-messages.html new file mode 100644 index 0000000000..bd0ffb8ef1 --- /dev/null +++ b/app/templates/components/remaining-messages.html @@ -0,0 +1,18 @@ +{% macro remaining_messages(header, total, used) %} + {% set near_limit = ((used/total) >= 0.8) %} +
+
{{ header }}
+
+ {{ "{:,}".format(used) if session['userlang'] == 'en' else "{:,}".format(used).replace(',', ' ') }} + {{ _('of') }} {{ "{:,}".format(total) if session['userlang'] == 'en' else "{:,}".format(total).replace(',', ' ') }} +
+ +
+
+ {% if near_limit %} + {{ _('Near daily limit') }} + {% endif %} +
+
+
+{% endmacro %} diff --git a/app/translations/csv/fr.csv b/app/translations/csv/fr.csv index 2fab95e840..538fc134f2 100644 --- a/app/translations/csv/fr.csv +++ b/app/translations/csv/fr.csv @@ -1753,3 +1753,4 @@ "You cannot send this text message today","Vous ne pouvez pas envoyer ce message texte aujourd’hui." "You cannot send all these email messages today","Vous ne pouvez pas envoyer tous ces courriels aujourd’hui." "You cannot send all these text messages today","Vous ne pouvez pas envoyer tous ces messages texte aujourd’hui." +"of","de" \ No newline at end of file From 796a3d4c477c4c8ed386febdb3309a5fd2f0ad39 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 17:55:48 +0000 Subject: [PATCH 04/21] feat(daily limits widget): add new components to dashboard --- .../views/dashboard/_totals_daily.html | 40 ++++++++----------- app/templates/views/dashboard/dashboard.html | 3 ++ app/translations/csv/fr.csv | 3 +- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/app/templates/views/dashboard/_totals_daily.html b/app/templates/views/dashboard/_totals_daily.html index 17b5db943d..4ad276e99e 100644 --- a/app/templates/views/dashboard/_totals_daily.html +++ b/app/templates/views/dashboard/_totals_daily.html @@ -1,30 +1,22 @@ {% from "components/big-number.html" import big_number %} {% from "components/message-count-label.html" import message_count_label %} - -{% set suffix = _("left today") %} -{% if current_lang == "fr" %} - {% set suffix_plural = _("many left today") %} -{% else %} - {% set suffix_plural = _("left today") %} -{% endif %} -{% set email_remaining = current_service.message_limit - statistics['email']['requested'] %} -{% set sms_parts_remaining = current_service.sms_daily_limit - statistics['sms']['requested'] %} +{% from 'components/remaining-messages.html' import remaining_messages %}
-
-
- {{ big_number( - email_remaining, - message_count_label(email_remaining, 'email', suffix=suffix, suffix_plural=suffix_plural), - status=True, - ) }} -
-
- {{ big_number( - sms_parts_remaining, - message_count_label(sms_parts_remaining, 'sms', suffix=suffix, suffix_plural=suffix_plural), - status=True, - ) }} +

+ + {{ _('Sent since 7 pm Eastern Time') }} +

+
+
+ {{ remaining_messages(header=_('emails'), total=current_service.message_limit, used= statistics['email']['requested']) }} +
+
+ {{ remaining_messages(header=_('text messages'), total=current_service.sms_daily_limit, used=statistics['sms']['requested']) }} +
-
diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index e831eef4a7..5b904a3c7d 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -25,6 +25,9 @@

{{ _("Scheduled sends") }}

{% endif %} {{ ajax_block(partials, updates_url, 'weekly_totals', interval=5) }} + {{ ajax_block(partials, updates_url, 'daily_totals', interval=5) }} + +
{% if not config["FF_BOUNCE_RATE_V15"] %} {{ show_more( diff --git a/app/translations/csv/fr.csv b/app/translations/csv/fr.csv index 538fc134f2..7d1032e031 100644 --- a/app/translations/csv/fr.csv +++ b/app/translations/csv/fr.csv @@ -1753,4 +1753,5 @@ "You cannot send this text message today","Vous ne pouvez pas envoyer ce message texte aujourd’hui." "You cannot send all these email messages today","Vous ne pouvez pas envoyer tous ces courriels aujourd’hui." "You cannot send all these text messages today","Vous ne pouvez pas envoyer tous ces messages texte aujourd’hui." -"of","de" \ No newline at end of file +"of","de" +"Sent since 7 pm Eastern Time","Envoyé depuis 19 h, heure de l'Est" \ No newline at end of file From a4e2c7ed2682d48dbd726bdeeaa9a93f5757be14 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 18:01:12 +0000 Subject: [PATCH 05/21] chore: formatting --- .../tailwind/components/remaining-messages.css | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/app/assets/stylesheets/tailwind/components/remaining-messages.css b/app/assets/stylesheets/tailwind/components/remaining-messages.css index c59103ab59..ff2cfb384d 100644 --- a/app/assets/stylesheets/tailwind/components/remaining-messages.css +++ b/app/assets/stylesheets/tailwind/components/remaining-messages.css @@ -1,11 +1,11 @@ @layer components { /*! purgecss start ignore */ - .remaining-messages { + .remaining-messages { @apply bg-blue text-white p-gutterHalf; } - .rm-header { + .rm-header { @apply text-smaller inline-block; } @@ -18,17 +18,16 @@ } .rm-bar { - box-shadow: inset 0 -10px #CFD5DD; + box-shadow: inset 0 -10px #cfd5dd; display: flex; align-items: flex-end; } - + .rm-bar-usage { width: max(var(--usage), 4px); height: 30px; background: currentColor; - } - + } /*! purgecss end ignore */ } From 8ed11f03b55e62fe1add4d687d39dbc5408566e6 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 18:52:41 +0000 Subject: [PATCH 06/21] tests(daily limits widget): add tests for under 80%, at 80% and at 100% of daily limits --- tests/app/main/views/test_dashboard.py | 120 +++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index a05144b5a1..242bc28c2d 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1426,3 +1426,123 @@ def test_a11y_template_usage_should_not_contain_duplicate_ids( list.append(element["id"]) assert len(list) == len(set(list)) # check for duplicates + + +@pytest.mark.parametrize( + "totals, notification_type, expected_color, expected_sent, expected_limit, expect_accessible_message", + [ + # With a service email limit of 1000, and 100 emails sent in the past 24 hours + ( + { + "email": {"requested": 100, "delivered": 0, "failed": 0}, + "sms": {"requested": 0, "delivered": 0, "failed": 0}, + }, + "email", + "text-green-300", + "100", + "1,000", + False, + ), + # With a service SMS limit of 1000, and 10 sms sent in the past 24 hours + ( + { + "email": {"requested": 0, "delivered": 0, "failed": 0}, + "sms": {"requested": 10, "delivered": 0, "failed": 0}, + }, + "sms", + "text-green-300", + "10", + "1,000", + False, + ), + # With a service email limit of 1000, and 800 emails sent in the past 24 hours + ( + { + "email": {"requested": 800, "delivered": 0, "failed": 0}, + "sms": {"requested": 0, "delivered": 0, "failed": 0}, + }, + "email", + "text-red-300", + "800", + "1,000", + True, + ), + # With a service SMS limit of 1000, and 900 sms sent in the past 24 hours + ( + { + "email": {"requested": 0, "delivered": 0, "failed": 0}, + "sms": {"requested": 900, "delivered": 0, "failed": 0}, + }, + "sms", + "text-red-300", + "900", + "1,000", + True, + ), + # With a service email limit of 1000, and 1000 emails sent in the past 24 hours + ( + { + "email": {"requested": 1000, "delivered": 0, "failed": 0}, + "sms": {"requested": 0, "delivered": 0, "failed": 0}, + }, + "email", + "text-red-300", + "1,000", + "1,000", + True, + ), + # With a service SMS limit of 1000, and 1000 sms sent in the past 24 hours + ( + { + "email": {"requested": 0, "delivered": 0, "failed": 0}, + "sms": {"requested": 1000, "delivered": 0, "failed": 0}, + }, + "sms", + "text-red-300", + "1,000", + "1,000", + True, + ), + ], +) +def test_dashboard_daily_limits( + client_request, + mocker, + mock_get_service_templates, + mock_get_template_statistics, + mock_get_service_statistics, + mock_get_jobs, + service_one, + totals, + notification_type, + expected_color, + expected_sent, + expected_limit, + expect_accessible_message, + app_, +): + with set_config(app_, "FF_BOUNCE_RATE_V15", True): + service_one["permissions"] = (["email", "sms"],) + + mocker.patch("app.main.views.dashboard.get_dashboard_totals", return_value=totals) + + page = client_request.get("main.service_dashboard", service_id=service_one["id"]) + + component_index = 0 if notification_type == "email" else 1 + + assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-used").text == expected_sent + assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-total").text[3:] == expected_limit + assert ( + expected_color + in page.find_all(class_="remaining-messages")[component_index].find(class_="rm-bar-usage").attrs["class"] + ) + + if expect_accessible_message: + assert ( + len( + page.find_all(class_="remaining-messages")[component_index] + .find(class_="rm-bar-usage") + .find(class_="visually-hidden") + ) + == 1 + ) From b64e9b546872cc633f375f0f040d31522f9d0fa1 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 7 Sep 2023 18:55:46 +0000 Subject: [PATCH 07/21] chore(tests): fix a test whose purpose is unclear --- tests/app/main/views/test_dashboard.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index 242bc28c2d..60447c1340 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -408,8 +408,8 @@ def test_should_show_upcoming_jobs_on_dashboard( @pytest.mark.parametrize( "permissions, column_name, expected_column_count", [ - (["email", "sms"], ".w-1\\/2", 4), - (["email", "sms"], ".w-1\\/2", 4), + (["email", "sms"], ".w-1\\/2", 6), + (["email", "sms"], ".w-1\\/2", 6), ], ) def test_correct_columns_display_on_dashboard_v15( @@ -434,8 +434,8 @@ def test_correct_columns_display_on_dashboard_v15( @pytest.mark.parametrize( "permissions, column_name, expected_column_count", [ - (["email", "sms"], ".w-1\\/2", 2), - (["email", "sms"], ".w-1\\/2", 2), + (["email", "sms"], ".w-1\\/2", 4), + (["email", "sms"], ".w-1\\/2", 4), ], ) def test_correct_columns_display_on_dashboard( From fb85240d6be9f27a667ccd76ca924a63ac6d3322 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Mon, 11 Sep 2023 12:12:53 +0000 Subject: [PATCH 08/21] fix(daily limits widget): re-work a11y message a bit to make it read easier and include context --- app/templates/components/remaining-messages.html | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/templates/components/remaining-messages.html b/app/templates/components/remaining-messages.html index bd0ffb8ef1..cc520705f3 100644 --- a/app/templates/components/remaining-messages.html +++ b/app/templates/components/remaining-messages.html @@ -5,13 +5,15 @@
{{ "{:,}".format(used) if session['userlang'] == 'en' else "{:,}".format(used).replace(',', ' ') }} {{ _('of') }} {{ "{:,}".format(total) if session['userlang'] == 'en' else "{:,}".format(total).replace(',', ' ') }} + {{ header }} + {% if near_limit %} + - {{ _('You are nearing the daily {} limit').format(header.lower()) }} + {% endif %}
- {% if near_limit %} - {{ _('Near daily limit') }} - {% endif %} +
From 8844802bcba7b8c98fc4fe293f7799e7e71dab14 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Mon, 11 Sep 2023 12:13:39 +0000 Subject: [PATCH 09/21] fix(daily limits widget): remove testing content; update translations --- app/templates/views/dashboard/_totals_daily.html | 7 +------ app/translations/csv/fr.csv | 3 ++- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/templates/views/dashboard/_totals_daily.html b/app/templates/views/dashboard/_totals_daily.html index 4ad276e99e..f67bbdad51 100644 --- a/app/templates/views/dashboard/_totals_daily.html +++ b/app/templates/views/dashboard/_totals_daily.html @@ -4,16 +4,11 @@

- {{ _('Sent since 7 pm Eastern Time') }}

- {{ remaining_messages(header=_('emails'), total=current_service.message_limit, used= statistics['email']['requested']) }} + {{ remaining_messages(header=_('emails'), total=current_service.message_limit, used=statistics['email']['requested']) }}
{{ remaining_messages(header=_('text messages'), total=current_service.sms_daily_limit, used=statistics['sms']['requested']) }} diff --git a/app/translations/csv/fr.csv b/app/translations/csv/fr.csv index 7d1032e031..b9a0e3f399 100644 --- a/app/translations/csv/fr.csv +++ b/app/translations/csv/fr.csv @@ -1754,4 +1754,5 @@ "You cannot send all these email messages today","Vous ne pouvez pas envoyer tous ces courriels aujourd’hui." "You cannot send all these text messages today","Vous ne pouvez pas envoyer tous ces messages texte aujourd’hui." "of","de" -"Sent since 7 pm Eastern Time","Envoyé depuis 19 h, heure de l'Est" \ No newline at end of file +"Sent since 7 pm Eastern Time","Envoyé depuis 19 h, heure de l'Est" +"You are nearing the daily {} limit","Vous approchez de la limite quotidienne de {}" \ No newline at end of file From fb13cb75013cbecd51e0e4fcd838015ddd46b608 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Mon, 11 Sep 2023 12:23:54 +0000 Subject: [PATCH 10/21] test(daily limits widget): fix up a11y part of the test due to re-factor --- app/templates/components/remaining-messages.html | 2 +- tests/app/main/views/test_dashboard.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/templates/components/remaining-messages.html b/app/templates/components/remaining-messages.html index cc520705f3..c6592c9471 100644 --- a/app/templates/components/remaining-messages.html +++ b/app/templates/components/remaining-messages.html @@ -2,7 +2,7 @@ {% set near_limit = ((used/total) >= 0.8) %}
{{ header }}
-
+
{{ "{:,}".format(used) if session['userlang'] == 'en' else "{:,}".format(used).replace(',', ' ') }} {{ _('of') }} {{ "{:,}".format(total) if session['userlang'] == 'en' else "{:,}".format(total).replace(',', ' ') }} {{ header }} diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index 60447c1340..d21931c8e2 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1541,8 +1541,8 @@ def test_dashboard_daily_limits( assert ( len( page.find_all(class_="remaining-messages")[component_index] - .find(class_="rm-bar-usage") - .find(class_="visually-hidden") + .find(class_="rm-message") + .find_all(class_="visually-hidden") ) - == 1 + == 2 ) From ca61e928755eec61adbb5a47247ec78501c90937 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Tue, 12 Sep 2023 15:36:54 +0000 Subject: [PATCH 11/21] fix(daily limits widget): update heading content --- app/templates/views/dashboard/_totals_daily.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/templates/views/dashboard/_totals_daily.html b/app/templates/views/dashboard/_totals_daily.html index f67bbdad51..8b9d9e0dcb 100644 --- a/app/templates/views/dashboard/_totals_daily.html +++ b/app/templates/views/dashboard/_totals_daily.html @@ -4,7 +4,11 @@

- {{ _('Sent since 7 pm Eastern Time') }} + {{ _('Daily usage') }} +
+ + {{ _('Message limits reset each night at 7pm Eastern Time') }} +

From 7f586287a1469f84613cc96c30a4460894430b98 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Tue, 12 Sep 2023 15:41:48 +0000 Subject: [PATCH 12/21] fix: comment out widget for now --- app/templates/views/dashboard/dashboard.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index 5b904a3c7d..99b4363833 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -25,9 +25,9 @@

{{ _("Scheduled sends") }}

{% endif %} {{ ajax_block(partials, updates_url, 'weekly_totals', interval=5) }} - {{ ajax_block(partials, updates_url, 'daily_totals', interval=5) }} + {# {{ ajax_block(partials, updates_url, 'daily_totals', interval=5) }} #} -
+ {#
#} {% if not config["FF_BOUNCE_RATE_V15"] %} {{ show_more( From c378ba42326a327b5d42bcd51931da4081c22efe Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Wed, 13 Sep 2023 13:42:12 +0000 Subject: [PATCH 13/21] feat(daily limits): add french translations --- app/translations/csv/fr.csv | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/translations/csv/fr.csv b/app/translations/csv/fr.csv index b9a0e3f399..033bb35d92 100644 --- a/app/translations/csv/fr.csv +++ b/app/translations/csv/fr.csv @@ -1755,4 +1755,6 @@ "You cannot send all these text messages today","Vous ne pouvez pas envoyer tous ces messages texte aujourd’hui." "of","de" "Sent since 7 pm Eastern Time","Envoyé depuis 19 h, heure de l'Est" -"You are nearing the daily {} limit","Vous approchez de la limite quotidienne de {}" \ No newline at end of file +"You are nearing the daily {} limit","Vous approchez de la limite quotidienne de {}" +"Daily usage","Utilisation quotidienne" +"Message limits reset each night at 7pm Eastern Time","Les limites d’envoi sont réinitialisées chaque soir à 19 h, heure de l’Est" \ No newline at end of file From 576f1e83106d5db234915135816534ac005c15c2 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Wed, 13 Sep 2023 14:42:31 +0000 Subject: [PATCH 14/21] feat(daily limits/sms): update SMS over character limit error --- app/main/views/templates.py | 2 +- app/translations/csv/fr.csv | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index d5dc4843d6..2a725ca42e 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -111,7 +111,7 @@ def delete_preview_data(service_id, template_id=None): def get_char_limit_error_msg(template_type): CHAR_LIMIT = SMS_CHAR_COUNT_LIMIT if template_type == "sms" else EMAIL_CHAR_COUNT_LIMIT - return (_("Message must be less than {char_limit} characters")).format(char_limit=CHAR_LIMIT + 1) + return _("Too many characters") @main.route("/services//templates/") diff --git a/app/translations/csv/fr.csv b/app/translations/csv/fr.csv index 033bb35d92..d4222ec73a 100644 --- a/app/translations/csv/fr.csv +++ b/app/translations/csv/fr.csv @@ -1757,4 +1757,6 @@ "Sent since 7 pm Eastern Time","Envoyé depuis 19 h, heure de l'Est" "You are nearing the daily {} limit","Vous approchez de la limite quotidienne de {}" "Daily usage","Utilisation quotidienne" -"Message limits reset each night at 7pm Eastern Time","Les limites d’envoi sont réinitialisées chaque soir à 19 h, heure de l’Est" \ No newline at end of file +"Message limits reset each night at 7pm Eastern Time","Les limites d’envoi sont réinitialisées chaque soir à 19 h, heure de l’Est" +"Maximum 612 characters. Some messages may be too long due to custom content.","612 caractères au maximum. Certains messages peuvent être trop longs en raison de leur contenu personnalisé." +"Too many characters","Limite de caractère atteinte" \ No newline at end of file From 96e1cc93e2c8702453ecbfaaa0fb2bcece5a66bd Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Wed, 13 Sep 2023 14:43:01 +0000 Subject: [PATCH 15/21] fat(daily limit/sms): update sms template content textarea hint --- app/templates/views/edit-sms-template.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/views/edit-sms-template.html b/app/templates/views/edit-sms-template.html index 93856b2751..a5e5d875c4 100644 --- a/app/templates/views/edit-sms-template.html +++ b/app/templates/views/edit-sms-template.html @@ -35,7 +35,7 @@ {{ textbox(form.name, width='w-full', hint=_('This will not show in the message. Choose a name that helps you find the template when you need to reuse it.')) }}
- {{ textbox(form.template_content, highlight_tags=True, width='w-full', rows=5) }} + {{ textbox(form.template_content, highlight_tags=True, width='w-full', rows=5, hint=_('Maximum 612 characters. Some messages may be too long due to custom content.')) }} {% if current_user.platform_admin %} {{ radios(form.process_type, hint=_('This is only manageable by platform admins')) }} {% endif %} From ea0cb7deaaf5d98abf3fbb121ad2108ab73b5579 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Wed, 13 Sep 2023 18:28:44 +0000 Subject: [PATCH 16/21] feat(daily limits): unhide new widgets --- app/templates/views/dashboard/dashboard.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index fbf869c07c..110a94f241 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -25,9 +25,9 @@

{{ _("Scheduled sends") }}

{% endif %} {{ ajax_block(partials, updates_url, 'weekly_totals', interval=5) }} - {# {{ ajax_block(partials, updates_url, 'daily_totals', interval=5) }} #} + {{ ajax_block(partials, updates_url, 'daily_totals', interval=5) }} - {#
#} +
{% if partials['has_template_statistics'] %}

{{ _("Templates used") }}

From 51003d5c5381126a804017e16d293ea1aed6c51d Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Wed, 13 Sep 2023 18:29:12 +0000 Subject: [PATCH 17/21] test(daily limits): fix tests since FF was removed in main --- tests/app/main/views/test_dashboard.py | 37 +++++++++++++------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index da42111023..f14294491d 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1389,28 +1389,27 @@ def test_dashboard_daily_limits( expect_accessible_message, app_, ): - with set_config(app_, "FF_BOUNCE_RATE_V15", True): - service_one["permissions"] = (["email", "sms"],) + service_one["permissions"] = (["email", "sms"],) - mocker.patch("app.main.views.dashboard.get_dashboard_totals", return_value=totals) + mocker.patch("app.main.views.dashboard.get_dashboard_totals", return_value=totals) - page = client_request.get("main.service_dashboard", service_id=service_one["id"]) + page = client_request.get("main.service_dashboard", service_id=service_one["id"]) - component_index = 0 if notification_type == "email" else 1 + component_index = 0 if notification_type == "email" else 1 - assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-used").text == expected_sent - assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-total").text[3:] == expected_limit - assert ( - expected_color - in page.find_all(class_="remaining-messages")[component_index].find(class_="rm-bar-usage").attrs["class"] - ) + assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-used").text == expected_sent + assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-total").text[3:] == expected_limit + assert ( + expected_color + in page.find_all(class_="remaining-messages")[component_index].find(class_="rm-bar-usage").attrs["class"] + ) - if expect_accessible_message: - assert ( - len( - page.find_all(class_="remaining-messages")[component_index] - .find(class_="rm-message") - .find_all(class_="visually-hidden") - ) - == 2 + if expect_accessible_message: + assert ( + len( + page.find_all(class_="remaining-messages")[component_index] + .find(class_="rm-message") + .find_all(class_="visually-hidden") ) + == 2 + ) From 018ab3979a1914fc5140ca0f90241744e1eb604d Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 14 Sep 2023 11:15:40 +0000 Subject: [PATCH 18/21] chore: formatting / refactor --- app/main/views/templates.py | 15 +++++---------- tests/app/main/views/test_dashboard.py | 3 +-- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/app/main/views/templates.py b/app/main/views/templates.py index 2a725ca42e..a9f8332a61 100644 --- a/app/main/views/templates.py +++ b/app/main/views/templates.py @@ -18,11 +18,7 @@ from flask_login import current_user from markupsafe import Markup from notifications_python_client.errors import HTTPError -from notifications_utils import ( - EMAIL_CHAR_COUNT_LIMIT, - SMS_CHAR_COUNT_LIMIT, - TEMPLATE_NAME_CHAR_COUNT_LIMIT, -) +from notifications_utils import TEMPLATE_NAME_CHAR_COUNT_LIMIT from notifications_utils.formatters import nl2br from notifications_utils.recipients import first_column_headings @@ -109,8 +105,7 @@ def delete_preview_data(service_id, template_id=None): redis_client.delete(key) -def get_char_limit_error_msg(template_type): - CHAR_LIMIT = SMS_CHAR_COUNT_LIMIT if template_type == "sms" else EMAIL_CHAR_COUNT_LIMIT +def get_char_limit_error_msg(): return _("Too many characters") @@ -192,7 +187,7 @@ def preview_template(service_id, template_id=None): except HTTPError as e: if e.status_code == 400: if "content" in e.message and any(["character count greater than" in x for x in e.message["content"]]): - error_message = get_char_limit_error_msg(template["template_type"]) + error_message = get_char_limit_error_msg() flash(error_message) elif "name" in e.message and any(["Template name must be less than" in x for x in e.message["name"]]): error_message = (_("Template name must be less than {char_limit} characters")).format( @@ -758,7 +753,7 @@ def add_service_template(service_id, template_type, template_folder_id=None): and "content" in e.message and any(["character count greater than" in x for x in e.message["content"]]) ): - error_message = get_char_limit_error_msg(template_type) + error_message = get_char_limit_error_msg() form.template_content.errors.extend([error_message]) elif "name" in e.message and any(["Template name must be less than" in x for x in e.message["name"]]): error_message = (_("Template name must be less than {char_limit} characters")).format( @@ -886,7 +881,7 @@ def edit_service_template(service_id, template_id): except HTTPError as e: if e.status_code == 400: if "content" in e.message and any(["character count greater than" in x for x in e.message["content"]]): - error_message = get_char_limit_error_msg(template["template_type"]) + error_message = get_char_limit_error_msg() form.template_content.errors.extend([error_message]) elif "name" in e.message and any(["Template name must be less than" in x for x in e.message["name"]]): error_message = (_("Template name must be less than {char_limit} characters")).format( diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index f14294491d..da28bf1cdc 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -1400,8 +1400,7 @@ def test_dashboard_daily_limits( assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-used").text == expected_sent assert page.find_all(class_="remaining-messages")[component_index].find(class_="rm-total").text[3:] == expected_limit assert ( - expected_color - in page.find_all(class_="remaining-messages")[component_index].find(class_="rm-bar-usage").attrs["class"] + expected_color in page.find_all(class_="remaining-messages")[component_index].find(class_="rm-bar-usage").attrs["class"] ) if expect_accessible_message: From a4fe676619e822a1e514284118b6fc291c99aef1 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 14 Sep 2023 11:31:10 +0000 Subject: [PATCH 19/21] test(sms error message): update test with new message --- tests/app/main/views/test_templates.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/app/main/views/test_templates.py b/tests/app/main/views/test_templates.py index 2cba5e6448..c47819baad 100644 --- a/tests/app/main/views/test_templates.py +++ b/tests/app/main/views/test_templates.py @@ -1589,7 +1589,7 @@ def test_should_not_create_too_big_template( }, _expected_status=200, ) - assert "Message must be less than 613 characters" in page.text + assert "Too many characters" in page.text def test_should_not_update_too_big_template( @@ -1612,7 +1612,7 @@ def test_should_not_update_too_big_template( }, _expected_status=200, ) - assert "Message must be less than 613 characters" in page.text + assert "Too many characters" in page.text def test_should_redirect_when_saving_a_template_email( From 9ba8c98c34cbd62180394ba834cc02fa83206f55 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 14 Sep 2023 12:20:47 +0000 Subject: [PATCH 20/21] fix(a11y): fix unrelated html validation issue where uuids are used as html IDs but HTML ids cant start with numbers --- app/templates/views/dashboard/template-statistics.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/templates/views/dashboard/template-statistics.html b/app/templates/views/dashboard/template-statistics.html index b7103fd34b..33521b1eaf 100644 --- a/app/templates/views/dashboard/template-statistics.html +++ b/app/templates/views/dashboard/template-statistics.html @@ -29,7 +29,7 @@ {{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }} {% else %} {% call field() %} - + {{ big_number( item.count, smallest=True From cb24831bfa3e705117c32b6d1952bccc445775f3 Mon Sep 17 00:00:00 2001 From: Andrew Leith Date: Thu, 14 Sep 2023 12:53:08 +0000 Subject: [PATCH 21/21] a11y(templates): span cannot contain a div --- app/templates/views/dashboard/template-statistics.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/templates/views/dashboard/template-statistics.html b/app/templates/views/dashboard/template-statistics.html index 33521b1eaf..8270cc9189 100644 --- a/app/templates/views/dashboard/template-statistics.html +++ b/app/templates/views/dashboard/template-statistics.html @@ -29,12 +29,12 @@ {{ spark_bar_field(item.count, most_used_template_count, id=item.template_id) }} {% else %} {% call field() %} - +
{{ big_number( item.count, smallest=True ) }} - +
{% endcall %} {% endif %} {% endcall %}