/* ===========================================
   VICE Comedy Club — Admin Theme
   =========================================== */
:root {
    --vc-pink: #ff2eb6;
    --vc-pink-soft: #ff6ad5;
    --vc-purple: #a020f0;
    --vc-deep: #5b1689;
    --vc-ink: #0d0418;
    --vc-ink-2: #14072a;
    --vc-mid: #1f0d3a;
    --vc-line: #ffffff14;
    --grad-neon: linear-gradient(120deg, #ff2eb6 0%, #a020f0 60%, #5b1689 100%);
    --grad-side: linear-gradient(180deg, #1a0a2a 0%, #0d0418 100%);
}

* { box-sizing: border-box; }
html, body {
    background: #0a0414;
    color: #e9def7;
    font-family: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    margin: 0; padding: 0;
}
h1, h2, h3, h4, h5 { font-family: 'Bricolage Grotesque', sans-serif; color: #fff; font-weight: 800; letter-spacing: -0.01em; }
a { color: var(--vc-pink-soft); text-decoration: none; }
a:hover { color: #fff; }

/* App shell */
.app-shell { min-height: 100vh; display: flex; }
.sidebar {
    width: 260px; background: var(--grad-side);
    color: #e9def7; padding: 1.4rem 1rem; position: sticky; top: 0; height: 100vh;
    overflow-y: auto;
    border-right: 1px solid var(--vc-line);
}
.sidebar .brand { display: flex; align-items: center; gap: .65rem; padding: .25rem .25rem 1rem; }
.sidebar .brand-mark { width: 42px; height: 42px; border-radius: 50%; background: var(--grad-neon); display: grid; place-items: center; color: #fff; font-family: 'Caveat Brush', cursive; font-size: 1.5rem; }
.sidebar .brand-logo { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 18px rgba(255,46,182,.45); flex-shrink: 0; }
.sidebar h1 { font-size: 1rem; margin: 0; line-height: 1.1; color: #fff; }
.sidebar small { color: var(--vc-pink-soft); font-size: .72rem; letter-spacing: .15em; text-transform: uppercase; }
.sidebar .nav-link {
    color: #cdb6f0 !important; padding: .65rem .85rem !important; border-radius: 12px;
    margin-bottom: 2px; font-weight: 500; display: flex; align-items: center; gap: .65rem;
    transition: all .15s ease;
}
.sidebar .nav-link:hover { background: rgba(255,255,255,.05); color: #fff !important; }
.sidebar .nav-link.active { background: var(--grad-neon); color: #fff !important; box-shadow: 0 6px 20px rgba(255,46,182,.3); }
.sidebar hr { border-color: var(--vc-line); margin: 1rem 0; }
.sidebar .section-title { font-size: .7rem; text-transform: uppercase; letter-spacing: .2em; color: #6c648a; padding: .5rem .85rem; }

.main-content { flex-grow: 1; padding: 1.5rem 2rem; min-width: 0; }
.page-shell { max-width: 1400px; margin: 0 auto; }

/* Page header */
.page-header { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 1rem; margin-bottom: 1.5rem; padding-bottom: 1.2rem; border-bottom: 1px solid var(--vc-line); }
.page-header h1 { margin: 0; font-size: 1.7rem; color: #fff; }
.page-header .subtitle { color: #a89dc7; font-size: .95rem; margin-top: .25rem; }

/* Cards */
.stat-card {
    background: linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.02));
    border: 1px solid var(--vc-line); border-radius: 18px; padding: 1.4rem;
    transition: all .2s; height: 100%;
}
.stat-card:hover { border-color: rgba(255,46,182,.4); transform: translateY(-2px); }
.stat-card .stat-label { color: #a89dc7; font-size: .82rem; text-transform: uppercase; letter-spacing: .1em; }
.stat-card .stat-value { font-family: 'Bricolage Grotesque', sans-serif; font-size: 2rem; font-weight: 800; color: #fff; line-height: 1.1; margin-top: .35rem; }
.stat-card .stat-icon { width: 48px; height: 48px; border-radius: 14px; background: rgba(255,46,182,.15); display: grid; place-items: center; color: var(--vc-pink); font-size: 1.4rem; }

.card-block {
    background: linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.01));
    border: 1px solid var(--vc-line); border-radius: 18px; padding: 1.5rem;
    margin-bottom: 1.5rem;
}
.card-block h3, .card-block h4 { margin-top: 0; }

/* Buttons */
.btn-vc-primary { background: var(--grad-neon); border: 0; color: #fff; padding: .55rem 1.4rem; border-radius: 999px; font-weight: 700; }
.btn-vc-primary:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 8px 20px rgba(255,46,182,.4); }
.btn-vc-outline { background: transparent; border: 1px solid #ffffff44; color: #fff; padding: .5rem 1.2rem; border-radius: 999px; font-weight: 600; }
.btn-vc-outline:hover { background: #ffffff14; color: #fff; border-color: #ffffff88; }
.btn-vc-danger { background: rgba(239,68,68,.85); color: #fff; border: 0; padding: .5rem 1.1rem; border-radius: 999px; font-weight: 600; }
.btn-vc-danger:hover { background: #ef4444; color: #fff; }

/* Tables */
.table { color: #e9def7; --bs-table-bg: transparent; }
.table thead th { color: #a89dc7; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 700; border-color: var(--vc-line); padding: .85rem .9rem; }
.table tbody td { border-color: var(--vc-line); padding: .85rem .9rem; vertical-align: middle; }
.table tbody tr:hover { background: rgba(255,255,255,.03); }
.table .badge { padding: .35rem .65rem; border-radius: 999px; font-size: .72rem; }

/* Forms */
.form-control, .form-select { background: rgba(0,0,0,.3); border: 1px solid #ffffff22; color: #fff; padding: .6rem .9rem; border-radius: 10px; }
.form-control:focus, .form-select:focus { background: rgba(0,0,0,.4); border-color: var(--vc-pink); box-shadow: 0 0 0 .2rem rgba(255,46,182,.2); color: #fff; }
.form-control::placeholder { color: #6c648a; }
.form-label { color: #cdb6f0; font-weight: 600; font-size: .85rem; }

/* Status badges */
.status-pill { padding: .3rem .7rem; border-radius: 999px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
.status-OnSale, .status-Active, .status-Confirmed, .status-Paid, .status-CheckedIn { background: rgba(34,197,94,.18); color: #86efac; }
.status-AwaitingPayment, .status-Pending, .status-Scheduled, .status-Processing { background: rgba(250,204,21,.18); color: #fde68a; }
.status-Cancelled, .status-Failed, .status-Expired, .status-NoShow { background: rgba(239,68,68,.18); color: #fca5a5; }
.status-SoldOut, .status-Live { background: rgba(160,32,240,.2); color: #d8b4fe; }
.status-Completed, .status-Closed, .status-New, .status-Read, .status-Replied { background: rgba(139,92,246,.18); color: #c4b5fd; }
.status-Refunded, .status-PartiallyRefunded { background: rgba(255,123,0,.18); color: #fed7aa; }

/* Floor plan editor */
.floor-edit {
    position: relative;
    background:
        repeating-linear-gradient(0deg, rgba(255,255,255,.03) 0 1px, transparent 1px 32px),
        repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 32px),
        var(--vc-ink-2);
    border: 1px solid var(--vc-line); border-radius: 14px; height: 660px; overflow: hidden;
}
.stage-block { position: absolute; left: 50%; top: 18px; transform: translateX(-50%); width: 70%; height: 70px; background: var(--grad-neon); border-radius: 16px; display: grid; place-items: center; color: #fff; font-family: 'Caveat Brush', cursive; font-size: 1.8rem; }
.fp-table { position: absolute; border-radius: 12px; border: 2px solid #ffffff44; cursor: move; display: grid; place-items: center; color: #fff; font-weight: 700; font-size: .8rem; user-select: none; }
.fp-table .lbl { line-height: 1; text-align: center; }
.fp-table .lbl small { display: block; font-size: .6rem; color: #b9b0d3; margin-top: 2px; }
.fp-table.t-VIPBooth { background: linear-gradient(135deg, rgba(255,123,0,.5), rgba(217,70,239,.5)); border-color: rgba(255,123,0,.9); }
.fp-table.t-PremiumTable { background: linear-gradient(135deg, rgba(255,46,182,.4), rgba(160,32,240,.4)); border-color: rgba(255,46,182,.9); border-radius: 50%; }
.fp-table.t-StandardTable { background: rgba(124,58,237,.3); border-color: rgba(124,58,237,.7); }
.fp-table.t-BarStool { background: rgba(250,204,21,.25); border-color: rgba(250,204,21,.7); border-radius: 50%; }

/* Login */
.login-shell { min-height: 100vh; display: grid; place-items: center; background: radial-gradient(circle at 50% 30%, rgba(160,32,240,.4), transparent 60%), #0a0414; padding: 2rem 1rem; }
.login-card { background: linear-gradient(180deg, #1a0a2a, #0d0418); border: 1px solid var(--vc-line); border-radius: 24px; padding: 3rem; max-width: 460px; width: 100%; box-shadow: 0 0 80px rgba(255,46,182,.25); }
.login-card .brand { width: 80px; height: 80px; border-radius: 50%; background: var(--grad-neon); display: grid; place-items: center; color: #fff; font-family: 'Caveat Brush', cursive; font-size: 2.4rem; margin: 0 auto 1.5rem; box-shadow: 0 0 40px rgba(255,46,182,.45); }
.login-card .login-logo { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; display: block; margin: 0 auto 1.5rem; box-shadow: 0 0 40px rgba(255,46,182,.45), 0 0 80px rgba(160,32,240,.25); }

/* Alerts */
.alert { border: 0; border-radius: 12px; padding: .85rem 1.1rem; }
.alert-success { background: rgba(34,197,94,.15); color: #86efac; border-left: 4px solid #22c55e; }
.alert-danger { background: rgba(239,68,68,.15); color: #fca5a5; border-left: 4px solid #ef4444; }
.alert-info { background: rgba(160,32,240,.15); color: #d8b4fe; border-left: 4px solid var(--vc-purple); }
.alert-warning { background: rgba(250,204,21,.15); color: #fde68a; border-left: 4px solid #facc15; }

/* Search bar */
.filter-bar { background: rgba(255,255,255,.03); border: 1px solid var(--vc-line); border-radius: 14px; padding: 1rem; margin-bottom: 1.5rem; }

/* Mobile sidebar */
@media (max-width: 991px) {
    .app-shell { flex-direction: column; }
    .sidebar { width: 100%; position: relative; height: auto; }
    .main-content { padding: 1.2rem; }
}

.muted { color: #a89dc7; }
.text-pink { color: var(--vc-pink); }
.bg-grad-neon { background: var(--grad-neon); }

/* Modal */
.modal-content { background: #14072a; border: 1px solid var(--vc-line); color: #fff; border-radius: 18px; }
.modal-header { border-bottom-color: var(--vc-line); }
.modal-footer { border-top-color: var(--vc-line); }
.btn-close { filter: invert(1) brightness(2); }

/* Quick action card */
.action-tile { display: block; background: rgba(255,255,255,.03); border: 1px solid var(--vc-line); border-radius: 14px; padding: 1.2rem; color: #e9def7 !important; transition: all .2s; }
.action-tile:hover { background: rgba(255,46,182,.1); border-color: var(--vc-pink); transform: translateY(-2px); }
.action-tile i { color: var(--vc-pink); font-size: 1.4rem; }
