:root{
    --bg:#0b0f16;
    --bg2:#111827;
    --card:#151d2b;
    --card2:#1a2435;
    --text:#edf2ff;
    --muted:#8a96ab;
    --border:rgba(255,255,255,.08);
    --accent:#5b8cff;
    --accent2:#7c5cff;
    --shadow:0 20px 50px rgba(0,0,0,.35);
    --radius:28px;
}

*{
    box-sizing:border-box;
}

html,
body{
    height:100%;
}

body{
    margin:0;
    font-family:"Inter",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    background:
        radial-gradient(circle at top, rgba(91,140,255,.18), transparent 30%),
        radial-gradient(circle at bottom right, rgba(124,92,255,.10), transparent 28%),
        var(--bg);
    color:var(--text);
}

a{
    color:inherit;
    text-decoration:none;
}

/* APP */

.app{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    padding:18px;
    gap:18px;
}

/* TOPBAR */

.topbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
}

.brand{
    display:flex;
    align-items:center;
    gap:14px;
}

.brand-icon{
    width:52px;
    height:52px;
    border-radius:18px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    box-shadow:var(--shadow);
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    flex-shrink:0;
}

.brand-icon canvas{
    width:52px;
    height:52px;
    display:block;
}

.brand-text{
    display:flex;
    align-items:center;
}

.brand-text strong{
    display:flex;
    align-items:baseline;
    gap:10px;
    margin:0;
    line-height:1;
}

.brand-main{
    font-size:36px;
    font-weight:800;
    letter-spacing:-0.04em;

    background:linear-gradient(
        135deg,
        #ffffff 0%,
        #dfe9ff 30%,
        #9bc0ff 65%,
        #ffffff 100%
    );

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;

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

.brand-fast{
    font-family:'Orbitron', sans-serif;
    font-size:32px;
    font-weight:800;
    letter-spacing:0.08em;
    text-transform:uppercase;
    font-style:italic;

    background:linear-gradient(
        115deg,
        rgba(124,92,255,1) 0%,
        rgba(116,108,255,0.98) 18%,
        rgba(102,146,255,0.96) 38%,
        rgba(126,243,255,0.95) 58%,
        rgba(220,245,255,0.97) 78%,
        rgba(255,255,255,1) 100%
    );

    background-size:300% auto;

    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;

    text-shadow:
        0 0 12px rgba(124,92,255,.18),
        0 0 24px rgba(91,140,255,.10);

    animation:brandGlow 8s ease-in-out infinite;
}

@keyframes brandGlow{
    0%{
        background-position:0% center;
    }
    50%{
        background-position:100% center;
    }
    100%{
        background-position:0% center;
    }
}

/* ACTIONS */

.top-actions{
    display:flex;
    gap:10px;
}

.settings-btn,
.primary-btn,
.close-btn,
.tab{
    border:1px solid var(--border);
    background:var(--card);
    color:var(--text);
    border-radius:16px;
    cursor:pointer;
}

.settings-btn{
    padding:14px 18px;
    font-weight:700;
    box-shadow:var(--shadow);
}

/* HOME */

.home{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:28px;
    width:100%;
    max-width:1200px;
    margin:0 auto;
}

.hero{
    text-align:center;
    max-width:760px;
    padding:12px 10px 0;
}

.eyebrow{
    display:inline-flex;
    padding:8px 14px;
    border-radius:999px;
    background:rgba(91,140,255,.12);
    color:#a9c1ff;
    font-size:12px;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin:0 0 12px;
}

/* TILES */

.tiles{
    width:100%;
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
    align-items:stretch;
}

.tile{
    min-height:220px;
    border-radius:var(--radius);
    padding:22px;
    border:1px solid var(--border);
    background:linear-gradient(
        180deg,
        rgba(255,255,255,.05),
        rgba(255,255,255,.03)
    );
    box-shadow:var(--shadow);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    gap:10px;
    transition:.2s ease;
}

.tile:hover{
    transform:translateY(-3px);
}

.tile-icon{
    width:74px;
    height:74px;
    border-radius:24px;
    display:grid;
    place-items:center;
    font-size:30px;
    background:rgba(255,255,255,.06);
    border:1px solid var(--border);
    margin-bottom:10px;
}

.tile strong{
    font-size:22px;
}

.tile span{
    color:var(--muted);
    font-size:14px;
}

.tile-live{
    background:linear-gradient(
        180deg,
        rgba(91,140,255,.16),
        rgba(255,255,255,.03)
    );
}

.tile-series{
    background:linear-gradient(
        180deg,
        rgba(40,170,255,.14),
        rgba(255,255,255,.03)
    );
}

.tile-movies{
    background:linear-gradient(
        180deg,
        rgba(124,92,255,.16),
        rgba(255,255,255,.03)
    );
}

.tile-favorites{
    background:linear-gradient(
        180deg,
        rgba(255,99,132,.13),
        rgba(255,255,255,.03)
    );
}

/* STATUS */

.status-left,
.status-right{
    position:fixed;
    bottom:20px;
    font-size:13px;
    color:rgba(255,255,255,.65);
}

.status-left{
    left:20px;
}

.status-right{
    right:20px;
}

/* MODAL */

.modal{
    position:fixed;
    inset:0;
    display:none;
    align-items:center;
    justify-content:center;
    padding:18px;
    background:rgba(0,0,0,.6);
    backdrop-filter:blur(10px);
    z-index:20;
}

.modal.open{
    display:flex;
}

.modal-card{
    width:min(560px,100%);
    border-radius:28px;
    background:var(--bg2);
    border:1px solid var(--border);
    box-shadow:var(--shadow);
    padding:20px;
}

.modal-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:16px;
}

