/* assets/style.css - PND Live TV clean admin theme */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --primary: #2563eb;
  --primary-2: #1f57df;
  --bg: #f4f6fb;
  --surface: #ffffff;
  --border: #e6eaf2;
  --text: #1f2937;
  --muted: #6b7280;
  --shadow: 0 2px 10px rgba(15, 23, 42, .06);

  --bs-border-radius: 0;
  --bs-border-radius-sm: 0;
  --bs-border-radius-lg: 0;
  --bs-border-radius-xl: 0;
  --bs-border-radius-2xl: 0;
}

html, body { height: 100%; }

body {
  font-family: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: var(--bg);
  color: var(--text);
  margin: 0;
  font-size: .95rem;
  line-height: 1.45;
}

#wrapper { display: flex; min-height: 100vh; width: 100%; }

#sidebar-wrapper {
  width: 270px;
  min-height: 100vh;
  background: var(--surface);
  border-right: 1px solid var(--border);
  box-shadow: none;
  z-index: 1040;
}

/* Container voor de zoekresultaten */
#search-results-container {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.15);
    overflow: hidden;
}

/* Groep kop (bijv. Series, Movies) */
/* De container van de zoekresultaten */
/* Container styling voor de groepering */
.sr-group { margin-bottom: 5px; border-bottom: 1px solid #f0f0f0; }
.sr-head { 
    background: #f8f9fa; 
    padding: 6px 15px; 
    font-size: 0.7rem; 
    font-weight: 800; 
    text-transform: uppercase; 
    color: #a0a0a0; 
    letter-spacing: 0.5px;
}

/* De individuele zoekresultaten */
.sr-item { 
    display: flex !important; 
    align-items: center !important; 
    padding: 8px 15px; 
    text-decoration: none !important; 
    transition: background 0.2s;
}
.sr-item:hover { background: #f4f7fb; }

/* De poster afbeelding */
.sr-img { 
    width: 32px !important; 
    height: 45px !important; 
    object-fit: cover; 
    border-radius: 4px; 
    margin-right: 12px !important; 
    background: #eee;
    flex-shrink: 0;
}

/* Tekst layout */
.sr-content { display: flex; flex-direction: column; justify-content: center; }
.sr-title { font-weight: 700; color: #333; font-size: 0.88rem; line-height: 1.2; margin-bottom: 1px; }
.sr-sub { font-size: 0.72rem; color: #777; font-weight: 500; }

#sidebar-wrapper .nav { padding: 6px 0 16px; }

.sidebar-brand {
  padding: 18px 18px 10px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 800;
  color: var(--text);
  letter-spacing: .2px;
  text-transform: uppercase;
}

.sidebar-brand .brand-logo { width: 26px; height: 26px; display: inline-block; }
.sidebar-brand .brand-accent { color: var(--primary); }

.nav-link {
  color: var(--muted) !important;
  padding: 10px 18px !important;
  margin: 0;
  border-left: 3px solid transparent;
  border-radius: 0 !important;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 10px;
}

.nav-link i { width: 20px; font-size: 1.05rem; opacity: .85; }

.nav-link:hover {
  background: rgba(47, 108, 255, .08);
  color: var(--text) !important;
}

.nav-link.active {
  background: rgba(47, 108, 255, .12) !important;
  color: var(--text) !important;
  border-left-color: var(--primary);
  box-shadow: none;
  font-weight: 800;
}

#page-content-wrapper { flex: 1; min-width: 0; padding: 18px 22px 26px; }

.topbar {
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: none;
  padding: 10px 14px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.topbar-title { font-weight: 800; letter-spacing: .2px; color: var(--text); }
.topbar .btn { border-radius: 0 !important; }

/* Flat components */
.card {
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  box-shadow: var(--shadow);
  margin-bottom: 16px;
  background: var(--surface);
}
.card:hover { transform: none; }

.table {
  border-radius: 0 !important;
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--surface);
}
.table thead th {
  background: #f8fafc;
  border-bottom: 1px solid var(--border);
  text-transform: uppercase;
  font-size: .72rem;
  letter-spacing: .08em;
  padding: 14px 14px;
  color: var(--muted);
}
.table td {
  padding: 14px 14px;
  vertical-align: middle;
  border-color: var(--border);
}

/* Responsive table wrapper */
.table-responsive-fix { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-responsive-fix .table { min-width: 880px; }
@media (max-width: 768px) { .table-responsive-fix .table { min-width: 760px; } }

.badge,.btn,.form-control,.form-select,.input-group-text,.dropdown-menu,.modal-content,.alert { border-radius: 0 !important; }

.btn { font-weight: 700; }
.btn-primary { background: var(--primary); border-color: var(--primary); }
.btn-primary:hover { background: var(--primary-2); border-color: var(--primary-2); }

.form-control,.form-select { border: 1px solid var(--border); }
.form-control:focus,.form-select:focus {
  border-color: rgba(47, 108, 255, .55);
  box-shadow: 0 0 0 .15rem rgba(47, 108, 255, .18);
}

/* Toasts */
.toast-container {
  position: fixed;
  top: 16px;
  right: 16px;
  z-index: 11000;
  width: 360px;
}
.custom-toast {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--primary);
  padding: 12px 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  box-shadow: 0 10px 25px rgba(15, 23, 42, .10);
  position: relative;
}
.custom-toast.border-danger { border-left-color: #dc3545; }
.custom-toast.border-primary { border-left-color: var(--primary); }

#loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(255, 255, 255, 0.72);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10000;
}

/* Mobile sidebar */
#sidebar-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, .45);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  z-index: 1039;
}

@media (max-width: 991.98px) {
  #sidebar-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    transform: translateX(-100%);
    transition: transform .2s ease;
  }
  body.sidebar-open #sidebar-wrapper { transform: translateX(0); }
  body.sidebar-open #sidebar-backdrop { opacity: 1; pointer-events: auto; }
  #page-content-wrapper { padding: 14px 14px 22px; }
  .toast-container { width: min(92vw, 420px); right: 10px; top: 10px; }
}

/* Copy M3U */
.btn-copy-m3u {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .65rem;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  font-weight: 500;
  font-size: .82rem;
  text-decoration: none;
  box-shadow: 0 1px 6px rgba(15, 23, 42, .06);
}
.btn-copy-m3u:hover { background: #f8fafc; border-color: #d7deea; color: var(--text); }
.btn-copy-m3u i { color: var(--primary); }

/* Move/Load */
.btn-move,.btn-load {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  text-decoration: none;
  box-shadow: 0 1px 6px rgba(15, 23, 42, .06);
}
.btn-move:hover,.btn-load:hover { background: #f8fafc; border-color: #d7deea; }
.btn-move.disabled,.btn-load.disabled,.btn-move[aria-disabled="true"],.btn-load[aria-disabled="true"]{
  background:#f1f5f9; border-color:#e2e8f0; color:#94a3b8 !important;
  pointer-events:none; opacity:1; box-shadow:none;
}

.sort-input-box {
  width: 78px !important;
  max-width: 78px !important;
  text-align: center;
  padding-left: .4rem !important;
  padding-right: .4rem !important;
}

/* Login */
.login-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background: var(--bg);
}
.login-card{
  width: min(420px, 100%);
  background: var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
  padding: 28px;
}
.login-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-bottom: 18px;
}
.login-brand img{ height:28px; width:auto; }
.login-title{ font-weight:800; letter-spacing:.3px; margin:0; }

/* Global search */
.topbar-search{ position:relative; width: min(520px, 55vw); }
.topbar-search-inner{ position:relative; }
.topbar-search .form-control{
  height: 38px;
  padding-left: 34px;
  border: 1px solid var(--border) !important;
  background:#fff !important;
}
.search-ico{
  position:absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--muted);
  font-size: .9rem;
  pointer-events:auto;
  cursor:pointer;
}
.search-results{
  position:absolute;
  top: calc(100% + 6px);
  left:0; right:0;
  background:#fff;
  border:1px solid var(--border);
  box-shadow: var(--shadow);
  max-height: min(70vh, 420px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  z-index: 1050;
}
@media (max-width: 991.98px){ .topbar-search{ width:100%; } }

/* ===== Modal helper class =====
   Gebruik zo:
   <div class="modal-dialog modal-dialog-centered modal-admin"> ... </div>
*/
.modal-dialog.modal-admin{ max-width: 720px; }
.modal-dialog.modal-admin .modal-content{
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
}
.modal-dialog.modal-admin .modal-body{ padding: 22px !important; }
.modal-dialog.modal-admin .form-control,
.modal-dialog.modal-admin .form-select{ min-height: 42px; }

/* ===== FINAL: login groter op mobiel (ALS LAATSTE) ===== */
@media (max-width: 576px){
  body.login-page{ padding: 14px !important; }

  body.login-page .login-card{
    width: 100% !important;
    max-width: 560px !important;
    padding: 34px !important;
    margin: 0 auto !important;
  }

  body.login-page .login-title{ font-size: 1.35rem !important; }

  body.login-page .login-card .form-control{
    height: 48px !important;
    font-size: 1rem !important;
  }

  body.login-page .login-card .btn{
    padding: 12px 14px !important;
    font-size: 1rem !important;
  }

  .modal-dialog.modal-admin{
    max-width: 96vw;
    margin: .75rem auto;
  }
}


/* ===== Shared admin refresh for movies / series / tv ===== */
:root {
  --surface-soft: #f8fafc;
  --surface-soft-2: #f3f6fb;
  --success: #198754;
  --danger: #dc3545;
  --warning: #f5c518;
}

.btn {
  font-weight: 600;
  letter-spacing: .01em;
  box-shadow: none !important;
}

.btn-sm {
  padding: .48rem .8rem;
}

.btn-light.border {
  background: var(--surface) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

.page-section-title,
.admin-page-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text);
  margin: 0;
}

.admin-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 18px;
}

