/* =========================================================
   APEX GAMES — LIBRARY
   CLIENT + UNSUPPORTED WEB EXPERIENCE
========================================================= */

body {
    background: #05070b;
}


/* =========================================================
   CLIENT LIBRARY
========================================================= */

.library-app {
    height: calc(100vh - 78px);
    margin-top: 78px;

    display: grid;
    grid-template-columns:
        300px
        minmax(0, 1fr);

    background: #05070b;
    overflow: hidden;
}

.library-app[hidden] {
    display: none;
}


/* =========================================================
   SIDEBAR
========================================================= */

.library-sidebar {
    min-width: 0;

    padding:
        28px
        18px
        18px;

    display: flex;
    flex-direction: column;

    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #080d14 0%,
            #06090e 100%
        );

    border-right:
        1px solid rgba(62,161,255,.12);
}

.library-title {
    padding: 0 8px;
    margin-bottom: 22px;
}

.library-title p {
    color: #168cff;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: 2.5px;
}

.library-title h1 {
    margin-top: 3px;
    font-size: 28px;
}

.library-game-count {
    display: block;

    margin-top: 5px;

    color: #677486;
    font-size: 11px;
}


/* =========================================================
   CLIENT SEARCH
========================================================= */

.library-search {
    position: relative;
}

.library-search-icon {
    position: absolute;

    left: 12px;
    top: 50%;

    transform: translateY(-50%);

    color: #697586;

    pointer-events: none;
}

.library-search input {
    width: 100%;
    height: 40px;

    padding:
        0
        13px
        0
        34px;

    outline: none;

    border-radius: 4px;

    background:
        rgba(255,255,255,.035);

    border:
        1px solid rgba(255,255,255,.09);

    color: white;

    transition:
        border-color .2s ease,
        background .2s ease,
        box-shadow .2s ease;
}

.library-search input:hover {
    background:
        rgba(255,255,255,.05);
}

.library-search input:focus {
    border-color: #168cff;

    box-shadow:
        0 0 0 3px rgba(22,140,255,.08);
}


/* =========================================================
   CLIENT FILTERS
========================================================= */

.library-filters {
    margin:
        18px
        0
        18px;

    display: grid;

    gap: 4px;
}

.filter-button {
    padding:
        10px
        12px;

    border: 0;

    border-radius: 4px;

    background: transparent;

    color: #8893a3;

    text-align: left;

    font-weight: 700;

    cursor: pointer;

    transition:
        background .18s ease,
        color .18s ease;
}

.filter-button:hover {
    background:
        rgba(255,255,255,.045);

    color: #dce5ef;
}

.filter-button.active {
    background:
        rgba(22,140,255,.12);

    color: white;
}


/* =========================================================
   CLIENT GAME LIST
========================================================= */

.library-game-list {
    flex: 1;

    min-height: 0;

    padding-top: 14px;

    overflow-y: auto;

    border-top:
        1px solid rgba(255,255,255,.07);
}

.library-game {
    width: 100%;

    margin-bottom: 3px;

    padding: 9px;

    display: flex;
    align-items: center;

    gap: 11px;

    border: 0;

    border-radius: 5px;

    background: transparent;

    color: white;

    text-align: left;

    cursor: pointer;

    transition:
        background .16s ease;
}

.library-game:hover {
    background: #101722;
}

.library-game.active {
    background:
        rgba(22,140,255,.14);
}

.game-list-icon {
    width: 38px;
    height: 46px;

    flex-shrink: 0;

    display: grid;
    place-items: center;

    border-radius: 3px;

    background:
        linear-gradient(
            145deg,
            #168cff,
            #0a396e
        );

    color: white;

    font-size: 18px;
    font-weight: 900;

    box-shadow:
        0 5px 14px rgba(0,0,0,.20);
}

.game-list-copy {
    min-width: 0;

    flex: 1;
}

.game-list-title-row {
    display: flex;
    align-items: center;

    gap: 6px;
}

.library-game strong {
    min-width: 0;

    display: block;

    overflow: hidden;

    white-space: nowrap;

    text-overflow: ellipsis;

    font-size: 13px;
}

.library-game span {
    display: block;

    margin-top: 2px;

    color: #697586;

    font-size: 10px;
}

