@import url('https://cdnjs.cloudflare.com/ajax/libs/open-iconic/1.1.1/font/css/open-iconic-bootstrap.min.css');
@import url("css/components/calendar.css");
@import url("css/components/ticketcalendar.css");



html, body {
    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
    background: url(img/blackwood_bloody.jpg) repeat;
    background-color: black; /* fallback */

    width: 100%;
    min-height: 100%;
    margin: 0;
    padding: 0;

    overflow-x: hidden; /* prevents sideways bleed from abs layers */

    height: 100%;

}

body {
    overflow-y: auto !important;
}

.page, main, .content {
    overflow: visible !important;
}


/*Colors for css testing */
.red {
    background-color: red;
}

.blue {
    background-color: blue;
}

.green {
    background-color: green;
}

.purple {
    background-color: blueviolet;
}

.yellow {
    background-color: yellow;
}

/*End Colors for css testing */


/* Global link styling */
a, .btn-link {
    color: #006bb7;
}


/***********************/
/******** Root *********/
:root {

    /*--Nav Menu Colors---*/
    --navPrimaryColor: black;
    --navFadeToColor: black;
    --navTextColor: red;


    /* --Application Pallet--*/
    --primaryColor: black;
    --secondaryColor: #9aed34;
    --thirdColor: #e0b31f;
    --fourthColor: red;

    --primaryButtonTextColor: white;
    --secondaryButtonTextColor: white;
    --thirdButtonTextColor: white;
    /*--fourthButtonTextColor: white;*/

    --primaryHoverColor: #4a4a49;
    --secondaryHoverColor: #607d3d;
    --thirdHoverColor: #a68519;
    /*--fourthHoverColor: red;*/

    --primaryDisabledColor: #a0a19f;
    --secondaryDisabledColor: #dbebc7;
    --thirdDisabledColor: #d4c79f;
    /*--fourthDisabledColor: red;*/


    --surfaceDark: rgba(0,0,0,0.70);      /* panel background */
    --surfaceDarker: rgba(0,0,0,0.85);    /* inputs */
    --borderLight: rgba(255,255,255,0.22);
    --textOnDark: #ffffff;
    --mutedOnDark: rgba(255,255,255,0.70);

    --shadowSoft: 0 10px 30px rgba(0,0,0,0.55);
    
    
    
    
}

/***********************/


/********fonts*********/
@font-face {
    font-family: "Nosifer";
    src: url(Nosifer-Regular.ttf);
}

@font-face {
    font-family: "Creepster";
    src: url(Creepster-Regular.ttf);
}

@font-face {
    font-family: "SpecialElite";
    src: url(SpecialElite-Regular.ttf);
}

/***********************/


.creeperHeader{
    font-family: 'Creepster', cursive;
    font-size: 1.8rem;
    letter-spacing: 1px;
    color: var(--secondaryColor);
}
/***********************/


/*===================================*/
/*********Begin New input Branding  ******************/
.curley-input,
.curley-input.form-control {
    background-color: var(--surfaceDarker);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.20);
}
.curley-input::placeholder {
    color: rgba(255,255,255,0.60);
}
.curley-input:focus {
    border-color: rgba(154,237,52,0.70);
    box-shadow: 0 0 0 .25rem rgba(154,237,52,0.20);
}
/***********************/




/*===================================*/
/*********Begin New Table Branding  ******************/

/* ===== Curley Table Styling ===== */

.curley-table {
    color: white;
    border-collapse: separate;
    border-spacing: 0;
}

/* Header */
.curley-table thead th {
    color: white;
    font-weight: 700;
    border-bottom: 1px solid rgba(255,255,255,0.3);
}

/* Default row background */
.curley-table tbody tr {
    background: linear-gradient(
            to right,
            rgba(0,0,0,0.7),
            rgba(0,0,0,0.5)
    );
}

/* Row borders */
.curley-table tbody td {
    border-bottom: 1px solid rgba(255,255,255,0.15);
    color: white;
}

/* Hover state */
.curley-table tbody tr:hover {
    background: rgba(255, 255, 255, 0.08);
}

