From c419fbe92817f3e6d42cfe40842a43da6d6b5c86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bence=20H=C3=A9zs=C5=91?= Date: Fri, 8 May 2026 12:58:27 +0200 Subject: [PATCH 1/2] Refactor HTML report template --- assets/css/style.css | 1735 ++++++++++++++------------- assets/img/csp/alibaba.png | Bin 15493 -> 0 bytes assets/img/csp/alibaba.svg | 12 - assets/img/csp/aws.png | Bin 20787 -> 0 bytes assets/img/csp/aws.svg | 15 - assets/img/csp/azure.png | Bin 12022 -> 0 bytes assets/img/csp/azure.svg | 23 - assets/img/csp/gcp.svg | 13 - assets/img/csp/google_cloud.png | Bin 16713 -> 0 bytes assets/template/index.html | 1975 +++++++++++++++++++------------ core/utils.py | 2 +- 11 files changed, 2116 insertions(+), 1659 deletions(-) delete mode 100644 assets/img/csp/alibaba.png delete mode 100644 assets/img/csp/alibaba.svg delete mode 100644 assets/img/csp/aws.png delete mode 100644 assets/img/csp/aws.svg delete mode 100644 assets/img/csp/azure.png delete mode 100644 assets/img/csp/azure.svg delete mode 100644 assets/img/csp/gcp.svg delete mode 100644 assets/img/csp/google_cloud.png diff --git a/assets/css/style.css b/assets/css/style.css index d2033b5..f7b590d 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -1,935 +1,1040 @@ -/* ***** Common Css **** */ +/* ======================================================== + Base: Variables + ======================================================== */ :root { - scroll-behavior: initial; + /* Blue */ + --blue-100: #dbe6fe; + --blue-800: #1e4baf; + + /* Green */ + --green-100: #dcfce7; + --green-600: #16a34a; + --green-700: #047854; + + /* Neutral */ + --neutral-50: #f9fbfb; + --neutral-100: #f3f6f6; + --neutral-200: #e5ebeb; + --neutral-300: #d1dbdb; + --neutral-400: #9cafae; + --neutral-600: #4b6361; + --neutral-800: #1f3735; + --neutral-900: #112726; + + /* Primary */ + --primary-600: #0d948b; + --primary-800: #115e59; + --primary-950: #042f2c; + + /* Red */ + --red-50: #fef2f2; + --red-100: #fee2e2; + --red-700: #b91c1c; + --red-800: #991b1b; + + /* Yellow */ + --yellow-100: #fee4c7; + --yellow-850: #92400e; + /* Color Palette */ + --white: #fff; + /* Transition Defaults */ + --transition-speed: 0.3s; + + /* Font Sizes */ + --text-heading-2: 24px; + --text-heading-3: 20px; + --text-body: 16px; + --text-label: 14px; + --text-label-small: 12px; + /* Radius */ + --rounded-md: 12px; + --rounded-sm: 8px; + --rounded-xs: 4px; + /* Sidebar */ } +/* ======================================================== + Base: Reset + ======================================================== */ * { - margin: 0; - padding: 0; - text-decoration: none; - list-style: none; + margin: 0; + padding: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +body { + font-family: + -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif; + line-height: 1.375; + font-weight: 400; + color: var(--neutral-900); + background: var(--neutral-100); + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-font-smoothing: antialiased; } -a:hover, -a:focus, -a:active { - text-decoration: none; + +img { + max-width: 100%; + height: auto; } -ol, + ul { - margin: 0; - padding: 0; + list-style: none; + padding: 0; + margin: 0; } -img { - display: block; + +.divider-border { + height: 1px; + background: var(--neutral-200); +} + +.container { } + +/* ======================================================== + Base: Typography + ======================================================== */ a { - transition: 0.4s linear; - -webkit-transition: 0.4s linear; - text-decoration: none; + text-decoration: none; + -webkit-transition: all var(--transition-speed) ease; + -o-transition: all var(--transition-speed) ease; + transition: all var(--transition-speed) ease; } -body { - font-size: 14px; - font-weight: 400; - color: #212529; - text-decoration: none; - background: #f7f7f7; +a:hover { + text-decoration: none !important; } -.main-wrpper { - height: 100%; - width: 100%; - overflow: hidden; - padding: 40px 60px 60px 60px; - transition: all 0.3s linear; - -webkit-transition: all 0.3s linear; -} -/* ***** End Common Css **** */ - -/* **** toggler **** */ -.navbar-toggler {background-color: transparent;border-radius: 0;outline: none;box-shadow: none;border: none;padding: 0;margin-right: 16px;} -.navbar-toggler:focus {box-shadow: none;outline: none; } -.navbar-toggler .navbar-toggler-icon {background-image: unset;} -.navbar-toggler:active, -.navbar-toggler:focus { outline: none; } -.navbar-toggler-icon {width: 17px;height: 12px;background-image: none;position: relative;border-bottom: 2px solid #212529;transition: all 300ms linear;} -.navbar-toggler-icon:after, -.navbar-toggler-icon:before {width: 17px;position: absolute;height: 2px;background-color: #212529;top: 0;left: 0;content: "";z-index: 2;transition: all 300ms linear;} -.navbar-toggler-icon:after {top: 5px;} -/*header.show .navbar-toggler .navbar-toggler-icon:after {transform: rotate(45deg);} -header.show .navbar-toggler .navbar-toggler-icon:before {transform: translateY(5px) rotate(-45deg);} -header.show .navbar-toggler .navbar-toggler-icon {border-color: transparent;}*/ -/* **** End toggler **** */ - - - -.top-head{ - border-bottom: 1px solid #E9ECEF; - background: #FFF; - padding: 24px; - display: flex; - align-items: center; - justify-content: space-between; + +h2, +h3 { + color: var(--neutral-900); + font-weight: 500; } -.top-head h4{ - display: flex; - align-items: center; - margin: 0; - color: #212529; - font-size: 24px; - font-weight: 500; - line-height: 32px; - margin-left: 50px; + + +h2, +h3, +li, +p { + margin: 0; } -.top-head h4 img{ - max-width: 100%; - margin-right: 16px; + + +h2 { + font-size: var(--text-heading-2); + line-height: 1.33; } -.top-head ul.main-row{ - display: flex; - align-items: center; - justify-content: flex-end; + + +h3 { + font-size: var(--text-heading-3); + line-height: 1.4; } -.top-head ul.main-row li.main-col{ - margin-right: 16px; + + +body, +p { + font-size: var(--text-body); + line-height: 1.375; } -.top-head ul.main-row li.main-col:last-child{ - margin: 0; + +.label, +label { + font-size: var(--text-label); + line-height: 1.43; } -.top-head ul.main-row li.main-col .btn1{ - color:#FFF; - font-size: 16px; - font-weight: 500; - line-height: 18px; - border-radius: 6px; - background: #055160; - padding: 11px 16px; - display: table; - margin-right: 50px; -} -.top-head ul.main-row li.main-col .btn1:hover{ - background: #000; - color: #fff; -} - -/* **** Content **** */ -.chart-info-box{ - height: 350px; - padding: 24px; - border-radius: 16px; - background:#FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); - margin: 0 0 30px; -} -.chart-info-box ul li{ - display: flex; - align-items: center; - margin: 0 0 30px; + +.small, +label.small { + font-size: var(--text-label-small); + line-height: 1.33; } -.chart-info-box ul li:last-child{ - margin: 0; + +.bg-white { + background: var(--white); } -.chart-info-box ul li span{ - border-radius: 8px; - background:rgba(5, 81, 96, 0.10); - height: 32px; - width: 32px; - display: flex; - align-items: center; - justify-content: center; - margin-right: 16px; -} -.chart-info-box ul li span img{ - max-width: 60%; -} -.chart-info-box ul li h4{ - color: #49535C; - font-size: 14px; - font-style: normal; - font-weight: 400; - line-height: 20px; - margin: 0 0 4px; -} -.chart-info-box ul li h3{ - color: #212529; - font-size: 16px; - font-weight: 500; - line-height: 24px; - margin: 0; - display: flex; - align-items: center; + +a*:active, +a*:focus { + outline: 0; + border: 0; } -.chart-info-box ul li h3 img{ - margin-left: 8px; + +main { + padding-bottom: 32px; + padding-top: 88px; } -.chart-box-small { - height: 350px; /* Example fixed height; adjust as needed */ - padding: 24px; - border-radius: 16px; - background: #FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); - margin: 0 0 30px; - display: flex; - flex-direction: column; - justify-content: space-between; /* This helps distribute the space inside the container */ -} -.chart-box-small .box-title h4{ - color: #49535C; - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin: 0; -} -.chart-box-small .box-title h3{ - color: #212529; - font-size: 20px; - font-weight: 500; - line-height: 28px; - margin: 0; + +/* Scrollbars */ +::-webkit-scrollbar { + width: 5px; + border-radius: var(--rounded-sm); } -.chart-box-small .box-body{ - margin: 0 auto; - display: inline-block; - position: relative; - width: 100%; +::-webkit-scrollbar-track { + background: var(--neutral-100); + border-radius: var(--rounded-sm); } -.chart-box-small .box-body-empty{ - min-height: 250px; - display: flex; - flex-flow: column; - justify-content: center; - align-items: center; +::-webkit-scrollbar-thumb { + background: var(--primary-600); + border-radius: var(--rounded-sm); } -.chart-box-small .box-body canvas { - max-width: 300px; /* Adjust as needed to control the size */ - margin: auto; /* This centers the canvas in the .box-body */ - display: block; /* Ensures the canvas respects the max-width */ +::-webkit-scrollbar-thumb:hover { + background: var(--primary-800); + border-radius: var(--rounded-sm); } -.chart-box-small .box-body.exitchart { - display: flex; - flex-direction: column; - justify-content: flex-end; - align-items: center; - width: 100%; - height: 100%; - max-width: 300px; - max-height: 350px; - margin: auto; + +.dropdown-item span { + font-size: var(--text-label); + font-weight: 400; + color: var(--neutral-900); +} + +.dropdown-item { + padding-top: 8px; + padding-bottom: 8px; +} + +.dropdown-menu { padding: 0; - overflow: hidden; } -.chart-box-big{ - border-radius: 16px; - background: #FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); - margin: 0 0 30px; + +.dropdown-menu li a { + line-height: 1.5; } -.chart-box-big .box-title{ - border-bottom: 1px solid #E9ECEF; - padding: 16px 24px; + +/* ======================================================== + Layout: Shared Cards And Charts + ======================================================== */ + +.chart-card-head { + padding: 16px 24px; } -.chart-box-big .box-title h4{ - color: #212529; - font-size: 20px; - font-weight: 500; - line-height: 28px; - display: flex; - align-items: center; - justify-content: space-between; - margin: 0; + +.chart-card-head h3 { + margin-bottom: 5px; + color: var(--neutral-900); +} +.chart-card-head h6 { + color: var(--neutral-600); + font-size: var(--text-label); + font-weight: 400; +} +.chart-card-head h6 span { + display: inline-block; + font-weight: 500; +} + +.risk-header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: justify; + -ms-flex-pack: justify; + justify-content: space-between; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + /* padding: 16px 24px; */ } -.chart-box-big .box-title h4 span{ - display: block; - color: #4B6361; - font-size: 12px; - font-weight: 400; + +.risk-count h2 { + color: var(--neutral-600); + font-size: var(--text-label); + font-weight: 400; } -.chart-box-big .box-title h4 .info-hintbx{ - margin-left: auto; - position: relative; + +.risk-count .count { + font-size: var(--text-heading-3); + font-weight: 500; + color: var(--neutral-900); + margin: 0; +} + +.chart-container { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; } -.chart-box-big .box-title h4 .info-hintbx img{ - cursor: pointer; + +.chart-box { + height: 350px; +} + +.scoring-card { + overflow: hidden; +} + +.scoring-inner { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + min-height: 300px; +} + +.chart-wrapper { + max-width: 350px; + overflow: hidden; + position: relative; + border-radius: 12px; + mask-image: linear-gradient(to bottom, black 85%, transparent 100%); + -webkit-mask-image: linear-gradient(to bottom, black 85%, transparent 100%); +} + +.scoring { + width: 100%; + max-width: 420px; + height: 320px !important; + margin: 0 auto; +} + +.form-title { + font-size: var(--text-heading-3); + font-weight: 500; + line-height: 1.33; + color: var(--neutral-900); } -.info-hintbx{ - margin-left: auto; - position: relative; + +.shadow-s { + -webkit-box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.1); } -.info-hintbx img{ - cursor: pointer; + +.input { + border: 1px solid var(--neutral-300); } -.chart-box-big .box-body{ - margin: 0 auto; - display: inline-block; - position: relative; - width: 100%; + +/* ======================================================== + Components: Buttons + ======================================================== */ + +.dropdown-toggle::after { + float: right; + margin-top: 8px; } -.chart-box-big .box-body.exitchart { - display: flex; - flex-direction: column; - justify-content: flex-end; - align-items: center; - min-height: 400px; - margin: auto; - padding: 0; - overflow: hidden; + +/* ======================================================== + Components: Summary, Scoring, Resources, Alt Tech Cards + ======================================================== */ +::-webkit-input-placeholder { + color: var(--neutral-600); + font-size: var(--text-body); + font-style: normal; + font-weight: 400; + line-height: 38px; } -.chart-box-big .box-body-empty{ - min-height: 350px; - display: flex; - flex-flow: column; - justify-content: center; - align-items: center; + +::-moz-placeholder { + color: var(--neutral-600); + font-size: var(--text-body); + font-style: normal; + font-weight: 400; + line-height: 38px; } -.chart-box-big .box-body canvas { - max-width: 450px; /* Adjust as needed to control the size */ - margin: auto; /* This centers the canvas in the .box-body */ - display: block; /* Ensures the canvas respects the max-width */ -} -.chart-box-big .box-body .scoring canvas { - max-width: none; - margin: auto; - display: block; -} -.hint-hoverbox{ - position: absolute; - right: -15px; - max-width: 310px; - min-width: 310px; - width: 100%; - border: 1px solid rgba(75, 75, 75, 0.20); - border-radius: 8px; - background: #fff; - z-index:99; - opacity: 0; - visibility: hidden; - transition: .4s linear; - -webkit-transition: .4s linear; -} -.hint-hoverbox:after{ - position: absolute; - content: ''; - width: 16px; - height: 9px; - background-size: 100% 100%; - bottom: -8px; - right: 15px; -} -.chart-box-big .box-title h4 .info-hintbx:hover .hint-hoverbox{ - opacity: 1; - visibility: visible; -} -.info-hintbx:hover .hint-hoverbox{ - opacity: 1; - visibility: visible; -} -.hint-hoverbox h5{ - font-size: 16px; - font-weight: 500; - color: #212529; - background: #F5F5F5; - border-radius: 8px 8px 0 0; - padding: 8px 15px; - display: block; - border-bottom: 1px solid #E9ECEF; - margin: 0; -} -.hint-dt{ - padding: 15px; -} -.hint-dt p{ - font-size: 14px; - font-weight: normal; - color: #49535C; - line-height: 22px; - margin: 0 0 10px; - text-align: justify; -} -.hint-dt a{ - font-size: 14px; - font-weight: 500; - color: #055160; - display: table; - margin: 0; + +.resource-card { + border: 1px solid var(--neutral-200); +} + +.resource-card h3 { + font-weight: 500; + min-height: 44px; + font-size: var(--text-label); + font-size: 16px; + font-weight: 500; + font-stretch: normal; + line-height: 1.38; + color: var(--neutral-900); +} + +.resource-card h6 { + font-size: var(--text-label); + font-weight: 400; + margin: 0; } -.hint-dt a:hover{ - color: #111; + +.resource-card { + height: 100%; } -.chart-box-big .box-body{ - padding: 24px; +.resource-card p { + margin-top: 16px; + margin-bottom: 16px; } -.chart-box-big .box-body img{ + +.resource-card img { max-width: 100%; - margin: 0 auto; + margin: 0 0 16px; + height: 32px; } -/* **** End Content **** */ +.gapy-3 { + gap: 16px 0; +} -.titlebar{ - padding: 18px 24px; - display: flex; - align-items: center; - justify-content: space-between; - border-bottom: 1px solid #E9ECEF; +.alttech-card { + border: 1px solid var(--neutral-200); + height: 100%; } -.titlebar h2{ - color: #212529; - font-size: 20px; - font-weight: 500; - line-height: 28px; - margin: 0; + +.alttech-title { } -.titlebar .dropdown-toggle{ - color: #055160; - font-size: 16px; - font-weight: 500; - line-height: 18px; - display: table; - border-radius: 6px; - border: 1px solid #055160; - background: #FFF; - padding: 10px 16px; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; + +.alttech-title h5 { + font-size: var(--text-body); + margin: 0; + color: var(--neutral-900); } -.titlebar .dropdown-toggle:after{ - display: none; + +.alttech-title h6 { + font-size: var(--text-label-small); + font-weight: 400; } -.titlebar .dropdown-toggle i{ - margin-left: 10px; + +.green-700 { + color: var(--green-700); } -.titlebar .dropdown-menu{ - border-radius: 8px; - border: 1px solid rgba(0, 0, 0, 0.15); - background: #FFF; - padding: 4px 0; + +.alttech-text p { + /*overflow: hidden;*/ + /*display: -webkit-box;*/ + font-size: 14px; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.sync-status { + gap: 28px 0; +} + +.sync-status-text { } -.titlebar .dropdown-menu li .dropdown-item{ - padding: 10px 16px; + +.sync-status-text h5 { + margin: 0; + font-size: var(--text-body); + color: var(--neutral-900); +} + +.sync-status-text h6 { + color: var(--neutral-600); + font-size: var(--text-label); + margin-bottom: 5px; + font-weight: 400; +} + +.sync-status-icon span{ + border-radius: 8px; + background:rgba(5, 81, 96, 0.10); + height: 32px; + width: 32px; display: flex; align-items: center; - color: #212529; - font-size: 14px; - font-weight: 400; - line-height: 20px; - -webkit-transition: all 0.3s linear; - transition: all 0.3s linear; -} -.titlebar .dropdown-menu li .dropdown-item img{ - max-width: 100%; - margin-right: 8px; + justify-content: center; } -.titlebar .dropdown-menu li .dropdown-item:hover{ - background: rgba(5, 81, 96, 0.20); + +.view-more button { + background: transparent; + border: 0; } -.titlebar button:hover{ - background: rgba(5, 81, 96, 0.20); + +/* ======================================================== + Components: Risk Table + ======================================================== */ +.risk-title-cell { + position: relative; + padding-left: 40px !important; + cursor: pointer; } -/* **** evaluation **** */ -.evaluation-wrp{ - border-radius: 16px; - background: #FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); - margin: 0 0 24px; +.chevron-icon { + position: absolute; + left: 16px; + top: 50%; + -webkit-transform: translateY(-50%); + -ms-transform: translateY(-50%); + transform: translateY(-50%); + font-size: var(--text-label-small); + color: var(--neutral-600); + -webkit-transition: -webkit-transform 0.2s ease; + transition: -webkit-transform 0.2s ease; + -o-transition: transform 0.2s ease; + transition: transform 0.2s ease; + transition: + transform 0.2s ease, + -webkit-transform 0.2s ease; } -.evaluation-block{ - padding: 24px; + +.risk-row.expanded .chevron-icon { + -webkit-transform: translateY(-50%) rotate(90deg); + -ms-transform: translateY(-50%) rotate(90deg); + transform: translateY(-50%) rotate(90deg); } -.evaluation-block .thead-txt{ - padding: 12px 0; + +.expandable-content { + display: none; + background-color: #f5f5f5; } -.evaluation-block .thead-txt ul{ - display: flex; - align-items: center; + +.expandable-content.show { + display: table-row; } -.evaluation-block .thead-txt ul li{ - color: #212529; - font-size: 14px; - font-weight: 500; - line-height: 20px; -} -.evaluation-block .thead-txt ul li:first-child{ - margin-right: 43px; -} -.evaluation-block .thead-txt ul li:nth-child(3){ - margin-left: auto; - margin-right: 16px; - min-width: 135px; - text-align: center; -} -.evaluation-block .thead-txt ul li:last-child{ - min-width: 80px; - text-align: center; -} -.evaluation-block .accordion{ - padding: 0; - margin: 0; - border-radius: 0; - border: none; -} -.evaluation-block .accordion .accordion-item{ - border: none; - border-bottom: 1px solid #E9ECEF; - box-shadow: none; - outline: none; - border-radius: 0; - padding: 12px 0; -} -.evaluation-block .accordion .accordion-item:last-child{ - border: none; -} -.evaluation-block .accordion .accordion-item .accordion-button{ - padding: 0; - border: none; - box-shadow: none; - outline: none; - display: flex; - align-items: center; - background: transparent; - color: #212529; - font-size: 16px; - font-weight: 400; - line-height: 24px; + +.expandable-content td { + padding-left: 20px; } -.evaluation-block .accordion .accordion-item .accordion-button li:nth-child(4){ - min-width: 135px; - margin-left: auto; - margin-right: 16px; - text-align: center; + +.risk-table-container .table tr th { + font-weight: 500; + font-size: var(--text-label); } -.evaluation-block .accordion .accordion-item .accordion-button li:last-child{ - min-width: 80px; + +.risk-table-container .table th:first-child, +.risk-table-container .table td:first-child { + width: auto !important; } -.evaluation-block .accordion .accordion-item .accordion-button:after{ - display: none; + +.risk-table-container .table tr th:nth-child(3), +.risk-table-container .table tr th:nth-child(4) { + text-align: center; } -.evaluation-block .accordion .accordion-item .accordion-button b{ - font-weight: 500; + +.impacted-count { + text-align: center; } -.evaluation-block .accordion .accordion-item .accordion-button:focus{ - box-shadow: none; - outline: none; + +.description { + background: var(--neutral-200); + padding-top: 12px; + padding-bottom: 12px; } -.evaluation-block .accordion .accordion-item .accordion-button .arrow-box{ - margin: 0 16px; - display: flex; - align-items: center; - justify-content: center; - height: 16px; - width: 16px; + +.description-section { + margin-bottom: 10px; } -.evaluation-block .accordion .accordion-item .accordion-button.collapsed .arrow-box i:before{ - content: "\f285"; + +.risk-title { + color: var(--neutral-900); } -.evaluation-block .accordion .accordion-item .accordion-button .severity-label{ - color: #991B1B; - font-size: 14px; - font-weight: 500; - line-height: 20px; - border-radius: 12px; - background: #FEE2E2; - padding: 2px 12px; - display: table; - margin: 0 auto; -} -.evaluation-block .accordion .accordion-item .accordion-button .severity-label.label-medium{ - background: #FEF3C7; - color: #92400E; -} -.evaluation-block .accordion .accordion-item .accordion-button .severity-label.label-low{ - background: #DBEAFE; - color: #1E40AF; -} -.evaluation-block .accordion .accordion-item .accordion-body{ - border-radius: 8px; - border-bottom: 1px solid #E9ECEF; - background: rgba(5, 81, 96, 0.10); - padding: 12px 16px; - margin: 16px 0 0; -} -.evaluation-block .accordion .accordion-item .accordion-body p{ - color: #212529; - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin: 0 0 8px; -} -.evaluation-block .accordion .accordion-item .accordion-body p span{ - display: block; - margin: 0 0 4px; - color: #49535C; - font-size: 12px; - font-weight: 400; - line-height: 16px; -} -.evaluation-btn{ - padding: 16px 24px; - display: flex; - align-items: center; - justify-content: flex-end; - border-top: 1px solid #E9ECEF; + +.section-label { + font-size: var(--text-label-small); + font-weight: 400; + color: var(--neutral-600); } -.evaluation-btn a{ - color: #055160; - font-size: 14px; - font-weight: 500; - line-height: 16px; - display: table; - padding: 8px 12px; - border-radius: 4px; + +.section-content { + font-size: var(--text-label); } -.evaluation-btn a:hover{ - background: #055160; - color: #fff; + +.impacted-resources-content { + font-size: var(--text-label); } -/* **** End evaluation **** */ +.severity-badge { + color: var(--colors-red-800); + font-size: var(--text-label); + font-weight: 500; + padding: 3px 12px; + border-radius: var(--rounded-md); +} -.resource-wrp{ - border-radius: 16px; - background: #FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); - margin: 0 0 24px; +.severity-high { + background-color: var(--red-100); + color: var(--red-800); } -.resource-wrp .resource-block{ - padding: 24px; + +.severity-medium { + background: var(--yellow-100); + color: var(--yellow-850); } -.resource-wrp .resource-block .resource-box{ - border-radius: 16px; - border: 1px solid #E9ECEF; - background: #FFF; - padding: 24px; + +.severity-low { + background: var(--blue-100); + color: var(--blue-800); } -.resource-wrp .resource-block .resource-box img{ - max-width: 100%; - margin: 0 0 16px; - height: 32px; + +.btn { + border-radius: 6px; + line-height: 40px; + padding: 0 16px; + font-weight: 500; + -webkit-transition: 0.4s; + -o-transition: 0.4s; + transition: 0.4s; } -.resource-wrp .resource-block .resource-box h3{ - color: #212529; - font-size: 16px; - font-weight: 500; - line-height: 24px; - margin: 0 0 4px; + +.btn-primary { + background: var(--primary-800); + color: var(--white); } -.resource-wrp .resource-block .resource-box h5{ - color: #49535C; - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin: 0; + +.btn-outline-primary { + color: var(--primary-800); } -.resource-wrp .resource-collapse .resource-box{ - margin: 30px 0 0; + +.btn-light { + background: var(--neutral-100); + border: 1px solid var(--neutral-100); + color: var(--neutral-600); } +.btn-outline-primary, +.btn-primary { + border: 1px solid var(--primary-800); +} +.btn-sm { + font-size: var(--text-label); + font-weight: 500; + line-height: 34px; +} -.technologies-wrp{ - border-radius: 16px; - background: #FFF; - box-shadow: 0px 1px 4px 0px rgba(0, 0, 0, 0.10); +.btn-primary:hover { + background: var(--primary-950); + border-color: var(--primary-950); } -.technologies-wrp .technologies-block{ - padding: 24px 24px 0; + +.btn-primary:hover svg:not(.filter-icon) path { + fill: var(--white); } -.technologies-wrp .technologies-block .technologies-box{ - border-radius: 16px; - border: 1px solid #E9ECEF; - background: #FFF; - margin: 0 0 24px; - padding: 24px; + +.btn-outline-primary:focus svg:not path, +.btn-outline-primary:active svg:not path, +.btn-outline-primary:hover svg:not path { + fill: var(--white); } -.technologies-wrp .technologies-block .technologies-box .box-icon{ - margin: 0 0 16px; + +.btn-outline-primary:hover svg.filter-icon path { + stroke: var(--white); } -.technologies-wrp .technologies-block .technologies-box .box-icon img{ - max-width: 100%; + +.btn-outline-primary:active, +.btn-outline-primary:hover { + background: var(--primary-800) !important; + border-color: var(--primary-800) !important; + color: var(--white) !important; } -.technologies-wrp .technologies-block .technologies-box h6{ - color: #49535C; - font-size: 12px; - font-weight: 400; - line-height: 16px; - margin: 0 0 2px; +.btn-outline-primary:active svg path, +.btn-outline-primary:hover svg path { + fill: white; } -.technologies-wrp .technologies-block .technologies-box h4{ - color: #212529; - font-size: 16px; - font-weight: 500; - line-height: 24px; - margin: 0 0 16px; + +.btn-light:hover { + background: var(--neutral-200); + border-color: var(--neutral-200); } -.technologies-wrp .technologies-block .technologies-box p{ - color: #49535C; - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin: 0 0 16px; + +.dropdown-toggle::after { + border: 0; + display: none; } -.technologies-wrp .technologies-block .technologies-box ul li{ - color: #212529; - font-size: 14px; - font-weight: 400; - line-height: 20px; - margin: 0 0 8px; - display: flex; - align-items: center; + +.dropdown-toggle { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + -webkit-box-pack: center; + -ms-flex-pack: center; + justify-content: center; + gap: 8px; + padding-left: 16px; + padding-right: 16px; } -.technologies-wrp .technologies-block .technologies-box ul li:last-child{ - margin: 0; + +.btn-sm.dropdown-toggle { + padding-left: 12px; + padding-right: 12px; } -.technologies-wrp .technologies-block .technologies-box ul li i{ - max-width: 100%; - margin-right: 10px; + +.btn:focus-visible, +.btn.show:focus-visible, +.btn:first-child:active:focus-visible, +:not(.btn-check) + .btn:active:focus-visible { + -webkit-box-shadow: none !important; + box-shadow: none !important; } -.technologies-wrp .technologies-block .technologies-box ul li a{ - color: #212529; - font-size: 14px; - font-weight: 500; - line-height: 20px; - text-decoration: underline; - margin: 0; + +.btn-primary, +.btn-outline-primary { + /* --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + --bs-btn-focus-shadow-rgb: 13, 110, 253; + --bs-btn-disabled-bg: transparent; + --bs-btn-active-color: var(--neutral-white); + --bs-btn-hover-color: var(--neutral-white); + --bs-gradient: none; */ +} + +.btn-outline-primary { + --bs-btn-color: var(--primary-800); + --bs-btn-border-color: var(--primary-800); + --bs-btn-hover-color: var(--white); + --bs-btn-hover-bg: var(--primary-800); + --bs-btn-hover-border-color: var(--primary-800); + --bs-btn-active-color: var(--white); + --bs-btn-active-bg: var(--primary-800); + --bs-btn-active-border-color: var(--primary-800); + --bs-btn-disabled-color: var(--neutral-400); + --bs-btn-disabled-border-color: var(--neutral-300); + --bs-btn-focus-shadow-rgb: 17, 94, 89; +} + +.btn-outline-primary.show, +.btn-check:checked + .btn-outline-primary, +.btn-check:active + .btn-outline-primary, +.btn-outline-primary:focus, +.btn-outline-primary:focus-visible { + background: var(--primary-800) !important; + border-color: var(--primary-800) !important; + color: var(--white) !important; +} + +.btn-outline-primary.show svg.filter-icon path, +.btn-check:checked + .btn-outline-primary svg.filter-icon path, +.btn-check:active + .btn-outline-primary svg.filter-icon path, +.btn-outline-primary:focus svg.filter-icon path, +.btn-outline-primary:focus-visible svg.filter-icon path { + stroke: var(--white); +} + +.btn-primary.disabled, +.btn-primary:disabled { + border-color: var(--neutral-400); + background: var(--neutral-400); + color: var(--white); } +.btn-outline-primary.disabled, +.btn-outline-primary:disabled { + border-color: var(--neutral-300); + color: var(--neutral-400); +} -.technologies-wrp .titlebar .dropdown-menu{ - border-radius: 8px; - border: 1px solid rgba(75, 75, 75, 0.20); - background: #FFF; - width: 311px; - padding: 0; - box-shadow: none; - outline: none; - overflow: hidden; -} -.technologies-wrp .titlebar .dropdown-menu .drop-header{ - border-radius: 4px 4px 0px 0px; - border-bottom: 1px solid #E9ECEF; - background: #FFF; - padding: 8px 16px; -} -.technologies-wrp .titlebar .dropdown-menu .drop-header h3{ - color: #212529; - font-size: 16px; - font-weight: 500; - line-height: 24px; - margin: 0; +/* ======================================================== + Components: Filter Toggles + ======================================================== */ +.toggle-switch { + position: relative; + width: 44px; + height: 24px; } -.technologies-wrp .titlebar .dropdown-menu .drop-body{ - padding: 16px; + +.toggle-switch input[type="checkbox"] { + opacity: 0; + width: 0; + height: 0; } -.technologies-wrp .titlebar .dropdown-menu .drop-body .form-group{ - margin: 0 0 18px; + +.toggle-slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: var(--neutral-200); + -webkit-transition: 0.3s ease; + -o-transition: 0.3s ease; + transition: 0.3s ease; + border-radius: var(--rounded-md); } -.technologies-wrp .titlebar .dropdown-menu .drop-body .form-group .form-control{ - color: #49535C; - font-size: 14px; - font-weight: 500; - line-height: 16px; - padding: 8px 12px; - border-radius: 6px; - border: 1px solid #E9ECEF; - box-shadow: none; - outline: none; -} -.technologies-wrp .titlebar .dropdown-menu .drop-footer{ - border-radius: 0 0 4px 4px; - border-top: 1px solid #E9ECEF; - background: #FFF; - padding: 8px 16px; - display: flex; - align-items: center; - justify-content: flex-end; + +.toggle-slider:before { + position: absolute; + content: ""; + height: 20px; + width: 20px; + left: 2px; + bottom: 2px; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23E5EBEB'/%3E%3Cpath d='M6.5 6.5L13.5 13.5M13.5 6.5L6.5 13.5' stroke='%234B6361' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); +} + +.toggle-slider:before { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='10' fill='%23E5EBEB'/%3E%3Cpath d='M6.5 6.5L13.5 13.5M13.5 6.5L6.5 13.5' stroke='%234B6361' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; + background-size: 20px 20px; +} + +input:checked + .toggle-slider { + background-color: var(--primary-800); } -.technologies-wrp .titlebar .dropdown-menu .drop-footer .btn-secondary{ - color: #055160; - font-size: 14px; - font-weight: 500; - line-height: 16px; - margin: 0; - display: table; - padding: 8px 12px; - margin-right: 16px; - border-radius: 8px; + +input:checked + .toggle-slider:before { + -webkit-transform: translateX(20px); + -ms-transform: translateX(20px); + transform: translateX(20px); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none'%3E%3Ccircle cx='10' cy='10' r='10' fill='%230D948B'/%3E%3Cpath d='M5.5 10.5L8.5 13.5L14.5 7.5' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; + background-size: 20px 20px; +} + +/* ======================================================== + Components: Tables + ======================================================== */ +table:not("#assessmentsTable") { + table-layout: fixed; + width: 100%; } -.technologies-wrp .titlebar .dropdown-menu .drop-footer .btn-secondary:hover{ - background: #055160; - color: #fff; + +.table > :not(caption) > * > * { + color: var(--neutral-900); + font-size: var(--text-body); + padding-top: 16px; + padding-bottom: 16px; + border-color: var(--neutral-200); } -.technologies-wrp .titlebar .dropdown-menu .drop-footer .btn-primary{ - color: #FFF; - font-size: 14px; - font-weight: 500; - line-height: 16px; - display: table; - padding:8px 12px; - border-radius: 6px; - background:#055160; + +tr:last-child td { + border-bottom: 0; } -.technologies-wrp .titlebar .dropdown-menu .drop-footer .btn-primary:hover{ - background: #000; - color: #fff; + +.risk-table-container { + overflow-x: auto; + -webkit-overflow-scrolling: touch; } -select.form-control { - width: 100%; - display: inline-block; - margin: 0 0; - -webkit-appearance: none; - background-image: url(../images/down-arrow.svg); - background-repeat: no-repeat; - background-size: 16px; - background-position: center right 12px; -} -.technologies-wrp .titlebar .dropdown-menu li{ - margin: 0 0 16px; + +.risk-table-container table { + min-width: 420px; } -.technologies-wrp .titlebar .dropdown-menu li:last-child{ - margin: 0; + +.risk-table-container::-webkit-scrollbar { + height: 20px; +} + +.risk-table-container::-webkit-scrollbar-track { + background: var(--white); } -.form-toggle-switch{ - display: flex; - align-items: center; - justify-content: space-between; +.risk-table-container::-webkit-scrollbar-thumb { + background: var(--neutral-300); + border-radius: 20px; +} + +.risk-table-container::-webkit-scrollbar-thumb:hover { + background: var(--neutral-600); +} + +th:first-child, +td:first-child { + width: 50px !important; + font-weight: 500; +} + +td .number, +td button { + margin-left: auto; + margin-right: auto; +} + +/* ======================================================== + Layout: Main Content And Forms + ======================================================== */ + +#main-content { + height: 100%; + width: 100%; + overflow: hidden; + padding: 20px 60px 20px 60px; + transition: all 0.3s linear; + -webkit-transition: all 0.3s linear; +} + +.visit span { + font-size: 14px; + word-break: break-all; +} + +.form-control, +.form-select { + color: var(--neutral-600); + font-size: var(--text-body); + font-style: normal; + font-weight: 400; + border-radius: 16px; + border: 1px solid var(--neutral-300); + background: var(--white); + -webkit-transition: border-color 0.3s ease, box-shadow 0.3s ease; + -o-transition: border-color 0.3s ease, box-shadow 0.3s ease; + transition: border-color 0.3s ease, box-shadow 0.3s ease; + -webkit-box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); +} + +.form-control:focus, +.form-select:focus { + border-color: var(--primary-800); + box-shadow: 0 0 0 0.2rem rgba(17, 94, 89, 0.12); +} + +.custom-search { + min-width: 240px; + height: 36px; + border-radius: 8px; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9 3.5C5.96243 3.5 3.5 5.96243 3.5 9C3.5 12.0376 5.96243 14.5 9 14.5C10.519 14.5 11.893 13.8852 12.8891 12.8891C13.8852 11.893 14.5 10.519 14.5 9C14.5 5.96243 12.0376 3.5 9 3.5ZM2 9C2 5.13401 5.13401 2 9 2C12.866 2 16 5.13401 16 9C16 10.6625 15.4197 12.1906 14.4517 13.3911L17.7803 16.7197C18.0732 17.0126 18.0732 17.4874 17.7803 17.7803C17.4874 18.0732 17.0126 18.0732 16.7197 17.7803L13.3911 14.4517C12.1906 15.4197 10.6625 16 9 16C5.13401 16 2 12.866 2 9Z' fill='%236B807F'/%3E%3C/svg%3E") !important; + background-repeat: no-repeat !important; + background-position: 16px center !important; + padding: 0 16px 0 48px !important; + width: 400px; +} + +.btn-clear:hover { + text-decoration: underline; } -.form-toggle-switch h6{ - margin: 0; - color: #212529; - font-size: 14px; + +.alt-tech-card { + background: #f5f5f5; + border-radius: 10px; +} + +.alt-tech-card h3 { + font-size: 18px; + margin: 0; +} + +/* ======================================================== + Components: Alternative Technology Status And Hints + ======================================================== */ + +.verified { + background: var(--green-600); + color: var(--white); +} +.green-100 { + background: var(--green-100); +} +.green-700 { + color: var(--green-700); +} +.tags span { + background: var(--neutral-100); + padding: 4px 8px; + border-radius: 6px; + font-size: var(--text-label); + color: var(--neutral-700); font-weight: 500; - line-height: 20px; - margin: 0; -} -.form-toggle-switch input[type=checkbox]{ - height: 0; - width: 0; - visibility: hidden; -} -.form-toggle-switch label { - cursor: pointer; - text-indent: -9999px; - border-radius: 12px; - background: #E9ECEF; - display: block; - width: 44px; - height: 24px; - border-radius: 100px; - position: relative; -} -.form-toggle-switch label:after { - content: ''; - position: absolute; - top: 2px; - left: 2px; - width: 20px; - height: 20px; - background: #fff; - filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.06)) drop-shadow(0px 1px 3px rgba(0, 0, 0, 0.10)); - border-radius: 90px; - transition: 0.3s; -} -.form-toggle-switch input:checked + label { - background: #055160; -} -.form-toggle-switch input:checked + label:after { - left: calc(100% - 22px); -} - -/* **** Add Class Css **** */ -.main-wrpper.show-sidebar{padding: 40px 60px 60px 60px;} -/* **** End Add Class Css **** */ - -@media(min-width:1201px) and (max-width:1600px){ - .chart-wrp .col-md-4.col-sm-12{width: 33%;} - .chart-wrp .col-md-6.col-sm-12{width: 50%;} - .chart-wrp .col-md-6.col-sm-12:last-child{width: 100%} - .evaluation-block .accordion .accordion-item .accordion-button{font-size: 15px;} - .resource-wrp .resource-block .col-md-3.col-sm-12{width: 25%;} - .resource-wrp .resource-block .resource-box{height: calc(100% - 30px) ;margin: 0 0 30px;} -/* .technologies-block .col-md-6.col-sm-12{width: 100%;}*/ -} - -@media(min-width:1025px) and (max-width:1200px){ - .chart-wrp .col-md-4.col-sm-12{width: 33%;} - .chart-wrp .col-md-6.col-sm-12{width: 50%;} - .chart-wrp .col-md-6.col-sm-12:last-child{width: 100%} - .evaluation-block .accordion .accordion-item .accordion-button{font-size: 15px;} - .resource-wrp .resource-block .col-md-3.col-sm-12{width: 25%;} - .resource-wrp .resource-block .resource-box{height: calc(100% - 30px) ;margin: 0 0 30px;} - .technologies-block .col-md-6.col-sm-12{width: 100%;} -} - -@media(min-width:992px) and (max-width:1024px){ - .chart-wrp .col-md-4.col-sm-12{width: 33%;} - .chart-wrp .col-md-6.col-sm-12{width: 50%;} - .chart-wrp .col-md-6.col-sm-12:last-child{width: 100%} - .evaluation-block .accordion .accordion-item .accordion-button{font-size: 15px;} - .resource-wrp .resource-block .col-md-3.col-sm-12{width: 25%;} - .resource-wrp .resource-block .resource-box{height: calc(100% - 30px) ;margin: 0 0 30px;} - .technologies-block .col-md-6.col-sm-12{width: 100%;} -} - -@media(min-width:768px) and (max-width:991px){ - .top-head h4{font-size: 18px;line-height: 24px;} - .top-head ul.main-row li.main-col{margin-right: 8px;} - .top-head ul.main-row li.main-col .btn1{font-size: 12px;padding: 8px 10px;} - .top-head ul.main-row li.main-col .btn2{font-size: 12px;padding: 8px 10px;} - .top-head ul.main-row li.main-col .dropdown-toggle{font-size: 12px;padding: 8px 10px;} - - .chart-wrp .col-md-4.col-sm-12{width: 100%;} - .chart-wrp .col-md-6.col-sm-12{width: 100%;} - .evaluation-block .accordion .accordion-item .accordion-button{font-size: 15px;} - .resource-wrp .resource-block .col-md-3.col-sm-12{width: 50%;} - .resource-wrp .resource-block .resource-box{height: calc(100% - 30px) ;margin: 0 0 30px;} - .technologies-block .col-md-6.col-sm-12{width: 100%;} -} - -@media(max-width:767px){ - .main-wrpper{padding:16px;} - - .top-head{display: block;padding: 16px;} - .top-head h4{margin: 0 0 20px;justify-content: center;} - .top-head ul.main-row{display: block;} - .top-head ul.main-row li.main-col{margin: 0 0 10px;} - .top-head ul.main-row li.main-col .btn1{display: block;width: 100%;text-align: center;} - .top-head ul.main-row li.main-col .btn2{display: block;width: 100%;text-align: center;} - .top-head ul.main-row li.main-col .dropdown-toggle{display: block;width: 100%;} - .top-head ul.main-row li.dropdown .dropdown-menu{width: 100%;} - - .chart-info-box{padding: 20px;} - .chart-info-box ul li{margin: 0 0 15px;} - .chart-box-small{padding: 20px;} - .chart-box-big .box-body{padding: 20px;} - .chart-box-big .box-title{padding: 16px 20px;} - .titlebar{padding: 16px 20px;display: block;} - .titlebar h2{margin: 0 0 10px;font-size: 18px;} - .resource-wrp .resource-block .resource-box{margin: 0 0 10px;} - - .evaluation-block{padding: 20px;} - .resource-wrp .resource-block{padding: 20px;} - - .technologies-wrp .technologies-block{padding: 20px;} - .technologies-wrp .technologies-block .technologies-box{padding: 16px;} - .technologies-wrp .technologies-block .technologies-box ul li{word-break: break-all;align-items: flex-start;} - .evaluation-block .thead-txt{display: none;} - .evaluation-block .thead-txt ul li{font-size: 12px;} - .evaluation-block .accordion .accordion-item .accordion-button{font-size: 12px;line-height: 16px;} - .evaluation-block .accordion .accordion-item .accordion-button .arrow-box{margin: 0 4px;} - .evaluation-block .accordion .accordion-item .accordion-button li:nth-child(4){min-width: unset;margin: 0 6px;} - .evaluation-block .accordion .accordion-item .accordion-button li:last-child{min-width: unset;} - .evaluation-block .accordion .accordion-item .accordion-button .severity-label{font-size: 12px;line-height: 16px;padding: 4px 8px;} -} - -@media(min-width:576px) and (max-width:767px){ - -} - -@media(min-width:448px) and (max-width:575px){ +} +.verified span { + font-size: var(--text-label); +} +.red-700 { + color: var(--red-700); +} +.red-50 { + background: var(--red-50); +} + +.info-hint-box { + position: relative; + display: inline-block; + margin-left: 6px; + cursor: pointer; +} +.info-hint-box i { + font-size: 16px; + color: var(--primary-600, #007bff); + transition: color 0.2s; +} +.info-hint-box:hover i { + color: var(--primary-800, #0056b3); +} +.hint-hoverbox { + display: none; + position: absolute; + top: 28px; + right: 0; + z-index: 1000; + background: #fff; + border: 1px solid var(--neutral-200, #e5e7eb); + border-radius: 8px; + padding: 12px 14px; + width: 280px; + box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1); +} +.info-hint-box:hover .hint-hoverbox { + display: block; +} +.hint-hoverbox { + opacity: 0; + visibility: hidden; + transition: all 0.2s ease-in-out; +} +.info-hint-box:hover .hint-hoverbox { + opacity: 1; + visibility: visible; +} +.hint-hoverbox h5 { + font-size: 14px; + font-weight: 600; + margin-bottom: 6px; +} +.hint-hoverbox p { + font-size: 13px; + color: #555; + margin: 0; + line-height: 1.4; +} + +/* ======================================================== + Responsive + ======================================================== */ + +@media (max-width: 991px) { + + .alt-tech-card div { + width: 100%; + /* justify-content: flex-end; */ + } + + .alt-tech-card { + -ms-flex-wrap: wrap; + flex-wrap: wrap; + gap: 16px; + } + + .chart-card-head { + padding-left: 16px; + padding-right: 16px; + } + + #main-content { + margin-left: 0; + } +} + +@media (max-width: 767px) { + main { + padding-top: 24px; + } + + .btn { + padding-left: 12px; + padding-right: 12px; + } + + main { + padding-top: 88px; + } + +} + +@media (max-width: 575px) { } diff --git a/assets/img/csp/alibaba.png b/assets/img/csp/alibaba.png deleted file mode 100644 index e8b3a9beff66e2c1640ba0c44d1bbed71e61aee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15493 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 ldHA0Z{BJY-pYjAmPIxWatt5`Mp6uQL8Y() - - - - - - - - - - - diff --git a/assets/img/csp/aws.png b/assets/img/csp/aws.png deleted file mode 100644 index a26f97eb81cf57cba6409eeb33c9d98b2b8239e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20787 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 diff --git a/assets/img/csp/aws.svg b/assets/img/csp/aws.svg deleted file mode 100644 index 08b8262..0000000 --- a/assets/img/csp/aws.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/assets/img/csp/azure.png b/assets/img/csp/azure.png deleted file mode 100644 index 8bb218d66195af999a7c9536df1853d7db463f76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12022 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 diff --git a/assets/img/csp/azure.svg b/assets/img/csp/azure.svg deleted file mode 100644 index 61cb535..0000000 --- a/assets/img/csp/azure.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/assets/img/csp/gcp.svg b/assets/img/csp/gcp.svg deleted file mode 100644 index bc3b271..0000000 --- a/assets/img/csp/gcp.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/assets/img/csp/google_cloud.png b/assets/img/csp/google_cloud.png deleted file mode 100644 index ed3785b7131c9011779210dbb9eb6b956871f9f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16713 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 U)UpNioPa=Jb-gFpM>eniABAnH;{X5v diff --git a/assets/template/index.html b/assets/template/index.html index 361b381..a6c0ff6 100644 --- a/assets/template/index.html +++ b/assets/template/index.html @@ -1,859 +1,1274 @@ - - - - - - - EscapeCloud Community Edition - Cloud Exit Assessment Report - - - - - - - - - - - - - -
-
-

- EscapeCloud - {{ name }} -

- + + + + + EscapeCloud Community Edition - Cloud Exit Assessment Report + + + + + + + + + {% set provider_name = "Microsoft Azure" if cloud_service_provider == 1 else "Amazon Web Services" if cloud_service_provider == 2 else "Unknown Provider" %} + {% set strategy_name = "Repatriation to On-Premises" if exit_strategy == 1 else "Migration to Alternate Cloud" if exit_strategy == 3 else "Unknown Strategy" %} + {% set assessment_name = "Basic" if assessment_type == 1 else "Standard" if assessment_type == 2 else "Unknown" %} + {% set total_risks = high_risk_count + medium_risk_count + low_risk_count %} + +
+
+

+ EscapeCloud + {{ name }} +

+ +
+
+
+ +
+
+
+
+
+
+
+
+ + {% if cloud_service_provider == 1 %} + + + + + + + + + + + + + + + + + + + + + + + + {% elif cloud_service_provider == 2 %} + + + + + + + + + + + + + {% else %} + {{ provider_name }} + {% endif %} + +
+
+
Cloud Service Provider
+
{{ provider_name }}
+
+
+
+
+ +
+
+
Exit Strategy
+
{{ strategy_name }}
+
+
+
+
+ +
+
+
Assessment Type
+
{{ assessment_name }}
+
+
+
+
+ +
+
+
Timestamp
+
{{ timestamp }}
+
+
+
-
-
-
-
-
-
-
    -
  • - - {% if cloud_service_provider == 1 %} - Microsoft Azure - {% elif cloud_service_provider == 2 %} - AWS - {% endif %} - -
    -

    Cloud Service Provider

    -

    - {% if cloud_service_provider == 1 %} - Microsoft Azure - {% elif cloud_service_provider == 2 %} - Amazon Web Services - {% endif %} -

    -
    -
  • -
  • - -
    -

    Exit Strategy

    -

    - {% if exit_strategy == 1 %} - Repatriation to On-Premises - {% elif exit_strategy == 3 %} - Migration to Alternate Cloud - {% endif %} -

    -
    -
  • -
  • - -
    -

    Assessment Type

    -

    - {% if assessment_type == 1 %} - Basic - {% elif assessment_type == 2 %} - Standard - {% endif %} -

    -
    -
  • -
  • - -
    -

    TimeStamp

    -

    - {{ timestamp }} -

    -
    -
  • -
-
-
-
-
-
-

Risks

- {% set total_risks = high_risk_count + medium_risk_count + low_risk_count %} - {% if total_risks > 0 %} -

{{ total_risks }}

- {% endif %} -
+
- {% if total_risks == 0 %} -
-
- -

No data available.

-
-
- {% else %} -
- -
- {% endif %} -
-
-
-
-
-

Costs (last 6 months)

- {% if total_cost > 0 %} -

{{ currency_symbol }}{{ total_cost }}

- {% endif %} -
- {% if total_cost == 0 %} -
-
- -

No data available.

-
-
- {% else %} -
- -
- {% endif %} -
-
+
+
+
+
+
+

Risks

+
{{ total_risks }}
+
+ {% if total_risks > 0 %} +
+ +
+ {% else %} +
+
+ +

No risk data available.

+
+
+ {% endif %} +
+
- {% if scoring_data %} -
-
-
-
-

Scoring #1 - Exit Score
- - -
-
Exit Score
- -
-

This gauge chart represents the EscapeCloud Platforms exit score methodology, based on risk assessment results and the alternative technology landscape.

It uses a benchmark developed by our experts to quantify the challenges and limitations of exiting the cloud:
- Complex (0 - 20)
- Challenging (20 - 40)
- Manageable (40 - 60)
- Smooth Transition (60 - 80)
- Seamless (80 - 100)

-
-
-

-
-
-
-
+
+
+
+
+
+

Costs (last 6 months)

+
+ {% if total_cost > 0 %}{{ currency_symbol }}{{ total_cost }}{% else + %}-{% endif %}
+
-
-
-
-

Scoring #2 - Vendor Lock-In Score
- - -
-
Vendor Lock-In Score
- -
-

This chart represents the EscapeCloud Platforms Vendor Lock-In Score methodology.

-
-
-

-
-
-
-
-
+ {% if total_cost > 0 %} +
+
+ {% else %} +
+
+ +

No cost data available.

+
+
+ {% endif %} +
- {% endif %} +
+
-
-
-

Risks

-