.game-list-favorite {
    margin: 0 !important;

    flex-shrink: 0;

    color: #3ea1ff !important;

    font-size: 11px !important;
}


/* =========================================================
   CLIENT LIST EMPTY
========================================================= */

.library-list-empty {
    padding: 20px 12px;

    color: #778395;
}

.library-list-empty strong,
.library-list-empty span {
    display: block;
}

.library-list-empty strong {
    color: #c9d2dc;

    font-size: 12px;
}

.library-list-empty span {
    margin-top: 4px;

    font-size: 10px;
}


/* =========================================================
   CLIENT SIDEBAR FOOTER
========================================================= */

.library-sidebar-footer {
    margin-top: 14px;

    padding:
        14px
        8px
        2px;

    display: flex;
    align-items: center;

    gap: 10px;

    border-top:
        1px solid rgba(255,255,255,.06);
}

.client-indicator-dot {
    width: 8px;
    height: 8px;

    flex-shrink: 0;

    border-radius: 50%;

    background: #687586;
}

.client-connected .client-indicator-dot {
    background: #43d17a;

    box-shadow:
        0 0 9px rgba(67,209,122,.6);
}

.library-sidebar-footer strong,
.library-sidebar-footer span {
    display: block;
}

.library-sidebar-footer strong {
    color: #b9c3ce;

    font-size: 10px;
}

.library-sidebar-footer span {
    margin-top: 2px;

    color: #637083;

    font-size: 9px;
}


/* =========================================================
   SELECTED GAME
========================================================= */

.selected-game {
    min-width: 0;

    overflow-y: auto;
}


/* =========================================================
   BANNER
========================================================= */

.game-banner {
    position: relative;

    min-height: 360px;

    overflow: hidden;

    border-bottom:
        1px solid rgba(255,255,255,.08);

    background:
        radial-gradient(
            circle at 70% 30%,
            rgba(22,140,255,.30),
            transparent 32%
        ),
        radial-gradient(
            circle at 40% 100%,
            rgba(22,140,255,.10),
            transparent 35%
        ),
        linear-gradient(
            125deg,
            #071524 0%,
            #050b12 50%,
            #030609 100%
        );
}

.game-banner.banner-dark {
    background:
        radial-gradient(
            circle at 75% 25%,
            rgba(110,125,145,.15),
            transparent 28%
        ),
        radial-gradient(
            circle at 45% 100%,
            rgba(22,140,255,.06),
            transparent 35%
        ),
        linear-gradient(
            125deg,
            #10141b,
            #07090d 55%,
            #030405
        );
}

.game-banner::before {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to top,
            #05070b,
            transparent 65%
        );

    z-index: 1;
}

.game-banner-grid {
    position: absolute;
    inset: 0;

    opacity: .16;

    background-image:
        linear-gradient(
            rgba(255,255,255,.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.035) 1px,
            transparent 1px
        );

    background-size:
        54px
        54px;

    mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.8),
            transparent
        );
}

.banner-overlay {
    position: absolute;

    left: 50px;
    bottom: 38px;

    z-index: 2;
}

.game-studio {
    margin-bottom: 8px;

    color: #3ea1ff;

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 2.5px;
}

.banner-overlay h2 {
    font-size:
        clamp(38px, 4vw, 58px);

    line-height: 1;

    letter-spacing: -2px;
}

.banner-meta {
    margin-top: 13px;

    display: flex;
    align-items: center;

    gap: 9px;

    color: #7e8b9c;

    font-size: 11px;
}

.banner-meta-dot {
    width: 3px;
    height: 3px;

    border-radius: 50%;

    background: #536071;
}


/* =========================================================
   ACTION BAR
========================================================= */

.game-actions-panel {
    min-height: 92px;

    padding:
        18px
        50px;

    display: flex;
    align-items: center;

    gap: 35px;

    background:
        rgba(7,11,17,.96);

    border-bottom:
        1px solid rgba(255,255,255,.07);
}

.play-game-button {
    height: 52px;

    min-width: 145px;

    padding: 0 25px;

    border: 0;

    border-radius: 5px;

    background: #168cff;

    color: white;

    font-weight: 900;

    letter-spacing: 1px;

    cursor: pointer;

    box-shadow:
        0 8px 28px rgba(22,140,255,.15);

    transition:
        background .2s ease,
        transform .2s ease,
        box-shadow .2s ease;
}

