:root{

    --adm-bg:#050505;

    --adm-card:#121212;

    --adm-soft:#1A1A1A;

    --adm-border:rgba(255,255,255,.10);

    --adm-text:#FFFFFF;

    --adm-muted:#A1A1AA;

    --adm-accent:#FF1A1A;

    --adm-pink:#B30000;

    --adm-shadow:0 20px 45px rgba(0,0,0,.45);

}

*{
    box-sizing:border-box;
}

body{
    font-family:Inter,system-ui,sans-serif;
    margin:0;
    background:#050505;
}

a{
    text-decoration:none;
}

.admin-body{

    background:
        radial-gradient(circle at top left, rgba(255,0,0,.12), transparent 28%),
        radial-gradient(circle at bottom right, rgba(179,0,0,.14), transparent 28%),
        #050505;

    color:var(--adm-text);

}

.admin-shell{

    min-height:100vh;
    display:flex;

}

.admin-sidebar{

    width:292px;

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

    backdrop-filter:blur(18px);

    border-right:1px solid var(--adm-border);

    padding:24px;

    position:sticky;

    top:0;

    height:100vh;

}

.admin-brand{

    display:flex;

    gap:12px;

    align-items:center;

    margin-bottom:28px;

    color:var(--adm-text);

}

.admin-logo{

    width:52px;

    height:52px;

    border-radius:20px;

    background:linear-gradient(135deg,var(--adm-accent),var(--adm-pink));

    display:grid;

    place-items:center;

    color:white;

    font-size:25px;

    box-shadow:0 0 25px rgba(255,0,0,.35);

}

