/*
 * NeuralDocs public ecosystem — canonical override layer.
 *
 * Keep this file intentionally small. The structural and scene styles live in
 * index-v2.css; this file only owns the current compact catalogue, the expanded
 * experience sizing and the page-level back-to-top control.
 */

/* Expanded experience: use the complete visual surface at every resolution. */
.ecosystem-immersive-body {
    grid-template-columns: minmax(330px, .72fr) minmax(0, 1.28fr) !important;
    gap: clamp(26px, 3vw, 64px) !important;
}

.ecosystem-live-panel,
#ecosystemModuleVisual,
#ecosystemModuleVisual > .module-scene {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

#ecosystemModuleVisual > .module-scene {
    min-height: clamp(340px, 46vh, 650px) !important;
}

/* Compact, centred page control. */
.back-to-top {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: max(18px, env(safe-area-inset-bottom)) !important;
    display: grid !important;
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
    padding: 0 !important;
    place-items: center;
    border: 1px solid rgba(86, 214, 238, .34) !important;
    border-radius: 17px !important;
    color: #dffbff !important;
    background: rgba(3, 18, 31, .9) !important;
    box-shadow: 0 16px 44px rgba(0, 0, 0, .38), inset 0 1px rgba(255, 255, 255, .05) !important;
    backdrop-filter: blur(18px);
    transform: translate(-50%, 18px) scale(.9) !important;
    opacity: 0;
    pointer-events: none;
    z-index: 120;
}

.back-to-top.is-visible {
    transform: translate(-50%, 0) scale(1) !important;
    opacity: 1;
    pointer-events: auto;
}

.back-to-top:hover,
.back-to-top:focus-visible {
    color: #04141d !important;
    background: #45d8ed !important;
    border-color: #45d8ed !important;
}

.back-to-top span { display: none !important; }
.back-to-top svg { width: 20px !important; height: 20px !important; }

/* The current public catalogue is a compact, ordered grid. */
#ecosistema .ecosystem-layout.is-grid-closed {
    grid-template-columns: minmax(280px, .68fr) minmax(0, 1.58fr) !important;
    align-items: start !important;
}

#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    grid-auto-flow: row dense !important;
    grid-auto-columns: auto !important;
    grid-template-rows: none !important;
    align-content: start !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    overflow: visible !important;
    transform: none !important;
}

#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="helix"] { order: 1; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="center"] { order: 2; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="analytics"] { order: 3; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="map"] { order: 4; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="workspace"] { order: 5; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="meeting"] { order: 6; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="calendar"] { order: 7; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="sources"] { order: 8; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="inbox"] { order: 9; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="talent"] { order: 10; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="vault"] { order: 11; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="trust"] { order: 12; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="progress"] { order: 13; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="downloads"] { order: 14; }
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="hub"] { order: 15; }

#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card,
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module] {
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    grid-column: span 1 !important;
    gap: 10px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 164px !important;
    height: auto !important;
    padding: 16px !important;
    overflow: hidden !important;
    border-radius: 18px !important;
    scroll-snap-align: none !important;
}

#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="helix"],
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="center"],
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="vault"],
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="downloads"],
#ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="hub"] {
    grid-column: span 2 !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-copy {
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-index,
#ecosistema .ecosystem-layout.is-grid-closed .module-card-proof,
#ecosistema .ecosystem-layout.is-grid-closed .module-card-stage {
    display: none !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-head {
    display: flex !important;
    align-items: center !important;
    gap: 9px !important;
    min-width: 0 !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-kicker {
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-title {
    max-width: 100% !important;
    margin: 0 !important;
    font-size: clamp(1rem, 1.08vw, 1.2rem) !important;
    line-height: 1.12 !important;
    overflow-wrap: anywhere !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-summary {
    display: -webkit-box !important;
    max-width: none !important;
    min-height: 3em !important;
    margin: 0 !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    font-size: .72rem !important;
    line-height: 1.46 !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-foot {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
    width: 100% !important;
    margin: auto 0 0 !important;
    padding-top: 10px !important;
}

#ecosistema .ecosystem-layout.is-grid-closed .module-card-foot > small,
#ecosistema .ecosystem-layout.is-grid-closed .module-card-open {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 28px !important;
    height: 28px !important;
    padding: 0 10px !important;
    border-radius: 9px !important;
    font-size: .56rem !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

/* Expanded experience borders derive from the active module colour. */
#ecosystemImmersivePanel {
    border-color: rgba(var(--experience-rgb), .30) !important;
    box-shadow:
        0 34px 90px rgba(0, 0, 0, .54),
        inset 0 1px 0 rgba(var(--experience-rgb), .035) !important;
}

#ecosystemImmersivePanel .ecosystem-capability-grid article {
    border-color: rgba(var(--experience-rgb), .15) !important;
    box-shadow: inset 0 1px 0 rgba(var(--experience-rgb), .025) !important;
}

#ecosystemImmersivePanel .ecosystem-live-panel {
    border-color: rgba(var(--experience-rgb), .22) !important;
    box-shadow:
        0 26px 58px rgba(0, 0, 0, .28),
        inset 0 1px 0 rgba(var(--experience-rgb), .03) !important;
}

@media (max-width: 1450px) {
    #ecosistema .ecosystem-layout.is-grid-closed {
        grid-template-columns: minmax(250px, .58fr) minmax(0, 1.42fr) !important;
    }

    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="helix"],
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="center"],
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="vault"],
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="downloads"],
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module="hub"] {
        grid-column: span 2 !important;
    }
}

@media (max-width: 1100px) {
    .ecosystem-immersive-body {
        grid-template-columns: 1fr !important;
    }
}

@media (max-width: 960px) {
    #ecosistema .ecosystem-layout.is-grid-closed {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (max-width: 720px) {
    #ecosystemImmersivePanel {
        border-color: rgba(var(--experience-rgb), .22) !important;
    }

    #ecosystemImmersivePanel .ecosystem-capability-grid article {
        border-color: rgba(var(--experience-rgb), .14) !important;
    }
}

@media (max-width: 640px) {
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 10px !important;
    }

    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card,
    #ecosistema .ecosystem-layout.is-grid-closed #moduleGrid .module-card[data-module] {
        grid-column: span 1 !important;
        min-height: 158px !important;
        padding: 15px !important;
        border-radius: 17px !important;
    }

    #ecosistema .ecosystem-layout.is-grid-closed .module-card-title {
        font-size: 1.05rem !important;
    }

    #ecosistema .ecosystem-layout.is-grid-closed .module-card-summary {
        font-size: .74rem !important;
    }

    .back-to-top {
        width: 48px !important;
        min-width: 48px !important;
        height: 48px !important;
        min-height: 48px !important;
        border-radius: 15px !important;
    }
}