.admin-toolbar-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.admin-back-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--muted);
  text-decoration: none;
  font-weight: 700;
  min-width: 0;
  max-width: 100%;
}

.admin-back-link:hover {
  color: var(--text);
}

.admin-page-kicker {
  color: var(--muted);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.admin-hero,
.movie-hero {
  position: relative !important;
  overflow: hidden !important;
  min-height: 300px !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  box-shadow: var(--shadow) !important;
  background: #0f172a !important;
}

.admin-hero-bg,
.movie-hero img.bg {
  display: block !important;
  width: 100% !important;
  height: 340px !important;
  object-fit: cover !important;
  filter: brightness(.42) !important;
}

.admin-hero::after,
.movie-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(15, 23, 42, .92) 0%, rgba(15, 23, 42, .72) 42%, rgba(15, 23, 42, .35) 100%);
  pointer-events: none;
}

.admin-hero-overlay,
.movie-hero .overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  display: flex !important;
  align-items: flex-end !important;
  gap: 22px !important;
  padding: 24px !important;
  min-width: 0 !important;
}

.admin-hero-poster,
.movie-poster {
  width: 156px !important;
  height: 234px !important;
  flex: 0 0 auto !important;
  object-fit: cover !important;
  border-radius: 0 !important;
  box-shadow: 0 18px 38px rgba(0, 0, 0, .28) !important;
  border: 1px solid rgba(255, 255, 255, .12) !important;
  background: #0b1220 !important;
}

