/* playonsol/static/css/components.css */

/* =========================================================
   PLAYONSOL DESIGN SYSTEM
   Version : 1.0
   ========================================================= */

:root{

    /* =====================================================
       COLORS
    ===================================================== */

    --primary:#9945FF;
    --primary-hover:#7e2cff;

    --secondary:#14F195;

    --success:#10b981;
    --warning:#f59e0b;
    --danger:#ef4444;

    --bg:#0f172a;
    --bg-secondary:#111827;

    --card-bg:rgba(24,24,27,.82);

    --card-hover:#20232d;

    --border:
        rgba(255,255,255,.08);

    --text:#ffffff;

    --text-muted:#9ca3af;

    /* =====================================================
       RADIUS
    ===================================================== */

    --radius-sm:12px;

    --radius:20px;

    --radius-lg:28px;

    /* =====================================================
       SHADOW
    ===================================================== */

    --shadow-sm:
        0 8px 20px rgba(0,0,0,.18);

    --shadow:
        0 20px 45px rgba(0,0,0,.28);

    --shadow-lg:
        0 30px 60px rgba(0,0,0,.40);

    /* =====================================================
       TRANSITION
    ===================================================== */

    --transition:.25s ease;
}

/* =========================================================
   SECTION
========================================================= */

.section-home{

    padding:90px 0;

}

.section-header{

    text-align:center;

    margin-bottom:55px;

}

.section-header h2{

    font-size:2.2rem;

    font-weight:700;

    color:var(--text);

    margin-bottom:14px;

}

.section-header p{

    color:var(--text-muted);

    max-width:700px;

    margin:auto;

    line-height:1.7;

}

/* =========================================================
   ICON CIRCLE
========================================================= */

.icon-circle{

    width:72px;

    height:72px;

    border-radius:50%;

    display:flex;

    align-items:center;

    justify-content:center;

    margin-bottom:22px;

    background:
        linear-gradient(
            135deg,
            rgba(153,69,255,.18),
            rgba(20,241,149,.12)
        );

    border:
        1px solid rgba(255,255,255,.06);

    box-shadow:
        inset 0 1px 1px rgba(255,255,255,.08),
        var(--shadow-sm);

}

.icon-circle i{

    color:var(--secondary);

    font-size:34px;

}

/* =========================================================
   CARD
========================================================= */

.dashboard-card{

    position:relative;

    display:block;

    height:100%;

    padding:32px;

    overflow:hidden;

    border-radius:var(--radius);

    background:var(--card-bg);

    border:
        1px solid var(--border);

    backdrop-filter:blur(16px);

    transition:var(--transition);

    box-shadow:var(--shadow-sm);

    text-decoration:none;

    color:inherit;
    
    transform-style:preserve-3d;

    will-change:transform;

    backface-visibility:hidden;

}

.dashboard-card::before{

    content:"";

    position:absolute;

    inset:0;

    background:
        linear-gradient(
            135deg,
            rgba(153,69,255,.05),
            transparent 45%,
            rgba(20,241,149,.03)
        );

    opacity:0;

    transition:var(--transition);

}

.dashboard-card:hover{

    transform:
        translateY(-8px);

    border-color:

        rgba(153,69,255,.45);

    box-shadow:

        0 20px 50px rgba(0,0,0,.35);

}

.dashboard-card:hover::before{

    opacity:1;

}

.dashboard-card>*{

    position:relative;

    z-index:2;

}

.dashboard-card i{

    font-size:42px;

    color:var(--secondary);

    margin-bottom:22px;

}

.dashboard-card h5{

    font-size:1.2rem;

    font-weight:700;

    color:white;

    margin-bottom:12px;

}

.dashboard-card p{

    color:var(--text-muted);

    margin:0;

    line-height:1.7;

}

/* =========================================================
   DISABLED CARD
========================================================= */

.dashboard-disabled{

    opacity:.72;

    pointer-events:none;

}

.dashboard-disabled:hover{

    transform:none;

}

/* =========================================================
   BADGE
========================================================= */

.coming-soon-badge{

    position:absolute;

    top:18px;

    right:18px;

    padding:6px 12px;

    border-radius:999px;

    background:

        linear-gradient(
            135deg,
            #ff9800,
            #ff5e62
        );

    color:white;

    font-size:11px;

    font-weight:700;

    letter-spacing:.5px;

    box-shadow:
        0 8px 20px rgba(255,94,98,.25);

}

/* =========================================================
   GRID
========================================================= */

.card-grid{

    display:grid;

    gap:24px;

    grid-template-columns:

        repeat(
            auto-fit,
            minmax(
                280px,
                1fr
            )
        );

}

/* =========================================================
   GLASS
========================================================= */

.glass-card{

    background:

        rgba(255,255,255,.04);

    border:

        1px solid rgba(255,255,255,.08);

    backdrop-filter:

        blur(14px);

    border-radius:

        var(--radius);

}

/* =========================================================
   MODAL
========================================================= */

.modal-content{

    background:#151a25;

    border:

        1px solid rgba(255,255,255,.08);

    border-radius:

        22px;

}

.modal-header{

    border-bottom:

        1px solid rgba(255,255,255,.08);

}

.modal-footer{

    border-top:

        1px solid rgba(255,255,255,.08);

}

.modal-title{

    color:white;

    font-weight:700;

}

.modal-body{

    color:var(--text-muted);

}

/* =========================================================
   ANIMATION
========================================================= */

.fade-up{

    animation:

        fadeUp .55s ease forwards;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:

            translateY(25px);

    }

    to{

        opacity:1;

        transform:

            translateY(0);

    }

}

/* =========================================================
   RESPONSIVE
========================================================= */

@media(max-width:768px){

    .section-home{

        padding:70px 0;

    }

    .section-header{

        margin-bottom:35px;

    }

    .section-header h2{

        font-size:1.8rem;

    }

    .dashboard-card{

        padding:24px;

    }

}