﻿:root {
    --global-palette1: #ffa500;
    --global-palette2: #ff7e28;
    --global-palette3: #ff6600;
    --global-palette4: #000000;
    --global-palette5: #666666;
    --global-palette6: #e6e6e6;
    --global-palette7: #f3e8dc;
    --global-palette8: #fbf9f4;
    --global-palette9: #ffffff;
    --global-palette-btn-bg: var(--global-palette1);
    --global-palette-btn-bg-hover: var(--global-palette2);
    --global-palette-btn: var(--global-palette4);
    --global-palette-btn-hover: var(--global-palette4);
    --global-body-font-family: Poppins, sans-serif;
    --global-heading-font-family: Poppins, sans-serif;
    --global-primary-nav-font-family: Poppins, sans-serif;
    --global-fallback-font: sans-serif;
    --global-display-fallback-font: sans-serif;

    --global-content-width: 1290px;
    --global-content-narrow-width: 842px;
    --global-content-edge-padding: 1.5rem;
    --global-content-boxed-padding: 2rem;
    --global-calc-content-width: calc(1290px - var(--global-content-edge-padding) - var(--global-content-edge-padding));

    --llm-sidebar-width: 410px;
}

html {
    margin: 0;
    padding: 0;
    font-size: 20px;
}

body {
    background: #cff;
    font-size: 0.8rem;
    font-weight: normal;
    font-style: normal;
    font-stretch: normal;
    line-height: 1.3;
    margin: 0;
}

a {
    color: inherit;
    outline: none;
    text-decoration: underline;
    cursor: pointer;
}

.button-anchor {
    background: none;
    border: none;
    color: inherit;
    text-decoration: underline;
    cursor: pointer;
    padding: 0;
    font: inherit;
}

.button-anchor:hover {
    text-decoration: none;
}

a p, a h1, a h2, a h3, a h4 {
    text-decoration: none;
}

.link-look {
    text-decoration: underline;
}

header, footer, hgroup, nav, section {
    display: block;
}

h1, h2, h3, h4 {
    font-weight: normal;
    letter-spacing: 0.05em;
    line-height: normal;
}

h1 {
    font-size: 2.5rem;
    text-rendering: geometricPrecision;
}

h2 {
    font-size: 1.4rem;
    margin-top: 1.5em;
}

h3 {
    font-size: 1rem;
}

.larger-text {
    font-size: 1rem;
}

.smaller-text {
    font-size: 0.65rem;
}

.bold-text {
    font-weight: bold;
}

h4 {
    font-size: 0.8rem;
    font-weight: bold;
}

h5 {
    font-size: 0.55rem;
}

button {
    font-size: 0.8rem;
}

ul {
    text-align: left;
    padding-left: 1.5em;
}

li {
    margin-top: 0.6em;
    margin-bottom: 0.6em;
}

span.avoid-wrap {
    display: inline-block; 
}

@media (max-width: 960px) {
    html { font-size: 19px; }
}
@media (max-width: 820px) { 
    html { font-size: 18px; } 
}
@media (max-width: 640px) { 
    html { font-size: 17px; } 
}
@media (max-width: 480px) { 
    html { font-size: 15px; } 
}

