/* Mobile optimizations for Scan and CVE detail pages */

@media (max-width: 767.98px) {
    /* ====================================
       Common optimizations for both pages
       ==================================== */

    /* Section titles */
    .section-title {
        font-size: 1.1rem !important;
        flex-wrap: wrap;
        margin-top: 1.5rem !important;
    }

    /* Reference links */
    .ref-link {
        font-size: 0.8rem !important;
        word-break: break-all;
    }

    /* Copy buttons */
    .copy-btn {
        font-size: 1.2rem !important;
        padding: 0.25rem !important;
    }

    /* Tables */
    .table-responsive {
        font-size: 0.75rem;
    }

    .table-responsive th,
    .table-responsive td {
        padding: 0.5rem 0.3rem !important;
    }

    /* Badges */
    .badge {
        font-size: 0.7rem !important;
    }

    /* Cards */
    .card {
        padding: 1rem !important;
    }

    /* Alerts */
    .alert {
        font-size: 0.85rem;
        padding: 0.75rem;
    }

    /* ====================================
       Scan Page Specific
       ==================================== */

    .scan-title {
        font-size: 1.25rem !important;
        word-break: break-word;
    }

    .scan-meta {
        font-size: 0.85rem !important;
    }

    #scan-results .btn {
        width: 100% !important;
        min-width: auto !important;
        flex: none !important;
        font-size: 0.875rem !important;
        padding: 0.5rem 0.75rem !important;
    }

    #domain-details-card .row > div {
        margin-bottom: 1rem;
    }

    #domain-details-card code {
        font-size: 0.75rem;
        word-break: break-all;
    }

    #cve-access-gate {
        padding: 1.5rem !important;
    }

    #cve-access-gate h3 {
        font-size: 1.25rem !important;
    }

    #cve-access-gate ul {
        font-size: 0.9rem;
    }

    #cve-access-gate .btn {
        width: 100% !important;
        margin: 0.25rem 0 !important;
    }

    .scan-status {
        font-size: 0.75rem;
        padding: 0.3em 0.7em;
    }

    #scan-results .table {
        font-size: 0.8rem;
    }

    #scan-results .table th,
    #scan-results .table td {
        padding: 0.5rem 0.3rem;
        vertical-align: middle;
    }

    #scan-results .tech-pill {
        font-size: 0.7rem;
        padding: 0.25em 0.6em;
    }

    #scan-results .version-badge {
        font-size: 0.7rem;
        padding: 0.2em 0.5em;
    }

    #scan-results .severity-badge {
        font-size: 0.6rem;
        padding: 0.25em 0.5em;
        min-width: 65px;
    }

    #scan-results .confidence {
        font-size: 0.75rem;
    }

    /* ====================================
       CVE Page Specific
       ==================================== */

    .container > article.card h1 {
        font-size: 1.5rem !important;
    }

    .container > article.card .d-flex.justify-content-between {
        flex-direction: column !important;
        gap: 1rem;
    }

    .container > article.card .text-end {
        text-align: left !important;
        width: 100%;
    }

    .container > article.card .text-end .d-grid {
        width: 100%;
    }

    .container > article.card .text-end .btn {
        width: 100%;
    }

    .container > article.card .row.g-3.mb-4 > div {
        padding: 0 !important;
        margin-bottom: 0.75rem;
    }

    .container > article.card .row.g-3.mb-4 .p-3 {
        padding: 0.75rem !important;
    }

    .container > article.card .row.g-3.mb-4 .fs-3 {
        font-size: 1.75rem !important;
    }

    .container > article.card .row.g-3.mb-4 .fs-5 {
        font-size: 1.25rem !important;
    }

    .container > article.card p.fs-6 {
        font-size: 0.9rem !important;
        line-height: 1.5;
    }

    .container > article.card h5.text-muted {
        font-size: 1rem !important;
    }

    code.cvss-vector-hover {
        font-size: 0.7rem !important;
        word-break: break-all;
        display: block;
    }

    #toast-container {
        top: 70px !important;
        right: 10px !important;
        left: 10px !important;
    }

    .custom-toast {
        min-width: auto !important;
        width: 100%;
        font-size: 13px !important;
        padding: 10px 15px !important;
    }

    #exploits-container h4 {
        font-size: 1.25rem !important;
    }

    #exploits-container h5 {
        font-size: 1rem !important;
    }

    #exploits-container .exploit-item {
        padding-bottom: 1rem !important;
        margin-bottom: 1rem !important;
    }

    #exploits-container .d-flex.justify-content-between {
        flex-direction: column !important;
        gap: 0.5rem;
    }

    #exploits-container pre {
        font-size: 0.7rem !important;
        max-height: 300px !important;
        padding: 0.75rem !important;
    }

    #exploits-container .btn-sm {
        font-size: 0.8rem !important;
        padding: 0.4rem 0.7rem !important;
    }

    #exploits-container .card.text-center {
        padding: 1.5rem !important;
    }

    #exploits-container .card.text-center h4 {
        font-size: 1.1rem !important;
    }

    #exploits-container .card.text-center ul {
        font-size: 0.85rem;
        text-align: left;
    }

    #exploits-container .card.text-center .btn-lg {
        width: 100%;
        font-size: 1rem !important;
        padding: 0.75rem 1rem !important;
    }

    .cvss-tooltip {
        left: 10px !important;
        right: 10px !important;
        max-width: none !important;
        width: auto !important;
    }

    .cvss-tooltip-header {
        font-size: 13px !important;
        padding: 8px 12px !important;
    }

    .cvss-tooltip-body {
        font-size: 12px !important;
        padding: 8px 12px !important;
    }

    .cvss-metric-row {
        padding: 4px 0 !important;
        flex-direction: column;
        gap: 0.25rem;
    }

    .cvss-metric-name,
    .cvss-metric-value {
        font-size: 11px !important;
    }

    /* ====================================
       Search Page Specific
       ==================================== */

    /* Search header */
    .display-5 {
        font-size: 1.75rem !important;
    }

    .lead {
        font-size: 1rem !important;
    }

    /* Search input and button */
    #search-form .input-group-lg > .form-control {
        font-size: 1rem !important;
        padding: 0.75rem 1rem !important;
        border-radius: 25px 0 0 25px !important;
    }

    #search-form .btn-lg {
        font-size: 0.9rem !important;
        padding: 0.75rem 1.5rem !important;
        border-radius: 0 25px 25px 0 !important;
    }

    /* Filters section */
    #filters-section {
        max-width: 100% !important;
    }

    #filters-section .card {
        padding: 0.75rem !important;
    }

    #filters-section h6 {
        font-size: 0.95rem !important;
    }

    #filters-section .form-label {
        font-size: 0.85rem !important;
    }

    #filters-section .form-select,
    #filters-section .form-control {
        font-size: 0.85rem !important;
        padding: 0.5rem !important;
    }

    /* Severity badges in filters */
    #filters-section .severity-badge {
        font-size: 0.65rem !important;
        padding: 0.25em 0.5em !important;
    }

    #filters-section .form-check-label {
        font-size: 0.85rem !important;
    }

    /* Filter buttons */
    #apply-filters-btn,
    #reset-filters-btn {
        font-size: 0.9rem !important;
        padding: 0.65rem !important;
    }

    /* Advanced filters locked overlay */
    #advanced-filters-locked h5 {
        font-size: 1.1rem !important;
    }

    #advanced-filters-locked ul {
        font-size: 0.85rem !important;
    }

    #advanced-filters-locked .btn {
        width: 100% !important;
    }

    /* Results summary */
    #results-summary {
        font-size: 0.9rem !important;
        padding: 0.75rem !important;
    }

    /* Export section */
    #export-section .card-body {
        padding: 0.75rem !important;
    }

    #export-section h6 {
        font-size: 0.9rem !important;
    }

    #export-section .btn-group {
        display: flex !important;
        flex-direction: column !important;
        width: 100%;
        gap: 0.5rem;
    }

    #export-section .btn-group .btn {
        width: 100% !important;
        margin: 0 !important;
    }

    /* Empty state */
    #empty-state h3 {
        font-size: 1.5rem !important;
    }

    #empty-state p {
        font-size: 0.95rem !important;
    }

    #empty-state svg {
        width: 80px !important;
        height: 80px !important;
    }

    #empty-state .btn {
        font-size: 0.85rem !important;
        padding: 0.5rem 1rem !important;
    }

    /* No results state */
    #no-results h3 {
        font-size: 1.5rem !important;
    }

    #no-results svg {
        width: 80px !important;
        height: 80px !important;
    }

    /* Search results tables */
    #results-container .table {
        font-size: 0.75rem !important;
    }

    #results-container .table th,
    #results-container .table td {
        padding: 0.5rem 0.3rem !important;
    }

    #results-container .summary-cell {
        font-size: 0.75rem !important;
        max-width: 200px;
        overflow: hidden;
        text-overflow: ellipsis;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        line-clamp: 2;
        -webkit-box-orient: vertical;
    }

    #results-container .severity-badge {
        font-size: 0.6rem !important;
        padding: 0.25em 0.5em !important;
        min-width: 60px;
    }

    #results-container .btn-sm {
        font-size: 0.75rem !important;
        padding: 0.35rem 0.6rem !important;
    }

    /* Pagination */
    .pagination {
        font-size: 0.8rem !important;
        flex-wrap: wrap;
        gap: 0.25rem;
    }

    .pagination .page-link {
        padding: 0.4rem 0.65rem !important;
        font-size: 0.8rem !important;
    }

    /* Recent CVEs section */
    #recent-cves-section .section-title {
        font-size: 1.1rem !important;
    }

    /* ====================================
       Scan Page Specific
       ==================================== */

    /* Scan page header */
    .display-4 {
        font-size: 1.75rem !important;
    }

    /* Scan form input and button */
    #scan-form .input-group-lg > .form-control {
        font-size: 1rem !important;
        padding: 0.75rem 1rem !important;
    }

    #scan-form .btn {
        font-size: 0.9rem !important;
        padding: 0.75rem 1.25rem !important;
    }

    #scan-form .form-text {
        font-size: 0.8rem !important;
    }

    #anonymous-notice {
        font-size: 0.8rem !important;
    }

    /* Recent scans section */
    #recent-scans-container .table {
        font-size: 0.75rem !important;
    }

    #recent-scans-container .table th,
    #recent-scans-container .table td {
        padding: 0.5rem 0.3rem !important;
    }

    #recent-scans-container .badge {
        font-size: 0.65rem !important;
        padding: 0.25em 0.5em !important;
    }

    #recent-scans-container .btn-sm {
        font-size: 0.75rem !important;
        padding: 0.35rem 0.6rem !important;
    }

    /* ====================================
       Vendor Page Specific
       ==================================== */

    /* Vendor header */
    article.card h1 {
        font-size: 1.5rem !important;
    }

    /* Vendor stats cards */
    article.card .row.g-2 > div {
        margin-bottom: 0.5rem;
    }

    article.card .row.g-2 .p-2,
    article.card .row.g-2 .p-md-3 {
        padding: 0.75rem !important;
    }

    article.card .row.g-2 .fs-3,
    article.card .row.g-2 .fs-md-2 {
        font-size: 1.5rem !important;
    }

    article.card .row.g-2 .small {
        font-size: 0.75rem !important;
    }

    /* Products table */
    #product-table-body .ref-link {
        font-size: 0.8rem !important;
    }

    #product-table-body .badge.fs-6 {
        font-size: 0.7rem !important;
    }

    #product-table-body .btn-sm {
        font-size: 0.75rem !important;
        padding: 0.35rem 0.6rem !important;
    }

    /* Pagination info */
    #pagination-info {
        font-size: 0.8rem !important;
    }

    /* Empty state on vendor page */
    article.card + section .card.text-center h3 {
        font-size: 1.25rem !important;
    }

    article.card + section .card.text-center p {
        font-size: 0.85rem !important;
    }

    article.card + section .card.text-center svg {
        width: 60px !important;
        height: 60px !important;
    }

    /* ====================================
       Product Page Specific
       ==================================== */

    /* Product header */
    article.card .d-flex.justify-content-between {
        flex-direction: column !important;
        align-items: flex-start !important;
    }

    /* Version filter section */
    #version-filter-container .d-flex.align-items-center.gap-3 {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.75rem !important;
    }

    #version-filter-container .flex-grow-1 {
        width: 100% !important;
        max-width: 100% !important;
    }

    #version-filter-container label {
        font-size: 0.85rem !important;
    }

    #version-filter-container .form-select {
        font-size: 0.85rem !important;
    }

    #version-filter-container .btn-sm {
        font-size: 0.75rem !important;
    }

    /* Version upgrade prompt */
    #version-upgrade-prompt .d-flex.align-items-center.justify-content-between {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 1rem !important;
    }

    #version-upgrade-prompt strong {
        font-size: 0.95rem !important;
    }

    #version-upgrade-prompt .small {
        font-size: 0.75rem !important;
    }

    #version-upgrade-prompt .btn {
        width: 100% !important;
    }

    /* CVE table on product page */
    #cve-table-body .ref-link {
        font-size: 0.75rem !important;
    }

    #cve-table-body .severity-badge {
        font-size: 0.6rem !important;
        padding: 0.25em 0.4em !important;
    }

    #cve-table-body .badge.bg-dark {
        font-size: 0.65rem !important;
    }

    #cve-table-body .text-truncate {
        font-size: 0.75rem !important;
        max-width: 150px !important;
    }

    #cve-table-body .btn-sm {
        font-size: 0.7rem !important;
        padding: 0.3rem 0.5rem !important;
    }

    /* Empty state on product page */
    section .card.text-center h3 {
        font-size: 1.25rem !important;
    }

    section .card.text-center p {
        font-size: 0.85rem !important;
    }

    section .card.text-center svg {
        width: 60px !important;
        height: 60px !important;
    }
}
