/* Cyberpunk 2077-inspired override layer for Cobalt */

:root {
  --cp-bg-0: #03050a;           /* deep background */
  --cp-bg-1: #050a12;           /* panel background */
  --cp-bg-2: #0a111d;           /* card background */
  --cp-primary: #c5003c;        /* neon red */
  --cp-cyan: #00f0ff;           /* neon cyan */
  --cp-magenta: #ff004c;        /* neon magenta */
  --cp-green: #39ff14;          /* neon green */
  --cp-orange: #ff6a00;         /* accent */
  --cp-text: rgb(208, 220, 255);/* readable text */
  --cp-muted: rgba(208,220,255,0.65);
}

/* Base */
body.cyberpunk-theme {
  background: radial-gradient(1200px 800px at 15% 0%, #07111b 0%, var(--cp-bg-0) 45%) fixed,
              linear-gradient(180deg, #020508 0%, #000 100%) fixed;
  color: var(--cp-text);
  /* Force global primary overrides to neon yellow */
  --p-color: var(--cp-primary);
}

/* Subtle animated scanlines */
body.cyberpunk-theme:before {
  content: "";
  position: fixed;
  left: 0; right: 0; top: 0; bottom: 0;
  pointer-events: none;
  background: repeating-linear-gradient(
    to bottom,
    rgba(255,255,255,0.03) 0px,
    rgba(255,255,255,0.03) 1px,
    rgba(0,0,0,0) 2px,
    rgba(0,0,0,0) 4px
  );
  mix-blend-mode: overlay;
  animation: cp-scan 12s linear infinite;
  z-index: 9999;
}

@keyframes cp-scan {
  0% { opacity: .25; }
  50% { opacity: .4; }
  100% { opacity: .25; }
}

/* Neon link accents */
a, a:hover, a:focus {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

a, a:hover {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.dark .white-link {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.dark .white-link:hover {
  color: #00dbff !important;
  text-decoration: none;
}

.nav-link {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.views-box {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.replies-box {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.dark .dropdown-menu {
  background: #0a111d !important;
  border: 1px solid #c5003c !important;
}

.dropdown-item.d-header {
  color: var(--cp-cyan) !important;
}

.dropdown-item.d-header.d-header-flex {
  color: var(--cp-cyan) !important;
}

.dropdown-item.account_dropdown {
  color: var(--cp-cyan) !important;
}

.user-nav {
  background: #050a12 !important;
  border: 1px solid #c5003c !important;
}

.views-box i,
.replies-box i {
  color: var(--cp-cyan) !important;
  text-decoration: none;
}

.input-group-btn .btn.btn-theme {
  background: var(--cp-cyan) !important;
  background-color: var(--cp-cyan) !important;
  background-image: none !important;
  color: #000 !important;
  box-shadow: none !important;
}

.reel-1 {
  color: var(--cp-cyan) !important;
}

/* Header background enhancement */
.header {
  background-color: #050b12;
  filter: saturate(1.1) contrast(1.05);
}
.header:after {
  background: linear-gradient(rgba(3,5,10,.65), rgba(3,5,10,0));
}
.header:before {
  background: linear-gradient(rgba(3,5,10,.75), var(--cp-bg-0));
}

/* Navbar */
.navbar,
.navbar-bottom,
.header-btn-row .navbar {
  background: linear-gradient(180deg, rgba(10,17,29,.72), rgba(6,10,18,.88));
  border: 1px solid #6d05246e;
}
.nav-link,
.navbar .nav-link { color: var(--cp-primary) !important; }
.nav-link:hover,
.nav-link-active { color: var(--cp-primary) !important; text-shadow: 0 0 8px #6d05246e; }

a .theme-text{
  color: var(--cp-cyan) !important;
}

body.cyberpunk-theme .navbar-bottom .store-link,
body.cyberpunk-theme .navbar-top-new .store-link {
  color: #000 !important;
  background: #c5003c !important;
  background-color: #c5003c !important;
  background-image: none !important;
  box-shadow: 0 0 14px #6d05246e !important;
}
body.cyberpunk-theme .navbar-bottom .store-link:hover,
body.cyberpunk-theme .navbar-top-new .store-link:hover {
  filter: brightness(1.08) saturate(1.05) !important;
  background: #c5003c !important;
  background-color: #c5003c !important;
  background-image: none !important;
}

/* Cards and panels */
.card,
.panel {
  background: linear-gradient(180deg, rgba(9,16,27,.95), rgba(6,12,21,.95));
  border: 1px solid #c5003be1 !important;
  box-shadow: 0 0 0 1px #6d05246e inset, 0 0 22px #6d05246e;
}
.card .card { background: #050a12; }

.card-header.header-theme,
.panel-heading {
  border-bottom: 2px solid rgba(255,0,229,.18) !important;
  color: var(--cp-text);
}

/* Buttons - FORCE SOLID NEON YELLOW, NO GRADIENTS */
body.cyberpunk-theme .btn-theme,
body.cyberpunk-theme .btn-theme:focus,
body.cyberpunk-theme .btn-theme:hover,
body.cyberpunk-theme .btn-theme:active {
  background: var(--cp-cyan) !important;
  background-color: var(--cp-cyan) !important;
  background-image: none !important;
  color: #000 !important;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
  border: 0 !important;
  box-shadow: 0 0 12px var(--cp-cyan), 0 0 18px var(--cp-cyan) !important;
}

body.cyberpunk-theme .btn-theme:hover {
  filter: brightness(1.08) !important;
  transform: translateY(-1px);
  background: var(--cp-cyan) !important;
  background-color: var(--cp-cyan) !important;
  background-image: none !important;
}

body.cyberpunk-theme .btn-secondary {
  background: #38414f !important;
  background-color: #38414f !important;
  background-image: none !important;
  color: #000 !important;
}

body.cyberpunk-theme .btn-secondary:hover {
  background: var(--cp-cyan) !important;
  background-color: var(--cp-cyan) !important;
  background-image: none !important;
  color: #000 !important;
}

body.cyberpunk-theme .btn-secondary:hover i {
  color: #000 !important;
}

body.cyberpunk-theme .btn-secondary i {
  color: var(--cp-cyan) !important;
}

body.cyberpunk-theme .btn:hover,
body.cyberpunk-theme .btn:focus {
  filter: brightness(1.08) !important;
  background: var(--cp-cyan) !important;
  background-color: var(--cp-cyan) !important;
  background-image: none !important;
}

/* Outline variants hover to solid yellow */
body.cyberpunk-theme .btn-outline-primary,
body.cyberpunk-theme .btn-outline-secondary,
body.cyberpunk-theme .btn-outline-success,
body.cyberpunk-theme .btn-outline-danger,
body.cyberpunk-theme .btn-outline-warning,
body.cyberpunk-theme .btn-outline-info,
body.cyberpunk-theme .btn-outline-light,
body.cyberpunk-theme .btn-outline-dark {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: #000 !important;
  border: 2px solid var(--cp-cyan) !important;
}
body.cyberpunk-theme .btn-outline-success:hover,
body.cyberpunk-theme .btn-outline-danger:hover,
body.cyberpunk-theme .btn-outline-warning:hover,
body.cyberpunk-theme .btn-outline-info:hover,
body.cyberpunk-theme .btn-outline-light:hover,
body.cyberpunk-theme .btn-outline-dark:hover {
  background: #c5003c !important;
  background-color: #c5003c !important;
  background-image: none !important;
  color: #000 !important;
}

/* Footer */
.f-small,
.f-large { background: linear-gradient(180deg, rgba(6,10,18,.75), rgba(3,5,10,.95)); }
body.cyberpunk-theme .footer .btn-play {
  background: #c5003c !important;
  background-color: #c5003c !important;
  background-image: none !important;
  color: #000 !important;
  box-shadow: 0 0 16px #c5003be1 !important;
}

/* Footer links */
.footer-link,
.footer-link:focus { color: var(--cp-primary) !important; }
.footer-link:hover { filter: brightness(1.1); }

/* Text neon utility */
.neon {
  color: var(--cp-primary) !important;
  text-shadow: 0 0 6px #c5003be1, 0 0 18px #b10a3ce1, 0 0 32px #961139;
}

/* Glitch effect (class toggled by JS or via :hover on key elements) */
.is-glitching,
.navbar .nav-link:hover,
.store-link:hover,
.btn-theme:hover,
.footer .btn-play:hover,
.logo:hover {
  color: var(--cp-cyan) !important;
  position: relative;
  animation: glitch-skew 1.1s infinite linear alternate-reverse;
}

.is-glitching:before,
.is-glitching:after,
.navbar .nav-link:hover:before,
.navbar .nav-link:hover:after,
.store-link:hover:before,
.store-link:hover:after,
.btn-theme:hover:before,
.btn-theme:hover:after,
.footer .btn-play:hover:before,
.footer .btn-play:hover:after,
.logo:hover:before,
.logo:hover:after {
  content: attr(data-glitch) "";
  position: absolute;
  left: 0; right: 0; top: 0; bottom: 0;
  mix-blend-mode: screen;
  pointer-events: none;
}

/* Cyan channel */
.is-glitching:before,
.navbar .nav-link:hover:before,
.news-title:hover:before,
.store-link:hover:before,
.btn-theme:hover:before,
.footer .btn-play:hover:before,
.logo:hover:before {
  text-shadow: -2px 0 var(--cp-primary);
  clip-path: inset(0 0 0 0);
  animation: glitch-clip-a 1.1s steps(2, jump-none) infinite; 
}
/* Magenta channel */
.is-glitching:after,
.navbar .nav-link:hover:after,
.news-title:hover:after,
.store-link:hover:after,
.btn-theme:hover:after,
.footer .btn-play:hover:after,
.logo:hover:after {
  text-shadow: 2px 0 var(--cp-orange);
  clip-path: inset(0 0 0 0);
  animation: glitch-clip-b 1.1s steps(2, jump-none) infinite; 
}

@keyframes glitch-skew {
  0% { transform: skew(0deg); }
  20% { transform: skew(1.2deg); }
  40% { transform: skew(-1.2deg); }
  60% { transform: skew(1.2deg); }
  80% { transform: skew(-.6deg); }
  100% { transform: skew(0deg); }
}
@keyframes glitch-clip-a {
  0% { clip-path: inset(0 0 85% 0); transform: translate(0); }
  20% { clip-path: inset(15% 0 60% 0); transform: translate(-1px, -1px); }
  40% { clip-path: inset(40% 0 35% 0); transform: translate(1px, 1px); }
  60% { clip-path: inset(70% 0 10% 0); transform: translate(-2px, 0); }
  80% { clip-path: inset(0 0 85% 0); transform: translate(0, 1px); }
  100% { clip-path: inset(0 0 0 0); transform: translate(0); }
}
@keyframes glitch-clip-b {
  0% { clip-path: inset(80% 0 0 0); transform: translate(0); }
  20% { clip-path: inset(55% 0 20% 0); transform: translate(1px, 0); }
  40% { clip-path: inset(30% 0 45% 0); transform: translate(-1px, 1px); }
  60% { clip-path: inset(5% 0 70% 0); transform: translate(0, -1px); }
  80% { clip-path: inset(80% 0 0 0); transform: translate(-1px, 0); }
  100% { clip-path: inset(0 0 0 0); transform: translate(0); }
}

/* Inputs and UI elements */
.dark .form-control,
.dark textarea,
.dark select,
.input-group-text {
  background: #0f1a2a !important;
  color: var(--cp-text) !important;
  border: 1px solid #6d05246e !important;
}
.dark .form-control:focus,
.dark textarea:focus,
.dark select:focus {
  box-shadow: 0 0 0 0.2rem #6d05246e !important;
}

.dark .breadcrumb {
  background-color: #0a111d !important;
  border: 1px solid #c5003c !important;
}

.dark .grey-link {
  color: var(--cp-cyan) !important;
}

.alert {
  background-color: #0a111d !important;
  border: 1px solid #c5003c !important;
}

.announcement-alert {
  background-color: #0a111d !important;
  border: 1px solid #c5003c !important;
}

/* Store and widgets */
.store-box {
  border: 2px solid rgba(57,255,20,.35) !important;
  box-shadow: 0 0 18px rgba(57,255,20,.18);
}
.widget-header-txt:after,
.footer-text-header:after {
  background: var(--cp-primary);
  box-shadow: 0 0 14px #6d05246e !important;
}

/* Emphasize key headings/titles in yellow */
.news-title,
.store-title,
.footer-text-header { color: var(--cp-primary) !important; }

/* Pagination */
.page-item .page-link { color: var(--cp-primary) !important; border-color: #6d05246e !important; }
.page-item.active .page-link { background: var(--cp-primary) !important; color: #000 !important; border-color: var(--cp-primary) !important; }

/* Scrollbar - SOLID YELLOW */
body.cyberpunk-theme ::-webkit-scrollbar-thumb,
body.cyberpunk-theme.dark ::-webkit-scrollbar-thumb {
  background: #c5003c !important;
  background-image: none !important;
  background-color: #c5003c !important;
}
body.cyberpunk-theme ::-webkit-scrollbar-thumb:hover,
body.cyberpunk-theme.dark ::-webkit-scrollbar-thumb:hover {
  background: #c5003c !important;
  background-image: none !important;
  background-color: #c5003c !important;
}

/* Utility: apply neon to key headings */
.news-title,
.store-title,
.footer-text-header { text-transform: none; letter-spacing: .02em; }

/* Slight chromatic aberration for large headings */
.news-title,
.store-title {
  text-shadow: 1px 0 #6d05246e, -1px 0 #6d051c6e;
}

/* Force override any CSS variable-based gradients on buttons */
body.cyberpunk-theme button[class*="btn"],
body.cyberpunk-theme a[class*="btn"],
body.cyberpunk-theme input[class*="btn"],
body.cyberpunk-theme [class*="btn"][style*="background"],
body.cyberpunk-theme [class*="btn"][style*="gradient"] {
  background: none !important;
  background-color: none !important;
  background-image: none !important;
  outline: 1px solid var(--cp-cyan) !important;
  color: var(--cp-cyan) !important;
}

/* Override the --p-color variable everywhere */
body.cyberpunk-theme {
  --p-color: #c5003c !important;
}

/* Catch any element using --p-color for backgrounds */
body.cyberpunk-theme [style*="var(--p-color)"],
body.cyberpunk-theme [style*="background-color: var(--p-color)"] {
  background-color: #c5003c !important;
  background: #c5003c !important;
  background-image: none !important;
}