/* Remove Bootstrap table default hover color */
.table-hover > tbody > tr:hover > * {
    color: white !important;
}
/***********************/



/*===================================*/
/*********Begin New panel Branding  ******************/

.curley-panel {
    background-color: var(--surfaceDark);
    color: var(--textOnDark);
    border: 1px solid var(--borderLight);
    border-radius: .75rem;
    box-shadow: var(--shadowSoft);
    padding: 1.5rem;
}

.curley-muted {
    color: var(--mutedOnDark) !important;
}
/***********************/


/*===================================*/
/*********Begin New Button Branding ******************/

/* Brand button base */
.btn-curley {
    border-radius: .5rem;
    font-weight: 700;
    letter-spacing: .2px;
    padding: .65rem 1rem;
}


/* =========================================================
   Curley Primary Button (Filled) — pairs with outline button
   ========================================================= */
.btn.btn-curley-primary {
    background: linear-gradient(180deg, #b6ff57 0%, var(--secondaryColor) 55%, rgba(120, 200, 30, 0.95) 100%);
    border: 1px solid rgba(154, 237, 52, 0.75);
    color: #0b1603;

    font-weight: 800;
    letter-spacing: .3px;

    border-radius: .25rem;           /* match your header button vibe */
    padding: .65rem 1.1rem;        /* comfy click target */
    line-height: 1;

    box-shadow:
            0 10px 22px rgba(0,0,0,.55),
            0 0 0 1px rgba(154,237,52,.18) inset;

    transition: transform .15s ease, filter .15s ease, box-shadow .15s ease, background .15s ease;
}

.btn.btn-curley-primary:hover:not(:disabled) {
    filter: brightness(1.08) saturate(1.05);
    transform: translateY(-1px);

    box-shadow:
            0 14px 28px rgba(0,0,0,.65),
            0 0 18px rgba(154,237,52,.35);
}

.btn.btn-curley-primary:active:not(:disabled) {
    transform: translateY(0);
    filter: brightness(0.98);
    box-shadow:
            0 8px 18px rgba(0,0,0,.55),
            0 0 10px rgba(154,237,52,.22);
}

.btn.btn-curley-primary:focus-visible {
    outline: 0;
    box-shadow:
            0 0 0 .25rem rgba(154, 237, 52, 0.25),
            0 10px 22px rgba(0,0,0,.55);
}

.btn.btn-curley-primary:disabled {
    opacity: .55;
    cursor: not-allowed;
    transform: none;
    filter: none;
    box-shadow: none;
}




/*!* Primary (Curley Green) *!*/
/*.btn-curley-primary {*/
/*    background-color: var(--secondaryColor);*/
/*    border: 1px solid rgba(154, 237, 52, 0.65);*/
/*    color: #0b1603;*/
/*}*/
/*.btn-curley-primary:hover {*/
/*    background-color: #b6ff57; !* slightly brighter than secondary *!*/
/*    border-color: #b6ff57;*/
/*    color: #0b1603;*/
/*}*/
/*.btn-curley-primary:focus {*/
/*    box-shadow: 0 0 0 .25rem rgba(154, 237, 52, 0.25);*/
/*}*/


/* Curley Outline Secondary Button */
/* Stronger base rule (beats .btn) */
.btn.btn-curley-outline-secondary {
    background: transparent;
    border: 1px solid var(--secondaryColor);
    color: var(--secondaryColor);

    font-weight: 600;
    border-radius: .25rem;
    padding: .375rem .75rem;

    transition: all 0.2s ease;
}

/* Hover */
.btn.btn-curley-outline-secondary:hover {
    background-color: var(--secondaryColor);
    color: #0b1603;
    border-color: var(--secondaryColor);
}

/* Focus */
.btn.btn-curley-outline-secondary:focus {
    box-shadow: 0 0 0 .25rem rgba(154, 237, 52, 0.35);
}

/* Disabled */
.btn-curley-outline-secondary:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}


/* Curley Third (Gold / Accent) Button */
.btn-curley-third {
    background-color: var(--thirdColor);
    border: 1px solid rgba(224, 179, 31, 0.7);
    color: #1a1400; /* dark readable text */

    font-weight: 700;
    letter-spacing: 0.3px;
    border-radius: .5rem;
    padding: .65rem 1rem;

    transition: all 0.2s ease;
}