.admin-hero-copy {
  min-width: 0;
}

.admin-hero-title {
  font-size: clamp(1.3rem, 2vw, 2rem);
  font-weight: 800;
  line-height: 1.18;
  margin: 0 0 10px;
  overflow-wrap: anywhere;
}

.badge-imdb-rating,
.badge-release,
.admin-soft-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  min-height: 34px !important;
  padding: 7px 12px !important;
  border-radius: 0 !important;
  font-size: .82rem !important;
  line-height: 1.2 !important;
  border: 1px solid transparent !important;
}

.badge-imdb-rating {
  background: rgba(245, 197, 24, .96) !important;
  color: #111827 !important;
  font-weight: 800 !important;
}

.badge-release {
  background: rgba(255, 255, 255, .12) !important;
  border-color: rgba(255, 255, 255, .18) !important;
  color: #fff !important;
  font-weight: 700 !important;
}

.admin-muted-meta {
  color: rgba(255,255,255,.74);
  font-size: .82rem;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.admin-status-pill,
.movie-state-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 30px !important;
  padding: 6px 10px !important;
  border-radius: 0 !important;
  font-size: .72rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  border: 1px solid transparent !important;
}

.admin-status-pill.online,
.movie-state-badge.online {
  background: rgba(25, 135, 84, .14) !important;
  color: var(--success) !important;
  border-color: rgba(25, 135, 84, .24) !important;
}

.admin-status-pill.offline,
.movie-state-badge.offline {
  background: rgba(220, 53, 69, .12) !important;
  color: var(--danger) !important;
  border-color: rgba(220, 53, 69, .22) !important;
}

.admin-info-card,
.admin-panel-card {
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  box-shadow: var(--shadow) !important;
  background: var(--surface) !important;
}

.info-label {
  color: var(--muted) !important;
  font-size: .74rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .08em !important;
  margin-bottom: 6px !important;
}

.editable {
  display: inline-block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
}

.editable-editing {
  padding: 6px 8px !important;
  border: 1px solid rgba(47, 108, 255, .38) !important;
  background: #fff !important;
  box-shadow: 0 0 0 .15rem rgba(47, 108, 255, .14) !important;
  color: var(--text) !important;
}

.plot-area.editable-editing {
  min-height: 180px !important;
  display: block !important;
}

.edit-trigger {
  color: #94a3b8 !important;
}

.edit-trigger:hover {
  color: var(--primary) !important;
}