.play-game-button:hover {
    background: #3ea1ff;

    transform:
        translateY(-2px);

    box-shadow:
        0 10px 34px rgba(22,140,255,.25);
}

.play-game-button.install-mode {
    background: #e8edf3;

    color: #07101a;

    box-shadow: none;
}

.play-game-button.install-mode:hover {
    background: white;
}

.game-stat span {
    display: block;

    color: #697586;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 1.5px;
}

.game-stat strong {
    display: block;

    margin-top: 3px;

    color: #e9eef4;

    font-size: 13px;
}

.favorite-game-button {
    width: 45px;
    height: 45px;

    margin-left: auto;

    border:
        1px solid rgba(255,255,255,.10);

    border-radius: 5px;

    background: #10151d;

    color: #168cff;

    font-size: 24px;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease,
        transform .2s ease;
}

.favorite-game-button:hover {
    background:
        rgba(22,140,255,.10);

    border-color:
        rgba(22,140,255,.35);

    transform:
        translateY(-2px);
}


/* =========================================================
   CLIENT MESSAGE
========================================================= */

.client-action-message {
    margin:
        18px
        50px
        0;

    padding:
        14px
        16px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    background:
        rgba(22,140,255,.08);

    border:
        1px solid rgba(22,140,255,.22);
}

.client-action-message[hidden] {
    display: none;
}

.client-action-message strong,
.client-action-message span {
    display: block;
}

.client-action-message strong {
    color: #eaf4ff;

    font-size: 12px;
}

.client-action-message span {
    margin-top: 3px;

    color: #8392a5;

    font-size: 11px;
}

.client-action-message button {
    width: 30px;
    height: 30px;

    flex-shrink: 0;

    border: 0;

    background: transparent;

    color: #8290a2;

    font-size: 20px;

    cursor: pointer;
}


/* =========================================================
   CLIENT DASHBOARD
========================================================= */

.game-dashboard {
    padding:
        30px
        50px
        70px;

    display: grid;

    grid-template-columns:
        minmax(0,1fr)
        310px;

    gap: 22px;

    background:
        radial-gradient(
            circle at 80% 0%,
            rgba(22,140,255,.04),
            transparent 30%
        );
}

.game-main-info,
.game-side-info {
    display: grid;

    align-content: start;

    gap: 22px;
}


/* =========================================================
   DASHBOARD CARDS
========================================================= */

.dashboard-card {
    padding: 25px;

    border-radius: 6px;

    background:
        linear-gradient(
            145deg,
            rgba(14,20,29,.96),
            rgba(7,11,17,.96)
        );

    border:
        1px solid rgba(255,255,255,.07);

    transition:
        border-color .2s ease;
}

.dashboard-card:hover {
    border-color:
        rgba(22,140,255,.16);
}

.dashboard-card h3 {
    margin-bottom: 10px;

    font-size: 21px;
}

.dashboard-card >
p:not(.section-label) {
    color: #8994a3;

    line-height: 1.7;

    font-size: 14px;
}

.section-label {
    color: #3ea1ff;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 2px;
}


/* =========================================================
   ACHIEVEMENTS
========================================================= */

.card-heading {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 20px;
}

.card-heading strong {
    color: #8994a3;
}

.achievement-progress {
    height: 6px;

    margin:
        18px
        0;

    overflow: hidden;

    background: #161d27;
}

.achievement-bar {
    width: 0%;
    height: 100%;

    background: #168cff;

    transition:
        width .3s ease;
}

.muted-text {
    color: #697586 !important;
}


/* =========================================================
   MANAGEMENT
========================================================= */

.management-actions {
    margin-top: 18px;

    display: flex;
    flex-wrap: wrap;

    gap: 9px;
}

.management-button {
    min-height: 38px;

    padding:
        0
        14px;

    border:
        1px solid rgba(255,255,255,.09);

    border-radius: 4px;

    background:
        rgba(255,255,255,.035);

    color: #c5ced8;

    font-size: 11px;
    font-weight: 700;

    cursor: pointer;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease;
}

.management-button:hover:not(:disabled) {
    background:
        rgba(255,255,255,.07);

    border-color:
        rgba(255,255,255,.15);

    color: white;
}

