{{ alert.details }}67 |
├── .env ├── .flake8 ├── .gitignore ├── LICENSE.md ├── Pipfile ├── Pipfile.lock ├── README.md ├── example_settings.toml ├── install.md ├── rules ├── bucket_logging_disabled.toml ├── consolelogin.toml ├── newuser.toml ├── rootlogin.toml └── sg_global_access.toml ├── screenshots ├── varna-dev-list-alarms-example.png └── varna-dev-search-query-example.png ├── settings.md ├── static ├── css │ ├── all.css │ └── bulma-calendar.min.css ├── js │ └── bulma-calendar.min.js ├── script.js ├── style.css └── webfonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ └── fa-solid-900.woff2 ├── templates ├── layout.html ├── layout_unauth.html ├── list_alarms.html ├── list_rules.html ├── login.html ├── logout.html ├── past_search.html ├── search_results.html ├── settings.html └── show_alert.html ├── varna.py └── zappa_settings.json.template /.env: -------------------------------------------------------------------------------- 1 | FLASK_APP=varna 2 | FLASK_DEBUG=1 3 | -------------------------------------------------------------------------------- /.flake8: -------------------------------------------------------------------------------- 1 | [flake8] 2 | ignore = E501, E721 -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | settings.toml 2 | zappa_settings.json 3 | secrets 4 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2019 Elastic N.V. 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | name = "pypi" 3 | url = "https://pypi.org/simple" 4 | verify_ssl = true 5 | 6 | [dev-packages] 7 | flake8 = "*" 8 | autopep8 = "*" 9 | 10 | [packages] 11 | requests = "*" 12 | flask = "*" 13 | eql = "*" 14 | boto3 = "*" 15 | ndjson = "*" 16 | zappa = "*" 17 | toml = "*" 18 | pipfile = "*" 19 | python-dotenv = "*" 20 | flask-httpauth = "*" 21 | werkzeug = "*" 22 | flask-auth = "*" 23 | 24 | [requires] 25 | python_version = "3.7" 26 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "f8fc6fd66e663d80b6d6c22eecd9d0f4f35a4aaa9047ba7fcb1cbbba2bbfa864" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.7" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://pypi.org/simple", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "argcomplete": { 20 | "hashes": [ 21 | "sha256:c079ceb0b72d4d4e03531ed77e6071babb9d42c3f790d7def2c41295b4990b44", 22 | "sha256:d97b7f3cfaa4e494ad59ed6d04c938fc5ed69b590bd8f53274e258fb1119bd1b" 23 | ], 24 | "version": "==1.9.3" 25 | }, 26 | "boto3": { 27 | "hashes": [ 28 | "sha256:05f7ae180813fbf11cb7397b43b6bd29463abdc246bee58127836f1a8f6a9a2f", 29 | "sha256:3480c87b530e7f41d9264a6725dda68208de2697822cf02cd3a541b001872410" 30 | ], 31 | "index": "pypi", 32 | "version": "==1.11.9" 33 | }, 34 | "botocore": { 35 | "hashes": [ 36 | "sha256:1909424c9544f92142c8e551888731e32a99f9c99cfe8d21fea3ec0c32981dae", 37 | "sha256:e3e3c0f59dc30c86dd2116aece3bd554f8476446cf1c5770bbf5111993d676c8" 38 | ], 39 | "version": "==1.14.9" 40 | }, 41 | "certifi": { 42 | "hashes": [ 43 | "sha256:017c25db2a153ce562900032d5bc68e9f191e44e9a0f762f373977de9df1fbb3", 44 | "sha256:25b64c7da4cd7479594d035c08c2d809eb4aab3a26e5a990ea98cc450c320f1f" 45 | ], 46 | "version": "==2019.11.28" 47 | }, 48 | "cfn-flip": { 49 | "hashes": [ 50 | "sha256:40fc5e279fd99ebebec164b2b9e6f7b76f22e0ae42b3b48e45f70010bd082619", 51 | "sha256:8ddd026cef53cd11a4a27e6dc239417a2bbf86587ba2e59fd6bf615ad8dec516" 52 | ], 53 | "version": "==1.2.2" 54 | }, 55 | "chardet": { 56 | "hashes": [ 57 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", 58 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" 59 | ], 60 | "version": "==3.0.4" 61 | }, 62 | "click": { 63 | "hashes": [ 64 | "sha256:2335065e6395b9e67ca716de5f7526736bfa6ceead690adf616d925bdc622b13", 65 | "sha256:5b94b49521f6456670fdb30cd82a4eca9412788a93fa6dd6df72c94d5a8ff2d7" 66 | ], 67 | "version": "==7.0" 68 | }, 69 | "docutils": { 70 | "hashes": [ 71 | "sha256:6c4f696463b79f1fb8ba0c594b63840ebd41f059e92b31957c46b74a4599b6d0", 72 | "sha256:9e4d7ecfc600058e07ba661411a2b7de2fd0fafa17d1a7f7361cd47b1175c827", 73 | "sha256:a2aeea129088da402665e92e0b25b04b073c04b2dce4ab65caaa38b7ce2e1a99" 74 | ], 75 | "version": "==0.15.2" 76 | }, 77 | "durationpy": { 78 | "hashes": [ 79 | "sha256:5ef9416b527b50d722f34655becfb75e49228eb82f87b855ed1911b3314b5408" 80 | ], 81 | "version": "==0.5" 82 | }, 83 | "eql": { 84 | "hashes": [ 85 | "sha256:20fdfc4382f36b48277321048b741b59fc5ec18368a04e01dcd105e5854be0ae", 86 | "sha256:453ca3f83e89b01e13011b2038163a29edb6b8e4c02bbf7a7a1ae323527cb73c" 87 | ], 88 | "index": "pypi", 89 | "version": "==0.8.2" 90 | }, 91 | "flask": { 92 | "hashes": [ 93 | "sha256:13f9f196f330c7c2c5d7a5cf91af894110ca0215ac051b5844701f2bfd934d52", 94 | "sha256:45eb5a6fd193d6cf7e0cf5d8a5b31f83d5faae0293695626f539a823e93b13f6" 95 | ], 96 | "index": "pypi", 97 | "version": "==1.1.1" 98 | }, 99 | "flask-auth": { 100 | "hashes": [ 101 | "sha256:a749c1f021a731ba8b40656bf863093840fa8cb4f1d2675571c1073357245285" 102 | ], 103 | "index": "pypi", 104 | "version": "==0.85" 105 | }, 106 | "flask-httpauth": { 107 | "hashes": [ 108 | "sha256:0149953720489407e51ec24bc2f86273597b7973d71cd51f9443bd0e2a89bd72", 109 | "sha256:6ef8b761332e780f9ff74d5f9056c2616f52babc1998b01d9f361a1e439e61b9" 110 | ], 111 | "index": "pypi", 112 | "version": "==3.3.0" 113 | }, 114 | "future": { 115 | "hashes": [ 116 | "sha256:e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb" 117 | ], 118 | "version": "==0.16.0" 119 | }, 120 | "hjson": { 121 | "hashes": [ 122 | "sha256:1d1727faa6aaef2973921877125a3ab7c5f6d34b93233179d01770f41fab51f9" 123 | ], 124 | "version": "==3.0.1" 125 | }, 126 | "idna": { 127 | "hashes": [ 128 | "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407", 129 | "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c" 130 | ], 131 | "version": "==2.8" 132 | }, 133 | "itsdangerous": { 134 | "hashes": [ 135 | "sha256:321b033d07f2a4136d3ec762eac9f16a10ccd60f53c0c91af90217ace7ba1f19", 136 | "sha256:b12271b2047cb23eeb98c8b5622e2e5c5e9abd9784a153e9d8ef9cb4dd09d749" 137 | ], 138 | "version": "==1.1.0" 139 | }, 140 | "jinja2": { 141 | "hashes": [ 142 | "sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f", 143 | "sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de" 144 | ], 145 | "version": "==2.10.3" 146 | }, 147 | "jmespath": { 148 | "hashes": [ 149 | "sha256:6a81d4c9aa62caf061cb517b4d9ad1dd300374cd4706997aff9cd6aedd61fc64", 150 | "sha256:f11b4461f425740a1d908e9a3f7365c3d2e569f6ca68a2ff8bc5bcd9676edd63" 151 | ], 152 | "version": "==0.9.3" 153 | }, 154 | "kappa": { 155 | "hashes": [ 156 | "sha256:4b5b372872f25d619e427e04282551048dc975a107385b076b3ffc6406a15833", 157 | "sha256:4d6b7b3accce4a0aaaac92b36237a6304f0f2fffbbe3caea3f7c9f52d12c9989" 158 | ], 159 | "version": "==0.6.0" 160 | }, 161 | "lambda-packages": { 162 | "hashes": [ 163 | "sha256:b5e3b81ecef5f7c1b0903b5c40813536ba2343a33868a567e4e4ff1e26243406" 164 | ], 165 | "version": "==0.20.0" 166 | }, 167 | "lark-parser": { 168 | "hashes": [ 169 | "sha256:b9f4e4711b0837d682051009d232e6df6b37a1278db4568a8221124bb8c1dc8a" 170 | ], 171 | "version": "==0.8.1" 172 | }, 173 | "markupsafe": { 174 | "hashes": [ 175 | "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473", 176 | "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161", 177 | "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235", 178 | "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5", 179 | "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff", 180 | "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b", 181 | "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1", 182 | "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e", 183 | "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183", 184 | "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66", 185 | "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1", 186 | "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1", 187 | "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e", 188 | "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b", 189 | "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905", 190 | "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735", 191 | "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d", 192 | "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e", 193 | "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d", 194 | "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c", 195 | "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21", 196 | "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2", 197 | "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5", 198 | "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b", 199 | "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6", 200 | "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f", 201 | "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f", 202 | "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7" 203 | ], 204 | "version": "==1.1.1" 205 | }, 206 | "ndjson": { 207 | "hashes": [ 208 | "sha256:d3e8a793bc089a39ac534fe55b9aef85af655ea553c38d8d8173ce1747b438e6", 209 | "sha256:d7baaf34c4d314f551662027726f157c78c38889a4fc39d1f9b8d4f5f0ecb521" 210 | ], 211 | "index": "pypi", 212 | "version": "==0.2.0" 213 | }, 214 | "pipfile": { 215 | "hashes": [ 216 | "sha256:f7d9f15de8b660986557eb3cc5391aa1a16207ac41bc378d03f414762d36c984" 217 | ], 218 | "index": "pypi", 219 | "version": "==0.0.2" 220 | }, 221 | "placebo": { 222 | "hashes": [ 223 | "sha256:03157f8527bbc2965b71b88f4a139ef8038618b346787f20d63e3c5da541b047" 224 | ], 225 | "version": "==0.9.0" 226 | }, 227 | "python-dateutil": { 228 | "hashes": [ 229 | "sha256:891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca", 230 | "sha256:95511bae634d69bc7329ba55e646499a842bc4ec342ad54a8cdb65645a0aad3c" 231 | ], 232 | "version": "==2.6.1" 233 | }, 234 | "python-dotenv": { 235 | "hashes": [ 236 | "sha256:440c7c23d53b7d352f9c94d6f70860242c2f071cf5c029dd661ccb22d64ae42b", 237 | "sha256:f254bfd0c970d64ccbb6c9ebef3667ab301a71473569c991253a481f1c98dddc" 238 | ], 239 | "index": "pypi", 240 | "version": "==0.10.5" 241 | }, 242 | "python-slugify": { 243 | "hashes": [ 244 | "sha256:57a385df7a1c6dbd15f7666eaff0ff29d3f60363b228b1197c5308ed3ba5f824", 245 | "sha256:c3733135d3b184196fdb8844f6a74bbfb9cf6720d1dcce3254bdc434353f938f" 246 | ], 247 | "version": "==1.2.4" 248 | }, 249 | "pyyaml": { 250 | "hashes": [ 251 | "sha256:059b2ee3194d718896c0ad077dd8c043e5e909d9180f387ce42012662a4946d6", 252 | "sha256:1cf708e2ac57f3aabc87405f04b86354f66799c8e62c28c5fc5f88b5521b2dbf", 253 | "sha256:24521fa2890642614558b492b473bee0ac1f8057a7263156b02e8b14c88ce6f5", 254 | "sha256:4fee71aa5bc6ed9d5f116327c04273e25ae31a3020386916905767ec4fc5317e", 255 | "sha256:70024e02197337533eef7b85b068212420f950319cc8c580261963aefc75f811", 256 | "sha256:74782fbd4d4f87ff04159e986886931456a1894c61229be9eaf4de6f6e44b99e", 257 | "sha256:940532b111b1952befd7db542c370887a8611660d2b9becff75d39355303d82d", 258 | "sha256:cb1f2f5e426dc9f07a7681419fe39cee823bb74f723f36f70399123f439e9b20", 259 | "sha256:dbbb2379c19ed6042e8f11f2a2c66d39cceb8aeace421bfc29d085d93eda3689", 260 | "sha256:e3a057b7a64f1222b56e47bcff5e4b94c4f61faac04c7c4ecb1985e18caa3994", 261 | "sha256:e9f45bd5b92c7974e59bcd2dcc8631a6b6cc380a904725fce7bc08872e691615" 262 | ], 263 | "version": "==5.3" 264 | }, 265 | "requests": { 266 | "hashes": [ 267 | "sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4", 268 | "sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31" 269 | ], 270 | "index": "pypi", 271 | "version": "==2.22.0" 272 | }, 273 | "s3transfer": { 274 | "hashes": [ 275 | "sha256:2525bae2a530195576da53671bae8ca8c55ee8e33bc2225a65e804476611ea5a", 276 | "sha256:4924e10451cc37901945806423d16c2c2040a6530645a614ed87e995ccec764c" 277 | ], 278 | "version": "==0.3.2" 279 | }, 280 | "six": { 281 | "hashes": [ 282 | "sha256:236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a", 283 | "sha256:8f3cd2e254d8f793e7f3d6d9df77b92252b52637291d0f0da013c76ea2724b6c" 284 | ], 285 | "version": "==1.14.0" 286 | }, 287 | "toml": { 288 | "hashes": [ 289 | "sha256:229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c", 290 | "sha256:235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e" 291 | ], 292 | "index": "pypi", 293 | "version": "==0.10.0" 294 | }, 295 | "tqdm": { 296 | "hashes": [ 297 | "sha256:ba650e08b8b102923a05896bf9d7e1c9cdc20b484156df0511a4bbf1f6b6f89b", 298 | "sha256:fa6d2ea6285f56e75d7efe9259805deadc450f16066a1f82ad0629ea9be2cd0f" 299 | ], 300 | "version": "==4.19.1" 301 | }, 302 | "troposphere": { 303 | "hashes": [ 304 | "sha256:fbf3592fb0559102e2abf15aa26cadbeced3390565ee294e6df0fb2d421bf759" 305 | ], 306 | "version": "==2.5.3" 307 | }, 308 | "unidecode": { 309 | "hashes": [ 310 | "sha256:1d7a042116536098d05d599ef2b8616759f02985c85b4fef50c78a5aaf10822a", 311 | "sha256:2b6aab710c2a1647e928e36d69c21e76b453cd455f4e2621000e54b2a9b8cce8" 312 | ], 313 | "version": "==1.1.1" 314 | }, 315 | "urllib3": { 316 | "hashes": [ 317 | "sha256:2f3db8b19923a873b3e5256dc9c2dedfa883e33d87c690d9c7913e1f40673cdc", 318 | "sha256:87716c2d2a7121198ebcb7ce7cccf6ce5e9ba539041cfbaeecfb641dc0bf6acc" 319 | ], 320 | "version": "==1.25.8" 321 | }, 322 | "werkzeug": { 323 | "hashes": [ 324 | "sha256:7280924747b5733b246fe23972186c6b348f9ae29724135a6dfc1e53cea433e7", 325 | "sha256:e5f4a1f98b52b18a93da705a7458e55afb26f32bff83ff5d19189f92462d65c4" 326 | ], 327 | "index": "pypi", 328 | "version": "==0.16.0" 329 | }, 330 | "wheel": { 331 | "hashes": [ 332 | "sha256:10c9da68765315ed98850f8e048347c3eb06dd81822dc2ab1d4fde9dc9702646", 333 | "sha256:f4da1763d3becf2e2cd92a14a7c920f0f00eca30fdde9ea992c836685b9faf28" 334 | ], 335 | "version": "==0.33.6" 336 | }, 337 | "wsgi-request-logger": { 338 | "hashes": [ 339 | "sha256:445d7ec52799562f812006394d0b4a7064b37084c6ea6bd74ea7a2136c97ed83" 340 | ], 341 | "version": "==0.4.6" 342 | }, 343 | "zappa": { 344 | "hashes": [ 345 | "sha256:621209ceaf2cf5fcc18ed6bb6cf53aeb2315e38989a6929cbb49c66b5454d656", 346 | "sha256:86b125c0e9696b177f61bf636ab19ead7aba1bb9281cdba0651825358337008e", 347 | "sha256:b7a04172407cdb9277cb166b42920d3c5d745fd50204d1ce7f42769e61b6649e" 348 | ], 349 | "index": "pypi", 350 | "version": "==0.48.2" 351 | } 352 | }, 353 | "develop": { 354 | "autopep8": { 355 | "hashes": [ 356 | "sha256:0f592a0447acea0c2b0a9602be1e4e3d86db52badd2e3c84f0193bfd89fd3a43" 357 | ], 358 | "index": "pypi", 359 | "version": "==1.5" 360 | }, 361 | "entrypoints": { 362 | "hashes": [ 363 | "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19", 364 | "sha256:c70dd71abe5a8c85e55e12c19bd91ccfeec11a6e99044204511f9ed547d48451" 365 | ], 366 | "version": "==0.3" 367 | }, 368 | "flake8": { 369 | "hashes": [ 370 | "sha256:45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb", 371 | "sha256:49356e766643ad15072a789a20915d3c91dc89fd313ccd71802303fd67e4deca" 372 | ], 373 | "index": "pypi", 374 | "version": "==3.7.9" 375 | }, 376 | "mccabe": { 377 | "hashes": [ 378 | "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42", 379 | "sha256:dd8d182285a0fe56bace7f45b5e7d1a6ebcbf524e8f3bd87eb0f125271b8831f" 380 | ], 381 | "version": "==0.6.1" 382 | }, 383 | "pycodestyle": { 384 | "hashes": [ 385 | "sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56", 386 | "sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c" 387 | ], 388 | "version": "==2.5.0" 389 | }, 390 | "pyflakes": { 391 | "hashes": [ 392 | "sha256:17dbeb2e3f4d772725c777fabc446d5634d1038f234e77343108ce445ea69ce0", 393 | "sha256:d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2" 394 | ], 395 | "version": "==2.1.1" 396 | } 397 | } 398 | } 399 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Varna 2 | 3 | Varna is an AWS serverless cloud security tool that parses and alerts on CloudTrail logs using Event Query Language (EQL). Varna is deployed as a lambda function, for scanning and serving web requests, and a dynamodb table, for keeping track of seen alerts. Varna is cheap & efficient to run, costing less than 15 dollars a month with proper configuration and ingesting alerts as soon as CloudTrail stores them in S3. 4 | 5 | You can find more information to install on how to install Varna in the [install.md](install.md). 6 | 7 | All of the rules can be found in the `rules` folder and should be fairly understandable. 8 | 9 | Features: 10 | 11 | * Quick setup, takes less than 10 minutes to setup & deploy using Zappa. 12 | * Easy to enable slack & email notifications. 13 | * Rules are quick to write and easy to understand. 14 | * Easy to enable user authentication. 15 | * Simple code, readable by a single human in a couple of hours. 16 | * Past search in the web console for finding additional context. 17 | 18 | Varna is basically feature complete for our needs, the only outstanding work that might be done is incorporating SAML authentication or a method for bulk past search. If you have questions or would like to discuss a new feature, feel free to email me. 19 | 20 | Some quick screenshots of the web interface: 21 | 22 |  23 |  24 | -------------------------------------------------------------------------------- /example_settings.toml: -------------------------------------------------------------------------------- 1 | minutes_back = 60 2 | slack_url = "https://hooks.slack.com/services/********************" 3 | age_off = 30 4 | base_url = "http://localhost/" 5 | logs_bucket = "bucket_name" 6 | secret_key = "NWBUdSXUzHxNoO8g" # Change me. 7 | 8 | [accounts] 9 | 111111111111 = ["us-east-1"] 10 | 11 | [email] 12 | sender = "adam@example.com" 13 | receivers = ["adam@example.com"] 14 | smtp_server = "smtp.example.com" 15 | password = "hunter2" 16 | 17 | [users] 18 | admin = "password123" 19 | -------------------------------------------------------------------------------- /install.md: -------------------------------------------------------------------------------- 1 | So Varna is pretty simple to install, it requires a couple different lambdas, a dynamodb table and some access. 2 | 3 | # Getting Started 4 | 5 | ## Prerequisites 6 | 7 | 1. AWS Account 8 | 2. CloudTrail 9 | 10 | ## AWS Configuration 11 | 12 | 1. Create a new DynamoDB table called `varna_sent_events_v3` with the partition key named `event_id` and no sort key. Leave the default settings of 5 read and 5 write. 13 | 2. Create a new Global Secondary Indexes (GSI) for this table. Navigate to Indexes tab after creating the DynamoDB table. Click create new index with the index name being `account_id-event_time-index` and the partition key as `account_id` and the sort key as `event_time`. Leave the default settings of 5 read and 5 write. 14 | 3. Create a Cloudtrail trail, or use an existing one. See the below screenshots for our settings of the new trail. In addition, make a note of the bucket name. 15 | 16 | ## Application Setup 17 | 18 | 1. Copy `example_settings.toml` to `settings.toml` and configure to your environment. 19 | 2. Copy `zappa_settings.json.template` to `zappa_settings.json` and configure to your environment. 20 | 21 | ## Slack Setup 22 | 23 | 1. Create an incoming webhook to use for Slack channel notification. Use the webhook url in the `settings.toml` file for `slack_url`. 24 | 25 | 26 | ## Zappa Setup 27 | 28 | 1. You will need to modify the zappa_settings.json file to include settings for an ssl certificate, details on this can be found in the Zappa documentation. 29 | 2. Run `zappa deploy` 30 | 3. Run `zappa certify` 31 | 4. You should now be able to access Varna and be receiving alerts. 32 | 33 | There you go, if you visit the website you setup, you should now see a working installation of Varna. Feel free to do some activity that should alert and confirm that it alerts. 34 | -------------------------------------------------------------------------------- /rules/bucket_logging_disabled.toml: -------------------------------------------------------------------------------- 1 | title = "Bucket Logging Check" 2 | author = "Adam (@avidhacker) Ringwood" 3 | created = "Oct 6, 2019" 4 | updated = "Oct 6, 2019" 5 | 6 | rule = ''' 7 | eventName = "PutBucketLogging" and not requestParameters.BucketLoggingStatus.LoggingEnabled 8 | ''' 9 | 10 | [fields] 11 | user_agent = ["userAgent"] 12 | source_ip = ["sourceIPAddress"] 13 | event_time = ["eventTime"] 14 | -------------------------------------------------------------------------------- /rules/consolelogin.toml: -------------------------------------------------------------------------------- 1 | title = "Console Login without MFA" 2 | author = "Adam (@avidhacker) Ringwood" 3 | created = "Oct 14, 2019" 4 | updated = "Oct 14, 2019" 5 | 6 | rule = ''' 7 | eventName = "ConsoleLogin" and additionalEventData.MFAUsed != "Yes" 8 | ''' 9 | 10 | [fields] 11 | creator_arn = ["userIdentity", "arn"] 12 | source_ip = ["sourceIPAddress"] 13 | event_time = ["eventTime"] 14 | responseElements = ["responseElements", "user", "arn"] 15 | -------------------------------------------------------------------------------- /rules/newuser.toml: -------------------------------------------------------------------------------- 1 | title = "New User" 2 | author = "Adam (@avidhacker) Ringwood" 3 | created = "Oct 6, 2019" 4 | updated = "Oct 6, 2019" 5 | 6 | rule = ''' 7 | eventName = "CreateUser" 8 | ''' 9 | 10 | [fields] 11 | creator_arn = ["userIdentity", "arn"] 12 | source_ip = ["sourceIPAddress"] 13 | event_time = ["eventTime"] 14 | responseElements = ["responseElements", "user", "arn"] 15 | -------------------------------------------------------------------------------- /rules/rootlogin.toml: -------------------------------------------------------------------------------- 1 | title = "Root Login" 2 | author = "Adam (@avidhacker) Ringwood" 3 | created = "Oct 6, 2019" 4 | updated = "Oct 6, 2019" 5 | 6 | rule = ''' 7 | eventName = "ConsoleLogin" and userIdentity.type = "Root" 8 | ''' 9 | 10 | [fields] 11 | user_agent = ["userAgent"] 12 | source_ip = ["sourceIPAddress"] 13 | event_time = ["eventTime"] 14 | result = ["responseElements", "ConsoleLogin"] 15 | -------------------------------------------------------------------------------- /rules/sg_global_access.toml: -------------------------------------------------------------------------------- 1 | title = "SG Global Access" 2 | author = "Adam (@avidhacker) Ringwood" 3 | created = "Oct 6, 2019" 4 | updated = "Oct 6, 2019" 5 | 6 | rule = ''' 7 | eventName = "AuthorizeSecurityGroupIngress" and arraySearch(requestParameters.ipPermissions.items, ips, ips.ipProtocol = "tcp" and arraySearch(ips.ipRanges.items, r, r.cidrIp = "0.0.0.0/0") and ips.toPort = 22) 8 | ''' 9 | 10 | [fields] 11 | user_agent = ["userAgent"] 12 | source_ip = ["sourceIPAddress"] 13 | event_time = ["eventTime"] 14 | result = ["responseElements", "ConsoleLogin"] 15 | -------------------------------------------------------------------------------- /screenshots/varna-dev-list-alarms-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/screenshots/varna-dev-list-alarms-example.png -------------------------------------------------------------------------------- /screenshots/varna-dev-search-query-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/screenshots/varna-dev-search-query-example.png -------------------------------------------------------------------------------- /settings.md: -------------------------------------------------------------------------------- 1 | `minutes_back` is how long back you want the search to go, it is mostly important because it determines the max lenght of sequences or joins that you can detect. 2 | 3 | `slack_url` is the webhook that you would like to fire slack alerts at. You need either this or email for varna to work. 4 | 5 | `age_off` is the number of days before alerts get deleted. 6 | 7 | `base_url` where the application is hosted, used for links in notifications. 8 | 9 | `logs_bucket` is the bucket where the cloudtrail logs are stored. 10 | 11 | `accounts` a list of accounts that are associated with a list of regions that you would like to scan in them, check the sample settings.toml for exact formatting. 12 | 13 | `email` Only SSL on port 465, you need a sender, receivers (list of emails), a smtp_server and a password. Check the sample settings.toml for exact formatting. 14 | -------------------------------------------------------------------------------- /static/css/bulma-calendar.min.css: -------------------------------------------------------------------------------- 1 | @-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@-webkit-keyframes decrement-prev{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes decrement-prev{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes decrement-next{from{opacity:0;-webkit-transform:translateY(-50px);transform:translateY(-50px)}}@keyframes decrement-next{from{opacity:0;-webkit-transform:translateY(-50px);transform:translateY(-50px)}}@-webkit-keyframes increment-prev{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes increment-prev{from{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes increment-next{from{opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px)}}@keyframes increment-next{from{opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px)}}.datetimepicker{transition:width .8s cubic-bezier(1,-.55,.2,1.37),opacity .2s ease,visibility .2s ease,margin .2s ease;display:none;background:#fff;border-radius:2px;max-width:320px;z-index:1;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1)}.datetimepicker.is-active{display:block}.datetimepicker .datetimepicker-header{display:flex;flex-direction:column;flex:1;text-align:left;position:relative;padding:.5rem 1rem;font-size:1rem;box-shadow:0 .2rem .2rem -.2rem rgba(10,10,10,.1)}.datetimepicker .datetimepicker-header.is-date-only{flex-direction:row}.datetimepicker .datetimepicker-header.is-date-only .datetimepicker-selection-end .datetimepicker-selection-wrapper{justify-content:flex-end!important}.datetimepicker .datetimepicker-header .datetimepicker-selection-details{flex:1}.datetimepicker .datetimepicker-header .datetimepicker-selection-from,.datetimepicker .datetimepicker-header .datetimepicker-selection-to{font-size:.65rem;color:#b5b5b5;text-transform:uppercase;padding:0}.datetimepicker .datetimepicker-header .datetimepicker-selection-end,.datetimepicker .datetimepicker-header .datetimepicker-selection-start{padding:0;display:flex;flex:1;flex-direction:row}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-wrapper,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-wrapper{flex-direction:row;display:flex;min-height:2.5rem;flex:1 1 2rem}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-day,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-day{flex:0;text-transform:capitalize;font-size:2rem;line-height:2.5rem;margin-right:.5rem;color:#00d1b2;font-weight:100}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-date,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-date{font-size:.85rem;line-height:.85rem;justify-content:center;display:flex;flex-direction:column;font-weight:300}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-month,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-month{color:#4a4a4a;text-transform:capitalize}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-weekday,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-weekday{font-size:.75em;color:#b6b4b6;text-transform:capitalize;text-align:left}.datetimepicker .datetimepicker-header .datetimepicker-selection-end .datetimepicker-selection-hour,.datetimepicker .datetimepicker-header .datetimepicker-selection-start .datetimepicker-selection-hour{font-size:1.5rem;font-weight:100;flex:1;justify-content:center;align-items:center;text-align:center}.datetimepicker .datetimepicker-header .datetimepicker-selection-end,.datetimepicker .datetimepicker-header .datetimepicker-selection-start{align-items:center}.datetimepicker .datetimepicker-header .datetimepicker-selection-end.is-centered .datetimepicker-selection-wrapper,.datetimepicker .datetimepicker-header .datetimepicker-selection-start.is-centered .datetimepicker-selection-wrapper{justify-content:center;align-items:center}.datetimepicker .datetimepicker-header .datetimepicker-selection-time{flex:1;display:flex}.datetimepicker .datetimepicker-header .datetimepicker-selection-time .datetimepicker-selection-time-icon{display:flex;justify-content:center;align-items:center;padding:0 1rem;color:#b5b5b5}.datetimepicker .datepicker-nav{background:#00d1b2;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.5em;flex-direction:row}.datetimepicker .datepicker-nav .datepicker-nav-month-year{flex-direction:row;display:flex}.datetimepicker .datepicker-nav .datepicker-nav-month,.datetimepicker .datepicker-nav .datepicker-nav-year{text-decoration:none;font-size:1rem;color:#fff}.datetimepicker .datepicker-nav .datepicker-nav-month:hover,.datetimepicker .datepicker-nav .datepicker-nav-year:hover{cursor:pointer}.datetimepicker .datepicker-nav .datepicker-nav-month{text-transform:capitalize}.datetimepicker .datepicker-nav .datepicker-nav-year{font-weight:700}.datetimepicker .datepicker-nav .datepicker-nav-next,.datetimepicker .datepicker-nav .datepicker-nav-previous{flex-basis:auto;flex-grow:0;flex-shrink:0;text-decoration:none;color:#fff}.datetimepicker .datepicker-nav .datepicker-nav-next:hover,.datetimepicker .datepicker-nav .datepicker-nav-previous:hover{background-color:transparent}.datetimepicker .datepicker-nav .datepicker-nav-next:hover svg,.datetimepicker .datepicker-nav .datepicker-nav-previous:hover svg{stroke-width:1em}.datetimepicker .datepicker-nav .datepicker-nav-next svg,.datetimepicker .datepicker-nav .datepicker-nav-previous svg{stroke:currentColor;width:11.25px;height:.75rem}.datetimepicker .datepicker-body{overflow:hidden}.datetimepicker .datepicker-body .datepicker-dates{display:none}.datetimepicker .datepicker-body .datepicker-dates.is-active{display:flex;flex-direction:column}.datetimepicker .datepicker-body .datepicker-months,.datetimepicker .datepicker-body .datepicker-years{display:none}.datetimepicker .datepicker-body .datepicker-months.is-active,.datetimepicker .datepicker-body .datepicker-years.is-active{display:flex;flex-direction:row}.datetimepicker .datepicker-body .datepicker-weekdays{display:flex;flex-wrap:wrap;justify-content:space-around;padding:.3rem 0;background:0 0;color:#fff;font-size:.75rem}.datetimepicker .datepicker-body .datepicker-weekdays .datepicker-date{background:0 0!important;color:#b5b5b5;padding:.3rem}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-around;padding:0;color:#7a7a7a}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date{background:#f5f5f5;display:flex;justify-content:center;flex:14.28571%;margin:.1rem 0;align-items:center}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item{margin:0 auto;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;border-radius:25091983px;color:#4a4a4a;cursor:pointer;height:2.2rem;outline:0;padding:0;position:relative;text-align:center;text-decoration:none;transition:all .2s ease;vertical-align:middle;white-space:nowrap;width:2.2rem;-webkit-animation:bounce-button-in .45s 0s cubic-bezier(.175,.885,.32,1.275) forwards;animation:bounce-button-in .45s 0s cubic-bezier(.175,.885,.32,1.275) forwards}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{background:0 0;border:.1rem dotted #00d1b2;color:#00d1b2}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:focus{background:#fff;border-color:#fff;color:rgba(0,0,0,.7);text-decoration:none}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#00d1b2;border-color:#00d1b2;border-radius:25091983px;color:#fff}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7);text-decoration:none}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.is-current-month{background:0 0}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.is-disabled,.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date[disabled]{background-color:#f5f5f5;background-image:url(data:image/gif;base64,R0lGODlhBQAFAOMAAP/14////93uHt3uHt3uHt3uHv///////////wAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAAALAAAAAAFAAUAAAQL0ACAzpG0YnonNxEAOw==)!important}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.is-disabled .calendar-event,.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.is-disabled .date-item,.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date[disabled] .calendar-event,.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date[disabled] .date-item{cursor:default;opacity:.25;pointer-events:none}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{position:relative;background:#00d1b2;z-index:1}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border:.1rem solid #00d1b2;color:#00d1b2;box-shadow:0 .2rem .2rem rgba(10,10,10,.1)}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start{border-top-left-radius:25091983px;border-bottom-left-radius:25091983px}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end{border-top-right-radius:25091983px;border-bottom-right-radius:25091983px}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#00d1b2;color:#fff}.datetimepicker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker .datepicker-body .datepicker-months,.datetimepicker .datepicker-body .datepicker-years{display:none;flex-direction:row;flex-wrap:wrap;padding:.5rem;max-height:17rem;overflow-y:auto}.datetimepicker .datepicker-body .datepicker-months.is-active,.datetimepicker .datepicker-body .datepicker-years.is-active{display:flex}.datetimepicker .datepicker-body .datepicker-months .datepicker-month,.datetimepicker .datepicker-body .datepicker-months .datepicker-year,.datetimepicker .datepicker-body .datepicker-years .datepicker-month,.datetimepicker .datepicker-body .datepicker-years .datepicker-year{padding:.5rem;margin:.5rem;font-size:.75rem;text-align:center;flex:1 25%;text-transform:capitalize;border-radius:25091983px;border:.1rem solid transparent}.datetimepicker .datepicker-body .datepicker-months .datepicker-month.is-active,.datetimepicker .datepicker-body .datepicker-months .datepicker-year.is-active,.datetimepicker .datepicker-body .datepicker-years .datepicker-month.is-active,.datetimepicker .datepicker-body .datepicker-years .datepicker-year.is-active{background:#00d1b2;border-color:#00d1b2;color:#fff}.datetimepicker .datepicker-body .datepicker-months .datepicker-month:hover,.datetimepicker .datepicker-body .datepicker-months .datepicker-year:hover,.datetimepicker .datepicker-body .datepicker-years .datepicker-month:hover,.datetimepicker .datepicker-body .datepicker-years .datepicker-year:hover{cursor:pointer;background:#fff;border:.1rem solid #00d1b2;color:rgba(0,0,0,.7)}.datetimepicker .datetimepicker-footer{display:flex;flex:1;justify-content:space-evenly;margin:0}.datetimepicker .datetimepicker-footer>*{text-decoration:none!important}.datetimepicker.is-datetimepicker-default .datetimepicker-container{display:flex;flex-direction:column}.datetimepicker.is-datetimepicker-default .datetimepicker-container:after,.datetimepicker.is-datetimepicker-default .datetimepicker-container:before{bottom:100%;left:15%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.datetimepicker.is-datetimepicker-default .datetimepicker-container:after{border-color:rgba(255,255,255,0);border-bottom-color:#fff;border-width:.75rem;margin-left:-.75rem}.datetimepicker.is-datetimepicker-default .datetimepicker-container:before{border-color:rgba(74,74,74,0);border-bottom-color:#4a4a4a;border-width:.75rem;margin-left:-.75rem}.datetimepicker.is-datetimepicker-default .datetimepicker-container.has-header-bottom{flex-direction:column-reverse}.datetimepicker.is-large{max-width:100%}.datetimepicker.is-large .datepicker-body .datepicker-date{border-bottom:.1rem solid #f5f5f5;border-right:.1rem solid #f5f5f5;display:flex;flex-direction:column;height:11rem;padding:0}.datetimepicker.is-large .datepicker-body .datepicker-date:nth-child(7n){border-right:0}.datetimepicker.is-large .datepicker-body .datepicker-date:nth-last-child(-n+7){border-bottom:0}.datetimepicker.is-large .date-item{align-self:flex-end;height:2.2rem;margin-right:.5rem;margin-top:.5rem}.datetimepicker.is-large .datepicker-range::before,.datetimepicker.is-large .datepicker-range:before{top:1.9rem}.datetimepicker.is-large .datepicker-range.datepicker-range-start::before{left:auto;width:1.9rem}.datetimepicker.is-large .datepicker-range.datepicker-range-end::before{right:1.9rem}.datetimepicker.is-large .datepicker-events{flex-grow:1;line-height:1;overflow-y:auto;padding:.5rem}.datetimepicker.is-large .datepicker-event{background-color:#7a7a7a;border-radius:2px;color:#fff;display:block;font-size:1rem;margin:.2rem auto;overflow:hidden;padding:.3rem .4rem;text-align:left;text-overflow:ellipsis;vertical-align:baseline;white-space:nowrap}.datetimepicker.is-large .datepicker-event.is-white{background-color:#fff;color:#0a0a0a}.datetimepicker.is-large .datepicker-event.is-black{background-color:#0a0a0a;color:#fff}.datetimepicker.is-large .datepicker-event.is-light{background-color:#f5f5f5;color:#363636}.datetimepicker.is-large .datepicker-event.is-dark{background-color:#363636;color:#f5f5f5}.datetimepicker.is-large .datepicker-event.is-primary{background-color:#00d1b2;color:#fff}.datetimepicker.is-large .datepicker-event.is-link{background-color:#3273dc;color:#fff}.datetimepicker.is-large .datepicker-event.is-info{background-color:#209cee;color:#fff}.datetimepicker.is-large .datepicker-event.is-success{background-color:#23d160;color:#fff}.datetimepicker.is-large .datepicker-event.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.datetimepicker.is-large .datepicker-event.is-danger{background-color:#ff3860;color:#fff}.datetimepicker .timepicker{display:flex;flex-direction:row;justify-content:center;margin:auto}.datetimepicker .timepicker .timepicker-end,.datetimepicker .timepicker .timepicker-start{display:flex;flex-direction:row;flex:1 50%;justify-content:center;position:relative}.datetimepicker .timepicker .timepicker-end .timepicker-hours,.datetimepicker .timepicker .timepicker-end .timepicker-minutes,.datetimepicker .timepicker .timepicker-start .timepicker-hours,.datetimepicker .timepicker .timepicker-start .timepicker-minutes{display:flex;flex-direction:column;align-items:center}.datetimepicker .timepicker .timepicker-end .timepicker-hours .timepicker-input,.datetimepicker .timepicker .timepicker-end .timepicker-minutes .timepicker-input,.datetimepicker .timepicker .timepicker-start .timepicker-hours .timepicker-input,.datetimepicker .timepicker .timepicker-start .timepicker-minutes .timepicker-input{position:relative;color:#00d1b2;text-align:center;overflow:hidden;font-size:2rem;font-weight:400}.datetimepicker .timepicker .timepicker-end .timepicker-hours .timepicker-input.is-input .timepicker-input-number,.datetimepicker .timepicker .timepicker-end .timepicker-minutes .timepicker-input.is-input .timepicker-input-number,.datetimepicker .timepicker .timepicker-start .timepicker-hours .timepicker-input.is-input .timepicker-input-number,.datetimepicker .timepicker .timepicker-start .timepicker-minutes .timepicker-input.is-input .timepicker-input-number{visability:hidden;opacity:0;transition:opacity .1s ease-in}.datetimepicker .timepicker .timepicker-end .timepicker-hours .timepicker-input.is-input input,.datetimepicker .timepicker .timepicker-end .timepicker-minutes .timepicker-input.is-input input,.datetimepicker .timepicker .timepicker-start .timepicker-hours .timepicker-input.is-input input,.datetimepicker .timepicker .timepicker-start .timepicker-minutes .timepicker-input.is-input input{visability:visible;opacity:1;transition:opacity .1s ease-in}.datetimepicker .timepicker .timepicker-end .timepicker-hours .timepicker-input input,.datetimepicker .timepicker .timepicker-end .timepicker-minutes .timepicker-input input,.datetimepicker .timepicker .timepicker-start .timepicker-hours .timepicker-input input,.datetimepicker .timepicker .timepicker-start .timepicker-minutes .timepicker-input input{width:4rem;margin:0;padding:0;position:relative;z-index:2;box-shadow:none;outline:0;border:none;opacity:0;transition:opacity .1s ease-in}.datetimepicker .timepicker .timepicker-end .timepicker-input-number,.datetimepicker .timepicker .timepicker-start .timepicker-input-number{position:absolute;z-index:1;top:0;left:0;right:0;bottom:0;visability:visible;opacity:1;transition:opacity 1s ease-in;font-weight:300}.datetimepicker .timepicker .timepicker-end .timepicker-input-number.is-increment-hide,.datetimepicker .timepicker .timepicker-start .timepicker-input-number.is-increment-hide{opacity:0;-webkit-transform:translateY(-50px);transform:translateY(-50px);-webkit-animation:increment-prev .1s ease-in;animation:increment-prev .1s ease-in}.datetimepicker .timepicker .timepicker-end .timepicker-input-number.is-increment-visible,.datetimepicker .timepicker .timepicker-start .timepicker-input-number.is-increment-visible{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-animation:increment-next .1s ease-out;animation:increment-next .1s ease-out}.datetimepicker .timepicker .timepicker-end .timepicker-input-number.is-decrement-hide,.datetimepicker .timepicker .timepicker-start .timepicker-input-number.is-decrement-hide{opacity:0;-webkit-transform:translateY(50px);transform:translateY(50px);-webkit-animation:decrement-prev .1s ease-in;animation:decrement-prev .1s ease-in}.datetimepicker .timepicker .timepicker-end .timepicker-input-number.is-decrement-visible,.datetimepicker .timepicker .timepicker-start .timepicker-input-number.is-decrement-visible{opacity:1;-webkit-transform:translateY(0);transform:translateY(0);-webkit-animation:decrement-next .1s ease-out;animation:decrement-next .1s ease-out}.datetimepicker .timepicker .timepicker-end{margin-left:1rem;padding-left:1rem}.datetimepicker .timepicker .timepicker-end::before,.datetimepicker .timepicker .timepicker-end:before{content:'';position:absolute;top:50%;left:0;-webkit-transform:translateY(-50%);transform:translateY(-50%);height:50%;width:.1rem;background-color:#f5f5f5}.datetimepicker .timepicker .timepicker-next,.datetimepicker .timepicker .timepicker-previous{font-size:1rem;line-height:1rem;display:block;color:#adbcda;text-align:center;margin:1rem 0 0;font-size:1rem;padding:.5rem;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.datetimepicker .timepicker .timepicker-next:hover,.datetimepicker .timepicker .timepicker-previous:hover{cursor:pointer;background-color:#f5f5f5}.datetimepicker .timepicker .timepicker-previous{margin:0 0 1rem}.datetimepicker .timepicker .timepicker-time-divider{display:flex;justify-content:center;align-items:center;font-size:1.5rem;color:#00d1b2}.datetimepicker .timepicker.is-white .timepicker-input,.datetimepicker .timepicker.is-white .timepicker-input-number,.datetimepicker .timepicker.is-white .timepicker-time-divider{color:#fff!important}.datetimepicker .timepicker.is-black .timepicker-input,.datetimepicker .timepicker.is-black .timepicker-input-number,.datetimepicker .timepicker.is-black .timepicker-time-divider{color:#0a0a0a!important}.datetimepicker .timepicker.is-light .timepicker-input,.datetimepicker .timepicker.is-light .timepicker-input-number,.datetimepicker .timepicker.is-light .timepicker-time-divider{color:#f5f5f5!important}.datetimepicker .timepicker.is-dark .timepicker-input,.datetimepicker .timepicker.is-dark .timepicker-input-number,.datetimepicker .timepicker.is-dark .timepicker-time-divider{color:#363636!important}.datetimepicker .timepicker.is-primary .timepicker-input,.datetimepicker .timepicker.is-primary .timepicker-input-number,.datetimepicker .timepicker.is-primary .timepicker-time-divider{color:#00d1b2!important}.datetimepicker .timepicker.is-link .timepicker-input,.datetimepicker .timepicker.is-link .timepicker-input-number,.datetimepicker .timepicker.is-link .timepicker-time-divider{color:#3273dc!important}.datetimepicker .timepicker.is-info .timepicker-input,.datetimepicker .timepicker.is-info .timepicker-input-number,.datetimepicker .timepicker.is-info .timepicker-time-divider{color:#209cee!important}.datetimepicker .timepicker.is-success .timepicker-input,.datetimepicker .timepicker.is-success .timepicker-input-number,.datetimepicker .timepicker.is-success .timepicker-time-divider{color:#23d160!important}.datetimepicker .timepicker.is-warning .timepicker-input,.datetimepicker .timepicker.is-warning .timepicker-input-number,.datetimepicker .timepicker.is-warning .timepicker-time-divider{color:#ffdd57!important}.datetimepicker .timepicker.is-danger .timepicker-input,.datetimepicker .timepicker.is-danger .timepicker-input-number,.datetimepicker .timepicker.is-danger .timepicker-time-divider{color:#ff3860!important}.datetimepicker .timepicker.is-black-bis .timepicker-input,.datetimepicker .timepicker.is-black-bis .timepicker-input-number,.datetimepicker .timepicker.is-black-bis .timepicker-time-divider{color:#121212!important}.datetimepicker .timepicker.is-black-ter .timepicker-input,.datetimepicker .timepicker.is-black-ter .timepicker-input-number,.datetimepicker .timepicker.is-black-ter .timepicker-time-divider{color:#242424!important}.datetimepicker .timepicker.is-grey-darker .timepicker-input,.datetimepicker .timepicker.is-grey-darker .timepicker-input-number,.datetimepicker .timepicker.is-grey-darker .timepicker-time-divider{color:#363636!important}.datetimepicker .timepicker.is-grey-dark .timepicker-input,.datetimepicker .timepicker.is-grey-dark .timepicker-input-number,.datetimepicker .timepicker.is-grey-dark .timepicker-time-divider{color:#4a4a4a!important}.datetimepicker .timepicker.is-grey .timepicker-input,.datetimepicker .timepicker.is-grey .timepicker-input-number,.datetimepicker .timepicker.is-grey .timepicker-time-divider{color:#7a7a7a!important}.datetimepicker .timepicker.is-grey-light .timepicker-input,.datetimepicker .timepicker.is-grey-light .timepicker-input-number,.datetimepicker .timepicker.is-grey-light .timepicker-time-divider{color:#b5b5b5!important}.datetimepicker .timepicker.is-grey-lighter .timepicker-input,.datetimepicker .timepicker.is-grey-lighter .timepicker-input-number,.datetimepicker .timepicker.is-grey-lighter .timepicker-time-divider{color:#dbdbdb!important}.datetimepicker .timepicker.is-white-ter .timepicker-input,.datetimepicker .timepicker.is-white-ter .timepicker-input-number,.datetimepicker .timepicker.is-white-ter .timepicker-time-divider{color:#f5f5f5!important}.datetimepicker .timepicker.is-white-bis .timepicker-input,.datetimepicker .timepicker.is-white-bis .timepicker-input-number,.datetimepicker .timepicker.is-white-bis .timepicker-time-divider{color:#fafafa!important}.datetimepicker.is-white .datetimepicker-header .datetimepicker-selection-day{color:#fff}.datetimepicker.is-white .datepicker-nav{background:#fff;color:#0a0a0a}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#fff;border-color:#fff}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#fff;color:#fff}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#fff}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#fff}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#fff}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#fff;color:#0a0a0a}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#0a0a0a!important;color:#0a0a0a!important}.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-white .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#0a0a0a;border-color:#fff;color:#fff}.datetimepicker.is-black .datetimepicker-header .datetimepicker-selection-day{color:#0a0a0a}.datetimepicker.is-black .datepicker-nav{background:#0a0a0a;color:#fff}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#0a0a0a;border-color:#0a0a0a}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#0a0a0a;color:#0a0a0a}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#0a0a0a}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#0a0a0a}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#0a0a0a}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#0a0a0a;color:#fff}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-black .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#0a0a0a;color:#0a0a0a}.datetimepicker.is-light .datetimepicker-header .datetimepicker-selection-day{color:#f5f5f5}.datetimepicker.is-light .datepicker-nav{background:#f5f5f5;color:#363636}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#f5f5f5;border-color:#f5f5f5}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#f5f5f5;color:#f5f5f5}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#f5f5f5}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#f5f5f5}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#f5f5f5}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#f5f5f5;color:#363636}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#363636!important;color:#363636!important}.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#363636;border-color:#f5f5f5;color:#f5f5f5}.datetimepicker.is-dark .datetimepicker-header .datetimepicker-selection-day{color:#363636}.datetimepicker.is-dark .datepicker-nav{background:#363636;color:#f5f5f5}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#363636;border-color:#363636}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#363636;color:#363636}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#363636}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#363636}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#363636}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#363636;color:#f5f5f5}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#f5f5f5!important;color:#f5f5f5!important}.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#f5f5f5;border-color:#363636;color:#363636}.datetimepicker.is-primary .datetimepicker-header .datetimepicker-selection-day{color:#00d1b2}.datetimepicker.is-primary .datepicker-nav{background:#00d1b2;color:#fff}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#00d1b2;border-color:#00d1b2}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#00d1b2;color:#00d1b2}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#00d1b2}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#00d1b2}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#00d1b2}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#00d1b2;color:#fff}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-primary .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#00d1b2;color:#00d1b2}.datetimepicker.is-link .datetimepicker-header .datetimepicker-selection-day{color:#3273dc}.datetimepicker.is-link .datepicker-nav{background:#3273dc;color:#fff}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#3273dc;border-color:#3273dc}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#3273dc;color:#3273dc}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#3273dc}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#3273dc}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#3273dc}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#3273dc;color:#fff}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-link .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#3273dc;color:#3273dc}.datetimepicker.is-info .datetimepicker-header .datetimepicker-selection-day{color:#209cee}.datetimepicker.is-info .datepicker-nav{background:#209cee;color:#fff}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#209cee;border-color:#209cee}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#209cee;color:#209cee}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#209cee}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#209cee}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#209cee}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#209cee;color:#fff}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-info .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#209cee;color:#209cee}.datetimepicker.is-success .datetimepicker-header .datetimepicker-selection-day{color:#23d160}.datetimepicker.is-success .datepicker-nav{background:#23d160;color:#fff}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#23d160;border-color:#23d160}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#23d160;color:#23d160}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#23d160}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#23d160}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#23d160}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#23d160;color:#fff}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-success .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#23d160;color:#23d160}.datetimepicker.is-warning .datetimepicker-header .datetimepicker-selection-day{color:#ffdd57}.datetimepicker.is-warning .datepicker-nav{background:#ffdd57;color:rgba(0,0,0,.7)}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#ffdd57;border-color:#ffdd57}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#ffdd57;color:#ffdd57}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#ffdd57}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#ffdd57}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#ffdd57}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#ffdd57;color:rgba(0,0,0,.7)}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:rgba(0,0,0,.7)!important;color:rgba(0,0,0,.7)!important}.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-warning .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:rgba(0,0,0,.7);border-color:#ffdd57;color:#ffdd57}.datetimepicker.is-danger .datetimepicker-header .datetimepicker-selection-day{color:#ff3860}.datetimepicker.is-danger .datepicker-nav{background:#ff3860;color:#fff}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#ff3860;border-color:#ff3860}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#ff3860;color:#ff3860}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#ff3860}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#ff3860}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#ff3860}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#ff3860;color:#fff}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-danger .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#ff3860;color:#ff3860}.datetimepicker.is-black-bis .datetimepicker-header .datetimepicker-selection-day{color:#121212}.datetimepicker.is-black-bis .datepicker-nav{background:#121212;color:#fff}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#121212;border-color:#121212}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#121212;color:#121212}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#121212}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#121212}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#121212}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#121212;color:#fff}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-black-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#121212;color:#121212}.datetimepicker.is-black-ter .datetimepicker-header .datetimepicker-selection-day{color:#242424}.datetimepicker.is-black-ter .datepicker-nav{background:#242424;color:#fff}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#242424;border-color:#242424}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#242424;color:#242424}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#242424}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#242424}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#242424}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#242424;color:#fff}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-black-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#242424;color:#242424}.datetimepicker.is-grey-darker .datetimepicker-header .datetimepicker-selection-day{color:#363636}.datetimepicker.is-grey-darker .datepicker-nav{background:#363636;color:#fff}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#363636;border-color:#363636}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#363636;color:#363636}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#363636}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#363636}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#363636}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#363636;color:#fff}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-grey-darker .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#363636;color:#363636}.datetimepicker.is-grey-dark .datetimepicker-header .datetimepicker-selection-day{color:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-nav{background:#4a4a4a;color:#fff}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#4a4a4a;border-color:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#4a4a4a;color:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#4a4a4a}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#4a4a4a;color:#fff}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-grey-dark .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#4a4a4a;color:#4a4a4a}.datetimepicker.is-grey .datetimepicker-header .datetimepicker-selection-day{color:#7a7a7a}.datetimepicker.is-grey .datepicker-nav{background:#7a7a7a;color:#fff}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#7a7a7a;border-color:#7a7a7a}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#7a7a7a;color:#7a7a7a}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#7a7a7a}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#7a7a7a}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#7a7a7a}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#7a7a7a;color:#fff}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-grey .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#7a7a7a;color:#7a7a7a}.datetimepicker.is-grey-light .datetimepicker-header .datetimepicker-selection-day{color:#b5b5b5}.datetimepicker.is-grey-light .datepicker-nav{background:#b5b5b5;color:#fff}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#b5b5b5;border-color:#b5b5b5}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#b5b5b5;color:#b5b5b5}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#b5b5b5}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#b5b5b5}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#b5b5b5}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#b5b5b5;color:#fff}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:#fff!important;color:#fff!important}.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-grey-light .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:#fff;border-color:#b5b5b5;color:#b5b5b5}.datetimepicker.is-grey-lighter .datetimepicker-header .datetimepicker-selection-day{color:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-nav{background:#dbdbdb;color:rgba(0,0,0,.7)}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#dbdbdb;border-color:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#dbdbdb;color:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#dbdbdb}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#dbdbdb;color:rgba(0,0,0,.7)}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:rgba(0,0,0,.7)!important;color:rgba(0,0,0,.7)!important}.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-grey-lighter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:rgba(0,0,0,.7);border-color:#dbdbdb;color:#dbdbdb}.datetimepicker.is-white-ter .datetimepicker-header .datetimepicker-selection-day{color:#f5f5f5}.datetimepicker.is-white-ter .datepicker-nav{background:#f5f5f5;color:rgba(0,0,0,.7)}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#f5f5f5;border-color:#f5f5f5}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#f5f5f5;color:#f5f5f5}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#f5f5f5}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#f5f5f5}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#f5f5f5}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#f5f5f5;color:rgba(0,0,0,.7)}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:rgba(0,0,0,.7)!important;color:rgba(0,0,0,.7)!important}.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-white-ter .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:rgba(0,0,0,.7);border-color:#f5f5f5;color:#f5f5f5}.datetimepicker.is-white-bis .datetimepicker-header .datetimepicker-selection-day{color:#fafafa}.datetimepicker.is-white-bis .datepicker-nav{background:#fafafa;color:rgba(0,0,0,.7)}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-active{background:#fafafa;border-color:#fafafa}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item.is-today{border-color:#fafafa;color:#fafafa}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date .date-item:hover{border-color:#fafafa}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range{background:#fafafa}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range::before,.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range:before{background:#fafafa}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item{background-color:#fafafa;color:rgba(0,0,0,.7)}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range .date-item.is-today{border-color:rgba(0,0,0,.7)!important;color:rgba(0,0,0,.7)!important}.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-end .date-item,.datetimepicker.is-white-bis .datepicker-body .datepicker-dates .datepicker-days .datepicker-date.datepicker-range.datepicker-range-start .date-item{background:rgba(0,0,0,.7);border-color:#fafafa;color:#fafafa}.datetimepicker-dummy{position:relative;display:flex;width:100%;height:2.5rem}.datetimepicker-dummy::before,.datetimepicker-dummy:before{content:'';-webkit-mask:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNjAgNjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGZpbGw9ImN1cnJlbnRjb2xvciIgZD0iTTU3LDRoLTdWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xaC03Yy0wLjU1MywwLTEsMC40NDctMSwxdjNIMTlWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xaC03Yy0wLjU1MywwLTEsMC40NDctMSwxdjNIM0MyLjQ0Nyw0LDIsNC40NDcsMiw1djExdjQzYzAsMC41NTMsMC40NDcsMSwxLDFoNTRjMC41NTMsMCwxLTAuNDQ3LDEtMVYxNlY1QzU4LDQuNDQ3LDU3LjU1Myw0LDU3LDR6IE00MywyaDV2M3YzaC01VjVWMnogTTEyLDJoNXYzdjNoLTVWNVYyeiBNNCw2aDZ2M2MwLDAuNTUzLDAuNDQ3LDEsMSwxaDdjMC41NTMsMCwxLTAuNDQ3LDEtMVY2aDIydjNjMCwwLjU1MywwLjQ0NywxLDEsMWg3YzAuNTUzLDAsMS0wLjQ0NywxLTFWNmg2djlINFY2ek00LDU4VjE3aDUydjQxSDR6Ii8+PHBhdGggZmlsbD0iY3VycmVudGNvbG9yIiBkPSJNMzgsMjNoLTdoLTJoLTdoLTJoLTl2OXYydjd2MnY5aDloMmg3aDJoN2gyaDl2LTl2LTJ2LTd2LTJ2LTloLTlIMzh6TTMxLDI1aDd2N2gtN1YyNXpNMzgsNDFoLTd2LTdoN1Y0MXpNMjIsMzRoN3Y3aC03VjM0ek0yMiwyNWg3djdoLTdWMjV6TTEzLDI1aDd2N2gtN1YyNXpNMTMsMzRoN3Y3aC03VjM0ek0yMCw1MGgtN3YtN2g3VjUwek0yOSw1MGgtN3YtN2g3VjUweiBNMzgsNTBoLTd2LTdoN1Y1MHogTTQ3LDUwaC03di03aDdWNTB6IE00Nyw0MWgtN3YtN2g3VjQxek00NywyNXY3aC03di03SDQ3eiIvPjwvZz48L3N2Zz4=);mask:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgNjAgNjAiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIGZpbGw9ImN1cnJlbnRjb2xvciIgZD0iTTU3LDRoLTdWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xaC03Yy0wLjU1MywwLTEsMC40NDctMSwxdjNIMTlWMWMwLTAuNTUzLTAuNDQ3LTEtMS0xaC03Yy0wLjU1MywwLTEsMC40NDctMSwxdjNIM0MyLjQ0Nyw0LDIsNC40NDcsMiw1djExdjQzYzAsMC41NTMsMC40NDcsMSwxLDFoNTRjMC41NTMsMCwxLTAuNDQ3LDEtMVYxNlY1QzU4LDQuNDQ3LDU3LjU1Myw0LDU3LDR6IE00MywyaDV2M3YzaC01VjVWMnogTTEyLDJoNXYzdjNoLTVWNVYyeiBNNCw2aDZ2M2MwLDAuNTUzLDAuNDQ3LDEsMSwxaDdjMC41NTMsMCwxLTAuNDQ3LDEtMVY2aDIydjNjMCwwLjU1MywwLjQ0NywxLDEsMWg3YzAuNTUzLDAsMS0wLjQ0NywxLTFWNmg2djlINFY2ek00LDU4VjE3aDUydjQxSDR6Ii8+PHBhdGggZmlsbD0iY3VycmVudGNvbG9yIiBkPSJNMzgsMjNoLTdoLTJoLTdoLTJoLTl2OXYydjd2MnY5aDloMmg3aDJoN2gyaDl2LTl2LTJ2LTd2LTJ2LTloLTlIMzh6TTMxLDI1aDd2N2gtN1YyNXpNMzgsNDFoLTd2LTdoN1Y0MXpNMjIsMzRoN3Y3aC03VjM0ek0yMiwyNWg3djdoLTdWMjV6TTEzLDI1aDd2N2gtN1YyNXpNMTMsMzRoN3Y3aC03VjM0ek0yMCw1MGgtN3YtN2g3VjUwek0yOSw1MGgtN3YtN2g3VjUweiBNMzgsNTBoLTd2LTdoN1Y1MHogTTQ3LDUwaC03di03aDdWNTB6IE00Nyw0MWgtN3YtN2g3VjQxek00NywyNXY3aC03di03SDQ3eiIvPjwvZz48L3N2Zz4=);position:absolute;top:.65rem;left:.75rem;width:1.25rem;height:1.25rem;background-color:#00d1b2}.datetimepicker-dummy .datetimepicker-clear-button{background:0 0;border:0;color:#00d1b2;cursor:pointer;font-weight:400;outline:0;-webkit-transform:rotate(45deg);transform:rotate(45deg);font-size:1.5rem;height:1.75rem;margin:.4rem .2rem 0 0;padding:0;position:absolute;right:0;top:0;width:1.75rem}.datetimepicker-dummy .datetimepicker-dummy-wrapper{border:1px solid #b5b5b5;cursor:pointer;display:flex;flex:1 100%;flex-wrap:nowrap;height:100%;max-width:100%}.datetimepicker-dummy .datetimepicker-dummy-wrapper .datetimepicker-dummy-input{color:#4a4a4a;font-size:1rem;text-align:left;text-indent:1rem;flex:1;height:100%;max-width:50%}.datetimepicker-dummy .datetimepicker-dummy-wrapper .datetimepicker-dummy-input:first-child{text-indent:2.5rem}.datetimepicker-dummy .datetimepicker-dummy-wrapper .datetimepicker-dummy-input.is-datetimepicker-range{background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgOCAxOCI+CiAgICA8cGF0aCBmaWxsPSIjOTU5OUFBIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGQ9Ik0uMTE5LjcxOGw3LjE1OCA3LjQwNy0uMDMzLS41NTEtNi43MzcgOC44ODlhLjQyNS40MjUgMCAwIDAgLjA4LjU5My40Mi40MiAwIDAgMCAuNTktLjA4bDYuNzM3LTguODg5YS40MjUuNDI1IDAgMCAwLS4wMzMtLjU1MUwuNzIzLjEyOEEuNDIuNDIgMCAwIDAgLjEyOC4xMmEuNDI1LjQyNSAwIDAgMC0uMDA5LjU5OHoiLz4KPC9zdmc+Cg==) no-repeat 100%/8px}.datetimepicker-dummy .datetimepicker-dummy-wrapper input{background:0 0;outline:0;word-spacing:.5rem;border:0}.datetimepicker-dummy.is-white::before,.datetimepicker-dummy.is-white:before{background-color:#fff}.datetimepicker-dummy.is-white .datetimepicker-clear-button{color:#fff}.datetimepicker-dummy.is-black::before,.datetimepicker-dummy.is-black:before{background-color:#0a0a0a}.datetimepicker-dummy.is-black .datetimepicker-clear-button{color:#0a0a0a}.datetimepicker-dummy.is-light::before,.datetimepicker-dummy.is-light:before{background-color:#f5f5f5}.datetimepicker-dummy.is-light .datetimepicker-clear-button{color:#f5f5f5}.datetimepicker-dummy.is-dark::before,.datetimepicker-dummy.is-dark:before{background-color:#363636}.datetimepicker-dummy.is-dark .datetimepicker-clear-button{color:#363636}.datetimepicker-dummy.is-primary::before,.datetimepicker-dummy.is-primary:before{background-color:#00d1b2}.datetimepicker-dummy.is-primary .datetimepicker-clear-button{color:#00d1b2}.datetimepicker-dummy.is-link::before,.datetimepicker-dummy.is-link:before{background-color:#3273dc}.datetimepicker-dummy.is-link .datetimepicker-clear-button{color:#3273dc}.datetimepicker-dummy.is-info::before,.datetimepicker-dummy.is-info:before{background-color:#209cee}.datetimepicker-dummy.is-info .datetimepicker-clear-button{color:#209cee}.datetimepicker-dummy.is-success::before,.datetimepicker-dummy.is-success:before{background-color:#23d160}.datetimepicker-dummy.is-success .datetimepicker-clear-button{color:#23d160}.datetimepicker-dummy.is-warning::before,.datetimepicker-dummy.is-warning:before{background-color:#ffdd57}.datetimepicker-dummy.is-warning .datetimepicker-clear-button{color:#ffdd57}.datetimepicker-dummy.is-danger::before,.datetimepicker-dummy.is-danger:before{background-color:#ff3860}.datetimepicker-dummy.is-danger .datetimepicker-clear-button{color:#ff3860}.datetimepicker-dummy.is-black-bis::before,.datetimepicker-dummy.is-black-bis:before{background-color:#121212}.datetimepicker-dummy.is-black-bis .datetimepicker-clear-button{color:#121212}.datetimepicker-dummy.is-black-ter::before,.datetimepicker-dummy.is-black-ter:before{background-color:#242424}.datetimepicker-dummy.is-black-ter .datetimepicker-clear-button{color:#242424}.datetimepicker-dummy.is-grey-darker::before,.datetimepicker-dummy.is-grey-darker:before{background-color:#363636}.datetimepicker-dummy.is-grey-darker .datetimepicker-clear-button{color:#363636}.datetimepicker-dummy.is-grey-dark::before,.datetimepicker-dummy.is-grey-dark:before{background-color:#4a4a4a}.datetimepicker-dummy.is-grey-dark .datetimepicker-clear-button{color:#4a4a4a}.datetimepicker-dummy.is-grey::before,.datetimepicker-dummy.is-grey:before{background-color:#7a7a7a}.datetimepicker-dummy.is-grey .datetimepicker-clear-button{color:#7a7a7a}.datetimepicker-dummy.is-grey-light::before,.datetimepicker-dummy.is-grey-light:before{background-color:#b5b5b5}.datetimepicker-dummy.is-grey-light .datetimepicker-clear-button{color:#b5b5b5}.datetimepicker-dummy.is-grey-lighter::before,.datetimepicker-dummy.is-grey-lighter:before{background-color:#dbdbdb}.datetimepicker-dummy.is-grey-lighter .datetimepicker-clear-button{color:#dbdbdb}.datetimepicker-dummy.is-white-ter::before,.datetimepicker-dummy.is-white-ter:before{background-color:#f5f5f5}.datetimepicker-dummy.is-white-ter .datetimepicker-clear-button{color:#f5f5f5}.datetimepicker-dummy.is-white-bis::before,.datetimepicker-dummy.is-white-bis:before{background-color:#fafafa}.datetimepicker-dummy.is-white-bis .datetimepicker-clear-button{color:#fafafa}.modal .datetimepicker{display:block;max-height:95vh;width:22rem;max-width:95vw;overflow-y:auto} -------------------------------------------------------------------------------- /static/script.js: -------------------------------------------------------------------------------- 1 | 2 | // List Alerts - Toggle Expand Detailed Information 3 | document.addEventListener('DOMContentLoaded', function() { 4 | let cardContents = document.getElementsByClassName('card-content'); 5 | let cardFooters = document.getElementsByClassName('card-footer'); 6 | let cardToggles = document.getElementsByClassName('card-toggle'); 7 | let expandAlert = document.getElementById('expand-alerts'); 8 | let collapseAlerts = document.getElementById('collapse-alerts'); 9 | 10 | // Handle clicking dropdown for single alert 11 | for (let i = 0; i < cardToggles.length; i++) { 12 | cardToggles[i].addEventListener('click', e => { 13 | console.log(e.currentTarget.parentElement.parentElement); 14 | e.currentTarget.parentElement.parentElement.childNodes[7].classList.toggle('is-hidden'); 15 | e.currentTarget.parentElement.parentElement.childNodes[11].classList.toggle('is-hidden'); 16 | }); 17 | } 18 | 19 | // Handle expand all click 20 | expandAlert.addEventListener('click', e => { 21 | for (let i = 0; i < cardContents.length; i++) { 22 | if (cardContents[i].classList.contains('is-hidden')) { 23 | cardContents[i].classList.remove('is-hidden'); 24 | } 25 | } 26 | for (let i = 0; i < cardFooters.length; i++) { 27 | if (!cardFooters[i].classList.contains('is-hidden')) { 28 | cardFooters[i].classList.add('is-hidden'); 29 | } 30 | } 31 | }); 32 | 33 | // Handle collapse all click 34 | collapseAlerts.addEventListener('click', e => { 35 | for (let i = 0; i < cardContents.length; i++) { 36 | if (!cardContents[i].classList.contains('is-hidden')) { 37 | cardContents[i].classList.add('is-hidden'); 38 | } 39 | } 40 | for (let i = 0; i < cardFooters.length; i++) { 41 | if (cardFooters[i].classList.contains('is-hidden')) { 42 | cardFooters[i].classList.remove('is-hidden'); 43 | } 44 | } 45 | }); 46 | 47 | }); 48 | 49 | // Bulma Calendar for Past Search 50 | document.addEventListener('DOMContentLoaded', function() { 51 | bulmaCalendar.attach('[type="datetime"]'); 52 | bulmaClearBtn = document.getElementsByClassName("datetimepicker-clear-button"); 53 | bulmaClearBtn[0].setAttribute('type', 'button'); 54 | }); 55 | 56 | // Top Navigation Active Tab 57 | function set_active_tab(id) { 58 | var e = document.getElementById(id); 59 | e.className += "is-active "; 60 | } 61 | 62 | // Top Navigation Active Tab 63 | document.addEventListener('DOMContentLoaded', function() { 64 | switch (location.pathname) { 65 | case "/": 66 | set_active_tab("dashboard-input"); 67 | break; 68 | case "/list_alerts": 69 | set_active_tab("alarms-input"); 70 | break; 71 | case "/list_rules": 72 | set_active_tab("rules-input"); 73 | break; 74 | case "/past_search": 75 | set_active_tab("past-search-input"); 76 | break; 77 | } 78 | }); 79 | -------------------------------------------------------------------------------- /static/style.css: -------------------------------------------------------------------------------- 1 | .textarea { 2 | margin-bottom: 20px; 3 | } 4 | 5 | pre { 6 | background: transparent !important; 7 | } 8 | 9 | .notification { 10 | margin-bottom: 20px; 11 | } 12 | 13 | .card { 14 | margin-top: 20px 15 | } 16 | 17 | .card-header a { 18 | display: flex; 19 | flex-direction: column; 20 | justify-content: center; 21 | } 22 | 23 | .card-header .tag-holder { 24 | display: flex; 25 | flex-direction: column; 26 | justify-content: center; 27 | } 28 | 29 | .tag-holder { 30 | display: flex; 31 | flex-direction: column; 32 | justify-content: center; 33 | } 34 | 35 | body { 36 | font-family: "Jost",BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif !important; 37 | } 38 | 39 | .card-footer-content { 40 | padding: 0.75rem; 41 | } 42 | 43 | button.is-primary { 44 | background-color:rgb(50, 115, 220) !important; 45 | } 46 | 47 | .datetimepicker-dummy.is-primary::before, .datetimepicker-dummy.is-primary::before { 48 | background-color: rgb(50, 115, 220) !important; 49 | } 50 | 51 | .datetimepicker-dummy.is-primary .datetimepicker-clear-button { 52 | color: rgb(50, 115, 220) !important; 53 | } -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /static/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /static/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/endgameinc/varna/6534df3c888fd90dcb54d81ae6e30bb8b94efc06/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /templates/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 |28 | {% if app_state.username %} 29 | {{ app_state.username }} 30 | | 31 | {% endif %} 32 | Logout 33 |
34 |53 | Alert ID: {{ alert.id }} 54 |
55 | {% if alert.acked %} 56 |{{ alert.details }}67 |
{{ rule.title }}
13 |Author: {{ rule.author }} • Updated: {{ rule.updated }}
14 |Search Results - Started from {{ dt }} - {{ minutes_back }} minutes back.
10 |33 | Alert ID: {{ alert.id }} 34 |
35 | 36 |{{ alert.details }}42 |
Minutes Back: {{ settings.minutes_back }}
6 |Slack URL: {{ settings.slack_url }}
7 |Regions for {{ account }}
10 | {% for region in settings.accounts[account] %} 11 |
{{ region }}
12 | {% endfor %} 13 | {% endfor %} 14 |13 | Alert ID: {{ alert[0].id }} 14 |
15 | {% if alert[0].acked %} 16 |Acknowledged
18 |Unaccounted 22 |
{{ alert[0].details }}56 | 57 |