@import url('https://fonts.googleapis.com/css2?family=Vazirmatn:wght@400;500;600;700;800&display=swap');

* {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
    font-family: "Vazirmatn", sans-serif;
    background: #0b0b12;
    color: #fff;
}

body {
    background:
        radial-gradient(
            circle at top right,
            rgba(120,40,255,.18),
            transparent 30%
        ),
        radial-gradient(
            circle at top left,
            rgba(0,180,255,.12),
            transparent 25%
        ),
        #0b0b12;
}

button,
input,
select {
    font-family: inherit;
}

button {
    cursor: pointer;
}

button:active {
    transform: scale(.97);
}

.app {
    width: 100%;
    max-width: 600px;
    min-height: 100vh;
    margin: auto;
    padding:
        calc(18px + env(safe-area-inset-top))
        16px
        calc(105px + env(safe-area-inset-bottom));
}

/* HEADER */

.header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.logo-icon {
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 17px;

    font-size: 26px;

    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );

    box-shadow:
        0 10px 30px rgba(124,58,237,.35);
}

.logo h1 {
    margin: 0;
    font-size: 20px;
    font-weight: 800;
}

.logo span {
    display: block;
    margin-top: 2px;
    color: #9ca3af;
    font-size: 11px;
}

.notification-btn {
    width: 45px;
    height: 45px;

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

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

    color: #fff;
    font-size: 19px;
}

/* WELCOME */

.welcome-card {
    position: relative;

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

    min-height: 145px;
    padding: 24px;

    overflow: hidden;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #6d28d9,
            #9333ea,
            #db2777
        );

    box-shadow:
        0 15px 40px rgba(120,40,255,.28);

    margin-bottom: 18px;
}

.welcome-card::before {
    content: "";

    position: absolute;

    width: 170px;
    height: 170px;

    left: -80px;
    bottom: -100px;

    border-radius: 50%;

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

.welcome-card::after {
    content: "";

    position: absolute;

    width: 100px;
    height: 100px;

    right: -45px;
    top: -50px;

    border-radius: 50%;

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

.welcome-content {
    position: relative;
    z-index: 2;
}

.hello {
    font-size: 13px;
    opacity: .85;
}

.welcome-content h2 {
    margin: 7px 0;
    font-size: 25px;
}

.welcome-content p {
    margin: 0;
    font-size: 13px;
    opacity: .85;
}

.welcome-movie {
    position: relative;
    z-index: 2;

    font-size: 65px;

    animation:
        floating 3s ease-in-out infinite;
}

/* WALLET */

.wallet-card {
    padding: 22px;

    border-radius: 24px;

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

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

    backdrop-filter: blur(12px);

    margin-bottom: 25px;
}

.wallet-title {
    color: #a1a1aa;
    font-size: 13px;
}

.wallet-balance {
    margin-top: 10px;
    margin-bottom: 15px;

    font-size: 27px;
    font-weight: 800;
}

.wallet-balance small {
    margin-right: 4px;

    color: #a1a1aa;
    font-size: 13px;
}

.wallet-button {
    width: 100%;

    padding: 13px;

    border: none;
    border-radius: 15px;

    background:
        linear-gradient(
            135deg,
            #16a34a,
            #22c55e
        );

    color: #fff;

    font-size: 14px;
    font-weight: 700;
}

/* TITLES */

.section-title {
    margin:
        10px 5px
        15px;

    font-size: 17px;
}

/* MENU */

.menu-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 13px;
}

.menu-card {
    width: 100%;

    display: flex;
    align-items: center;

    padding: 18px;

    border: none;
    border-radius: 22px;

    color: #fff;

    text-align: right;

    transition:
        transform .2s ease,
        opacity .2s ease;
}

.menu-icon {
    width: 55px;
    height: 55px;

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

    flex-shrink: 0;

    margin-left: 14px;

    border-radius: 18px;

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

    font-size: 26px;
}

.menu-text {
    flex: 1;
}

.menu-text h3 {
    margin: 0 0 5px;
    font-size: 16px;
}

.menu-text span {
    color: rgba(255,255,255,.75);
    font-size: 11px;
}

.arrow {
    font-size: 22px;
    opacity: .7;
}

.movies {
    background:
        linear-gradient(
            135deg,
            #2563eb,
            #4f46e5
        );
}

.packages {
    background:
        linear-gradient(
            135deg,
            #f97316,
            #ef4444
        );
}

.account {
    background:
        linear-gradient(
            135deg,
            #0891b2,
            #06b6d4
        );
}

.vip {
    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );
}