.click-to-expand {
    margin-bottom: 0px;
    text-align: left;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.click-to-expand::before {
    display: block;
    content: "";
    border: 0.4em solid currentColor;
    border-top-color: transparent;
    border-right-color: transparent;
    border-bottom-color: transparent;
    position: relative;
    left: 0.2em;
    opacity: 0.9;
    margin-right: 0.4em;
    height: 0;
}

.click-to-expand.button::before {
    display: none;
}

.expanded::before {
    border-top-color: currentColor;
    border-left-color: transparent;
    top: 0.2em;
    left: 0;
}

.expand-on-click {
    display: none;
    border: 1px solid rgba(1, 1, 1, 0);
}

.button {
    border-radius: 6px;
    background: var(--global-palette-btn-bg);
    color: var(--global-palette-btn);
    padding: 0.5em 1.4em;
    border: 0;
    display: inline-block;
    font-family: inherit;
    cursor: pointer;
    text-decoration: none;
    box-shadow: 0px 0px 0px -7px rgba(0,0,0,0);
}


.button + .button {
    margin-left: 1em;
}

.big-button {
    border-width: 2px;
    font-size: 0.9rem;
    font-weight: bold;
    padding: 1em 3em 1em 3em;
}

input.button {
    width: auto;
    margin-top: 0;
    margin-bottom: 0;
}

.wizard-style {
    text-align: center;
}

.spaced-section {
    margin-top: 4em;
    margin-bottom: 4em;
}

.spaced-element {
    margin-top: 2em;
    margin-bottom: 2em;
}

.dynamic-margin {
    margin-left: 23%;
    margin-right: 23%;
}

.dynamic-margin-small {
    margin-left: 11%;
    margin-right: 11%;
}

@media (max-width: 1600px) {
    .dynamic-margin {
        margin-left: 21%;
        margin-right: 21%;
    }
}
@media (max-width: 1400px) {
    .dynamic-margin {
        margin-left: 19%;
        margin-right: 19%;
    }
}
@media (max-width: 1230px) {
    .dynamic-margin {
        margin-left: 17%;
        margin-right: 17%;
    }
}
@media (max-width: 1080px) {
    .dynamic-margin {
        margin-left: 15%;
        margin-right: 15%;
    }
}
@media (max-width: 950px) {
    .dynamic-margin {
        margin-left: 13%;
        margin-right: 13%;
    }
}
@media (max-width: 830px) {
    .dynamic-margin {
        margin-left: 11%;
        margin-right: 11%;
    }
}
@media (max-width: 730px) {
    .dynamic-margin-small,
    .dynamic-margin {
        margin-left: 9%;
        margin-right: 9%;
    }
}
@media (max-width: 640px) {
    .dynamic-margin-small,
    .dynamic-margin {
        margin-left: 7%;
        margin-right: 7%;
    }
}
@media (max-width: 560px) {
    .dynamic-margin-small,
    .dynamic-margin {
        margin-left: 5%;
        margin-right: 5%;
    }
}
@media (max-width: 480px) {
    .dynamic-margin-small,
    .dynamic-margin {
        margin-left: 3%;
        margin-right: 3%;
    }
}

input,
textarea,
select {
    font-size: 0.9rem;
    display: block;
    padding: .7em 1.2em;
    border: solid 1px #444;
    border-radius: 3px;
    width: 100%;
    box-sizing: border-box;
    margin: 1em 0;
    text-align: left;
    text-align-last: left;
}

select {
    display: inline;
    padding: .4em .5em;
    background-color: white;
}

input:focus {
    outline: none;
}

label {
    display: block;
}

label input {
    display: inline;
    width: inherit;
    min-width: inherit;
    margin-right: 0.75em;
}

.field-validation-error {
    color: #f00;
}

.field-validation-error ul {
    list-style-type: none;
    text-align: center;
    padding-left: 0;
}

input.field-validation-error {
    border-color: #C00;
    background-color: #fdd;
}

.datepicker {
    background-image: url("./Images/icon_calendar.png");
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center right;
    width: 14em;
}

/*----------------------- Modal dialog template ------------------------- */
.modal-popup {
    display: none;
    position: fixed;
    z-index: 20;
    left: 0;
    top: 0;
    width: 100%; 
    height: 100%; 
    overflow: auto; 
    background-color: gray;   /* Fallback color */
    background-color: rgba(0,0,0,0.4); 
}

.modal-aligner {
    display: flex;
    height: 100%;
    align-items: center;
}

.modal-container {
    position: relative;
    background-color: #fefefe;
    margin: 5% auto;
    padding: 1px;
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
    text-align: center;
}

.modal-close {
    position: relative;
    color: #aaa;
    float: right;
    font-size: 28px;
    font-weight: bold;
    z-index: 7;
    top: .3em;
    right: .5em;
}

.modal-close:hover,
.modal-close:focus {
    color: black;
    text-decoration: none;
    cursor: pointer;
}

body.modal-open {
    overflow: hidden;
}

.modal-popup-content {
    margin: 2em 10%;
}

@media (max-width: 560px) {
    .modal-popup-content {
        margin: 2em 7%;
    }
}
@media (max-width: 480px) {
    .modal-popup-content {
        margin: 2em 5%;
    }
}

#generic-popup-content {
    position: relative;
    margin-top: 3em;
}

