﻿/* ====================================================
   PHENOLOGIC CO. DEDICATED MOBILE STYLESHEET
   Active ONLY on mobile screens (max-width: 768px).
   Desktop/computer screens (> 768px) NEVER run this file.
   ==================================================== */

@media (max-width: 768px) {
    /* 1. Viewport & Body Scaling */
    html, body {
        width: 100% !important;
        max-width: 100vw !important;
        overflow-x: hidden !important;
        position: relative !important;
        font-size: 100% !important; /* Standard 16px base font on phone */
    }

    *, *::before, *::after {
        box-sizing: border-box !important;
    }

    p, h1, h2, h3, h4, h5, h6, span, div {
        word-wrap: break-word !important;
        overflow-wrap: break-word !important;
    }

    /* 2. Mobile 2-Row Header (All 5 Links Visible) */
    .site-header {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: auto !important;
        min-height: 70px !important;
        padding: 0.5rem 0.8rem 0.4rem 0.8rem !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: center !important;
        background: rgba(6, 9, 14, 0.98) !important;
        backdrop-filter: blur(16px) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        z-index: 1000 !important;
    }

    .header-logo-group {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 0.4rem !important;
        margin-bottom: 0.35rem !important;
    }

    .header-logo-icon {
        width: 28px !important;
        height: 28px !important;
    }

    .header-logo {
        font-size: 1.1rem !important;
        letter-spacing: 1.5px !important;
        line-height: 1 !important;
    }

    .header-subtitle {
        display: none !important;
    }

    .nav-links {
        display: flex !important;
        flex-direction: row !important;
        justify-content: space-around !important;
        align-items: center !important;
        width: 100% !important;
        gap: 0 !important;
        padding: 0.3rem 0 0 0 !important;
        margin: 0 !important;
        border-top: 1px solid rgba(255, 255, 255, 0.06) !important;
    }

    .nav-links a {
        font-size: 0.72rem !important;
        letter-spacing: 0.3px !important;
        padding: 3px 6px !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    /* 3. Homepage Split Gateway on Phone */
    .split-container {
        flex-direction: column !important;
        height: auto !important;
        min-height: 100vh !important;
        padding-top: 80px !important;
    }

    .panel {
        width: 100% !important;
        height: auto !important;
        min-height: 48vh !important;
        padding: 2.5rem 1rem !important;
        box-sizing: border-box !important;
    }

    .panel.left {
        border-right: none !important;
        border-bottom: 1px solid rgba(16, 185, 129, 0.15) !important;
    }

    .panel.right {
        border-top: 1px solid rgba(6, 182, 212, 0.15) !important;
    }

    .panel-content {
        max-width: 100% !important;
        width: 100% !important;
    }

    .illustration-wrapper {
        width: 150px !important;
        height: 150px !important;
        margin-bottom: 1rem !important;
    }

    .telemetry-radar {
        width: 120px !important;
        height: 120px !important;
    }

    .telemetry-radar::before {
        width: 70px !important;
        height: 70px !important;
    }

    .data-stream {
        bottom: 4px !important;
        left: 4px !important;
        right: 4px !important;
        padding: 0.3rem 0.4rem !important;
    }

    .stream-title {
        font-size: 0.6rem !important;
    }

    .stream-row {
        font-size: 0.62rem !important;
    }

    h2 {
        font-size: 1.2rem !important;
        margin-bottom: 0.5rem !important;
    }

    p.description {
        font-size: 0.84rem !important;
        margin-bottom: 1rem !important;
        max-width: 100% !important;
    }

    .cta-button {
        padding: 0.65rem 1.2rem !important;
        font-size: 0.78rem !important;
    }

    /* 4. Subpage Hero Banners */
    .subpage-hero {
        padding-top: 95px !important;
        padding-bottom: 2.2rem !important;
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        height: auto !important;
        min-height: unset !important;
    }

    .hero-wrapper {
        flex-direction: column !important;
        gap: 1.5rem !important;
        text-align: center !important;
        padding: 0 !important;
    }

    .hero-text-block {
        text-align: center !important;
        width: 100% !important;
    }

    .hero-text-block h1 {
        font-size: clamp(1.35rem, 5.5vw, 1.8rem) !important;
        line-height: 1.25 !important;
        margin-bottom: 0.8rem !important;
    }

    .lead-text {
        font-size: 0.9rem !important;
        line-height: 1.6 !important;
        max-width: 100% !important;
    }

    .hero-actions {
        justify-content: center !important;
        flex-direction: column !important;
        width: 100% !important;
        gap: 0.8rem !important;
    }

    .hero-actions .cta-button,
    .hero-actions .secondary-link {
        width: 100% !important;
        text-align: center !important;
        margin-left: 0 !important;
        box-sizing: border-box !important;
    }

    /* 5. Section Containers & Global Grid Collapse */
    .section-container {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0.8rem !important;
        padding-right: 0.8rem !important;
        box-sizing: border-box !important;
    }

    .subpage-content-grid {
        padding: 2.5rem 0.8rem !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    /* Force all multi-column desktop grids into single vertical columns */
    .content-split,
    .workflow-grid,
    .arms-grid,
    .projects-horizontal-grid,
    .intro-grid,
    .asset-showcase-row,
    div[style*="display: grid"],
    div[style*="display:grid"],
    div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        gap: 1.5rem !important;
    }

    [style*="min-width"] {
        min-width: 0 !important;
    }

    [style*="border-left: 1px solid"] {
        border-left: none !important;
        padding-left: 0 !important;
    }

    .asset-image {
        order: 1 !important;
        max-width: 280px !important;
        margin: 0 auto !important;
    }

    .asset-text {
        order: 2 !important;
        text-align: center !important;
    }

    .logo-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.2rem !important;
    }

    .workflow-section {
        padding: 2.5rem 0.8rem 1.8rem 0.8rem !important;
    }

    .collab-cta-section {
        padding: 2rem 0.8rem !important;
    }

    .collab-card {
        padding: 1.8rem 1rem !important;
        max-width: 100% !important;
    }

    .collab-card h2 {
        font-size: 1.35rem !important;
    }

    .collab-actions {
        flex-direction: column !important;
        width: 100% !important;
        gap: 0.8rem !important;
    }

    .email-btn-secondary {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
    }

    /* 6. Sidebar Tabs Matrix on Detail Pages */
    .tab-container.sidebar-layout {
        flex-direction: column !important;
        min-height: auto !important;
    }

    .sidebar-layout .tabs-nav {
        width: 100% !important;
        border-right: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        padding: 0.5rem 0 !important;
        gap: 0 !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .sidebar-layout .tab-btn {
        width: auto !important;
        display: inline-flex !important;
        border-left: none !important;
        border-bottom: 3px solid transparent !important;
        padding: 0.8rem 1rem !important;
        flex: 0 0 auto !important;
    }

    .sidebar-layout .tab-btn.active {
        border-bottom-color: var(--blue-primary) !important;
        border-left-color: transparent !important;
    }

    .sidebar-layout .tabs-content {
        padding: 1.2rem 0.8rem !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    /* 7. Mobile Tables & Scrollable Data Matrix Protection */
    table {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    .table-scroll-container,
    .judge-table-container,
    .skater-table-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        border-radius: 8px !important;
    }

    /* 8. SVG Charts, Plots & Images */
    svg,
    #kde-chart-svg,
    #federation-bubble-svg,
    #judge-bubble-svg,
    #tech-bubble-svg,
    #tech-individual-bubble-svg {
        max-width: 100% !important;
        height: auto !important;
    }

    img {
        max-width: 100% !important;
        height: auto !important;
    }

    /* 9. Cards & Modals */
    .publication-card,
    .project-card-sub,
    .skating-project-card,
    .blog-card,
    .blog-post-article,
    .metric-card {
        padding: 1.4rem 1rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    .modal-card {
        width: 95% !important;
        max-width: 95% !important;
        padding: 1.8rem 1rem !important;
        max-height: 90vh !important;
    }

    .modal-card h3 {
        font-size: 1.3rem !important;
    }

    /* 10. Site Footer on Mobile */
    .site-footer {
        padding: 2.5rem 0.8rem 2rem 0.8rem !important;
    }

    .footer-grid {
        grid-template-columns: 1fr !important;
        gap: 2rem !important;
    }
}

/* Extra-Compact Mobile Screens (<= 480px) */
@media (max-width: 480px) {
    .nav-links a {
        font-size: 0.68rem !important;
        letter-spacing: 0px !important;
        padding: 2px 4px !important;
    }

    .cta-button {
        padding: 0.6rem 1rem !important;
        font-size: 0.75rem !important;
    }

    .sidebar-layout .tab-btn {
        padding: 0.7rem 0.85rem !important;
        font-size: 0.75rem !important;
    }
}