:root {
    --flowwer-primary: #3156d4;
    --flowwer-primary-dark: #243fa4;
    --flowwer-soft: #eef3ff;
}

html {
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
}

a {
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

.btn:hover,
.navbar-brand:hover,
.nav-link:hover {
    text-decoration: none;
}

.btn-primary {
    --bs-btn-bg: var(--flowwer-primary);
    --bs-btn-border-color: var(--flowwer-primary);
    --bs-btn-hover-bg: var(--flowwer-primary-dark);
    --bs-btn-hover-border-color: var(--flowwer-primary-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--flowwer-primary);
    --bs-btn-border-color: var(--flowwer-primary);
    --bs-btn-hover-bg: var(--flowwer-primary);
    --bs-btn-hover-border-color: var(--flowwer-primary);
}

.text-primary {
    color: var(--flowwer-primary) !important;
}

.brand-mark {
    width: 2rem;
    height: 2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: .6rem;
    color: #fff;
    background: linear-gradient(135deg, var(--flowwer-primary), #6e8bff);
    font-weight: 800;
}

.hero-section {
    background: radial-gradient(circle at top right, var(--flowwer-soft), #fff 52%);
}

.card {
    border-radius: 1rem;
}

.summary-tile {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: .85rem;
    background: var(--bs-tertiary-bg);
    min-height: 100%;
}

    .summary-tile span {
        color: var(--bs-secondary-color);
        display: block;
        font-size: .85rem;
    }

    .summary-tile strong {
        display: block;
        margin-top: .25rem;
    }

.diagnostic-pre {
    white-space: pre-wrap;
    overflow-x: auto;
    border-radius: .75rem;
    background: #111827;
    color: #f9fafb;
    padding: 1rem;
}

.legal-page h2 {
    margin-top: 1.5rem;
}


@media (max-width: 575.98px) {
    .hero-section .display-5 {
        font-size: 2.25rem;
    }
}

.result-status-success {
    background: var(--bs-success-bg-subtle);
    border-color: var(--bs-success-border-subtle) !important;
}

.result-status-warning {
    background: var(--bs-warning-bg-subtle);
    border-color: var(--bs-warning-border-subtle) !important;
}

.result-status-known {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary-border-subtle) !important;
}

.result-status-danger {
    background: var(--bs-danger-bg-subtle);
    border-color: var(--bs-danger-border-subtle) !important;
}

.result-status-neutral {
    background: var(--bs-secondary-bg-subtle);
    border-color: var(--bs-border-color) !important;
}

.message-list {
    border-radius: .75rem;
}

.message-list-item {
    border-left-width: .35rem;
    border-left-color: var(--bs-border-color);
    padding: .9rem;
    background: var(--bs-body-bg);
}

.message-list-item-danger {
    border-left-color: var(--bs-danger) !important;
}

.message-list-item-warning,
.message-list-item-expected {
    border-left-color: var(--bs-warning) !important;
}

.message-list-item-info {
    border-left-color: var(--bs-info) !important;
}

.message-list-item-known {
    border-left-color: var(--flowwer-primary) !important;
    background: linear-gradient(90deg, var(--flowwer-soft), var(--bs-body-bg) 30%);
}

.message-list-item-neutral {
    border-left-color: var(--bs-secondary-border-subtle) !important;
}

.message-list-item-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem;
    margin-bottom: .5rem;
}

.message-list-item-title {
    font-weight: 700;
    overflow-wrap: anywhere;
}

.message-list-item-message {
    overflow-wrap: anywhere;
}

.message-list-item-meta {
    margin-top: .35rem;
    color: var(--bs-secondary-color);
    font-size: .875rem;
    overflow-wrap: anywhere;
}

.message-known-finding-panel {
    margin-top: .6rem;
    border: 1px solid var(--bs-primary-border-subtle);
    border-radius: .65rem;
    padding: .8rem;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-size: .925rem;
}

.message-official-details,
.message-technical-details {
    margin-top: .75rem;
}

    .message-official-details summary,
    .message-technical-details summary {
        cursor: pointer;
        color: var(--flowwer-primary);
        font-size: .875rem;
        font-weight: 600;
    }

.technical-detail-pre {
    white-space: pre-wrap;
    overflow-x: auto;
    border-radius: .5rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    padding: .75rem;
    margin: .5rem 0 0;
    font-size: .875rem;
}

.known-findings-summary {
    font-size: .925rem;
}

.message-grouping-summary {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: .8rem .9rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: .9rem;
}

    .message-grouping-summary strong {
        color: var(--bs-body-color);
    }

.message-group-occurrence-summary {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .8rem;
    margin-top: .75rem;
    border-radius: .5rem;
    padding: .55rem .7rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: .875rem;
}

    .message-group-occurrence-summary strong {
        color: var(--bs-body-color);
    }

.message-occurrences-details,
.raw-message-list-details {
    margin-top: .75rem;
}

    .message-occurrences-details > summary,
    .raw-message-list-details > summary {
        cursor: pointer;
        color: var(--flowwer-primary);
        font-size: .875rem;
        font-weight: 600;
    }

.message-occurrence-list {
    display: grid;
    gap: .5rem;
    margin: .75rem 0 0;
    padding-left: 1.75rem;
}

.message-occurrence-item {
    border: 1px solid var(--bs-border-color);
    border-radius: .5rem;
    padding: .55rem .65rem;
    background: var(--bs-body-bg);
}

    .message-occurrence-item > details {
        margin-top: .35rem;
    }

        .message-occurrence-item > details > summary {
            cursor: pointer;
            color: var(--flowwer-primary);
            font-size: .825rem;
            font-weight: 600;
        }

.raw-message-list-details {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: .75rem .9rem;
    background: var(--bs-tertiary-bg);
}

.help-badge {
    cursor: help;
}

.seo-content-section {
    scroll-margin-top: 5rem;
}

.seo-info-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.25rem;
    background: var(--bs-body-bg);
}

    .seo-info-card p {
        color: var(--bs-secondary-color);
        margin-bottom: 0;
    }

.flowwer-seo-card {
    background: linear-gradient(135deg, var(--flowwer-soft), #fff);
    border: 1px solid var(--bs-border-color);
}

.invoice-amount-details {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
}

    .invoice-amount-details > summary {
        cursor: pointer;
        list-style-position: inside;
    }

    .invoice-amount-details[open] > summary {
        background: var(--bs-tertiary-bg);
        border-radius: .75rem .75rem 0 0;
    }

.invoice-amount-details-title {
    font-weight: 700;
}

.invoice-amount-details-summary {
    display: block;
    margin-top: .25rem;
    margin-left: 1.25rem;
    font-size: .875rem;
}

.invoice-amount-table th,
.invoice-amount-table td {
    padding: .65rem;
}

.invoice-amount-table td:last-child {
    min-width: 18rem;
}