/* Create a custom checkbox/radio button */
.checkbox-element,
.radio-element {
    display: inline-block;
    position: relative;
    padding: .2em 0 0 2.6em;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    margin: 1em 0;
}

.radio-element {
    display: block;
}

.checkmark {
    position: absolute;
    top: 0;
    left: 0;
    height: 1.6em;
    width: 1.6em;
    background-color: #eee;
}

.radio-element .checkmark {
    border-radius: 50%;
}

/* Hide the browser's default checkbox */
.checkbox-element input,
.radio-element input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* On mouse-over, add a darker grey background color */
.checkbox-element:hover input ~ .checkmark,
.radio-element:hover input ~ .checkmark {
    background-color: var(--global-palette6);
}

/* Create the checkmark indicator (hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
    color: var(--global-palette1);
}

/* Show the checkmark when checked */
.checkbox-element input:checked ~ .checkmark:after,
.radio-element input:checked ~ .checkmark:after {
    display: block;
}

/* Style the checkmark indicator */
.checkbox-element .checkmark:after {
    left: .55em;
    top: .25em;
    width: .3em;
    height: .8em;
    border: solid currentColor;
    border-width: 0 .2em .2em 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

/* Style the radio indicator (dot/circle) */
.radio-element .checkmark:after {
    top: 50%;
    left: 50%;
    width: .8em;
    height: .8em;
    margin: -25% 0 0 -25%;
    border-radius: 50%;
    background: currentColor;
} 

.readonly {
    background: #eee;
    color: #666;
}

.tooltip, 
.tooltip-no-icon {
    position: relative;
}

.tooltip-block {
    position: relative;
    display: inline-block;
    padding-right: 1em;
}

.jooltip::after,
.tooltip-block::after {
    content: "ⓘ";
    display: inline;
    font-weight: bold; 
    position: relative;
    top: -0.5em;
    font-size: 0.8rem;
}

.tooltip-block::after {
    display: inline-block;
    position: absolute;
    right: 0;
}

.tooltiptext {
    visibility: hidden;
    width: 40vw;
    min-width: 20em;
    margin-left: -5em;
    color: #006;
    text-align: center;
    padding: .5em 1em;
    border-radius: 6px;
    position: absolute;
    top: calc(100% + 0.5em); /* Shifted down by 0.5em */
    left: 50%;
    z-index: 5;
    box-shadow: 0 4px 8px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);
    white-space: normal;
    font-size: 0.8rem;
    font-weight: normal;
}

@media (max-width: 640px) {
    .tooltiptext {
        width: 15em;
    }
}

@media (max-width: 480px) {
    .tooltiptext {
        width: 12em;
    }
}

.tooltip:hover .tooltiptext,
.tooltip-no-icon:hover .tooltiptext,
.tooltip-block:hover .tooltiptext {
    visibility: visible;
}

.tooltiptext.left {
    left: auto;
    right: 0;
    transform: translateX(0);
}

.tooltiptext.right {
    left: 0;
    transform: translateX(0);
}

@media (min-width: 860px) {
    .visible-when-narrow {
        display: none;
    }
}
@media (max-width: 859px) {
    .visible-when-wide {
        display: none;
    }
}

@keyframes spin
{
    0% {transform: rotate(0deg);}
    100% {transform: rotate(360deg);}
}

.page-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    border: 0.5em solid #ccc;
    width: 4em;
    height: 4em;
    margin: -2.5em 0 0 -2.5em;
    border-radius: 50%;
    animation: spin 1s infinite linear;
}

.loading-spinner {
    width: 4em;
    height: 4em;
    margin: 0 auto;
    border: 0.5em solid #ccc;
    border-radius: 50%;
    animation: spin 1s infinite linear;
}