/* BOTTOM NAV */

.bottom-nav {
    position: fixed;

    left: 50%;
    bottom: 0;

    transform:
        translateX(-50%);

    width: 100%;
    max-width: 600px;

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

    padding:
        12px 10px
        calc(18px + env(safe-area-inset-bottom));

    background:
        rgba(15,15,25,.95);

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

    backdrop-filter: blur(20px);

    z-index: 100;
}

.nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 5px;

    border: none;

    background: transparent;

    color: #71717a;

    font-size: 19px;
}

.nav-item small {
    font-size: 10px;
}

.nav-item.active {
    color: #a855f7;
}

/* INTERNAL PAGES */

.page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-bottom: 25px;
}

.page-header h2 {
    margin: 0;

    font-size: 19px;
}

.back-button {
    padding: 10px 14px;

    border: none;
    border-radius: 13px;

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

    color: #fff;

    font-size: 12px;
}

/* MOVIES */

.movie-list {
    display: grid;

    grid-template-columns:
        repeat(2,1fr);

    gap: 14px;
}

.movie-card {
    padding: 12px;

    border-radius: 22px;

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

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

.movie-poster {
    height: 150px;

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

    border-radius: 16px;

    background:
        linear-gradient(
            135deg,
            #1e3a8a,
            #7c3aed
        );

    font-size: 50px;

    margin-bottom: 12px;
}

.movie-card h3 {
    margin: 5px 0;

    font-size: 14px;
}

.movie-card span {
    color: #a1a1aa;
    font-size: 10px;
}

.movie-card button {
    width: 100%;

    margin-top: 12px;
    padding: 10px;

    border: none;
    border-radius: 12px;

    background: #7c3aed;

    color: #fff;
}

/* PACKAGES */

.package-card {
    position: relative;

    overflow: hidden;

    padding: 25px;

    border-radius: 25px;

    margin-bottom: 16px;

    color: #fff;
}

.package-icon {
    font-size: 42px;
    margin-bottom: 10px;
}

.package-card h2 {
    margin: 5px 0;
}

.package-card p {
    font-size: 13px;
    opacity: .8;
}

.package-card h3 {
    font-size: 20px;
}

.package-card button {
    width: 100%;

    padding: 14px;

    border: none;
    border-radius: 15px;

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

    color: #fff;

    font-weight: 700;
}

.economy {
    background:
        linear-gradient(
            135deg,
            #f97316,
            #ef4444
        );
}

.premium {
    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );
}

/* ACCOUNT */

.account-info {
    text-align: center;

    padding: 30px 20px;

    border-radius: 25px;

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

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

    margin-bottom: 20px;
}

.account-avatar {
    width: 80px;
    height: 80px;

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

    margin: auto;

    border-radius: 50%;

    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );

    font-size: 38px;
}

.account-info h2 {
    margin: 15px 0 5px;
}

.account-info p {
    margin: 0;

    color: #a1a1aa;
    font-size: 12px;
}