.admin-value,
.detail-value,
.movie-info-value,
.series-info-value {
  font-weight: 400 !important;
  color: var(--text);
  line-height: 1.55;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.admin-value.text-primary,
.detail-value.text-primary,
.movie-info-value.text-primary,
.series-info-value.text-primary {
  color: var(--primary) !important;
}

.stat-card,
.stat-card-custom,
.admin-stat-card {
  height: 100%;
  padding: 20px !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  box-shadow: var(--shadow) !important;
  background: var(--surface) !important;
}

.admin-stat-icon {
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--surface-soft-2);
  border: 1px solid var(--border);
  color: var(--primary);
  flex: 0 0 auto;
}

.admin-table-card,
.admin-list-card,
.list-group-item {
  border-radius: 0 !important;
}

.list-group-item {
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow) !important;
  background: var(--surface) !important;
}

.table td,
.table th,
.list-group-item,
.card,
.modal-content,
.alert {
  overflow-wrap: anywhere;
  word-break: break-word;
}

.form-select-custom,
.sort-input-box {
  border-radius: 0 !important;
  box-shadow: none !important;
}

.fb-actions-under {
  gap: 10px !important;
}

.fb-actions-under .btn,
.admin-toolbar-actions .btn {
  min-height: 40px;
}

@media (max-width: 991.98px) {
  .admin-toolbar,
  .films-toolbar,
  .series-toolbar,
  .page-toolbar {
    align-items: stretch !important;
  }

  .admin-toolbar-actions,
  .films-toolbar > div:last-child,
  .series-toolbar > div:last-child,
  .toolbar-actions,
  .cache-actions {
    width: 100%;
    justify-content: stretch !important;
  }

  .admin-toolbar-actions .btn,
  .films-toolbar > div:last-child .btn,
  .series-toolbar > div:last-child .btn,
  .toolbar-actions .btn,
  .cache-actions .btn,
  .fb-actions-under .btn {
    flex: 1 1 100%;
  }

  .admin-hero,
  .movie-hero {
    min-height: 0 !important;
  }

  .admin-hero-bg,
  .movie-hero img.bg {
    height: 440px !important;
  }

  .admin-hero-overlay,
  .movie-hero .overlay {
    align-items: flex-start !important;
    justify-content: flex-end !important;
    gap: 14px !important;
    padding: 16px !important;
    flex-direction: column !important;
  }

  .admin-hero-poster,
  .movie-poster {
    width: 124px !important;
    height: 186px !important;
  }

  .admin-hero-title {
    font-size: 1.35rem;
  }

  .admin-muted-meta {
    margin-left: 0 !important;
  }
}

@media (max-width: 575.98px) {
  .admin-hero-bg,
  .movie-hero img.bg {
    height: 420px !important;
  }

  #page-content-wrapper {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .table td,
  .table th {
    font-size: .86rem;
  }
}

/* ===== Merged from assets/footer.php ===== */
:root{
  --primary:#5b7cff;
  --primary-strong:#4567ff;
  --primary-soft:#eef2ff;
  --success:#0f9f6e;
  --danger:#dc4c64;
  --warning:#f4b400;
  --surface:#ffffff;
  --surface-2:#f7faff;
  --border:#dbe5f2;
  --text:#0f172a;
  --muted:#64748b;
  --shadow:0 18px 50px rgba(15,23,42,.08);
  --shadow-lg:0 28px 70px rgba(15,23,42,.12);
  --radius:20px;
  --radius-sm:14px;
}