.loading-spinner-small {
    width: 1em;
    height: 1em;
    margin: 0 auto;
    border: 0.25em solid #ccc;
    border-radius: 50%;
    animation: spin 1s infinite linear;
}

/*----------------- Menu bar types - inline or overlay --------------------*/


@media (max-width: 840px) {
    .menu-bar-widget .menu-bar-inner > div {
        height: 4px;
        margin: 6px 0;
    }
}

/*---------------------                                   ------------------*/
.page-section {
    padding: 3em 0 4em 0;
}

.text-promo-section {
    text-align: justify;
    text-align-last: center;
}

.text-quote-section {
    text-align: center;
    margin-bottom: 2em;
}

.text-quote-section h2 {
    font-weight: bold;
}

.radio-button-list {
    display: inline-block;
    text-align: left;
}

.radio-button-list label input {
    margin-top: 0.5em;
    margin-bottom: 0.5em;
}


/*----------------- Form with labels & values aligned in columns -----------------*/

.aligned-form,
.aligned-form-full-width,
.aligned-form-max-width {
    display: table;
    margin: 1em auto;
}

.aligned-form-full-width {
    width: 100%;
}

.aligned-form-max-width {
    max-width: 32em;
}

.aligned-form-row {
    display: table-row;
}

.aligned-form-wrapped-text .aligned-form-label{
    white-space: normal;
}

.aligned-form-label {
    display: table-cell;
    text-align: right;
    vertical-align: middle;
    padding: 0 2em 0 0;
    white-space: nowrap;
}

.aligned-form-value {
    display: table-cell;
    text-align: left;
    vertical-align: middle;
    padding: 0.5em 0;
}

.aligned-form-full-width .aligned-form-value {
    width: 65%;
}

.aligned-form input,
.aligned-form select,
.aligned-form-full-width input,
.aligned-form-full-width select,
.aligned-form-max-width input,
.aligned-form-max-width select {
    margin: 0;
}

@media (max-width: 560px) {

    .aligned-form-full-width .aligned-form-label {
        display: block;
        text-align: left;
        margin: 0.8em 0 0 1.4em;
    }
    .aligned-form-full-width .aligned-form-value {
        display: block;
        width: 100%;
    }
}

.login-style-form input {
    width: 40%;
    margin: 1em auto;
}

.modal-popup-content .login-style-form input {
    width: 60%;
}

.aligned-form .radio-button-list,
.aligned-form-full-width .radio-button-list,
.aligned-form-max-width .radio-button-list {
    border: 1px solid currentColor;
    border-radius: 0.3em;
    padding: 0.5em 1.2em 0.6em 1.2em;
}

/*---------------------- Info table ----------------------*/

.aligned-table,
.aligned-table-full-width {
    display: table;
}

.aligned-table-full-width {
    width: 100%;
}

.aligned-table-row {
    display: table-row;
}

.aligned-table-wrapped-text .aligned-table-label {
    white-space: normal;
}

.aligned-table-label {
    display: table-cell;
    text-align: right;
    padding: 0.25em 1em 0 0;
    white-space: nowrap;
    vertical-align: top;
}

.aligned-table-value {
    display: table-cell;
    text-align: left;
    padding: 0.25em 0;
    vertical-align: top;
}

.aligned-table h3 {
    margin: 0 0 .5em 0;
}

.aligned-table-middle {
    display: table-cell;
    text-align: right;
    padding: 0.25em 0;
    vertical-align: top;
    width: 2%;
}

/*-------------------- Get Quote page --------------------*/
#quote-sidebar {
    display: block;
    position: fixed;
    right: 0%;
    top: 50%;
    transform: translate(0, -30%);
    width: 20%;
    box-sizing: border-box;
    border-right: 0;
    border-top-left-radius: 0.5em;
    border-bottom-left-radius: 0.5em;
    padding: 1em;
    background-color: white;
    z-index: 9;
    box-shadow: 4px 4px 30px #888;
    text-align: center;
}

#quote-sidebar .button {
    margin: 2em 0 1em 0;
}

