/* ==========================================
   OpenGigs Dashboard
========================================== */

:root{

    --gold:#F5C451;
    --gold-light:#FFD76A;

    --background:#111111;
    --sidebar:#181818;
    --card:#202020;

    --border:#2d2d2d;

    --text:#ffffff;
    --muted:#aaaaaa;

    --success:#2ECC71;
    --danger:#E74C3C;

    --radius:18px;

}

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

body{

    font-family:'Poppins',sans-serif;

    background:#111;

    color:white;

}

/* ==========================================
LAYOUT
========================================== */

.dashboard{

    display:grid;

    grid-template-columns:260px 1fr;

    min-height:100vh;

}

/* ==========================================
SIDEBAR
========================================== */

.sidebar{

    background:#181818;

    border-right:1px solid var(--border);

    display:flex;

    flex-direction:column;

    padding:30px;

}

.sidebar-logo{

    width:180px;

    margin-bottom:50px;

}

.sidebar nav{

    display:flex;

    flex-direction:column;

    gap:10px;

}

.sidebar nav a{

    text-decoration:none;

    color:#ddd;

    padding:15px 18px;

    border-radius:12px;

    transition:.3s;

    font-weight:500;

}

.sidebar nav a:hover{

    background:#252525;

    color:white;

}

.sidebar nav a.active{

    background:var(--gold);

    color:#111;

    font-weight:700;

}

/* Push Logout to Bottom */

.sidebar-footer{

    margin-top:auto;

}

.sidebar-footer a{

    display:block;

    text-decoration:none;

    color:#ccc;

    padding:15px;

    border-radius:12px;

    transition:.3s;

}

.sidebar-footer a:hover{

    background:#252525;

}

/* ==========================================
MAIN
========================================== */

.main{

    display:flex;

    flex-direction:column;

}

/* ==========================================
HEADER
========================================== */

.header{

    height:85px;

    border-bottom:1px solid var(--border);

    background:#171717;

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:0 40px;

}

.header-left h2{

    font-size:26px;

}

.header-left p{

    color:#999;

}

.header-right{

    display:flex;

    align-items:center;

    gap:20px;

}

.user-avatar{

    width:44px;

    height:44px;

    border-radius:50%;

    background:var(--gold);

    color:#111;

    display:flex;

    justify-content:center;

    align-items:center;

    font-weight:700;

    font-size:18px;

}

/* ==========================================
CONTENT
========================================== */

.content{

    padding:40px;

}

.page-title{

    font-size:34px;

    margin-bottom:10px;

}

.page-subtitle{

    color:#999;

    margin-bottom:24px;

}

/* ==========================================
CARDS
========================================== */

.card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:18px;

    padding:25px;

    margin-bottom:25px;

}

.card h3{

    margin-bottom:15px;

}

.card p{

    color:#bdbdbd;

    line-height:1.7;

}

/* ==========================================
GRID
========================================== */

.grid-2{

    display:grid;

    grid-template-columns:1fr 1fr;

    gap:25px;

}

.grid-3{

    display:grid;

    grid-template-columns:repeat(3,1fr);

    gap:25px;

}
/* ==========================================
BUTTONS
========================================== */

.btn{

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:10px;

    padding:14px 28px;

    border:none;

    border-radius:12px;

    text-decoration:none;

    font-weight:600;

    cursor:pointer;

    transition:.30s;

}

.btn-primary{

    background:var(--gold);

    color:#111;

}

.btn-primary:hover{

    background:var(--gold-light);

    transform:translateY(-2px);

    box-shadow:0 12px 30px rgba(245,196,81,.25);

}

.btn-secondary{

    background:#2b2b2b;

    color:white;

}

.btn-secondary:hover{

    background:#383838;

}

/* ==========================================
STATS CARDS
========================================== */

.stats{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:20px;

    margin-bottom:30px;

}

.stat-card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:18px;

    padding:25px;

    transition:.30s;

}

.stat-card:hover{

    transform:translateY(-5px);

    border-color:var(--gold);

}