.account-menu,
.wallet-menu {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.account-menu button,
.wallet-menu button {
    width: 100%;

    display: flex;
    align-items: center;

    padding: 17px;

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

    border-radius: 18px;

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

    color: #fff;

    text-align: right;
}

.account-menu button span {
    margin-left: 14px;

    font-size: 20px;
}

/* WALLET */

.big-balance {
    text-align: center;

    padding: 35px 20px;

    border-radius: 28px;

    background:
        linear-gradient(
            135deg,
            #14532d,
            #16a34a
        );

    margin-bottom: 25px;

    box-shadow:
        0 15px 35px rgba(34,197,94,.18);
}

.big-balance span {
    font-size: 13px;
    opacity: .8;
}

.big-balance h1 {
    margin: 15px 0 0;
    font-size: 24px;
}

.wallet-menu button {
    gap: 15px;
}

.wallet-menu button > span {
    width: 50px;
    height: 50px;

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

    flex-shrink: 0;

    border-radius: 16px;

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

    font-size: 24px;
}

.wallet-menu button div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.wallet-menu small {
    color: #a1a1aa;
    font-size: 10px;
}

.wallet-menu .deposit > span {
    background:
        rgba(34,197,94,.18);
}

.wallet-menu .withdraw > span {
    background:
        rgba(239,68,68,.18);
}

/* VIP */

.vip-hero {
    text-align: center;

    padding: 35px 20px;

    border-radius: 28px;

    background:
        linear-gradient(
            135deg,
            #581c87,
            #7c3aed,
            #ec4899
        );

    margin-bottom: 20px;
}

.vip-icon {
    font-size: 55px;
    margin-bottom: 8px;
}

.vip-hero h1 {
    margin: 8px 0;
}

.vip-hero p {
    margin: 0;

    font-size: 12px;
    opacity: .85;
}

.vip-plan {
    padding: 22px;

    border-radius: 22px;

    margin-bottom: 15px;

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

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

.vip-plan h2 {
    margin: 0;
}

.vip-plan p {
    color: #a1a1aa;
    font-size: 12px;
}

.vip-plan h3 {
    color: #e879f9;
}

.vip-plan button {
    width: 100%;

    padding: 13px;

    border: none;
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );

    color: #fff;

    font-weight: 700;
}

/* PAYMENT */

.payment-box {
    padding: 20px;

    border-radius: 24px;

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

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

    margin-bottom: 15px;
}

.payment-title {
    color: #a1a1aa;
    font-size: 12px;
}

.payment-amount {
    margin: 8px 0 4px;

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

    color: #c084fc;
}

.payment-currency {
    color: #a1a1aa;
    font-size: 12px;
}

.payment-address {
    margin-top: 18px;
}

.address-box {
    display: flex;
    align-items: center;

    gap: 8px;

    margin-top: 8px;
}

.address-box input {
    min-width: 0;
    flex: 1;

    padding: 12px;

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

    border-radius: 13px;

    background:
        rgba(0,0,0,.25);

    color: #fff;

    direction: ltr;

    font-size: 11px;
}

.copy-btn {
    padding: 12px 14px;

    border: none;
    border-radius: 13px;

    background: #7c3aed;

    color: #fff;
}

.currency-grid {
    display: grid;

    grid-template-columns:
        repeat(2,1fr);

    gap: 10px;

    margin-top: 15px;
}

.currency-btn {
    padding: 14px;

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

    border-radius: 16px;

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

    color: #fff;
}

.currency-btn.active {
    border-color: #a855f7;

    background:
        rgba(168,85,247,.16);
}

.primary-btn {
    width: 100%;

    padding: 14px;

    border: none;

    border-radius: 15px;

    background:
        linear-gradient(
            135deg,
            #7c3aed,
            #ec4899
        );

    color: #fff;

    font-weight: 700;
}

.secondary-btn {
    width: 100%;

    padding: 13px;

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

    border-radius: 15px;

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

    color: #fff;
}

.order-code {
    direction: ltr;

    display: inline-block;

    padding: 7px 10px;

    border-radius: 9px;

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

    color: #c4b5fd;

    font-size: 11px;
}

.status-box {
    padding: 16px;

    border-radius: 16px;

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

    margin: 15px 0;
}

.status-checking {
    color: #fbbf24;
}

.status-success {
    color: #4ade80;
}

.status-error {
    color: #f87171;
}

/* TOAST */

.toast {
    position: fixed;

    left: 50%;

    bottom: 90px;

    transform:
        translate(-50%,20px);

    max-width: calc(100% - 40px);

    padding: 12px 18px;

    border-radius: 14px;

    background:
        rgba(20,20,30,.95);

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

    color: #fff;

    font-size: 12px;

    opacity: 0;

    pointer-events: none;

    transition:
        .25s ease;

    z-index: 999;
}

.toast.show {
    opacity: 1;

    transform:
        translate(-50%,0);
}

/* EMPTY */

.empty-state {
    text-align: center;

    padding: 45px 20px;

    border-radius: 24px;

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

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

    color: #a1a1aa;
}

.empty-state .emoji {
    display: block;

    margin-bottom: 12px;

    font-size: 45px;
}

/* ANIMATION */

@keyframes floating {
    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-8px);
    }

    100% {
        transform: translateY(0);
    }
}

/* MOBILE */

@media (max-width:400px) {

    .app {
        padding-left: 12px;
        padding-right: 12px;
    }

    .welcome-card {
        padding: 20px;
    }

    .welcome-content h2 {
        font-size: 21px;
    }

    .welcome-movie {
        font-size: 52px;
    }

    .movie-poster {
        height: 135px;
    }
}