.management-button.danger:hover:not(:disabled) {
    background:
        rgba(239,91,91,.08);

    border-color:
        rgba(239,91,91,.25);

    color: #ff8b8b;
}

.management-button:disabled {
    opacity: .35;

    cursor: not-allowed;
}

.manage-message {
    margin-top: 16px;
}


/* =========================================================
   RATING
========================================================= */

.community-rating {
    display: flex;
    align-items: center;

    gap: 7px;
}

.community-rating strong {
    font-size: 38px;
}

.community-rating span {
    color: #168cff;

    font-size: 27px;
}

.rating-count {
    color: #697586 !important;

    font-size: 12px !important;
}

.rating-divider {
    height: 1px;

    margin:
        22px
        0;

    background:
        rgba(255,255,255,.08);
}

.your-rating-title {
    color: #8994a3 !important;

    font-size: 10px !important;
    font-weight: 800;

    letter-spacing: 1.5px;
}

.star-rating {
    margin-top: 9px;

    display: flex;

    gap: 4px;
}

.star-rating button {
    padding: 0;

    border: 0;

    background: transparent;

    color: #168cff;

    font-size: 28px;

    cursor: pointer;

    transition:
        transform .15s ease;
}

.star-rating button:hover {
    transform:
        scale(1.2);
}

.rating-message {
    margin-top: 6px;

    font-size: 11px !important;
}


/* =========================================================
   DETAILS
========================================================= */

.detail-row {
    padding:
        11px
        0;

    display: flex;
    justify-content: space-between;

    gap: 20px;

    border-bottom:
        1px solid rgba(255,255,255,.06);

    font-size: 12px;
}

.detail-row:last-child {
    border-bottom: 0;
}

.detail-row span {
    color: #697586;
}

.detail-row strong {
    color: #d9e0e9;

    text-align: right;
}


/* =========================================================
   UNSUPPORTED WEB LIBRARY
========================================================= */

.unsupported-library {
    min-height: calc(100vh - 78px);

    margin-top: 78px;

    padding:
        44px
        42px
        70px;

    background:
        radial-gradient(
            circle at 84% 4%,
            rgba(22,140,255,.10),
            transparent 24%
        ),
        radial-gradient(
            circle at 8% 40%,
            rgba(22,140,255,.035),
            transparent 30%
        ),
        #05070b;
}

.unsupported-library[hidden] {
    display: none;
}

.unsupported-shell {
    width: min(1180px, 100%);

    margin: 0 auto;
}


/* =========================================================
   UNSUPPORTED HEADING
========================================================= */

.unsupported-heading {
    margin-bottom: 28px;
}

.unsupported-eyebrow {
    color: #3ea1ff;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: 2.4px;
}

.unsupported-heading h1 {
    margin-top: 7px;

    color: #f4f7fb;

    font-size:
        clamp(34px, 4vw, 48px);

    letter-spacing: -1.5px;
}

.unsupported-heading > p:last-child {
    max-width: 690px;

    margin-top: 10px;

    color: #7e8998;

    font-size: 14px;

    line-height: 1.7;
}


/* =========================================================
   COMPATIBILITY PANEL
========================================================= */

.compatibility-panel {
    position: relative;

    min-height: 310px;

    padding:
        38px
        38px;

    display: grid;

    grid-template-columns:
        150px
        minmax(0, 1fr)
        290px;

    align-items: center;

    gap: 34px;

    overflow: hidden;

    border:
        1px solid rgba(62,161,255,.16);

    border-radius: 9px;

    background:
        linear-gradient(
            135deg,
            rgba(11,18,28,.98),
            rgba(6,10,16,.98)
        );

    box-shadow:
        0 25px 70px rgba(0,0,0,.25);
}

.compatibility-glow {
    position: absolute;

    width: 430px;
    height: 430px;

    left: -180px;
    top: -230px;

    border-radius: 50%;

    background:
        radial-gradient(
            circle,
            rgba(22,140,255,.22),
            transparent 68%
        );

    pointer-events: none;
}


/* =========================================================
   DEVICE ILLUSTRATION
========================================================= */

.compatibility-icon {
    position: relative;

    width: 125px;
    height: 125px;

    margin: auto;

    display: grid;
    place-items: center;
}