.admin-brand-title{

    font-size:25px;

    font-weight:900;

    background:linear-gradient(90deg,var(--adm-accent),#ffffff);

    -webkit-background-clip:text;

    color:transparent;

}

.admin-user{

    background:var(--adm-soft);

    border:1px solid var(--adm-border);

    border-radius:24px;

    padding:16px;

    margin-bottom:22px;

}

.admin-user strong{

    display:block;

    color:var(--adm-text);

}

.admin-user span{

    font-size:13px;

    color:var(--adm-muted);

}

.admin-nav{

    display:grid;

    gap:10px;

}

.admin-nav a{

    padding:14px 16px;

    border-radius:18px;

    font-weight:900;

    color:var(--adm-muted);

    display:flex;

    align-items:center;

    gap:10px;

    transition:.2s;

}

.admin-nav a:hover,
.admin-nav a.active{

    background:linear-gradient(90deg,rgba(255,0,0,.18),rgba(179,0,0,.18));

    color:#FFFFFF;

    transform:translateX(3px);

    box-shadow:0 0 18px rgba(255,0,0,.15);

}

.admin-main{

    flex:1;

    min-width:0;

}

.admin-topbar{

    position:sticky;

    top:0;

    z-index:20;

    background:rgba(5,5,5,.90);

    backdrop-filter:blur(18px);

    border-bottom:1px solid var(--adm-border);

    padding:20px 28px;

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:16px;

}

.admin-topbar h1{

    font-size:30px;

    font-weight:900;

    margin:0;

    color:var(--adm-text);

}

.admin-topbar p{

    margin:4px 0 0;

    color:var(--adm-muted);

}

.admin-content{

    padding:28px;

}

.admin-search{

    width:min(420px,100%);

    background:#121212;

    border:1px solid var(--adm-border);

    border-radius:18px;

    padding:13px 16px;

    outline:none;

    color:#FFFFFF;

}

.btn-admin{

    border:none;

    border-radius:18px;

    padding:13px 18px;

    font-weight:900;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    background:linear-gradient(90deg,var(--adm-accent),var(--adm-pink));

    color:white;

    box-shadow:0 0 25px rgba(255,0,0,.25);

    cursor:pointer;

    transition:.3s;

}

.btn-admin:hover{

    transform:translateY(-2px);

    box-shadow:0 0 35px rgba(255,0,0,.45);

}

.btn-soft{

    border:none;

    border-radius:18px;

    padding:13px 18px;

    font-weight:900;

    display:inline-flex;

    align-items:center;

    justify-content:center;

    gap:8px;

    background:#1A1A1A;

    color:#FFFFFF;

    border:1px solid var(--adm-border);

    cursor:pointer;

}

.admin-grid{

    display:grid;

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

    gap:18px;

}

.admin-card{

    background:var(--adm-card);

    border:1px solid var(--adm-border);

    border-radius:28px;

    padding:24px;

    box-shadow:var(--adm-shadow);

    transition:.3s;

}

.admin-card:hover{

    transform:translateY(-4px);

    border-color:#FF1A1A;

    box-shadow:0 0 30px rgba(255,0,0,.18);

}

.admin-card h3{

    font-size:14px;

    color:var(--adm-muted);

    text-transform:uppercase;

    letter-spacing:.08em;

    margin:0;

}

.admin-card .value{

    font-size:35px;

    font-weight:900;

    color:var(--adm-text);

    margin-top:10px;

}

.admin-card .hint{

    color:var(--adm-muted);

    font-size:13px;

    margin-top:8px;

}

.admin-section{

    margin-top:24px;

    background:#121212;

    border:1px solid var(--adm-border);

    border-radius:30px;

    box-shadow:var(--adm-shadow);

    overflow:hidden;

}

.admin-section-header{

    padding:22px 24px;

    border-bottom:1px solid var(--adm-border);

    display:flex;

    align-items:center;

    justify-content:space-between;

    gap:14px;

}

.admin-section-header h2{

    margin:0;

    font-size:24px;

    font-weight:900;

    color:var(--adm-text);

}

.admin-table-wrap{

    overflow:auto;

}

.admin-table{

    width:100%;

    border-collapse:collapse;

    min-width:900px;

}

.admin-table th{

    background:#181818;

    color:#FFFFFF;

    text-align:left;

    padding:16px;

    font-size:12px;

    text-transform:uppercase;

    letter-spacing:.08em;

}

.admin-table td{

    padding:16px;

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

    color:#E4E4E7;

    vertical-align:middle;

}

.admin-table tr:hover td{

    background:#1A1A1A;

}

.status{

    display:inline-flex;

    align-items:center;

    padding:7px 11px;

    border-radius:999px;

    font-size:12px;

    font-weight:900;

}

.status-activa,
.status-aprobado,
.status-vendido{

    background:#052e16;

    color:#4ade80;

}

.status-pausada,
.status-pendiente,
.status-reservado{

    background:#3f1d00;

    color:#fbbf24;

}

.status-finalizada,
.status-rechazado{

    background:#450a0a;

    color:#f87171;

}

.progress-admin{

    height:10px;

    background:#1A1A1A;

    border-radius:999px;

    overflow:hidden;

    min-width:120px;

}

.progress-admin span{

    height:100%;

    display:block;

    background:linear-gradient(90deg,var(--adm-accent),var(--adm-pink));

}

.form-card{

    background:#121212;

    border:1px solid var(--adm-border);

    border-radius:30px;

    box-shadow:var(--adm-shadow);

    padding:28px;

    max-width:980px;

}

.form-grid{

    display:grid;

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

    gap:18px;

}

.form-group{

    margin-top:16px;

}

.form-group label{

    font-weight:900;

    color:#FFFFFF;

    display:block;

    margin-bottom:8px;

}

.form-input,
.form-select,
.form-textarea{

    width:100%;

    border:1px solid var(--adm-border);

    border-radius:18px;

    padding:14px 16px;

    background:#1A1A1A;

    color:#FFFFFF;

    outline:none;

}

.form-textarea{

    min-height:130px;

    resize:vertical;

}

.number-board{

    display:grid;

    grid-template-columns:repeat(auto-fill,minmax(64px,1fr));

    gap:10px;

}

.ticket{

    border:none;

    border-radius:16px;

    padding:12px 6px;

    font-weight:900;

    min-height:48px;

    text-align:center;

    background:#1A1A1A;

    color:#FFFFFF;

    border:1px solid var(--adm-border);

}

.ticket.disponible{

    background:#1A1A1A;

    color:#FFFFFF;

}

.ticket.reservado{

    background:#3f1d00;

    color:#fbbf24;

}

.ticket.vendido{

    background:#052e16;

    color:#4ade80;

}

.ticket-info{

    font-size:11px;

    margin-top:4px;

    opacity:.78;

}

.auth-body{

    min-height:100vh;

    background:#050505;

    display:grid;

    place-items:center;

    padding:24px;

}

.auth-card-admin{

    width:min(480px,100%);

    background:#121212;

    border:1px solid var(--adm-border);

    border-radius:34px;

    box-shadow:var(--adm-shadow);

    padding:34px;

}

.auth-card-admin h1{

    font-size:42px;

    color:#FFFFFF;

    margin:22px 0 8px;

    font-weight:900;

}

.auth-card-admin p{

    color:#A1A1AA;

    line-height:1.7;

}

.flash{

    padding:14px 16px;

    border-radius:18px;

    margin-bottom:16px;

    font-weight:800;

}

.flash.error{

    background:#450a0a;

    color:#f87171;

}

.flash.success{

    background:#052e16;

    color:#4ade80;

}

@media(max-width:980px){

    .admin-shell{
        display:block;
    }

    .admin-sidebar{

        width:100%;

        height:auto;

        position:relative;

    }

    .admin-grid,
    .form-grid{

        grid-template-columns:1fr;

    }

    .admin-topbar{

        display:block;

    }

    .admin-content{

        padding:18px;

    }

}