
/* Veltrion Web Platform Phase 35B: Mobile Layout Repair */
/* CSS-only patch. Fixes mobile side-panel squeeze / blank-space issue. */

/* PC layout remains mostly untouched. This patch only gets aggressive below tablet width. */

@media (max-width: 900px) {
    html,
    body {
        overflow-x: hidden !important;
    }

    .vweb-shell,
    .vweb-main {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        box-sizing: border-box !important;
        overflow-x: hidden !important;
    }

    .vweb-header--portal {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }

    .vweb-repair-portal,
    .vweb-portal.vweb-repair-portal,
    .vweb-premium-landing,
    .vweb-launch-landing {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 10px 0 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .vweb-repair-hero,
    .vweb-repair-side,
    .vweb-repair-server,
    .vweb-repair-coreline,
    .vweb-repair-newsline,
    .vweb-repair-ranking-preview {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    .vweb-repair-hero {
        min-height: 360px !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(232,185,101,.18) !important;
    }

    .vweb-repair-hero__art {
        background-position: 63% center !important;
    }

    .vweb-repair-hero__copy {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 360px !important;
        padding: 34px 20px 28px !important;
        box-sizing: border-box !important;
    }

    .vweb-repair-portal h1,
    .vweb-repair-hero__copy h1 {
        font-size: clamp(54px, 16vw, 82px) !important;
        line-height: .88 !important;
        word-break: keep-all !important;
        white-space: normal !important;
    }

    .vweb-repair-portal .vweb-portal__eyebrow {
        font-size: clamp(18px, 5.5vw, 26px) !important;
        line-height: 1.25 !important;
        word-break: keep-all !important;
    }

    .vweb-repair-portal .vweb-portal__desc {
        max-width: 320px !important;
        font-size: 14px !important;
        line-height: 1.55 !important;
    }

    .vweb-repair-actions {
        gap: 8px !important;
    }

    .vweb-repair-actions .vweb-btn {
        min-height: 44px !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
        font-size: 14px !important;
    }

    .vweb-repair-side {
        display: block !important;
        padding: 10px !important;
        border-left: 0 !important;
        border-top: 1px solid rgba(232,185,101,.18) !important;
        background: rgba(5,4,3,.96) !important;
    }

    .vweb-repair-start,
    .vweb-repair-login,
    .vweb-repair-community {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 10px !important;
        box-sizing: border-box !important;
    }

    .vweb-repair-start {
        padding: 16px 14px 14px !important;
    }

    .vweb-repair-start__crest {
        width: 48px !important;
        height: 48px !important;
        margin-bottom: 8px !important;
    }

    .vweb-repair-start__button {
        width: 100% !important;
        min-height: 64px !important;
        padding: 10px 12px !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .vweb-repair-start__button strong {
        font-size: 26px !important;
        line-height: 1.05 !important;
        letter-spacing: .05em !important;
        white-space: nowrap !important;
    }

    .vweb-repair-start__button span {
        margin-top: 4px !important;
        font-size: 10px !important;
        letter-spacing: .20em !important;
        white-space: nowrap !important;
    }

    .vweb-repair-start__steps {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
        width: 100% !important;
    }

    .vweb-repair-start__steps a {
        min-width: 0 !important;
        min-height: 58px !important;
        padding: 8px 3px !important;
        word-break: keep-all !important;
        overflow: hidden !important;
    }

    .vweb-repair-start__steps b {
        font-size: 12px !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    .vweb-repair-start__steps span {
        font-size: 10px !important;
        line-height: 1.25 !important;
        white-space: normal !important;
    }

    .vweb-repair-login {
        padding: 13px !important;
    }

    .vweb-repair-login .vweb-login-card__body {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 8px !important;
    }

    .vweb-repair-login .vweb-login-card__login,
    .vweb-repair-login .vweb-login-card__join {
        width: 100% !important;
        min-height: 40px !important;
        font-size: 13px !important;
    }

    .vweb-repair-community {
        padding: 13px !important;
        margin-bottom: 0 !important;
    }

    .vweb-repair-community h3 {
        font-size: 16px !important;
        line-height: 1.2 !important;
        word-break: keep-all !important;
    }

    .vweb-repair-community .vweb-community-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .vweb-repair-community .vweb-community-grid a {
        min-width: 0 !important;
        min-height: 36px !important;
        padding: 0 4px !important;
        font-size: 11px !important;
        line-height: 1.2 !important;
        writing-mode: horizontal-tb !important;
        text-orientation: mixed !important;
        white-space: nowrap !important;
        word-break: keep-all !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .vweb-repair-server {
        padding: 10px !important;
        border-right: 0 !important;
        border-top: 1px solid rgba(232,185,101,.16) !important;
    }

    .vweb-repair-server .vweb-server-list,
    .vweb-server-list {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    .vweb-repair-coreline {
        display: grid !important;
        grid-template-columns: 1fr !important;
        border-right: 0 !important;
    }

    .vweb-repair-coreline a {
        min-height: 62px !important;
        padding: 13px 15px !important;
        border-right: 0 !important;
        border-bottom: 1px solid rgba(232,185,101,.12) !important;
        writing-mode: horizontal-tb !important;
        text-orientation: mixed !important;
    }

    .vweb-repair-coreline b,
    .vweb-repair-coreline span {
        writing-mode: horizontal-tb !important;
        text-orientation: mixed !important;
        word-break: keep-all !important;
        white-space: normal !important;
    }

    .vweb-repair-newsline {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 10px !important;
        border-right: 0 !important;
    }

    .vweb-repair-ranking-preview,
    .vweb-portal-ranking-preview {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        padding: 10px !important;
    }

    .vweb-portal-panel,
    .vweb-portal-ranking-preview > article,
    .vweb-media-showcase,
    .vweb-service-dock,
    .vweb-live-ops,
    .vweb-analytics-snapshot {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow: hidden !important;
    }

    .vweb-portal-panel__head h3,
    .vweb-portal-panel__head a,
    .vweb-portal-panel *,
    .vweb-media-showcase *,
    .vweb-service-dock *,
    .vweb-live-ops *,
    .vweb-analytics-snapshot * {
        word-break: keep-all !important;
    }

    .vweb-mobile-bottom-nav,
    .vweb-bottom-nav,
    .vweb-mobile-dock {
        width: calc(100% - 20px) !important;
        left: 10px !important;
        right: 10px !important;
        max-width: none !important;
    }
}

@media (max-width: 430px) {
    .vweb-shell,
    .vweb-main {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    .vweb-header--portal {
        min-height: 58px !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .vweb-brand--portal strong {
        font-size: 22px !important;
    }

    .vweb-brand--portal em {
        font-size: 9px !important;
    }

    .vweb-brand--portal .vweb-brand__crest,
    .vweb-brand--portal .vweb-brand__crest img {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
    }

    .vweb-repair-hero {
        min-height: 330px !important;
    }

    .vweb-repair-hero__copy {
        min-height: 330px !important;
        padding: 30px 16px 24px !important;
    }

    .vweb-repair-actions {
        flex-direction: row !important;
    }

    .vweb-repair-actions .vweb-btn {
        min-width: 0 !important;
        flex: 1 1 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
        font-size: 12px !important;
        white-space: nowrap !important;
    }

    .vweb-repair-start__steps {
        grid-template-columns: 1fr !important;
    }

    .vweb-repair-start__steps a {
        min-height: 46px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
        text-align: left !important;
    }

    .vweb-repair-start__steps span {
        text-align: right !important;
    }

    .vweb-repair-community .vweb-community-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .vweb-repair-login .vweb-login-card__body {
        grid-template-columns: 1fr !important;
    }
}