.stat-number{

    font-size:34px;

    font-weight:700;

    margin-bottom:8px;

}

.stat-label{

    color:var(--muted);

}

/* ==========================================
GIG CARD
========================================== */

.gig-card{

    background:var(--card);

    border:1px solid var(--border);

    border-radius:18px;

    padding:25px;

    margin-bottom:20px;

    transition:.30s;

}

.gig-card:hover{

    border-color:var(--gold);

    transform:translateY(-4px);

}

.gig-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:20px;

}

.gig-title{

    font-size:22px;

    font-weight:700;

}

.gig-location{

    color:var(--muted);

    margin-bottom:8px;

}

.gig-details{

    display:flex;

    flex-wrap:wrap;

    gap:12px;

    margin:20px 0;

}

.gig-tag{

    background:#2b2b2b;

    color:#ddd;

    padding:8px 14px;

    border-radius:25px;

    font-size:.9rem;

}

.gig-footer{

    display:flex;

    justify-content:space-between;

    align-items:center;

}

/* ==========================================
STATUS BADGES
========================================== */

.badge{

    display:inline-block;

    padding:8px 16px;

    border-radius:30px;

    font-size:.85rem;

    font-weight:600;

}

.badge-open{

    background:rgba(46,204,113,.15);

    color:var(--success);

}

.badge-review{

    background:rgba(245,196,81,.15);

    color:var(--gold);

}

.badge-booked{

    background:#2d2d2d;

    color:#ccc;

}

.badge-cancelled{

    background:rgba(231,76,60,.15);

    color:var(--danger);

}

/* ==========================================
TABLES
========================================== */

table{

    width:100%;

    border-collapse:collapse;

}

th{

    text-align:left;

    padding:16px;

    border-bottom:1px solid var(--border);

    color:#bbb;

}

td{

    padding:18px 16px;

    border-bottom:1px solid #2a2a2a;

}

tr:hover{

    background:#242424;

}

/* ==========================================
FORMS
========================================== */

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{

    width:100%;

    padding:14px;

    border-radius:12px;

    border:1px solid var(--border);

    background:#262626;

    color:white;

    font-family:'Poppins',sans-serif;

    margin-top:8px;

    margin-bottom:20px;

}

input:focus,
select:focus,
textarea:focus{

    outline:none;

    border-color:var(--gold);

}

/* ==========================================
ANIMATIONS
========================================== */