.device-screen {
    width: 104px;
    height: 72px;

    position: relative;

    display: grid;
    place-items: center;

    border:
        2px solid rgba(135,186,235,.65);

    border-radius: 7px;

    background:
        linear-gradient(
            145deg,
            #0b2035,
            #07101b
        );

    box-shadow:
        inset 0 0 30px rgba(22,140,255,.08),
        0 14px 40px rgba(0,0,0,.25);
}

.device-screen::after {
    content: "";

    position: absolute;

    inset: 7px;

    border:
        1px solid rgba(255,255,255,.035);

    border-radius: 3px;
}

.device-apex-mark {
    color: #3ea1ff;

    font-size: 32px;
    font-weight: 900;

    font-style: italic;

    text-shadow:
        0 0 18px rgba(22,140,255,.35);
}

.device-base {
    position: absolute;

    width: 122px;
    height: 10px;

    left: 2px;
    top: 87px;

    border-radius:
        2px
        2px
        7px
        7px;

    background:
        linear-gradient(
            180deg,
            #8893a0,
            #35404d
        );

    opacity: .7;
}

.device-warning {
    position: absolute;

    width: 32px;
    height: 32px;

    right: 3px;
    bottom: 11px;

    display: grid;
    place-items: center;

    border-radius: 50%;

    background: #151b24;

    border:
        2px solid #ffb84a;

    color: #ffb84a;

    font-size: 17px;
    font-weight: 900;

    box-shadow:
        0 8px 25px rgba(0,0,0,.34);
}


/* =========================================================
   COMPATIBILITY COPY
========================================================= */

.compatibility-copy {
    position: relative;

    z-index: 1;
}

.compatibility-copy h2 {
    max-width: 630px;

    margin-top: 9px;

    color: #f4f7fb;

    font-size:
        clamp(25px, 3vw, 36px);

    line-height: 1.15;

    letter-spacing: -1px;
}

.compatibility-copy > p:not(.unsupported-eyebrow) {
    max-width: 680px;

    margin-top: 14px;

    color: #8b97a6;

    font-size: 14px;

    line-height: 1.7;
}

.compatibility-copy .compatibility-note {
    color: #657285 !important;

    font-size: 12px !important;
}


/* =========================================================
   COMPATIBILITY BUTTONS
========================================================= */

.compatibility-actions {
    margin-top: 23px;

    display: flex;
    flex-wrap: wrap;

    gap: 10px;
}

.unsupported-primary-button,
.unsupported-secondary-button {
    min-height: 42px;

    padding:
        0
        18px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border-radius: 4px;

    font-size: 11px;
    font-weight: 900;

    letter-spacing: .8px;

    text-decoration: none;

    transition:
        transform .18s ease,
        background .18s ease,
        border-color .18s ease;
}

.unsupported-primary-button {
    background: #168cff;

    color: white;

    border:
        1px solid #168cff;

    box-shadow:
        0 8px 24px rgba(22,140,255,.15);
}

.unsupported-primary-button:hover {
    background: #3ea1ff;

    border-color: #3ea1ff;

    transform:
        translateY(-1px);
}

.unsupported-secondary-button {
    background:
        rgba(255,255,255,.03);

    color: #c7d0da;

    border:
        1px solid rgba(255,255,255,.10);
}

.unsupported-secondary-button:hover {
    background:
        rgba(255,255,255,.06);

    border-color:
        rgba(255,255,255,.18);

    color: white;

    transform:
        translateY(-1px);
}


/* =========================================================
   COMPATIBILITY STATUS
========================================================= */

.compatibility-status {
    position: relative;

    z-index: 1;

    display: grid;

    gap: 12px;
}

.compatibility-status-row {
    min-height: 92px;

    padding:
        17px
        16px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    gap: 14px;

    border-radius: 6px;

    background:
        rgba(255,255,255,.025);

    border:
        1px solid rgba(255,255,255,.07);
}

.compatibility-status-row div > span {
    display: block;

    color: #647184;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: 1.4px;
}

.compatibility-status-row strong {
    display: block;

    margin-top: 5px;

    color: #e6ecf2;

    font-size: 14px;
}

.support-pill {
    width: fit-content;

    padding:
        5px
        8px;

    border-radius: 3px;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .8px;
}

