body{
    background:#f7f8ff;
    font-family:'Segoe UI',sans-serif;
}

.navbar{
    background:white;
    padding:18px 0;
    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

.logo{
    font-size:28px;
    font-weight:800;
    color:#6c3bff;
}

.btn-eventix{
    background:#6c3bff;
    color:white;
    border:none;
    padding:12px 28px;
    border-radius:12px;
    font-weight:600;
}

.btn-eventix:hover{
    background:#5a2df0;
}

.btn-outline-eventix{
    border:2px solid #6c3bff;
    color:#6c3bff;
    padding:12px 28px;
    border-radius:12px;
    font-weight:600;
    background:white;
}

.hero{
    padding:90px 0;
}

.hero h1{
    font-size:65px;
    font-weight:800;
    line-height:1.2;
}

.hero span{
    color:#6c3bff;
}

.hero p{
    color:#666;
    font-size:18px;
    margin:20px 0 30px;
}

.hero-img{
    width:100%;
    border-radius:30px;
    box-shadow:0 15px 40px rgba(0,0,0,.1);
}

.section-title{
    text-align:center;
    margin-bottom:50px;
}

.section-title h2{
    font-size:45px;
    font-weight:800;
}

.feature-card{
    background:white;
    border-radius:25px;
    padding:35px;
    text-align:center;
    height:100%;
    transition:.3s;
    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.feature-card:hover{
    transform:translateY(-5px);
}

.feature-card h1{
    font-size:50px;
}

.feature-card h4{
    margin-top:15px;
    font-weight:700;
}

.step-card{
    background:white;
    padding:25px;
    border-radius:20px;
    text-align:center;
    height:100%;
    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.step-number{
    width:50px;
    height:50px;
    background:#6c3bff;
    color:white;
    border-radius:50%;
    display:flex;
    justify-content:center;
    align-items:center;
    margin:auto;
    margin-bottom:15px;
    font-weight:bold;
}

.event-card{
    background:white;
    border-radius:25px;
    overflow:hidden;
    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.event-card img{
    width:100%;
    height:220px;
    object-fit:cover;
}

.event-content{
    padding:25px;
}

.event-content h5{
    font-weight:700;
}

.download-section{
    background:linear-gradient(135deg,#6c3bff,#8a63ff);
    color:white;
    padding:100px 0;
    text-align:center;
}

.download-section h2{
    font-size:50px;
    font-weight:800;
}

.footer{
    background:#111;
    color:white;
    padding:50px 0;
    text-align:center;
}

.footer a{
    color:white;
    text-decoration:none;
    margin:0 15px;
}

.footer a:hover{
    color:#8a63ff;
}

/* AUTH */

.auth-container{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:20px;
}

.auth-card{

    width:100%;

    max-width:500px;

    background:white;

    padding:40px;

    border-radius:25px;

    box-shadow:
    0 10px 30px rgba(0,0,0,.08);
}

.auth-card h1{

    text-align:center;

    color:#6c3bff;

    font-weight:800;
}

.auth-subtitle{

    text-align:center;

    margin-bottom:30px;

    color:#666;
}

.auth-btn{

    width:100%;
}

/* =================================
   LOGIN PAGE
================================= */

.login-section{
    min-height:100vh;
}

.login-left{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:50px;
}

.login-card{
    width:100%;
    max-width:450px;
}

.login-card h2{
    font-weight:800;
    margin-bottom:10px;
}

.subtitle{
    color:#666;
    margin-bottom:30px;
}

.login-card .form-control{
    height:55px;
    border-radius:12px;
}

.login-btn{
    width:100%;
    height:55px;
}

.login-right{
    background:
    linear-gradient(
        rgba(108,59,255,.4),
        rgba(108,59,255,.4)
    ),
    url('https://images.unsplash.com/photo-1493225457124-a3eb161ffa5f');

    background-size:cover;
    background-position:center;
}

.register-link{
    text-align:center;
    margin-top:20px;
}

.register-link a{
    color:#6c3bff;
    text-decoration:none;
    font-weight:600;
}

.forgot-link{

    color:#6c3bff;

    text-decoration:none;

    font-weight:600;
}

.forgot-link:hover{

    color:#5a2df0;
}

/* =================================
   REGISTER PAGE
================================= */

.password-rules{

    margin-top:10px;

    font-size:14px;

    color:#666;

    background:#f8f9ff;

    padding:15px;

    border-radius:12px;
}

.password-rules div{

    margin-bottom:6px;
}

.valid{

    color:#28a745;
    font-weight:600;
}

.invalid{

    color:#dc3545;
    font-weight:600;
}

/* =================================
   DASHBOARD
================================= */

.dashboard-container{

    display:flex;

    min-height:100vh;
}

.sidebar{

    width:260px;

    background:white;

    padding:30px 20px;

    box-shadow:0 5px 20px rgba(0,0,0,.05);
}

.sidebar-logo{

    font-size:28px;

    font-weight:800;

    color:#6c3bff;

    margin-bottom:40px;
}

.sidebar-link{

    display:block;

    padding:14px 18px;

    margin-bottom:10px;

    border-radius:12px;

    text-decoration:none;

    color:#333;

    font-weight:600;
}

.sidebar-link:hover{

    background:#f4f0ff;
}

.active{

    background:#6c3bff;

    color:white !important;
}

.logout{

    margin-top:40px;
}

.dashboard-content{

    flex:1;

    padding:40px;
}

.stat-card{

    background:white;

    border-radius:20px;

    padding:25px;

    text-align:center;

    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.stat-card h3{

    color:#6c3bff;

    font-size:35px;

    font-weight:800;
}

.dashboard-event-card{

    background:white;

    border-radius:20px;

    overflow:hidden;

    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.dashboard-event-card img{

    width:100%;

    height:220px;

    object-fit:cover;
}

.dashboard-event-content{

    padding:20px;
}

.dashboard-event-content h5{

    font-weight:700;
}

/* =================================
   EVENT PAGE
================================= */

.event-header p{

    color:#666;
}

.event-search{

    margin:25px 0;
}

.event-search input{

    height:55px;

    border-radius:15px;
}

.event-filter{

    display:flex;

    gap:10px;

    flex-wrap:wrap;

    margin-bottom:20px;
}

.filter-btn{

    border:none;

    background:white;

    padding:10px 20px;

    border-radius:12px;

    font-weight:600;
}

.active-filter{

    background:#6c3bff;

    color:white;
}

.event-btn{

    display:block;

    text-align:center;

    text-decoration:none;

    margin-top:15px;
}

/* =================================
   DETAIL EVENT
================================= */

.detail-banner img{

    width:100%;

    height:350px;

    object-fit:cover;

    border-radius:25px;
}

.detail-content{

    margin-top:30px;
}

.detail-content h1{

    font-weight:800;

    margin-bottom:20px;
}

.event-info{

    display:flex;

    gap:25px;

    flex-wrap:wrap;

    margin-bottom:25px;

    color:#666;
}

.detail-description{

    line-height:1.9;

    color:#555;

    margin-bottom:30px;
}

.ticket-box{

    background:white;

    border-radius:20px;

    padding:25px;

    box-shadow:0 10px 25px rgba(0,0,0,.05);

    margin-bottom:25px;
}

.ticket-box h3{

    margin-bottom:20px;

    font-weight:700;
}

.ticket-item{

    display:flex;

    justify-content:space-between;

    padding:15px 0;

    border-bottom:1px solid #eee;
}

.ticket-item:last-child{

    border-bottom:none;
}

.detail-btn{

    display:inline-block;

    text-decoration:none;
}

.ticket-radio{

display:flex;

align-items:center;

gap:10px;

padding:15px;

border:1px solid #eee;

border-radius:12px;

margin-bottom:12px;

}

.ticket-radio input{

transform:scale(1.3);

}


/* =================================
   CHECKOUT
================================= */

.checkout-card{

    background:white;

    padding:30px;

    border-radius:25px;

    margin-top:30px;

    box-shadow:0 10px 25px rgba(0,0,0,.05);
}

.checkout-card h3{

    font-weight:700;
}

.summary-box{

    background:#f8f9ff;

    padding:20px;

    border-radius:15px;

    margin-top:25px;
}

.summary-item{

    display:flex;

    justify-content:space-between;

    margin-bottom:15px;
}

.total{

    border-top:1px solid #ddd;

    padding-top:15px;

    font-size:18px;

    font-weight:700;
}

.checkout-btn{

    display:block;

    text-align:center;

    text-decoration:none;

    margin-top:25px;
}

/* =================================
   PAYMENT SUCCESS
================================= */

.success-container{

    min-height:100vh;

    display:flex;

    justify-content:center;

    align-items:center;

    padding:20px;
}

.success-card{

    background:white;

    max-width:700px;

    width:100%;

    padding:40px;

    border-radius:30px;

    text-align:center;

    box-shadow:0 10px 30px rgba(0,0,0,.08);
}

.success-icon{

    font-size:80px;

    margin-bottom:20px;
}

.success-card h1{

    font-weight:800;

    margin-bottom:15px;
}

.transaction-box{

    margin-top:30px;

    background:#f8f9ff;

    border-radius:20px;

    padding:25px;
}

.transaction-item{

    display:flex;

    justify-content:space-between;

    margin-bottom:15px;
}

.transaction-item:last-child{

    margin-bottom:0;
}

.success-btn{

    display:inline-block;

    text-decoration:none;

    margin-top:30px;
}

/* =================================
   SEAT SELECTION
================================= */

.stage{

    background:#6c3bff;

    color:white;

    text-align:center;

    padding:20px;

    border-radius:15px;

    margin-bottom:30px;

    font-weight:700;
}

.seat-grid{

    display:grid;

    grid-template-columns:
    repeat(5,70px);

    gap:15px;

    justify-content:center;

    margin-bottom:25px;
}

.seat{

    width:70px;

    height:70px;

    border:none;

    border-radius:12px;

    background:white;

    font-weight:600;

    box-shadow:
    0 5px 15px rgba(0,0,0,.08);
}

.seat:hover{

    background:#f1ebff;
}

.selected{

    background:#6c3bff !important;

    color:white;
}

.occupied{

    background:#333 !important;

    color:white;
    cursor:not-allowed;
}

.seat-info{

    display:flex;

    justify-content:center;

    gap:25px;

    margin-bottom:20px;
}

.selected-seat{

    text-align:center;

    font-size:18px;

    margin-bottom:25px;
}

.seat-btn{

    display:block;

    width:max-content;

    margin:auto;

    text-decoration:none;
}

/* =================================
   PAYMENT METHOD
================================= */

.payment-method{

    margin-top:30px;
}

.payment-method h4{

    margin-bottom:15px;
}

.payment-option{

    background:#f8f9ff;

    padding:15px;

    border-radius:12px;

    margin-bottom:10px;
}

/* =================================
   PAYMENT PAGE
================================= */

.payment-number{

    background:#f8f9ff;

    padding:20px;

    border-radius:15px;

    font-size:24px;

    font-weight:700;

    margin:20px 0;
}

/* =================================
   MY TICKET
================================= */

.my-ticket-card{

    background:white;

    padding:30px;

    border-radius:25px;

    box-shadow:0 10px 25px rgba(0,0,0,.05);

    margin-top:25px;
}

.my-ticket-card h3{

    font-weight:700;

    margin-bottom:15px;
}

.my-ticket-card p{

    margin-bottom:10px;
}

/* =================================
   QR TICKET
================================= */

.qr-ticket{

    width:250px;

    margin:25px auto;

    display:block;
}