.modal-head h2{
    margin:0;
    font-size:22px;
}

.close-btn{
    width:44px;
    height:44px;
    border-radius:14px;
}

.tabs{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-bottom:16px;
}

.tab{
    padding:14px 16px;
    font-weight:700;
    color:var(--muted);
}

.tab.active{
    background:linear-gradient(
        135deg,
        rgba(91,140,255,.2),
        rgba(124,92,255,.12)
    );
    color:var(--text);
    border-color:rgba(91,140,255,.25);
}

.tab-panel{
    display:none;
}

.tab-panel.active{
    display:block;
}

/* FORMS */

.form{
    display:grid;
    gap:14px;
}

.form label{
    display:grid;
    gap:8px;
    color:var(--muted);
    font-size:13px;
}

.form input{
    width:100%;
    min-height:50px;
    border-radius:16px;
    border:1px solid var(--border);
    background:var(--card);
    color:var(--text);
    padding:0 14px;
    outline:none;
}

.form input::placeholder{
    color:#6d778a;
}

.primary-btn{
    min-height:52px;
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    border-color:transparent;
    font-weight:800;
    margin-top:2px;
}

/* RESPONSIVE */

@media (max-width:980px){
    .tiles{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .tile{
        min-height:190px;
    }

    .brand-main{
        font-size:30px;
    }

    .brand-fast{
        font-size:26px;
    }
}

@media (max-width:640px){
    .app{
        padding:14px;
    }

    .topbar{
        align-items:flex-start;
        flex-direction:column;
    }

    .top-actions{
        width:100%;
    }

    .settings-btn{
        flex:1;
        padding:13px 16px;
    }

    .tiles{
        grid-template-columns:1fr 1fr;
        gap:12px;
    }

    .tile{
        min-height:165px;
        padding:18px;
        border-radius:24px;
    }

    .tile-icon{
        width:60px;
        height:60px;
        border-radius:20px;
        font-size:24px;
    }

    .tile strong{
        font-size:18px;
    }

    .modal-card{
        padding:16px;
        border-radius:22px;
    }

    .brand-main{
        font-size:24px;
    }

    .brand-fast{
        font-size:20px;
    }
}

@media (max-width:420px){
    .tiles{
        grid-template-columns:1fr;
    }

    .status-left,
    .status-right{
        font-size:11px;
    }
}