.support-pill.unsupported {
    background:
        rgba(255,184,74,.08);

    border:
        1px solid rgba(255,184,74,.20);

    color: #ffbf5a;
}

.support-pill.supported {
    background:
        rgba(67,209,122,.08);

    border:
        1px solid rgba(67,209,122,.20);

    color: #61df8f;
}


/* =========================================================
   WEB LIBRARY SECTION
========================================================= */

.web-library-section {
    margin-top: 34px;
}

.web-library-heading {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 25px;
}

.web-library-heading h2 {
    margin-top: 5px;

    color: #f1f5f9;

    font-size: 29px;

    letter-spacing: -.8px;
}

.web-game-count {
    display: block;

    margin-top: 5px;

    color: #657285;

    font-size: 11px;
}


/* =========================================================
   WEB SEARCH
========================================================= */

.web-library-search {
    position: relative;

    width: min(350px, 100%);
}

.web-library-search span {
    position: absolute;

    left: 13px;
    top: 50%;

    transform:
        translateY(-50%);

    color: #6b7788;

    pointer-events: none;
}

.web-library-search input {
    width: 100%;
    height: 42px;

    padding:
        0
        15px
        0
        36px;

    outline: none;

    border-radius: 5px;

    background:
        #0a0f16;

    border:
        1px solid rgba(255,255,255,.08);

    color: #e9eef4;

    font-size: 12px;

    transition:
        border-color .18s ease,
        box-shadow .18s ease,
        background .18s ease;
}

.web-library-search input:hover {
    background:
        #0d131c;
}

.web-library-search input:focus {
    border-color:
        rgba(22,140,255,.65);

    box-shadow:
        0 0 0 3px rgba(22,140,255,.08);
}


/* =========================================================
   WEB FILTERS
========================================================= */

.web-library-filters {
    margin-top: 20px;

    display: flex;

    gap: 7px;

    padding-bottom: 14px;

    border-bottom:
        1px solid rgba(255,255,255,.07);
}

.web-filter-button {
    min-height: 34px;

    padding:
        0
        13px;

    border:
        1px solid transparent;

    border-radius: 4px;

    background: transparent;

    color: #778395;

    font-size: 11px;
    font-weight: 800;

    cursor: pointer;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease;
}

.web-filter-button:hover {
    background:
        rgba(255,255,255,.035);

    color: #cbd4de;
}

.web-filter-button.active {
    background:
        rgba(22,140,255,.10);

    border-color:
        rgba(22,140,255,.16);

    color: #f2f6fb;
}


/* =========================================================
   WEB GAME LIST
========================================================= */

.web-game-list {
    margin-top: 16px;

    display: grid;

    gap: 10px;
}

.web-game-card {
    min-height: 150px;

    display: grid;

    grid-template-columns:
        235px
        minmax(0, 1fr)
        auto;

    align-items: stretch;

    overflow: hidden;

    border-radius: 7px;

    background:
        linear-gradient(
            135deg,
            rgba(13,19,28,.98),
            rgba(7,11,17,.98)
        );

    border:
        1px solid rgba(255,255,255,.065);

    transition:
        border-color .2s ease,
        transform .2s ease,
        background .2s ease;
}

.web-game-card:hover {
    border-color:
        rgba(22,140,255,.22);

    background:
        linear-gradient(
            135deg,
            rgba(15,23,34,.99),
            rgba(8,13,20,.99)
        );

    transform:
        translateY(-1px);
}


/* =========================================================
   WEB GAME ART
========================================================= */

.web-game-art {
    position: relative;

    min-height: 150px;

    overflow: hidden;

    display: flex;
    align-items: flex-end;

    padding: 18px;

    background:
        radial-gradient(
            circle at 68% 20%,
            rgba(22,140,255,.32),
            transparent 34%
        ),
        linear-gradient(
            135deg,
            #0b355d,
            #07121f 70%
        );
}

.web-game-art.dark {
    background:
        radial-gradient(
            circle at 75% 25%,
            rgba(115,130,150,.16),
            transparent 30%
        ),
        linear-gradient(
            135deg,
            #161b24,
            #080b10 75%
        );
}

.web-game-art::after {
    content: "";

    position: absolute;
    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(2,5,8,.82),
            transparent 68%
        );
}

