.qsb-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-radius: 12px;
    font-family: system-ui, -apple-system, sans-serif;
    font-size: 13px;
    width: fit-content;
    box-sizing: border-box;
}

.qsb-banner--fixed-top-right {
    position: fixed;
    top: 16px;
    right: 16px;
    z-index: 99999;
}

.qsb-banner--fixed-top-left {
    position: fixed;
    top: 16px;
    left: 16px;
    z-index: 99999;
}

.qsb-banner--fixed-bottom-right {
    position: fixed;
    bottom: 16px;
    right: 16px;
    z-index: 99999;
}

.qsb-banner--fixed-bottom-left {
    position: fixed;
    bottom: 16px;
    left: 16px;
    z-index: 99999;
}

.qsb-banner__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.qsb-banner__title {
    font-weight: 500;
    line-height: 1.3;
}

.qsb-banner__sub {
    font-size: 11px;
    line-height: 1.3;
    opacity: 0.85;
}

.qsb-banner__dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
    animation: qsb-pulse 2.4s ease-in-out infinite;
}

@keyframes qsb-pulse {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.4; }
}

/* Secure — teal */
.qsb-banner--secure.qsb-banner--teal {
    background: #E1F5EE;
    border: 0.5px solid #5DCAA5;
}
.qsb-banner--secure.qsb-banner--teal .qsb-banner__title { color: #085041; }
.qsb-banner--secure.qsb-banner--teal .qsb-banner__sub   { color: #0F6E56; }
.qsb-banner--secure.qsb-banner--teal .qsb-banner__dot   { background: #1D9E75; }

/* Insecure — teal theme (red state) */
.qsb-banner--insecure.qsb-banner--teal {
    background: #FCEBEB;
    border: 0.5px solid #F09595;
}
.qsb-banner--insecure.qsb-banner--teal .qsb-banner__title { color: #791F1F; }
.qsb-banner--insecure.qsb-banner--teal .qsb-banner__sub   { color: #A32D2D; }
.qsb-banner--insecure.qsb-banner--teal .qsb-banner__dot   { background: #E24B4A; }

/* Secure — purple */
.qsb-banner--secure.qsb-banner--purple {
    background: #EEEDFE;
    border: 0.5px solid #AFA9EC;
}
.qsb-banner--secure.qsb-banner--purple .qsb-banner__title { color: #26215C; }
.qsb-banner--secure.qsb-banner--purple .qsb-banner__sub   { color: #534AB7; }
.qsb-banner--secure.qsb-banner--purple .qsb-banner__dot   { background: #7F77DD; }

/* Insecure — purple theme (red state) */
.qsb-banner--insecure.qsb-banner--purple {
    background: #FCEBEB;
    border: 0.5px solid #F09595;
}
.qsb-banner--insecure.qsb-banner--purple .qsb-banner__title { color: #791F1F; }
.qsb-banner--insecure.qsb-banner--purple .qsb-banner__sub   { color: #A32D2D; }
.qsb-banner--insecure.qsb-banner--purple .qsb-banner__dot   { background: #E24B4A; }

/* Secure — minimal */
.qsb-banner--secure.qsb-banner--minimal {
    background: #ffffff;
    border: 0.5px solid #b4b2a9;
}
.qsb-banner--secure.qsb-banner--minimal .qsb-banner__title { color: #2C2C2A; }
.qsb-banner--secure.qsb-banner--minimal .qsb-banner__sub   { color: #5F5E5A; }
.qsb-banner--secure.qsb-banner--minimal .qsb-banner__dot   { background: #1D9E75; }

/* Insecure — minimal */
.qsb-banner--insecure.qsb-banner--minimal {
    background: #ffffff;
    border: 0.5px solid #b4b2a9;
}
.qsb-banner--insecure.qsb-banner--minimal .qsb-banner__title { color: #2C2C2A; }
.qsb-banner--insecure.qsb-banner--minimal .qsb-banner__sub   { color: #5F5E5A; }
.qsb-banner--insecure.qsb-banner--minimal .qsb-banner__dot   { background: #E24B4A; }