@media (max-width: 760px) {
    .show-quote {
        width: auto;
    }

    #quote-sidebar {
        display: none;
    }
}

.quote-field {
    display: flex;
    align-items: center;
    justify-content: center;
}

.quote-field p {
    flex: 0 1 50%;
    text-align: right;
    padding-right: 2em;
    box-sizing: border-box;
}

.quote-field input,
.quote-field textarea,
.quote-field select {
    max-width: 50%;
}

.quote-field.optional p:after {
    content: "(Optional)";
    display: block;
    font-size: .65rem;
    color: #57a;
}

.quote-field > div:first-child {
    flex: 1 1 40%;
    padding-right: 2em;
    text-align: justify;
    box-sizing: border-box;
    margin: 1em 0;
}

.quote-field input:first-child,
.quote-field textarea:first-child,
.quote-field select:first-child,
.quote-field label:first-child
{
    margin-left: auto;
    margin-right: auto;
}

.cover-selection-icon {
    padding: 0 6% 0 calc(6% - 1em);
}

.cover-selection-icon svg,
.cover-selection-icon img {
    width: 4em;
    height: 4em;
}

.cover-selection-text {
    flex-grow: 1;
}

.cover-selection-name {
    font-size: 1.2rem;
    font-weight: bold;
    margin: 0 0 .4em 0;
}

.cover-selection-moreinfo {
    margin: .5em 0;
}

.cover-selection-feature {
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    gap: 0.5em;
}

.cover-selection-feature-label {
    display: flex;
    align-items: center;
    text-align: right;
    color: #777;
}

.cover-selection-feature-value {
    display: inline;
    text-align: left;
}

.cover-selection-feature-value select {
    width: auto;
}

.show-summary {
    text-align: left;
}

/*-------------------- Custom selectable item --------------------*/

.selectable-item-header {
    display: flex;
    justify-content: space-between;
}

.selectable-item-header-left {
    display: inline-block;
    text-align: left;
    margin-left: 1.2em;
}

.selectable-item-header-right {
    display: inline-block;
    text-align: right;
    margin-right: 1.2em;
}

.selectable-item {
    position: relative;
    display: flex;
    flex-flow: row wrap;
    justify-content: flex-start;
    align-items: center;
    text-align: left;
    padding: 1em 5.5em 1em 1.5em;
    background-repeat: no-repeat;
    background-size: 3.5em;
    background-position: right 1em center;
    min-height: 4em;
    border: 1px solid currentColor;
    border-radius: 0.5em;
    box-sizing: border-box;
    margin: .5em 0;
}

.selectable-item:before {
    position: absolute;
    content: "";
    margin-top: -1.2em;
    top: 50%;
    right: 2em;
    height: 2.4em;
    width: 2.4em;
    background-color: #eee;
    border: 1px solid currentcolor;
    border-radius: 50%;
}

.selectable-item:hover:not(.selectable-item-selected-readonly):before {
    background-color: #ccc;
}