.web-game-art-grid {
    position: absolute;
    inset: 0;

    opacity: .17;

    background-image:
        linear-gradient(
            rgba(255,255,255,.04) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.04) 1px,
            transparent 1px
        );

    background-size:
        38px
        38px;
}

.web-game-art-letter {
    position: relative;

    z-index: 1;

    color: white;

    font-size: 54px;
    font-weight: 900;

    line-height: 1;

    text-shadow:
        0 8px 28px rgba(0,0,0,.42);
}


/* =========================================================
   WEB GAME INFO
========================================================= */

.web-game-info {
    min-width: 0;

    padding:
        19px
        22px;

    display: flex;
    flex-direction: column;
    justify-content: center;
}

.web-game-title-row {
    display: flex;
    align-items: center;

    gap: 8px;
}

.web-game-title-row h3 {
    min-width: 0;

    overflow: hidden;

    white-space: nowrap;

    text-overflow: ellipsis;

    color: #f0f4f8;

    font-size: 19px;
}

.web-game-favorite-indicator {
    color: #3ea1ff;

    font-size: 12px;
}

.web-game-developer {
    margin-top: 4px;

    color: #6f7c8e;

    font-size: 11px;
}

.web-game-stats {
    margin-top: 18px;

    display: flex;
    flex-wrap: wrap;

    gap:
        26px
        30px;
}

.web-game-stat {
    min-width: 95px;
}

.web-game-stat span {
    display: block;

    color: #657285;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: 1.25px;
}

.web-game-stat strong {
    display: block;

    margin-top: 4px;

    color: #c8d1dc;

    font-size: 11px;
}

.web-achievement-track {
    width: 125px;
    height: 4px;

    margin-top: 7px;

    overflow: hidden;

    border-radius: 10px;

    background:
        #202834;
}

.web-achievement-fill {
    height: 100%;

    background:
        #168cff;
}


/* =========================================================
   WEB GAME ACTIONS
========================================================= */

.web-game-actions {
    min-width: 155px;

    padding:
        18px;

    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;

    gap: 8px;

    border-left:
        1px solid rgba(255,255,255,.055);
}

.web-view-game-button,
.web-favorite-button {
    min-height: 38px;

    padding:
        0
        13px;

    border-radius: 4px;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .5px;

    cursor: pointer;

    transition:
        background .18s ease,
        border-color .18s ease,
        color .18s ease;
}

.web-view-game-button {
    border:
        1px solid rgba(22,140,255,.22);

    background:
        rgba(22,140,255,.10);

    color: #e8f4ff;
}

.web-view-game-button:hover {
    background:
        rgba(22,140,255,.18);

    border-color:
        rgba(22,140,255,.35);
}

.web-favorite-button {
    border:
        1px solid rgba(255,255,255,.08);

    background:
        rgba(255,255,255,.025);

    color: #7d8999;
}

.web-favorite-button:hover,
.web-favorite-button.active {
    color: #3ea1ff;

    border-color:
        rgba(22,140,255,.25);

    background:
        rgba(22,140,255,.07);
}


/* =========================================================
   WEB EMPTY STATE
========================================================= */

.web-library-empty {
    min-height: 260px;

    margin-top: 16px;

    display: grid;
    place-items: center;

    align-content: center;

    padding: 35px;

    text-align: center;

    border:
        1px dashed rgba(255,255,255,.08);

    border-radius: 7px;

    background:
        rgba(255,255,255,.015);
}

.web-library-empty[hidden] {
    display: none;
}

.web-library-empty-icon {
    width: 54px;
    height: 54px;

    display: grid;
    place-items: center;

    border-radius: 6px;

    background:
        linear-gradient(
            145deg,
            #168cff,
            #0b467c
        );

    color: white;

    font-size: 25px;
    font-weight: 900;
}

.web-library-empty h3 {
    margin-top: 15px;

    color: #d8e0e9;

    font-size: 18px;
}

.web-library-empty p {
    margin-top: 6px;

    color: #687586;

    font-size: 12px;
}


/* =========================================================
   WEB FOOTER
========================================================= */

