CINXE.COM

PurpleAir Develop

<!doctype html> <html lang="en" data-critters-container> <head> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-FETDF4KRJ7"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-FETDF4KRJ7'); </script> <title>PurpleAir Develop</title> <meta charset="utf-8"> <meta name="description" content="Admin Template and Starter Kit with Angular, Angular Material Components and TailwindCSS"> <meta name="keywords" content="Fuse,HTML,CSS,Angular,Angular 13,Angular 14,Angular 15,Material,Angular Components,Tailwind,Tailwind CSS,TailwindCSS,Admin Template,Admin Starter Kit"> <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, minimum-scale=1.0"> <base href="/"> <!-- Favicon --> <link rel="icon" type="images/png" href="favicon-16x16.png"> <link rel="icon" type="images/png" href="favicon-32x32.png"> <!-- Fonts --> <link href="assets/fonts/inter/inter.css" rel="stylesheet" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="assets/fonts/inter/inter.css"></noscript> <link href="https://fonts.gstatic.com" rel="preconnect"> <style type="text/css">@font-face{font-family:'IBM Plex Mono';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2HdgregdFOFh.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'IBM Plex Mono';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa0XdgregdFOFh.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'IBM Plex Mono';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa2ndgregdFOFh.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'IBM Plex Mono';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa23dgregdFOFh.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'IBM Plex Mono';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6pfjptAgt5VM-kVkqdyU8n1ioa1XdgregdFA.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1isq131nj-otFQ.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgsAXHNk.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgsAXHNlYzg.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/ibmplexmono/v19/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> <style type="text/css">@font-face{font-family:'Barlow';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHrv4kjgoGqM7E_Cfs0wH8DnzcjTrA.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Barlow';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHrv4kjgoGqM7E_Cfs1wH8DnzcjTrA.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Barlow';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHrv4kjgoGqM7E_Cfs7wH8Dnzcj.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHpv4kjgoGqM7E_A8s5ynghnQci.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHpv4kjgoGqM7E_Ass5ynghnQci.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHpv4kjgoGqM7E_DMs5ynghnQ.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E3_-gs6Fostz0rdom9.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E3_-gs6Vostz0rdom9.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E3_-gs51ostz0rdg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E30-8s6Fostz0rdom9.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E30-8s6Vostz0rdom9.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/barlow/v12/7cHqv4kjgoGqM7E30-8s51ostz0rdg.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> <style type="text/css">@font-face{font-family:'Helvetica';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIA3UVNqfH9WuVQQRM4zUiOhNTQNejxz&skey=eceee293272e3479&v=v9) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Helvetica';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIA3UVNqfH9WuVQQRM4zUiOrNTQNejxz&skey=eceee293272e3479&v=v9) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Helvetica';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIA3UVNqfH9WuVQQRM4zUiOlNTQNejxz&skey=eceee293272e3479&v=v9) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Helvetica';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIAxUVNqfH9WuVQQRM4zUxOnPzMveA&skey=22efecd2bc0e2cb0&v=v9) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Helvetica';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIAxUVNqfH9WuVQQRM4zWROnPzMveA&skey=22efecd2bc0e2cb0&v=v9) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Helvetica';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/l/font?kit=JIAxUVNqfH9WuVQQRM4zVxOnPzMveA&skey=22efecd2bc0e2cb0&v=v9) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style> <!-- Icon fonts --> <style type="text/css">@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style> <!-- Splash screen styles --> <style>body fuse-splash-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;top:0;left:0;right:0;bottom:0;background-color:#f1f5f9;color:#F9FAFB;z-index:999999;pointer-events:none;opacity:1;visibility:visible;transition:opacity 400ms cubic-bezier(0.4, 0, 0.2, 1)}body fuse-splash-screen img{width:350px;max-width:350px}body fuse-splash-screen .spinner{display:flex;align-items:center;justify-content:space-between;margin-top:40px;width:56px}body fuse-splash-screen .spinner > div{width:12px;height:12px;background-color:#aa44aa;border-radius:100%;display:inline-block;-webkit-animation:fuse-bouncedelay 1s infinite ease-in-out both;animation:fuse-bouncedelay 1s infinite ease-in-out both}body fuse-splash-screen .spinner .bounce1{-webkit-animation-delay:-0.32s;animation-delay:-0.32s}body fuse-splash-screen .spinner .bounce2{-webkit-animation-delay:-0.16s;animation-delay:-0.16s}@-webkit-keyframes fuse-bouncedelay{0%,80%,100%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1.0)}}@keyframes fuse-bouncedelay{0%,80%,100%{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1.0);transform:scale(1.0)}}body:not(.fuse-splash-screen-hidden){overflow:hidden}</style><link href="assets/styles/splash-screen.css" rel="stylesheet" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="assets/styles/splash-screen.css"></noscript> <link src="/node_modules/primeicons/primeicons.css" type="text/css" rel="stylesheet"> <style type="text/css">@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style> <script src="https://accounts.google.com/gsi/client" async defer></script> <style>*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e2e8f0}:before,:after{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:Inter var,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}img{display:block;vertical-align:middle}img{max-width:100%;height:auto}*{text-rendering:optimizeLegibility;-o-text-rendering:optimizeLegibility;-ms-text-rendering:optimizeLegibility;-moz-text-rendering:optimizeLegibility;-webkit-text-rendering:optimizeLegibility;-webkit-tap-highlight-color:transparent}*:focus{outline:none!important}html,body{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:100%;-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}html{font-size:16px}body{font-size:.875rem}body{font-feature-settings:"salt"}img{width:100%;vertical-align:top}body{--tw-text-opacity:1 !important;color:rgba(var(--fuse-text-default-rgb),var(--tw-text-opacity))!important;--tw-bg-opacity:1 !important;background-color:rgba(var(--fuse-bg-default-rgb),var(--tw-bg-opacity))!important}*,*:before,*:after{--tw-border-opacity:1 !important;border-color:rgba(var(--fuse-border-rgb),var(--tw-border-opacity))}@media print{html{font-size:12px!important}body{background:none!important}}*,:before,:after{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgb(59 130 246 / .5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }body{--fuse-primary-50:#eef2ff;--fuse-primary-50-rgb:238,242,255;--fuse-primary-100:#e0e7ff;--fuse-primary-100-rgb:224,231,255;--fuse-primary-200:#c7d2fe;--fuse-primary-200-rgb:199,210,254;--fuse-primary-300:#a5b4fc;--fuse-primary-300-rgb:165,180,252;--fuse-primary-400:#818cf8;--fuse-primary-400-rgb:129,140,248;--fuse-primary-500:#6366f1;--fuse-primary-500-rgb:99,102,241;--fuse-primary-600:#4f46e5;--fuse-primary-600-rgb:79,70,229;--fuse-primary-700:#4338ca;--fuse-primary-700-rgb:67,56,202;--fuse-primary-800:#3730a3;--fuse-primary-800-rgb:55,48,163;--fuse-primary-900:#312e81;--fuse-primary-900-rgb:49,46,129;--fuse-primary-950:#1e1b4b;--fuse-primary-950-rgb:30,27,75;--fuse-primary:#4f46e5;--fuse-primary-rgb:79,70,229;--fuse-on-primary-50:#1e1b4b;--fuse-on-primary-50-rgb:30,27,75;--fuse-on-primary-100:#1e1b4b;--fuse-on-primary-100-rgb:30,27,75;--fuse-on-primary-200:#1e1b4b;--fuse-on-primary-200-rgb:30,27,75;--fuse-on-primary-300:#1e1b4b;--fuse-on-primary-300-rgb:30,27,75;--fuse-on-primary-400:#1e1b4b;--fuse-on-primary-400-rgb:30,27,75;--fuse-on-primary-500:#FFFFFF;--fuse-on-primary-500-rgb:255,255,255;--fuse-on-primary-600:#FFFFFF;--fuse-on-primary-600-rgb:255,255,255;--fuse-on-primary-700:#FFFFFF;--fuse-on-primary-700-rgb:255,255,255;--fuse-on-primary-800:#FFFFFF;--fuse-on-primary-800-rgb:255,255,255;--fuse-on-primary-900:#FFFFFF;--fuse-on-primary-900-rgb:255,255,255;--fuse-on-primary-950:#FFFFFF;--fuse-on-primary-950-rgb:255,255,255;--fuse-on-primary:#FFFFFF;--fuse-on-primary-rgb:255,255,255;--fuse-accent-50:#f8fafc;--fuse-accent-50-rgb:248,250,252;--fuse-accent-100:#f1f5f9;--fuse-accent-100-rgb:241,245,249;--fuse-accent-200:#e2e8f0;--fuse-accent-200-rgb:226,232,240;--fuse-accent-300:#cbd5e1;--fuse-accent-300-rgb:203,213,225;--fuse-accent-400:#94a3b8;--fuse-accent-400-rgb:148,163,184;--fuse-accent-500:#64748b;--fuse-accent-500-rgb:100,116,139;--fuse-accent-600:#475569;--fuse-accent-600-rgb:71,85,105;--fuse-accent-700:#334155;--fuse-accent-700-rgb:51,65,85;--fuse-accent-800:#1e293b;--fuse-accent-800-rgb:30,41,59;--fuse-accent-900:#0f172a;--fuse-accent-900-rgb:15,23,42;--fuse-accent-950:#020617;--fuse-accent-950-rgb:2,6,23;--fuse-accent:#1e293b;--fuse-accent-rgb:30,41,59;--fuse-on-accent-50:#020617;--fuse-on-accent-50-rgb:2,6,23;--fuse-on-accent-100:#020617;--fuse-on-accent-100-rgb:2,6,23;--fuse-on-accent-200:#020617;--fuse-on-accent-200-rgb:2,6,23;--fuse-on-accent-300:#020617;--fuse-on-accent-300-rgb:2,6,23;--fuse-on-accent-400:#020617;--fuse-on-accent-400-rgb:2,6,23;--fuse-on-accent-500:#FFFFFF;--fuse-on-accent-500-rgb:255,255,255;--fuse-on-accent-600:#FFFFFF;--fuse-on-accent-600-rgb:255,255,255;--fuse-on-accent-700:#FFFFFF;--fuse-on-accent-700-rgb:255,255,255;--fuse-on-accent-800:#FFFFFF;--fuse-on-accent-800-rgb:255,255,255;--fuse-on-accent-900:#FFFFFF;--fuse-on-accent-900-rgb:255,255,255;--fuse-on-accent-950:#FFFFFF;--fuse-on-accent-950-rgb:255,255,255;--fuse-on-accent:#FFFFFF;--fuse-on-accent-rgb:255,255,255;--fuse-warn-50:#fef2f2;--fuse-warn-50-rgb:254,242,242;--fuse-warn-100:#fee2e2;--fuse-warn-100-rgb:254,226,226;--fuse-warn-200:#fecaca;--fuse-warn-200-rgb:254,202,202;--fuse-warn-300:#fca5a5;--fuse-warn-300-rgb:252,165,165;--fuse-warn-400:#f87171;--fuse-warn-400-rgb:248,113,113;--fuse-warn-500:#ef4444;--fuse-warn-500-rgb:239,68,68;--fuse-warn-600:#dc2626;--fuse-warn-600-rgb:220,38,38;--fuse-warn-700:#b91c1c;--fuse-warn-700-rgb:185,28,28;--fuse-warn-800:#991b1b;--fuse-warn-800-rgb:153,27,27;--fuse-warn-900:#7f1d1d;--fuse-warn-900-rgb:127,29,29;--fuse-warn-950:#450a0a;--fuse-warn-950-rgb:69,10,10;--fuse-warn:#dc2626;--fuse-warn-rgb:220,38,38;--fuse-on-warn-50:#450a0a;--fuse-on-warn-50-rgb:69,10,10;--fuse-on-warn-100:#450a0a;--fuse-on-warn-100-rgb:69,10,10;--fuse-on-warn-200:#450a0a;--fuse-on-warn-200-rgb:69,10,10;--fuse-on-warn-300:#450a0a;--fuse-on-warn-300-rgb:69,10,10;--fuse-on-warn-400:#450a0a;--fuse-on-warn-400-rgb:69,10,10;--fuse-on-warn-500:#fef2f2;--fuse-on-warn-500-rgb:254,242,242;--fuse-on-warn-600:#FFFFFF;--fuse-on-warn-600-rgb:255,255,255;--fuse-on-warn-700:#FFFFFF;--fuse-on-warn-700-rgb:255,255,255;--fuse-on-warn-800:#FFFFFF;--fuse-on-warn-800-rgb:255,255,255;--fuse-on-warn-900:#FFFFFF;--fuse-on-warn-900-rgb:255,255,255;--fuse-on-warn-950:#FFFFFF;--fuse-on-warn-950-rgb:255,255,255;--fuse-on-warn:#FFFFFF;--fuse-on-warn-rgb:255,255,255}html{--mat-option-label-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-option-label-text-line-height:1.5rem;--mat-option-label-text-size:.875rem;--mat-option-label-text-tracking:normal;--mat-option-label-text-weight:400;--mat-optgroup-label-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-optgroup-label-text-line-height:1.5rem;--mat-optgroup-label-text-size:.875rem;--mat-optgroup-label-text-tracking:normal;--mat-optgroup-label-text-weight:400}html{--mat-select-trigger-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-select-trigger-text-line-height:1.5rem;--mat-select-trigger-text-size:.875rem;--mat-select-trigger-text-tracking:normal;--mat-select-trigger-text-weight:400}html{--mat-menu-item-label-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-menu-item-label-text-size:.875rem;--mat-menu-item-label-text-tracking:normal;--mat-menu-item-label-text-line-height:1.5rem;--mat-menu-item-label-text-weight:400}html{--mat-paginator-container-size:56px}html{--mat-paginator-container-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-paginator-container-text-line-height:1rem;--mat-paginator-container-text-size:.75rem;--mat-paginator-container-text-tracking:normal;--mat-paginator-container-text-weight:400;--mat-paginator-select-trigger-text-size:.75rem}html{--mdc-checkbox-state-layer-size:40px}html{--mat-expansion-header-collapsed-state-height:48px;--mat-expansion-header-expanded-state-height:64px;--mat-expansion-header-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-expansion-header-text-size:.875rem;--mat-expansion-header-text-weight:600;--mat-expansion-header-text-line-height:inherit;--mat-expansion-header-text-tracking:inherit;--mat-expansion-container-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-expansion-container-text-line-height:1.5rem;--mat-expansion-container-text-size:.875rem;--mat-expansion-container-text-tracking:normal;--mat-expansion-container-text-weight:400}html{--mat-stepper-header-height:72px;--mat-stepper-container-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-stepper-header-label-text-font:"Inter var", ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--mat-stepper-header-label-text-size:.875rem;--mat-stepper-header-label-text-weight:400;--mat-stepper-header-error-state-label-text-size:.875rem;--mat-stepper-header-selected-state-label-text-size:.875rem;--mat-stepper-header-selected-state-label-text-weight:400}:root{--surface-a:#ffffff;--surface-b:#efefef;--surface-c:#e9ecef;--surface-d:#dee2e6;--surface-e:#ffffff;--surface-f:#ffffff;--text-color:#212529;--text-color-secondary:#6c757d;--primary-color:#883cae;--primary-color-text:#ffffff;--font-family:-apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;--surface-0:#ffffff;--surface-50:#f9fafb;--surface-100:#f8f9fa;--surface-200:#e9ecef;--surface-300:#dee2e6;--surface-400:#ced4da;--surface-500:#adb5bd;--surface-600:#6c757d;--surface-700:#495057;--surface-800:#343a40;--surface-900:#212529;--gray-50:#f9fafb;--gray-100:#f8f9fa;--gray-200:#e9ecef;--gray-300:#dee2e6;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#495057;--gray-800:#343a40;--gray-900:#212529;--content-padding:1.25rem;--inline-spacing:.5rem;--border-radius:4px;--surface-ground:#efefef;--surface-section:#ffffff;--surface-card:#ffffff;--surface-overlay:#ffffff;--surface-border:#dee2e6;--surface-hover:#e9ecef;--maskbg:rgba(0, 0, 0, .4);--highlight-bg:#883cae;--highlight-text-color:#ffffff;--focus-ring:0 0 0 .2rem rgba(136, 60, 174, .5);color-scheme:light}*{box-sizing:border-box}:root{--blue-50:#f3f8ff;--blue-100:#c5dcff;--blue-200:#97c1fe;--blue-300:#69a5fe;--blue-400:#3b8afd;--blue-500:#0d6efd;--blue-600:#0b5ed7;--blue-700:#094db1;--blue-800:#073d8b;--blue-900:#052c65;--green-50:#f4f9f6;--green-100:#c8e2d6;--green-200:#9ccbb5;--green-300:#70b595;--green-400:#459e74;--green-500:#198754;--green-600:#157347;--green-700:#125f3b;--green-800:#0e4a2e;--green-900:#0a3622;--yellow-50:#fffcf3;--yellow-100:#fff0c3;--yellow-200:#ffe494;--yellow-300:#ffd965;--yellow-400:#ffcd36;--yellow-500:#ffc107;--yellow-600:#d9a406;--yellow-700:#b38705;--yellow-800:#8c6a04;--yellow-900:#664d03;--cyan-50:#f3fcfe;--cyan-100:#c5f2fb;--cyan-200:#97e8f9;--cyan-300:#69def6;--cyan-400:#3bd4f3;--cyan-500:#0dcaf0;--cyan-600:#0baccc;--cyan-700:#098da8;--cyan-800:#076f84;--cyan-900:#055160;--pink-50:#fdf5f9;--pink-100:#f5cee1;--pink-200:#eda7ca;--pink-300:#e681b3;--pink-400:#de5a9b;--pink-500:#d63384;--pink-600:#b62b70;--pink-700:#96245c;--pink-800:#761c49;--pink-900:#561435;--indigo-50:#f7f3fe;--indigo-100:#dac6fc;--indigo-200:#bd98f9;--indigo-300:#a06bf7;--indigo-400:#833df4;--indigo-500:#6610f2;--indigo-600:#570ece;--indigo-700:#470ba9;--indigo-800:#380985;--indigo-900:#290661;--teal-50:#f4fcfa;--teal-100:#c9f2e6;--teal-200:#9fe8d2;--teal-300:#75debf;--teal-400:#4ad3ab;--teal-500:#20c997;--teal-600:#1bab80;--teal-700:#168d6a;--teal-800:#126f53;--teal-900:#0d503c;--orange-50:#fff9f3;--orange-100:#ffe0c7;--orange-200:#fec89a;--orange-300:#feaf6d;--orange-400:#fd9741;--orange-500:#fd7e14;--orange-600:#d76b11;--orange-700:#b1580e;--orange-800:#8b450b;--orange-900:#653208;--bluegray-50:#f8f9fb;--bluegray-100:#e0e4ea;--bluegray-200:#c7ced9;--bluegray-300:#aeb9c8;--bluegray-400:#95a3b8;--bluegray-500:#7c8ea7;--bluegray-600:#69798e;--bluegray-700:#576375;--bluegray-800:#444e5c;--bluegray-900:#323943;--purple-50:#f8f6fc;--purple-100:#dcd2f0;--purple-200:#c1aee4;--purple-300:#a68ad9;--purple-400:#8a66cd;--purple-500:#6f42c1;--purple-600:#5e38a4;--purple-700:#4e2e87;--purple-800:#3d246a;--purple-900:#2c1a4d;--red-50:#fdf5f6;--red-100:#f7cfd2;--red-200:#f0a8af;--red-300:#e9828c;--red-400:#e35b68;--red-500:#dc3545;--red-600:#bb2d3b;--red-700:#9a2530;--red-800:#791d26;--red-900:#58151c;--primary-50:#f9f5fb;--primary-100:#e2d0ec;--primary-200:#ccabdc;--primary-300:#b586cd;--primary-400:#9f61bd;--primary-500:#883cae;--primary-600:#743394;--primary-700:#5f2a7a;--primary-800:#4b2160;--primary-900:#361846}</style><link rel="stylesheet" href="styles.3352a4a3f234ca8a.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles.3352a4a3f234ca8a.css"></noscript></head> <body> <!-- Splash screen --> <fuse-splash-screen> <img src="assets/images/purpleair-logo.png" alt="PurpleAir logo"> <div class="spinner"> <div class="bounce1"></div> <div class="bounce2"></div> <div class="bounce3"></div> </div> </fuse-splash-screen> <!-- App root --> <app-root></app-root> <script src="runtime.484c32415e536c7f.js" type="module"></script><script src="polyfills.857d1d6c6511b29d.js" type="module"></script><script src="scripts.f3e3ee3260c6cc75.js" defer></script><script src="main.01d37be16d8e885c.js" type="module"></script></body> </html>