.card,
.gig-card,
.stat-card{

    animation:fadeUp .5s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ==========================================
RESPONSIVE
========================================== */

@media(max-width:1100px){

    .stats{

        grid-template-columns:repeat(2,1fr);

    }

    .grid-3{

        grid-template-columns:1fr;

    }

}

@media(max-width:900px){

    .dashboard{

        grid-template-columns:1fr;

    }

    .sidebar{

        display:none;

    }

    .content{

        padding:25px;

    }

    .grid-2{

        grid-template-columns:1fr;

    }

}

@media(max-width:600px){

    .stats{

        grid-template-columns:1fr;

    }

    .header{

        padding:20px;

    }

    .header-left h2{

        font-size:22px;

    }

    .gig-header,
    .gig-footer{

        flex-direction:column;

        align-items:flex-start;

        gap:15px;

    }

}
/* ==========================================
WIZARD
========================================== */

.step{

    display:none;

}

.step.active{

    display:block;

}
/* ==========================================
CHECKBOXES
========================================== */

.checkbox-group {

    display: flex;
    flex-direction: column;
    gap: 18px;

}

.checkbox-item {

    display: flex;
    align-items: center;
    gap: 15px;

    cursor: pointer;

}

.checkbox-item input[type="checkbox"] {

    width: 20px !important;
    height: 20px !important;

    margin: 0;
    flex: none;

}

.checkbox-item span {

    color: white;
    font-size: 18px;

}
/* ==========================================
GIG LIST
========================================== */

.gig-card{

    display:flex;

    align-items:center;

    gap:30px;

    background:#222;

    border:1px solid var(--border);

    border-radius:18px;

    padding:25px;

    margin-bottom:25px;

}

.gig-date{

    min-width:90px;

    text-align:center;

    border-radius:16px;

    background:var(--gold);

    color:#111;

    padding:15px;

}

.gig-date .month{

    font-size:15px;

    font-weight:700;

    letter-spacing:2px;

}

.gig-date .day{

    font-size:38px;

    font-weight:800;

    line-height:1;

}

.gig-info{

    flex:1;

}

.gig-info h2{

    margin-bottom:8px;

}

.gig-tags{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

    margin:18px 0;

}

.gig-description{

    color:#bdbdbd;

    line-height:1.6;

}

.gig-actions{

    text-align:right;

    min-width:170px;

}
/* ==========================================
GIG DETAILS
========================================== */

.details-layout{

    display:grid;

    grid-template-columns:2fr 1fr;

    gap:30px;

    align-items:start;

}

.sticky-card{

    position:sticky;

    top:30px;

}

.sticky-card hr{

    border:none;

    border-top:1px solid var(--border);

    margin:20px 0;

}

.sticky-card p{

    margin-bottom:14px;

}
.badge-pending{

    background:#f39c12;

    color:white;

}

.badge-viewed{

    background:#3498db;

    color:white;

}

.badge-accepted{

    background:#27ae60;

    color:white;

}

.badge-declined{

    background:#c0392b;

    color:white;

}
/* ==============================
   Dashboard Stats
============================== */

.stats-grid{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:24px;

    margin-top:35px;

}

.stat-card{

    background:#1A1A1A;

    border:1px solid rgba(212,175,55,.20);

    border-radius:16px;

    padding:30px;

    text-align:center;

    transition:.25s;

}

.stat-card:hover{

    transform:translateY(-4px);

    border-color:#D4AF37;

}

.stat-value{

    font-size:48px;

    font-weight:700;

    color:#D4AF37;

}

.stat-label{

    margin-top:10px;

    color:#BDBDBD;

    font-size:15px;

    letter-spacing:.5px;

}
.rating-subtitle{

    margin-top:8px;

    font-size:16px;

    color:#FFFFFF;

}

.rating-reviews{

    margin-top:4px;

    font-size:13px;

    color:#9CA3AF;

}
body.auth-loading .dashboard {
    display: none;
}
/* ======================================
   ARTIST PROFILE
====================================== */

.profile-hero{

    display:flex;

    gap:35px;

    align-items:center;

}

.profile-photo img{

    width:170px;

    height:170px;

    border-radius:50%;

    object-fit:cover;

    border:4px solid #D4AF37;

}

.profile-info{

    flex:1;

}

.profile-info h1{

    margin-bottom:12px;

    color:white;

}

.profile-location{

    color:#bfbfbf;

    margin-bottom:18px;

}

.profile-tags{

    display:flex;

    gap:12px;

    flex-wrap:wrap;

}
/* ======================================
   PROFILE FORM
====================================== */

.profile-grid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:25px;

    margin-top:25px;

}

.profile-grid label{

    display:block;

    margin-bottom:10px;

    font-weight:600;

    color:#d9d9d9;

}

.profile-grid input,
.profile-grid select,
.profile-grid textarea{

    width:100%;

    padding:15px 18px;

    border-radius:12px;

    border:1px solid rgba(255,255,255,.10);

    background:#1d1d1d;

    color:white;

    font-family:'Poppins',sans-serif;

    font-size:15px;

}

.profile-grid input:focus,
.profile-grid select:focus,
.profile-grid textarea:focus{

    outline:none;

    border-color:#D4AF37;

    box-shadow:0 0 0 3px rgba(212,175,55,.15);

}

.profile-grid input:disabled{

    background:#2a2a2a;

    color:#9a9a9a;

    cursor:not-allowed;

}

@media(max-width:768px){

.profile-grid{

grid-template-columns:1fr;

}

}