.web-library-footer {
    margin-top: 26px;

    min-height: 76px;

    padding:
        17px
        20px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 25px;

    border-radius: 6px;

    background:
        rgba(255,255,255,.022);

    border:
        1px solid rgba(255,255,255,.055);
}

.web-library-footer strong,
.web-library-footer span {
    display: block;
}

.web-library-footer strong {
    color: #cbd4de;

    font-size: 12px;
}

.web-library-footer div > span {
    margin-top: 3px;

    color: #687586;

    font-size: 10px;
}

.web-library-footer-platform {
    flex-shrink: 0;

    color: #3ea1ff;

    font-size: 9px;

    font-weight: 900;

    letter-spacing: 1.5px;
}


/* =========================================================
   SCROLLBARS
========================================================= */

.library-game-list::-webkit-scrollbar,
.selected-game::-webkit-scrollbar {
    width: 7px;
}

.library-game-list::-webkit-scrollbar-track,
.selected-game::-webkit-scrollbar-track {
    background: transparent;
}

.library-game-list::-webkit-scrollbar-thumb,
.selected-game::-webkit-scrollbar-thumb {
    border-radius: 10px;

    background:
        rgba(255,255,255,.12);
}

.library-game-list::-webkit-scrollbar-thumb:hover,
.selected-game::-webkit-scrollbar-thumb:hover {
    background:
        rgba(22,140,255,.45);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1050px) {

    .library-app {
        grid-template-columns:
            240px
            minmax(0,1fr);
    }

    .game-dashboard {
        grid-template-columns: 1fr;

        padding:
            25px;
    }

    .game-actions-panel {
        padding:
            18px
            25px;

        gap: 22px;
    }

    .client-action-message {
        margin:
            18px
            25px
            0;
    }

    .banner-overlay {
        left: 25px;
    }

    .compatibility-panel {
        grid-template-columns:
            120px
            minmax(0,1fr);

        gap: 25px;
    }

    .compatibility-status {
        grid-column:
            1 / -1;

        grid-template-columns:
            1fr
            1fr;
    }

    .compatibility-status-row {
        min-height: 82px;
    }

    .web-game-card {
        grid-template-columns:
            205px
            minmax(0,1fr);
    }

    .web-game-actions {
        grid-column:
            1 / -1;

        min-width: 0;

        flex-direction: row;

        justify-content: flex-end;

        border-left: 0;

        border-top:
            1px solid rgba(255,255,255,.055);
    }

    .web-view-game-button,
    .web-favorite-button {
        min-width: 140px;
    }
}


@media (max-width: 760px) {

    .library-app {
        display: block;

        height: auto;

        overflow: visible;
    }

    .library-sidebar {
        min-height: auto;

        border-right: 0;

        border-bottom:
            1px solid rgba(255,255,255,.08);
    }

    .library-game-list {
        max-height: 260px;
    }

    .selected-game {
        overflow: visible;
    }

    .game-actions-panel {
        flex-wrap: wrap;
    }

    .favorite-game-button {
        margin-left: 0;
    }

    .unsupported-library {
        padding:
            28px
            18px
            50px;
    }

    .compatibility-panel {
        grid-template-columns: 1fr;

        padding:
            28px
            22px;

        text-align: left;
    }

    .compatibility-icon {
        margin:
            0
            auto;
    }

    .compatibility-copy {
        text-align: center;
    }

    .compatibility-copy h2,
    .compatibility-copy > p:not(.unsupported-eyebrow) {
        margin-left: auto;
        margin-right: auto;
    }

    .compatibility-actions {
        justify-content: center;
    }

    .compatibility-status {
        grid-template-columns: 1fr;
    }

    .web-library-heading {
        align-items: stretch;

        flex-direction: column;
    }

    .web-library-search {
        width: 100%;
    }

    .web-library-filters {
        overflow-x: auto;

        padding-bottom: 12px;
    }

    .web-filter-button {
        flex-shrink: 0;
    }

    .web-game-card {
        grid-template-columns: 1fr;
    }

    .web-game-art {
        min-height: 180px;
    }

    .web-game-actions {
        grid-column: auto;

        flex-direction: row;

        justify-content: stretch;
    }

    .web-view-game-button,
    .web-favorite-button {
        min-width: 0;

        flex: 1;
    }

    .web-library-footer {
        align-items: flex-start;

        flex-direction: column;
    }
}