.selectable-item-selected:after,
.selectable-item-selected-readonly:after {
    position: absolute;
    content: "";
    right: 2.1em;
    margin-top: -2em;
    top: 50%;
    width: .8em;
    height: 2.4em;
    border: solid green;
    border-width: 0 .5em .5em 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.selectable-item-selected-readonly:after {
    border-color: #888;
}

.selectable-item-tick-at-top:before {
    margin-top: 0;
    top: 2em;
}

.selectable-item-tick-at-top:after {
    margin-top: 0;
    top: 1.2em;
}

/*-------------------- Radio style items --------------------*/
.radio-style-item {
    cursor: pointer;
}


/*-------------------- Expandable section --------------------*/
.expandable-section {
    padding: 0 0 1px 0;
    margin: 0 0 1em 0;
    border: 1px solid currentColor;
    border-radius: 0.5em;
}

.expandable-section > .click-to-expand {
    padding: .75em;
}

.expandable-section > .expand-on-click {
    padding: 1em;
    margin: 2px .5em .45em .5em;
}

.theme-table {
    width: 100%;
    border-collapse: collapse;
}

.theme-table td {
    border-left: 1px solid currentColor; 
    border-right: 1px solid currentColor; 
    padding: 0.4em;
}

.theme-table th {
    border-left: 1px solid black; 
    border-right: 1px solid black; 
    padding: 0.4em;
    border-top: 1px solid #000;
    background-color: #888;
    font-weight: normal;
    color: #fff;
}

.theme-table tr:nth-child(2n) td {
    background-color: #f4f4f4;
}

.theme-table tr:last-child td {
    border-bottom: 1px solid currentColor;
}

/*--------------------------- Tapoly quote stepper --------------------------*/
.tapoly-svg-icon {
    width: 4em;
    height: 4em;
    padding: 4px;
    border-radius: 50%;
    fill: var(--global-palette2);
    border-color: var(--global-palette1);
    background-color: white;
}

.tapoly-stepper-container {
    position: relative;
    z-index: 1;
}

.tapoly-stepper-icon {
    width: 3em;
    height: 3em;
    padding: 4px;
    border-radius: 50%;
    fill: currentColor;
    border-color: currentColor;
    background-color: white;
}

.tapoly-stepper p {
    color: black;
    font-size: 0.8rem;
}

@media (max-width: 480px) {
    .tapoly-stepper p {
        font-size: 0.6rem;
    }
}

.tapoly-stepper-container ul {
    display: flex;
    padding: 0;
}

.tapoly-stepper li {
    list-style-type: none;
    display: inline-block;
    flex-grow: 1;
    position: relative;
    text-align: center;
    vertical-align: text-top;
    color: #eeeeee;
    margin-top: 2em;
}

.tapoly-stepper li:after {
    content: '';
    position: absolute;
    width: 100%;
    height: 5px;
    background-color: #eeeeee;
    top: 1.6em;
    left: -50%;
    z-index: -1;
}

.tapoly-stepper.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

.tapoly-stepper li:first-child:after {
    content: none;
}

.tapoly-stepper li.active {
    color: blue;
}

.tapoly-stepper li.current {
    color: black;
}

.tapoly-stepper li.active + li:after {
    background-color: blue;
}

/*--------------------------- Other page styles --------------------------*/

.show-summary .aligned-table-label {
    width: 40%;
    padding-top: .75em;
    font-weight: bold;
}

.show-summary .aligned-table-value {
    padding-top: .75em;
}

/*------------------------------- Chat Component -------------------------------*/
.chat-container {
  width: 100%;
  margin: auto;
  display: flex;
  flex-direction: column;
  border: 1px solid #ccc;
  border-radius: 8px;
  padding: 10px;
  background: #f9f9f9;
  height: 500px;
}

/*------------------------------- Conversation Page -------------------------------*/
.chat-bot-field {
    display: flex;
    align-items: center;
}

.chat-bot-field p {
    flex: 0 1 50%;
    text-align: right;
    padding-right: 2em;
    box-sizing: border-box;
}

.chat-bot-field textarea{
    max-width: 50%;
}


.chat-bot-field textarea:first-child {
    margin-left: auto;
    margin-right: auto;
}

@media (max-width: 768px) {
    .chat-bot-field {
        flex-direction: column;
        align-items: flex-start;
    }

    .chat-bot-field p {
        text-align: left;
        padding-right: 0;
        width: 100%;
    }

    .chat-bot-field input,
    .chat-bot-field textarea,
    .chat-bot-field select {
        max-width: 100%;
    }
}

.get-quote-container {
    display: flex;

    justify-content: space-between;
    align-items: flex-start;
    flex-direction: row;
}

.get-quote-inner {
    max-width: var(--global-content-narrow-width);
    margin: 2em auto;
    padding: 2em;
}

.top-bar-container {

}

.top-bar-inner {
    display: flex;
    justify-content: space-between;
    gap: 2em;
    padding: 0 2em;
}

.top-bar-middle {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1em;
    padding: 2em 0;

    width: var(--global-content-narrow-width);
}

.top-bar-left, .top-bar-right {
    width: 130px;
    display: flex;
    justify-content: center;
    align-items: center;
}

@media (max-width: 842px) {
    .top-bar-left, .top-bar-right {
        visibility: hidden;
        width: 4em;
    }
}

.image-fit {
    width: 100%;
    height: auto;
    display: block;
}

.llm-sidebar {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%); 

    min-width: var(--llm-sidebar-width);
    width: var(--llm-sidebar-width);
    max-width: var(--llm-sidebar-width);

    border-right: 0;
    border-top-left-radius: 0.5em;
    border-bottom-left-radius: 0.5em;
    background-color: white;
    box-shadow: 4px 4px 30px #888;
    padding: 0.5em 0 0.5em 0.5em;
}   

