/* ---------- Theme tokens ---------- */
:root{
    /* Core */
    --bg:        #0a1624;
    --surface:   #0f2135;
    --surface-1: #0f2135;
    --surface-2: #132a44;
    --border:    rgba(255,255,255,.10);

    /* Text & links */
    --text:      #e6edf3;
    --muted:     #a8bfd5;
    --link:      #94c6ff;
    --link-h:    #c6e0ff;

    /* Accents */
    --accent:    #ffd24d;
    --accent-2:  #49b2ff;
    --danger:    #ff6b6b;
}

/* ---------- Base ---------- */
html, body{
    height:100%;
    background: var(--bg);
    color: var(--text);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
a{
    color: var(--link);
    text-decoration: none;
}
a:hover{
    color: var(--link-h);
    text-decoration: underline;
}
small, .text-muted, .text-secondary{
    color: var(--muted) !important;
}

.container-narrow{ max-width:1200px; }

/* ---------- Navbar ---------- */
.navbar{
    background: linear-gradient(180deg, #0d1b2c, #0b1827);
    border-bottom:1px solid var(--border);
}
.navbar .navbar-brand,
.navbar .nav-link{
    color: var(--text) !important;
}
.navbar .nav-link.active{
    color: var(--accent) !important;
}
.ticket{
    display:inline-block;
    margin-left:.25rem;
    padding:.05rem .35rem;
    background: var(--accent);
    color:#041326;
    border-radius:4px;
    font-weight:700;
    font-size:.8em;
}

/* ---------- Cards / panels ---------- */
.card{
    background: var(--surface-2);
    border:1px solid var(--border);
    color: var(--text);
}
.stat-card{
    background: var(--surface-2);
    border:1px solid var(--border);
}
.film-card:hover{
    transform: translateY(-2px);
    transition: transform .15s ease;
}

/* ---------- Hero ---------- */
.hero{
    background:
            radial-gradient(1200px 300px at 20% 0%, rgba(255,255,255,.05), rgba(0,0,0,0)),
            linear-gradient(180deg, #0f2135, #0b1b2a 60%, #0a1624);
    border:1px solid var(--border);
    border-radius:18px;
    padding:2.25rem 1.75rem;
    box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.hero h1{
    letter-spacing:.2px;
}

/* ---------- Forms ---------- */
.form-control, .form-select{
    background:#0f2135;
    border:1px solid var(--border);
    color:var(--text);
}
.form-control::placeholder{
    color:#8aa4bb;
}
.form-control:focus, .form-select:focus{
    background:#12263e;
    color:var(--text);
    border-color:#2f5c8a;
    box-shadow:0 0 0 .2rem rgba(79,150,255,.15);
}

/* ---------- Buttons ---------- */
.btn-primary{
    color:#06203b;
    background:var(--accent);
    border-color:#e8c043;
}
.btn-primary:hover{
    background:#ffdf7e;
    border-color:#f0cd57;
}
.btn-outline-light{
    color:var(--text);
    border-color:var(--border);
}
.btn-outline-light:hover{
    color:var(--bg);
    background:var(--text);
    border-color:var(--text);
}
.btn-danger{
    background:#b94141;
    border-color:#b94141;
}
.btn-danger:hover{
    background:#d35252;
    border-color:#d35252;
}

/* ---------- Utilities ---------- */
.poster-fit{
    aspect-ratio:2/3;
    object-fit:cover;
}
.poster-thumb{
    width:96px;
    height:144px;
    object-fit:cover;
}
.title-clamp{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.desc-clamp{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.badge-soft{
    background:rgba(255,255,255,.08);
    border:1px solid var(--border);
    color:var(--text);
}

/* Sticky filters bar */
.filters-sticky{
    position:sticky;
    top:64px;
    z-index:100;
    background:var(--bg);
    padding:.5rem 0;
}

/* ---------- Bootstrap table theming (global) ---------- */
.table{
    --bs-table-color: var(--text);
    --bs-table-bg: var(--surface-2);
    --bs-table-striped-bg: #152e4a;
    --bs-table-hover-bg: #183652;
    --bs-table-border-color: var(--border);
    --bs-table-striped-color: var(--text);
    --bs-table-hover-color: var(--text);
    color: var(--text);
    margin-bottom: 0;
    border-color: var(--border);
}
.table > :not(caption) > * > *{
    background: transparent;
    border-bottom-color: var(--border);
    box-shadow: inset 0 0 0 9999px var(--bs-table-bg);
}
.table thead th{
    color: var(--muted);
    background: var(--surface);
    position: sticky;
    top: 0;
    z-index: 2;
    border-bottom: 1px solid var(--border);
}
.table-hover tbody tr:hover{
    background: var(--bs-table-hover-bg) !important;
}

/* ---------- Actors table polish ---------- */
.actors-table .table-head{
    background: var(--surface);
    border-bottom:1px solid var(--border);
    z-index:5; }
.actors-table tbody tr:hover{
    background:#183652;
}
.badge.bg-dim{
    background:rgba(255,255,255,.06) !important;
    border:1px solid var(--border);
    color:var(--text);
}

/* Avatar initials (small circle) */
.avatar{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:28px;
    height:28px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    border:1px solid var(--border);
    color:var(--text);
    font-weight:600;
    font-size:.75rem;
}

/* Keep actions column compact on small screens */
@media (max-width: 768px){
    .actors-table td:last-child{
        white-space:nowrap;
    }
}

/* ---------- Alerts & footer ---------- */
.alert{
    color:var(--text);
    background:rgba(255,255,255,.05);
    border:1px solid var(--border);
}
.footer{
    color:var(--muted);
    border-top:1px solid var(--border);
}

/* ----- Pager ----- */
.pager .pagination {
    margin: 0;
    gap: .4rem;
}

.pager .page-item .page-link {
    background: var(--surface-2);
    border: 1px solid var(--border);
    color: var(--text);
    border-radius: 9999px;
    min-width: 2.25rem;
    height: 2.25rem;
    line-height: 2.05rem;
    text-align: center;
    padding: 0 .75rem;
    box-shadow: inset 0 -1px 0 rgba(255,255,255,.03);
}

.pager .page-item .page-link:hover {
    background: #183652;
    color: var(--text);
}

.pager .page-item.active .page-link,
.pager .active > .page-link {
    background: var(--accent-2);
    border-color: #2f769e;
    color: #072133;
}

.pager .page-item.disabled .page-link {
    opacity: .45;
    cursor: default;
    background: var(--surface-2);
}

.pager-jump-input {
    width: 64px;
    height: 2.25rem;
    padding: .25rem .5rem;
    text-align: center;
    border-radius: 9999px;
}

/* ----- User dropdown ----- */
.user-menu{
    min-width: 240px;
    background: var(--surface-2);
    border: 1px solid var(--border);
    color: var(--text);
}
.user-menu .dropdown-divider{
    border-color: var(--border);
}
.user-menu .small, .user-menu .text-muted{
    color: var(--muted) !important;
}

.avatar{
    display:inline-flex; align-items:center; justify-content:center;
    border-radius:50%;
    width: 22px; height: 22px; font-size:.75rem;
    border:1px solid var(--border);
}
.bg-accent-2{ background: var(--accent-2) !important; }

.role-pill{
    background: rgba(255,255,255,.08);
    border:1px solid var(--border);
    color: var(--text);
    border-radius: 9999px;
    padding: .15rem .5rem;
    font-weight: 600;
}

.catalog-list .list-group-item{
    background: var(--surface-2);
    border:1px solid var(--border);
    padding:.85rem 1rem;
}
.catalog-row:hover{
    background:#183652;
}
.price-badge{
    display:inline-block;
    padding:.15rem .5rem;
    border-radius:.4rem;
    background:rgba(255,255,255,.08);
    border:1px solid var(--border);
    color:var(--text);
    font-weight:600;
}

.catalog-list a.h6,
.catalog-list a.h6:link,
.catalog-list a.h6:visited,
.catalog-list a.h6:active {
    color: var(--text) !important;
    text-decoration: none;
    font-weight: 600;
}

.catalog-list a.h6:hover,
.catalog-list a.h6:focus {
    color: var(--link-h) !important;
    text-decoration: underline;
}

.catalog-row:hover a.h6,
.catalog-row:hover .desc-clamp,
.catalog-row:hover .text-muted,
.catalog-row:hover .text-body-secondary,
.catalog-row:hover small {
    color: var(--text) !important;
}


.catalog-list .desc-clamp,
.catalog-list .text-muted,
.catalog-list .text-body-secondary,
.catalog-list small {
    color: var(--text) !important;
    opacity: 1 !important;
}

.list-group-item .btn.btn-outline-light { padding: .2rem .5rem; }
.card-header { background: var(--surface); border-bottom: 1px solid var(--border); }