html,body{ background: radial-gradient(circle at top left, #f8fbff 0%, #f2f5fb 46%, #eef2f8 100%) !important; }
body{ color:var(--text) !important; letter-spacing:-.01em; }

a{ transition: color .18s ease, opacity .18s ease, transform .18s ease; }

#wrapper{ background:transparent; }
#sidebar-wrapper{
  background:linear-gradient(180deg,#0b1220 0%, #101a2f 58%, #111827 100%) !important;
  border-right:1px solid rgba(148,163,184,.16) !important;
  box-shadow:24px 0 60px rgba(2,8,23,.12) !important;
}
.sidebar-brand{
  padding:22px 20px 14px !important;
  color:#fff !important;
  letter-spacing:.08em;
  font-size:1rem;
}
.sidebar-brand .brand-logo{ width:30px !important; height:30px !important; filter:drop-shadow(0 4px 12px rgba(91,124,255,.32)); }
.sidebar-brand .brand-accent{ color:#8ea3ff !important; }
#sidebar-wrapper .nav{ padding:12px 0 20px !important; }
#sidebar-wrapper hr{ color:rgba(148,163,184,.18) !important; margin:10px 16px !important; }
.nav-link{
  margin:4px 12px !important;
  padding:12px 14px !important;
  border:none !important;
  border-radius:16px !important;
  color:rgba(226,232,240,.82) !important;
  font-weight:700 !important;
}
.nav-link i{ color:rgba(191,219,254,.95) !important; opacity:1 !important; }
.nav-link:hover{
  background:rgba(148,163,184,.12) !important;
  color:#fff !important;
  transform:translateX(2px);
}
.nav-link.active{
  color:#fff !important;
  background:linear-gradient(135deg, rgba(91,124,255,.3), rgba(91,124,255,.14)) !important;
  border:1px solid rgba(129,140,248,.34) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 14px 30px rgba(69,103,255,.14) !important;
}
.nav-link.text-danger{ color:#fca5a5 !important; }
.nav-link.text-danger i{ color:#fca5a5 !important; }

#page-content-wrapper{ padding:20px 22px 28px !important; }
.topbar{
  position:sticky;
  top:0;
  z-index:120;
  margin-bottom:22px !important;
  padding:14px 18px !important;
  border-radius:22px !important;
  border:1px solid rgba(219,229,242,.82) !important;
  background:rgba(255,255,255,.86) !important;
  backdrop-filter:blur(14px);
  box-shadow:var(--shadow);
}
.topbar-title{
  font-size:1.05rem;
  font-weight:800 !important;
  color:var(--text) !important;
  letter-spacing:-.02em;
}
.topbar-search .form-control{
  height:44px !important;
  border-radius:14px !important;
  background:rgba(248,250,252,.96) !important;
}
.topbar-search .search-results{
  border-radius:18px !important;
  margin-top:8px;
  box-shadow:var(--shadow-lg) !important;
  max-height:min(70vh, 420px) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.sr-head{
  background:linear-gradient(180deg,#f8fbff 0%, #f1f5fb 100%) !important;
  color:#6b7280 !important;
  font-weight:800 !important;
}
.sr-item{ padding:10px 14px !important; }
.sr-item:hover{ background:#f6f8fc !important; }

.card,
.stat-card,
.stat-card-custom,
.admin-panel-card,
.admin-info-card,
.admin-stat-card,
.list-group-item,
.modal-content,
.login-card{
  border-radius:var(--radius) !important;
  border:1px solid rgba(219,229,242,.95) !important;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(248,251,255,.96) 100%) !important;
  box-shadow:var(--shadow) !important;
}
.card:hover,
.list-group-item:hover{ box-shadow:0 22px 60px rgba(15,23,42,.1) !important; }
.card-footer,
.modal-header,
.modal-body,
.modal-footer{ background:transparent !important; }

.page-section-title,
.admin-page-title,
h4.fw-bold,
h5.fw-bold,
h6.fw-bold{
  color:var(--text) !important;
  letter-spacing:-.02em;
}
.page-section-title,
.admin-page-title{ font-size:1.14rem !important; }

.btn{
  border-radius:14px !important;
  min-height:42px;
  padding:.7rem 1rem !important;
  font-weight:700 !important;
  letter-spacing:-.01em;
  border-width:1px !important;
  box-shadow:none !important;
}
.btn-sm{ min-height:36px; padding:.48rem .85rem !important; }
.btn-primary{
  background:linear-gradient(135deg,var(--primary) 0%, var(--primary-strong) 100%) !important;
  border-color:transparent !important;
  color:#fff !important;
  box-shadow:0 14px 30px rgba(69,103,255,.18) !important;
}
.btn-primary:hover,
.btn-primary:focus{ transform:translateY(-1px); box-shadow:0 18px 36px rgba(69,103,255,.24) !important; }
.btn-outline-primary,
.btn-outline-secondary,
.btn-light.border,
.btn-outline-danger,
.btn-outline-success{
  background:rgba(255,255,255,.82) !important;
  backdrop-filter:blur(8px);
}
.btn-outline-primary{ color:var(--primary) !important; border-color:rgba(91,124,255,.25) !important; }
.btn-outline-primary:hover{ background:rgba(91,124,255,.08) !important; color:var(--primary-strong) !important; }
.btn-outline-secondary{ color:#334155 !important; border-color:#dbe5f2 !important; }
.btn-outline-secondary:hover,
.btn-light.border:hover{ background:#f8fbff !important; color:#0f172a !important; }
.btn-outline-danger{ color:var(--danger) !important; border-color:rgba(220,76,100,.25) !important; }
.btn-outline-danger:hover{ background:rgba(220,76,100,.08) !important; }
.btn-danger{ box-shadow:0 14px 30px rgba(220,76,100,.14) !important; }
.btn-close{ filter:none; }

.form-control,
.form-select,
.input-group-text{
  min-height:46px;
  border-radius:14px !important;
  border:1px solid rgba(219,229,242,.95) !important;
  background:rgba(255,255,255,.94) !important;
  color:var(--text) !important;
}
.form-control:focus,
.form-select:focus{
  border-color:rgba(91,124,255,.55) !important;
  box-shadow:0 0 0 .22rem rgba(91,124,255,.14) !important;
  background:#fff !important;
}

.table{
  border:none !important;
  background:transparent !important;
}
.table thead th{
  background:linear-gradient(180deg,#f8fbff 0%, #f2f6fc 100%) !important;
  color:#64748b !important;
  border-bottom:1px solid rgba(219,229,242,.95) !important;
}
.table td{
  background:rgba(255,255,255,.55);
  border-color:rgba(219,229,242,.65) !important;
}
.table-hover tbody tr:hover td{ background:#f8fbff !important; }
.table-responsive-fix,
.table-responsive{ border-radius:18px !important; }

.pagination .page-link{
  border:none !important;
  color:#475569 !important;
  border-radius:12px !important;
  margin:0 3px;
  background:rgba(255,255,255,.88) !important;
  box-shadow:0 6px 16px rgba(15,23,42,.06);
}
.pagination .page-item.active .page-link{
  background:linear-gradient(135deg,var(--primary) 0%, var(--primary-strong) 100%) !important;
  color:#fff !important;
}

.badge,
.badge.bg-primary,
.badge.bg-success,
.badge.bg-danger,
.badge.bg-warning,
.admin-status-pill,
.movie-state-badge{
  border-radius:999px !important;
}
.badge.bg-primary{ background:rgba(91,124,255,.12) !important; color:var(--primary) !important; }
.badge.bg-success-soft,
.admin-status-pill.online,
.movie-state-badge.online{
  background:rgba(15,159,110,.12) !important;
  color:var(--success) !important;
  border:1px solid rgba(15,159,110,.18) !important;
}
.badge.bg-danger-soft,
.admin-status-pill.offline,
.movie-state-badge.offline{
  background:rgba(220,76,100,.1) !important;
  color:var(--danger) !important;
  border:1px solid rgba(220,76,100,.15) !important;
}
.badge-imdb-rating{
  background:linear-gradient(135deg,#f7cf44 0%, #f4b400 100%) !important;
  color:#111827 !important;
  border:none !important;
  border-radius:999px !important;
  box-shadow:0 10px 24px rgba(244,180,0,.18);
}
.badge-release,
.admin-soft-badge{
  border-radius:999px !important;
  background:rgba(255,255,255,.18) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  backdrop-filter:blur(10px);
}

.admin-toolbar,
.films-toolbar,
.series-toolbar,
.page-toolbar{
  gap:14px !important;
  margin-bottom:18px !important;
}
.admin-toolbar-actions,
.toolbar-actions,
.cache-actions{ gap:10px !important; }
.admin-back-link{
  padding:10px 14px;
  border-radius:14px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(219,229,242,.95);
  box-shadow:0 8px 22px rgba(15,23,42,.06);
  color:#334155 !important;
}
.admin-back-link:hover{ background:#fff; box-shadow:0 14px 30px rgba(15,23,42,.08); }

.admin-hero,
.movie-hero{
  min-height:320px !important;
  border:none !important;
  border-radius:28px !important;
  box-shadow:var(--shadow-lg) !important;
  background:#0f172a !important;
}
.admin-hero-bg,
.movie-hero img.bg{
  height:360px !important;
  filter:brightness(.36) saturate(1.08) !important;
}
.admin-hero::after,
.movie-hero::after{
  background:linear-gradient(90deg, rgba(7,12,24,.94) 0%, rgba(9,17,32,.84) 40%, rgba(15,23,42,.44) 100%) !important;
}
.admin-hero-overlay,
.movie-hero .overlay{
  padding:26px !important;
  align-items:flex-end !important;
  gap:22px !important;
}
.admin-hero-poster,
.movie-poster,
.modal-cover-preview{
  border-radius:22px !important;
  box-shadow:0 22px 50px rgba(0,0,0,.26) !important;
  border:1px solid rgba(255,255,255,.14) !important;
}
.admin-hero-title{ font-size:clamp(1.5rem,2vw,2.15rem) !important; }
.admin-hero-copy,
.admin-hero-title,
.admin-muted-meta,
.movie-info-value,
.detail-value,
.series-info-value,
.editable{ overflow-wrap:anywhere !important; word-break:break-word !important; }
.admin-page-kicker{ color:rgba(226,232,240,.7) !important; }
.admin-muted-meta{ color:rgba(226,232,240,.78) !important; }
.info-label{ color:#64748b !important; }
.edit-trigger{
  width:34px;
  height:34px;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  border-radius:999px !important;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(148,163,184,.18);
}
.edit-trigger:hover{ background:rgba(91,124,255,.14) !important; }

.list-group-item{
  margin-bottom:10px;
  padding:16px 18px !important;
}
.sort-input-box{ width:72px !important; max-width:72px !important; border-radius:12px !important; }
.btn-move,
.btn-load{
  width:36px !important;
  height:36px !important;
  border-radius:12px !important;
  border:1px solid rgba(219,229,242,.95) !important;
}

.modal-dialog{ --bs-modal-width:680px; }
.modal-dialog.modal-sm{ --bs-modal-width:420px; }
.modal-content{ padding:4px; }
.modal-header{ padding:20px 22px 0 !important; border:none !important; }
.modal-body{ padding:20px 22px 22px !important; }
.modal-footer{ padding:0 22px 22px !important; border:none !important; }

.toast-container{
  position:fixed !important;
  top:22px !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(92vw, 620px) !important;
  z-index:14000 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  pointer-events:none;
}
.custom-toast{
  width:100%;
  border:none !important;
  border-radius:18px !important;
  padding:15px 18px !important;
  background:rgba(255,255,255,.95) !important;
  box-shadow:0 22px 60px rgba(15,23,42,.18) !important;
  border-left:none !important;
  color:var(--text) !important;
  backdrop-filter:blur(16px);
  pointer-events:auto;
  position:relative;
  opacity:0;
  transform:translateY(-12px) scale(.98);
  animation:adminToastIn .28s ease forwards;
}
.custom-toast::before{
  content:'';
  position:absolute;
  inset:0 auto 0 0;
  width:5px;
  border-radius:18px 0 0 18px;
  background:linear-gradient(180deg,var(--primary) 0%, var(--primary-strong) 100%);
}
.custom-toast.border-danger::before,
.custom-toast.toast-error::before{ background:linear-gradient(180deg,#ff7b8f 0%, var(--danger) 100%); }
.custom-toast.border-success::before,
.custom-toast.toast-success::before{ background:linear-gradient(180deg,#37d39a 0%, var(--success) 100%); }
.custom-toast .toast-close{
  margin-left:auto;
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  color:#64748b;
  cursor:pointer;
  font-size:1.15rem;
  transition:all .18s ease;
}
.custom-toast .toast-close:hover{ background:rgba(15,23,42,.06); color:#0f172a; }
.custom-toast.toast-leave{ animation:adminToastOut .24s ease forwards; }

.alert:not(#thumbReportBox){
  max-width:min(92vw, 720px);
  margin:0 auto 20px !important;
  border-radius:18px !important;
  border:none !important;
  box-shadow:0 16px 40px rgba(15,23,42,.12) !important;
  animation:adminToastIn .28s ease forwards;
}
#thumbReportBox{
  max-width:760px;
  margin-left:auto !important;
  margin-right:auto !important;
  border-radius:18px !important;
  border:1px solid rgba(219,229,242,.95) !important;
  box-shadow:var(--shadow) !important;
}
#loading-overlay{
  background:rgba(15,23,42,.22) !important;
  backdrop-filter:blur(4px);
}
#loading-overlay .spinner-border{ width:3.2rem; height:3.2rem; }

.login-page{
  background:radial-gradient(circle at top, rgba(91,124,255,.15) 0%, rgba(91,124,255,.05) 24%, rgba(11,18,32,.02) 62%), linear-gradient(180deg,#f7faff 0%, #eff3f9 100%) !important;
}
.login-card{
  border-radius:26px !important;
  padding:32px !important;
  box-shadow:0 26px 70px rgba(15,23,42,.14) !important;
}
.login-card .alert{ max-width:100%; margin:0 0 14px !important; }

.series-availability,
.admin-sub-count{
  display:block;
  margin-top:4px;
  color:#64748b;
  font-size:.78rem;
  font-weight:600;
}

@keyframes adminToastIn{
  from{ opacity:0; transform:translateY(-12px) scale(.98); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
@keyframes adminToastOut{
  from{ opacity:1; transform:translateY(0) scale(1); }
  to{ opacity:0; transform:translateY(-10px) scale(.98); }
}

@media (max-width: 991.98px){
  #page-content-wrapper{ padding:14px 14px 22px !important; }
  .topbar{ padding:12px 14px !important; border-radius:18px !important; }
  .admin-toolbar-actions .btn,
  .films-toolbar > div:last-child .btn,
  .series-toolbar > div:last-child .btn,
  .toolbar-actions .btn,
  .cache-actions .btn,
  .fb-actions-under .btn{ width:100%; }
  .admin-hero,
  .movie-hero{ border-radius:24px !important; }
  .admin-hero-bg,
  .movie-hero img.bg{ height:430px !important; }
  .admin-hero-overlay,
  .movie-hero .overlay{
    align-items:flex-start !important;
    justify-content:flex-end !important;
    flex-direction:column !important;
    padding:18px !important;
  }
  .admin-hero-poster,
  .movie-poster{ width:122px !important; height:182px !important; }
}

@media (max-width: 575.98px){
  .topbar{ border-radius:16px !important; }
  .topbar-title{ font-size:.98rem !important; }
  .card,
  .stat-card,
  .stat-card-custom,
  .admin-panel-card,
  .admin-info-card,
  .list-group-item,
  .modal-content{ border-radius:18px !important; }
  .btn{ min-height:40px; }
  .btn-sm{ min-height:36px; }
  .admin-back-link{ width:100%; justify-content:center; }
  .admin-hero,
  .movie-hero{ min-height:0 !important; }
  .admin-hero-bg,
  .movie-hero img.bg{ height:470px !important; }
  .admin-hero-title{ font-size:1.38rem !important; }
  .admin-muted-meta{ font-size:.76rem !important; }
  .badge-imdb-rating,
  .badge-release,
  .admin-soft-badge{ max-width:100%; }
  .toast-container{ top:12px !important; width:min(94vw, 520px) !important; }
  .custom-toast{ border-radius:16px !important; padding:13px 15px !important; }
}


/* PND Live TV clean home */
.pnd-hero {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--border);
  background: linear-gradient(135deg, #0f172a 0%, #1d4ed8 58%, #38bdf8 100%);
  color: #fff;
  padding: 30px;
  display: flex;
  justify-content: space-between;
  gap: 22px;
  align-items: center;
  box-shadow: 0 20px 50px rgba(15,23,42,.14);
}
.pnd-hero:after { content:""; position:absolute; inset:auto -10% -40% 35%; height:220px; background:rgba(255,255,255,.14); transform:rotate(-8deg); }
.pnd-hero > * { position:relative; z-index:1; }
.pnd-kicker { text-transform:uppercase; font-size:.74rem; letter-spacing:.16em; font-weight:800; opacity:.8; margin-bottom:8px; }
.pnd-hero h1 { max-width: 840px; margin:0 0 8px; font-weight:900; letter-spacing:-.04em; font-size:clamp(1.7rem,3vw,3rem); }
.pnd-hero p { max-width: 760px; margin:0; opacity:.86; font-weight:500; }
.pnd-hero-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.pnd-stat { height:100%; background:#fff; border:1px solid var(--border); box-shadow:var(--shadow); padding:18px; }
.pnd-stat span { display:block; color:var(--muted); font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.pnd-stat b { display:block; font-size:2rem; line-height:1.1; letter-spacing:-.04em; margin:8px 0 4px; color:var(--text); }
.pnd-stat small { color:var(--muted); font-weight:600; }
.pnd-panel { box-shadow:0 12px 35px rgba(15,23,42,.06); }
.pnd-channel-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:16px; }
.pnd-channel-card { background:#fff; border:1px solid var(--border); box-shadow:var(--shadow); padding:16px; transition:.18s ease; }
.pnd-channel-card:hover { transform:translateY(-2px); box-shadow:0 18px 45px rgba(15,23,42,.11); }
.pnd-channel-top { display:flex; align-items:center; gap:12px; }
.pnd-channel-top img { width:56px; height:56px; object-fit:contain; background:#f8fafc; border:1px solid var(--border); padding:7px; }
.pnd-channel-top h5 { margin:0; font-weight:900; font-size:1rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pnd-channel-meta { color:var(--muted); font-size:.78rem; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pnd-status { font-size:.68rem; font-weight:900; text-transform:uppercase; letter-spacing:.06em; padding:5px 7px; border:1px solid var(--border); }
.pnd-status.online { color:#047857; background:#ecfdf5; border-color:#a7f3d0; }
.pnd-status.offline { color:#b91c1c; background:#fef2f2; border-color:#fecaca; }
.pnd-link-box { margin-top:14px; padding:9px 10px; background:#f8fafc; border:1px dashed #cbd5e1; color:#475569; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.72rem; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; cursor:pointer; }
.pnd-link-box.copied { background:#ecfdf5; border-color:#34d399; color:#047857; }
.min-w-0 { min-width:0; }
@media (max-width: 991px) { .pnd-hero { flex-direction:column; align-items:flex-start; padding:24px; } .pnd-hero-actions { justify-content:flex-start; } }
@media (max-width: 576px) { #page-content-wrapper { padding:12px; } .pnd-channel-grid { grid-template-columns:1fr; } .pnd-hero { padding:20px; } }