.llm-table table {
    max-width: 100%;
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.llm-table td, th {
    padding: 8px 2px;
    text-align: left;
    font-size: small;
}

.llm-table-bold td:first-child {
    font-weight: bold;
    width: 30%;
}

.llm-table.outline * {
    border: 1px solid #ccc;
}

.llm-table tr:nth-child(even) {
    background-color: #f9f9f9;
}

.llm-analysis-table table {
    table-layout: auto;
    border-collapse: collapse;
    width: 100%;
    border: 1px solid #ccc;
}

.llm-analysis-table th {
    text-align: center;
    white-space: nowrap;
    background-color: var(--global-palette6);
    padding: 8px;
}

.llm-analysis-table td {
    padding: 8px;
    border: 1px solid #ccc;
}

.llm-analysis-table td.center {
    text-align: center;
}

.llm-analysis-table.left-highlight td:first-child {
    background-color: #f9f9f9;
    font-weight: bold;
}

/* Color styling for risk and confidence levels */
.text-none {
    color: gray;
    font-weight: bold;
}

/* Very Low Confidence */
.text-verylow {
    color: darkgreen;
    font-weight: bold;
}

/* Low Confidence */
.text-low {
    color: green;
    font-weight: bold;
}

/* Medium Confidence */
.text-medium {
    color: #d1a000;
    font-weight: bold;
}

/* High Confidence */
.text-high {
    color: red;
    font-weight: bold;
}

/* Very High Confidence */
.text-veryhigh {
    color: darkred;  /* Darker red for Very High */
    font-weight: bold;
}

.splash-screen {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100vw;  /* Viewport width */
    height: 100vh; /* Viewport height */

    background-color: var(--global-palette9);

    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}
.splash-screen > h1 {
    font-size: 2rem;
    margin-bottom: 0;
}

.splash-screen > h2 {
    font-size: 1rem;
    margin-top: 0;
}

.splash-screen > img {
    width: 400px;
    height: auto;
    margin-bottom: 1rem;
}

.splash-screen > input {
    margin-top: 4rem;
}

.splash-screen input::placeholder {
    text-align: center;
}

.no-nonsense-error {
    color: red;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.installation-switcher {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 30px; 
    background-color: rgba(51, 51, 51, 0.3);
    color: black;

    display: flex;
    align-items: center;
    gap: 0.5em;
    justify-content: center;
    z-index: 1000; 
    pointer-events: auto;
    box-sizing: border-box;
}

.installation-switcher .page-selector-container {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 300px;
}

.installation-switcher .page-selector-container select {
    max-width: 200px;   /* Adjust as needed */
    min-width: 60px;
    width: auto;
    margin: 0;
    padding: 2px 8px;
    font-size: 0.9rem;
}
.installation-switcher .page-selector-container p {
    margin: 0;
    white-space: nowrap;
    font-size: 0.9rem;
}
.installation-switcher button {
    margin: 0 0.5em;
}

.StripeElement {
    border: 1px solid currentColor;
    border-radius: .3em;
    padding: .7em 1em .7em 1em;
    margin: 1em 0 2em 0;
}

.StripeElement--invalid {
    border-color: #f00;
}

.progress-bar {
    height: 1em;
    flex: 1;
    background-color: #eee;
    border-radius: 5px;
    overflow: hidden;
}

.progress-bar-fill {
    height: 100%;
    background-color: var(--global-palette1);
    border-radius: 5px 2px 2px 5px;
    transition: width 0.3s ease-in-out;
}