/* Hover */
.btn-curley-third:hover {
    background-color: #f5c73a; /* slightly brighter */
    border-color: #f5c73a;
    color: #1a1400;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(224, 179, 31, 0.35);
}

/* Active (pressed) */
.btn-curley-third:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(224, 179, 31, 0.35);
}

/* Focus ring */
.btn-curley-third:focus {
    box-shadow: 0 0 0 .25rem rgba(224, 179, 31, 0.35);
}

/* Disabled */
.btn-curley-third:disabled {
    background-color: var(--thirdDisabledColor);
    border-color: var(--thirdDisabledColor);
    color: #3a300a;
    cursor: not-allowed;
    box-shadow: none;
}




/* Dark outline */
.btn-curley-outline {
    background: transparent;
    border: 1px solid var(--borderLight);
    color: var(--textOnDark);
}
.btn-curley-outline:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.35);
    color: var(--textOnDark);
}

/* Danger (red) */
.btn-curley-danger {
    background-color: #b00000;
    border: 1px solid rgba(255, 0, 0, 0.45);
    color: #fff;
}
.btn-curley-danger:hover {
    background-color: #d10000;
}

/*********END New Button styling ******************/




/* Button styles */
.myPrimaryButton {
    background-color: var(--primaryColor);
    color: var(--primaryButtonTextColor);
    display: inline-block;
    border: 1px solid transparent;
    border-radius: .25rem;
    padding: .25rem .75rem;
    text-align: center;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.myPrimaryButton:hover {
    background-color: var(--primaryHoverColor);
    color: var(--primaryButtonTextColor);
}

.myPrimaryButton:disabled {
    background-color: var(--primaryDisabledColor);
    color: var(--primaryButtonTextColor);
}


.mySecondaryButton {
    background-color: var(--secondaryColor);
    color: var(--secondaryButtonTextColor);
    display: inline-block;
    border: 1px solid transparent;
    border-radius: .25rem;
    padding: .25rem .75rem;
    text-align: center;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.mySecondaryButton:hover {
    background-color: var(--secondaryHoverColor);
    color: var(--secondaryButtonTextColor);
}

.mySecondaryButton:disabled {
    background-color: var(--secondaryDisabledColor);
    color: var(--secondaryButtonTextColor);
}


.myThirdButton {
    background-color: var(--thirdColor);
    color: var(--thirdButtonTextColor);
    display: inline-block;
    border: 1px solid transparent;
    border-radius: .25rem;
    padding: .25rem .75rem;
    text-align: center;
    text-decoration: none;
    font-size: 1rem;
    font-weight: 400;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.myThirdButton:hover {
    background-color: var(--thirdHoverColor);
    color: var(--thirdButtonTextColor);
}

.myThirdButton:disabled {
    background-color: var(--thirdDisabledColor);
    color: var(--thirdButtonTextColor);
}


/* Reusable form input styling */
.input-field {
    width: 100%;
    padding: 10px;
    margin: 5px 0 10px 0;
    border: 1px solid #ccc;
    border-radius: .25rem;
    font-size: 1rem;
    box-sizing: border-box;
}

/* Reusable label styling */
.label-field {
    display: block;
    margin-bottom: 5px;
    font-weight: 600;
}

/* Checkbox styling */
.my-checkbox-container {
    display: inline-block;
    position: relative;
    padding-left: 25px;
    cursor: pointer;
    font-size: 1rem;
    user-select: none;
}

.my-checkbox-input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.my-checkmark-span {
    position: absolute;
    top: 0;
    left: 0;
    height: 18px;
    width: 18px;
    background-color: #eee;
    border-radius: 4px;
    transition: background-color 0.3s ease;
}

.my-checkbox-container:hover .my-checkmark-span {
    background-color: #ccc;
}

.my-checkbox-input:checked ~ .my-checkmark-span {
    background-color: var(--primaryColor);
}





/* Curley modal theme */
.curley-modal {
    background-color: var(--surfaceDark);
    border: 1px solid var(--borderLight);
    color: var(--textOnDark);
    box-shadow: var(--shadowSoft);
}

.curley-modal .modal-header,
.curley-modal .modal-footer {
    border-color: rgba(255,255,255,0.12);
}

.curley-modal .modal-title {
    color: var(--textOnDark);
    font-weight: 800;
}

.curley-modal .btn-close {
    filter: invert(1);
    opacity: .85;
}



/* Toggle password button styling */
.toggle-password {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.2rem;
    margin-left: 5px;
}

/* Card component styling for consistent layout */
.myCardContainer {
    padding: 0;
    width: 100%;
    margin: auto;
}

.myCards {
    background-color: rgba(0, 0, 0, 0.7); /* Transparent black background */
    color: var(--textOnDark);
    width: 100%;
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background-clip: border-box;
    border: 1px solid rgba(0, 0, 0, .125);
    border-radius: .50rem;
    border-color: darkgray;
    box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
/* Make labels + paragraph text readable inside the card */
.myCards label,
.myCards p,
.myCards small,
.myCards span,
.myCards li {
    color: var(--textOnDark);
}

/* Bootstrap muted text shows dark by default */
.myCards .text-muted {
    color: var(--mutedOnDark) !important;
}

/* Login/Registration card color gradient */
.logincolorcard {
    background-image: linear-gradient(135deg, var(--primaryColor) 0%, var(--secondaryColor) 100%);
    border-top-left-radius: .50rem;
    border-bottom-left-radius: .50rem;
}


/* Error message styling */
.errorwords {
    color: red;
}

.primaryWordsColor {
    color: var(--primaryColor);
}

.color-white-important {
    color: white !important;
}


/**************************************/
/*End of Basic CSS needed for Template*/
/**************************************/

/*This Sites Custom CSS*/

.greenWords {
    color: var(--secondaryColor);
}




/*Carousel*/

.carousel-item {
    position: relative;
    transition: transform 5s ease, opacity .10s ease-out
}

.carousel-item::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 80%; /* adjust how tall the fade is */
    background: linear-gradient(
            to bottom,
            rgba(0, 0, 0, 0) 0%, /* transparent at top of overlay */ rgba(0, 0, 0, 0.4) 40%, /* 40% down it’s 40% opaque */ rgba(0, 0, 0, 1) 70%, /* 70% down it’s 70% opaque */ rgba(0, 0, 0, 1) 100% /* solid black at bottom */
    );
    pointer-events: none; /* clicks still hit the buttons below */
}

.carousel-item img {
    object-fit: cover;
    object-position: 50% 30%; /* <--- key line */
    width: 100%;
    height: 60vh; /* or use vh units, e.g. 50vh */
}

/*Testing Carousel Links*/
/* make the carousel wrapper a positioning context */
#carouselExample {
    position: relative;
    margin: 0;
}

/* overlay the links */
.carousel-static-links {
    position: absolute;
    bottom: 20%; /* sit up inside the bottom fade (20% from the bottom) */
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 1rem;
    z-index: 10; /* above images & fade */
}

/* style the links */
.carousel-static-links a {
    font-family: RobotoFont !important;
    font-size: 30px !important;
    font-weight: 700 !important;
    cursor: pointer;
    color: var(--thirdColor);
    text-decoration: none;
    padding: .25rem .5rem;
    background: transparent;
    border-radius: .25rem;
    transition: background 0.2s;

}

.carousel-static-links a:hover {
    background: transparent;
}

/******End of Carousel******/


/* Custom card styling */
/*.custom-card {*/
/*    border-radius: 1.5rem !important; !* or whatever radius you prefer *!*/
/*    overflow: hidden;                 !* ensures images follow the curve *!*/
/*}*/

.custom-card {
    background-color: rgba(0, 0, 0, 0.7); /* Transparent black background */
    color: white; /* White text color */
    border: 1px solid #333; /* Dark grey border */
    border-radius: 1.5rem !important; /* Keep border radius as before */
    overflow: hidden; /* Ensures images follow the curve */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 6px 20px rgba(0, 0, 0, 0.19); /* Optional, adds a slight shadow */
}


/* Card image behavior just for these feature cards */
.custom-card .row.g-0 {
    min-height: 260px; /* keeps both sides balanced */
}

@media (min-width: 768px) {
    .custom-card .row.g-0 {
        min-height: 320px; /* a nice desktop height */
    }
}


.custom-card img {
    width: 100%;
    height: 100%;
    max-height: 360px; /* keep cards from getting huge */
    object-fit: cover; /* center-crop look */
    object-position: center center; /* adjust if you want higher/lower */
    border-radius: 0 !important; /* images shouldn't have their own radius */
}

/* On small screens, let the image be natural height so it’s not giant */
@media (max-width: 767.98px) {
    .custom-card img {
        height: auto;
        max-height: none;
    }
}

/*End Card sliding */


/* Slide-in animation */
@keyframes slideInLeft {
    from {
        transform: translateX(-100px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.slide-in-left {
    animation: slideInLeft 0.8s ease-out 0.2s both;
}

/* Slide-in from the right */
@keyframes slideInRight {
    from {
        transform: translateX(100px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.slide-in-right {
    animation: slideInRight 0.8s ease-out both;
}

/**END***Slide-in animation  *****/

/**********Ticket Button*********/
.ticket-btn-container {
    display: flex;
    justify-content: center;
}

.ticket-btn {
    position: relative;
    background: url(img/ticket.png) no-repeat center center;
    background-size: contain;
    width: 350px;
    height: 140px;
    border: none;
    cursor: pointer;
    transition: transform 0.15s ease, filter 0.15s ease;
    padding: 0;
}

.ticket-text {
    position: absolute;
    top: 56%;
    left: 52%;
    transform: translate(-50%, -50%) rotate(-18deg);

    font-family: 'Creepster', cursive;
    font-size: 1.8rem;
    letter-spacing: 1px;
    color: #c00000;

    text-shadow: 1px 1px 0 #000,
    2px 2px 4px rgba(0, 0, 0, 0.6);

}

.ticket-btn:hover {
  
    
   transform: scale(1.05) rotate(-1deg);
    filter: brightness(1.1);
}

.ticket-btn:active {
    transform: scale(0.97);
}

.ticket-btn:hover .ticket-text {
    animation: flicker 1.2s infinite alternate;
}

@keyframes flicker {
    from {
        text-shadow: 0 0 4px #ff0000;
    }
    to {
        text-shadow: 0 0 10px #ff3333;
    }
}

@media (max-width: 768px) {
    .ticket-btn {
        width: 260px;
        height: 105px;
    }

    .ticket-text {
        font-size: 1.5rem;
    }
}

/*******************************/


/********About page hero*********/
.about-hero {
    position: relative;
}

.about-hero__logo {
    position: absolute;
    top: 45%; /* slightly above center looks better */
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    text-align: center;
    pointer-events: none;
}

.about-hero__logo img {
    max-width: 450px;   /* was 500px */
    width: 100%;         /* was 80% */
    height: auto;
    filter: drop-shadow(0 0 15px rgba(0,0,0,0.7));
    animation: aboutLogoFlicker 2s forwards;
}

.about-hero__carousel img {
    object-fit: cover;
}

@keyframes aboutLogoFlicker {
    0%   { opacity: 0; filter: brightness(0) drop-shadow(0 0 0px rgba(255,0,0,0)); }

    5%   { opacity: 1; filter: brightness(1.2) drop-shadow(0 0 8px rgba(255,0,0,0.5)); }
    8%   { opacity: 0; }

    12%  { opacity: 1; filter: brightness(1.1) drop-shadow(0 0 6px rgba(255,0,0,0.4)); }
    16%  { opacity: 0; }

    22%  { opacity: 1; filter: brightness(1.3) drop-shadow(0 0 10px rgba(255,0,0,0.6)); }
    28%  { opacity: 0.5; filter: brightness(0.7) drop-shadow(0 0 4px rgba(255,0,0,0.3)); }

    35%  { opacity: 1; filter: brightness(1.15) drop-shadow(0 0 8px rgba(255,0,0,0.5)); }

    /* Final electrical spike */
    42% { opacity: 1; filter: brightness(1.8) contrast(1.2) drop-shadow(0 0 16px rgba(255,0,0,0.9)); }

    /* Settle */
    55%  { opacity: 1; filter: brightness(1); }

    100% { opacity: 1; filter: brightness(1); }
}






@media (max-width: 768px) {
    .about-hero__logo img {
        max-width: 300px;
    }
}
/*******************************/


/* Admin List Users - dark background readability */
.admin-users-page,
.admin-users-page h1,
.admin-users-page h2,
.admin-users-page h3,
.admin-users-page h4,
.admin-users-page h5,
.admin-users-page h6,
.admin-users-page p,
.admin-users-page label {
    color: #fff;
}

/* Table text + borders */
.admin-users-page .table {
    --bs-table-color: #fff;
    --bs-table-bg: transparent;
    --bs-table-border-color: rgba(255, 255, 255, 0.25);
    --bs-table-striped-color: #fff;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.04);
    --bs-table-hover-color: #fff;
    --bs-table-hover-bg: rgba(255, 255, 255, 0.06);
}

.admin-users-page .table thead th {
    color: #fff;
    border-bottom-color: rgba(255, 255, 255, 0.30);
}

.admin-users-page .table td {
    color: #fff;
}

/* Make the clickable name pop */
.admin-users-page .btn-link {
    color: var(--secondaryColor) !important;
}
.admin-users-page .btn-link:hover {
    color: #fff !important;
    text-decoration: underline;
}

/* Search box: keep it readable on dark BG */
.admin-users-page .form-control {
    background-color: rgba(0, 0, 0, 0.55);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
}
.admin-users-page .form-control::placeholder {
    color: rgba(255, 255, 255, 0.65);
}
.admin-users-page .form-control:focus {
    box-shadow: 0 0 0 .25rem rgba(154, 237, 52, 0.25); /* matches your --secondaryColor vibe */
    border-color: rgba(154, 237, 52, 0.65);
}

/*********************************************/


/* Admin View User panel */
.admin-view-user-page .admin-panel {
    background-color: rgba(0,0,0,0.65);
    color: #fff;
    border-color: rgba(255,255,255,0.20);
    box-shadow: 0 10px 30px rgba(0,0,0,0.55);
}

.admin-view-user-page .text-muted {
    color: rgba(255,255,255,0.70) !important;
}

/*********************************************/

/* Admin Event Config tweaks */
.admin-event-config-page .eventConfigContainer { padding: 0; }

/* Make ValidationMessage look good on dark backgrounds */
.admin-event-config-page .validation-message,
.admin-event-config-page .field-validation-error {
    color: #ff6b6b;
    font-weight: 700;
}

/* Optional: make the select arrow visible on dark */
.admin-event-config-page select.curley-input {
    color-scheme: dark;
}

.curleyGreenColorText { color: var(--secondaryColor) !important; }



/* =========================================================
   ADMIN USERS - CURLEY'S HAUNT BRAND
   ========================================================= */

.admin-users-page {
    position: relative;
}

.admin-users-header h3 {
    color: var(--secondaryColor);
    text-shadow:
            0 0 8px rgba(184,235,122,.4),
            0 0 18px rgba(184,235,122,.25);
    letter-spacing: 1px;
}

/* Search box */
.admin-search-box {
    min-width: 260px;
    max-width: 350px;
}

.curley-input {
    background: rgba(0,0,0,.65);
    border: 1px solid rgba(184,235,122,.3);
    color: #fff;
}

.curley-input:focus {
    background: rgba(0,0,0,.85);
    border-color: var(--secondaryColor);
    box-shadow: 0 0 0 .2rem rgba(184,235,122,.25);
    color: #fff;
}

/* Table styling */
.admin-users-table thead th {
    color: var(--secondaryColor);
    border-bottom: 2px solid rgba(184,235,122,.4);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: .85rem;
}

.admin-users-table tbody tr {
    background: rgba(0,0,0,.55);
    transition: all .25s ease;
}

.admin-users-table tbody tr:hover {
    background: rgba(184,235,122,.08);
    box-shadow: inset 0 0 12px rgba(184,235,122,.15);
}

.admin-users-table td {
    color: #f1f1f1;
    border-color: rgba(255,255,255,.05);
}

/* Name link */
.curley-link-btn {
    color: var(--secondaryColor);
    font-weight: 700;
    text-decoration: none;
}

.curley-link-btn:hover {
    color: #fff;
    text-shadow: 0 0 6px rgba(184,235,122,.7);
}

/* Role badge */
.curley-role-badge {
    display: inline-block;
    padding: 4px 10px;
    font-size: .75rem;
    font-weight: 700;
    border-radius: 20px;
    background: rgba(184,235,122,.15);
    border: 1px solid rgba(184,235,122,.4);
    color: var(--secondaryColor);
    text-transform: uppercase;
    letter-spacing: .5px;
}

/* Alert tweak */
.curley-alert {
    background: rgba(139,0,0,.6);
    border: 1px solid rgba(255,0,0,.4);
    color: #fff;
}

/* Spinner glow */
.spinner-border.text-info {
    color: var(--secondaryColor) !important;
}



/* Curley button (page-only override) */
.curley-submitButton{
    background: var(--secondaryColor) !important;
    border: 1px solid rgba(154,237,52,.35) !important;
    color: #0b0b0b !important;
    font-weight: 900 !important;
    letter-spacing: .04em;
    border-radius: 10px !important;

    box-shadow:
            0 0 12px rgba(154,237,52,.30),
            inset 0 1px 0 rgba(255,255,255,.18) !important;
}

.curley-submitButton:not(:disabled):hover{
    filter: brightness(1.08);
    box-shadow:
            0 0 16px rgba(154,237,52,.45),
            inset 0 1px 0 rgba(255,255,255,.25) !important;
}

/* disabled should still look "Curley" */
.curley-submitButton:disabled{
    background: rgba(154,237,52,.35) !important;
    border-color: rgba(154,237,52,.25) !important;
    color: rgba(255,255,255,.75) !important;
    opacity: 1 !important;
    cursor: not-allowed;
    box-shadow: none !important;
}




/* ============================
   CURLEY LOADING SCREEN
   ============================ */

.curley-loading-screen {
    min-height: 70vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
}

.curley-loading-card {
    width: 100%;
    max-width: 540px;
    text-align: center;
    padding: 2rem 1.5rem;
    border-radius: 18px;
    background:
            linear-gradient(180deg, rgba(18,18,18,.96), rgba(8,8,8,.96));
    border: 1px solid rgba(132,255,176,.12);
    box-shadow:
            0 20px 50px rgba(0,0,0,.45),
            0 0 25px rgba(85,255,150,.05);
}

.curley-loading-logo {
    width: 100%;
    max-width: 210px;
    height: auto;
    margin-bottom: .75rem;
    filter: drop-shadow(0 0 10px rgba(132,255,176,.12));
}

.curley-loading-divider {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    color: #8dffb7;
}

.curley-loading-divider span {
    width: 90px;
    max-width: 18vw;
    height: 1px;
    background: linear-gradient(to right, transparent, rgba(141,255,183,.65), transparent);
}

.curley-loading-text {
    color: #cfcfcf;
    line-height: 1.7;
}

.curley-loading-spinner-wrap {
    display: flex;
    justify-content: center;
    align-items: center;
}

.curley-loading-spinner {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    border: 4px solid rgba(255,255,255,.10);
    border-top-color: #7dffac;
    animation: curley-spin 1s linear infinite;
    box-shadow: 0 0 18px rgba(125,255,172,.12);
}

@keyframes curley-spin {
    to {
        transform: rotate(360deg);
    }
}

@media (max-width: 767.98px) {
    .curley-loading-card {
        padding: 1.5rem 1rem;
        border-radius: 14px;
    }

    .curley-loading-logo {
        max-width: 170px;
    }
}


/* reusable full-screen loading overlay */
.curley-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 99999;
    background: rgba(0, 0, 0, 0.72);
    backdrop-filter: blur(5px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}





/*=======================================*/
/*  Last minuet overrides                */
/*=======================================*/

body{
    color: var(--textOnDark);
}