
:root {
  --nyenna-dark:   #091b2b;
  --nyenna-mid:    #233D53;
  --nyenna-vivid:  #064B73;
  --nyenna-navy:   #232F3E;
  --nyenna-blue:   #1e90ff;
  --nyenna-orange: #FF9900;
  --nyenna-grad:   linear-gradient(to right, #00cbff 0%, #a832fc 100%);
}


/* ===========================
   GENERIC STYLING
   =========================== */

h1, h2, h3, h4, h5, h6 {
    font-family: "Plus Jakarta Sans", sans-serif;
}

body {
  font-family: "DM Sans", sans-serif;
  background-color: #f0f4f8;
}

/* .content-wrapper {
    background-color: #f0f4f8;
} */


/* ===========================
   MAIN HEADER
   =========================== */

/* Main header is now in page flow inside content-wrapper */
.main-header,
.sidebar-mini.sidebar-collapse .main-header {
    position: sticky !important;
    top: 5px !important;
    z-index: 1030 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0;
    padding: 8px 0 12px 0;
    height: auto !important;
    min-height: 0 !important;
}

/* No top padding/margin on content-wrapper — nav and wave handle the top */
.layout-fixed .wrapper .content-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Wave — negative margin-top pulls it up behind the sticky pill */
.page-wave {
    background-color: var(--nyenna-vivid);
    margin: 0 -1.5rem 0 -1.5rem;
    padding-top: 80px;
    margin-top: -76px;
}

.pill-toggle {
    color: var(--nyenna-dark) !important;
    padding: 0 10px 0 0;
    height: 21px !important;
}

.pill-muted {
    color: rgba(9, 27, 43, 0.5);
    font-size: 0.75rem;
}

/* Blur effect */
.blur {
    box-shadow: inset 0px 0px 2px rgba(254, 254, 254, 0.82);
    -webkit-backdrop-filter: saturate(200%) blur(30px);
    backdrop-filter: saturate(200%) blur(30px);
    background-color: rgba(255, 255, 255, 0.85) !important;
}

.blur.blur-rounded {
    border-radius: 40px;
}

.sticky-pill {
    padding: 8px 20px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
}

.sticky-anchors {
    font-family: "DM Sans", sans-serif;
    font-size: 13px;
    color: var(--nyenna-dark);
}

.sticky-link {
    color: var(--nyenna-vivid);
    cursor: pointer;
    font-weight: 500;
}

.sticky-link:hover {
    color: var(--nyenna-dark);
}

.sticky-sep {
    color: rgba(9, 27, 43, 0.3);
    margin: 0 6px;
}

.page-wave .waves {
    width: 100%;
    display: block;
    height: 60px;
}

.moving-waves > use {
    animation: move-forever 25s cubic-bezier(.55, .5, .45, .5) infinite;
}

.moving-waves > use:nth-child(1) { animation-delay: -2s;  animation-duration: 7s; }
.moving-waves > use:nth-child(2) { animation-delay: -3s;  animation-duration: 10s; }
.moving-waves > use:nth-child(3) { animation-delay: -4s;  animation-duration: 13s; }
.moving-waves > use:nth-child(4) { animation-delay: -5s;  animation-duration: 20s; }
.moving-waves > use:nth-child(5) { animation-delay: -4s;  animation-duration: 25s; }
.moving-waves > use:nth-child(6) { animation-delay: -3s;  animation-duration: 30s; }

@keyframes move-forever {
    0%   { transform: translate3d(-90px, 0, 0); }
    100% { transform: translate3d(85px, 0, 0); }
}


/* ===========================
   SIDEBAR
   =========================== */

/* --- Width overrides --- */
.main-sidebar, .main-sidebar::before {
    width: 240px;
}

.layout-fixed .brand-link {
    width: 240px;
}

.sidebar-mini .main-sidebar .nav-link,
.sidebar-mini-md .main-sidebar .nav-link,
.sidebar-mini-xs .main-sidebar .nav-link {
    width: calc(240px - .5rem * 2);
    height: 35.5px;
}

.nav-sidebar>.nav-item .nav-icon {
    line-height: 20px;
}

@media (min-width: 768px) {
    body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .content-wrapper,
    body:not(.sidebar-mini-md):not(.sidebar-mini-xs):not(.layout-top-nav) .main-footer {
        margin-left: 240px;
    }
}

/* --- Background & base link colour --- */
[class*=sidebar-dark-] {
    background-color: var(--nyenna-vivid);
}

[class*=sidebar-dark-] .sidebar a {
    color: #c2c7d0;
    font-size: 13px;
    font-family: "DM Sans", sans-serif;
}

[class*=sidebar-dark-] .nav-sidebar>.nav-item .nav-icon {
    font-size: 15px !important;
}

/* --- Brand area --- */
.brand-link {
    background-color: var(--nyenna-vivid);
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
    padding: 12px 16px !important;
}

.brand-link:hover {
    background-color: var(--nyenna-vivid) !important;
}

#logoblock {
    display: flex;
    align-items: center;
    gap: 10px;
}

#logoimg {
    height: 36px;
    width: auto;
}

#logoh1 {
    font-family: "Tenor Sans", sans-serif;
    font-size: 28px;
    margin: 0;
    line-height: 36px;
    color: #fff;
    letter-spacing: 6px;
}

#subline {
    color: #fff;
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 8px;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin: 4px 0 0 0;
}

/* --- Section headers --- */
[class*=sidebar-dark-] .nav-header {
    font-family: "Plus Jakarta Sans", sans-serif;
    font-weight: 400;
    font-size: 10px;
    letter-spacing: 1.5px;
    color: rgba(255,255,255,0.4);
}

/* --- Nav links --- */
[class*=sidebar-dark-] .nav-sidebar .nav-link {
    color: rgba(255,255,255,0.65);
    border-radius: 8px;
    transition: background 0.15s ease, color 0.15s ease;
}

[class*=sidebar-dark-] .nav-sidebar .nav-link:hover {
    color: rgba(255,255,255,0.95);
    background-color: rgba(255,255,255,0.08);
}

[class*=sidebar-dark-] .nav-sidebar .nav-link.active,
.sidebar-dark-primary .nav-sidebar>.nav-item>.nav-link.active {
    color: #fff !important;
    background: linear-gradient(to right, #00cbff 0%, #a832fc 100%) !important;
    border-radius: 8px !important;
    box-shadow: 0 2px 8px rgba(0, 203, 255, 0.25) !important;
}

.nav-sidebar {
    padding-bottom: 50px;
}


.sidebar-collapse .nav-sidebar .nav-item>.nav-link {font-size: 0;}
.sidebar-collapse .nav-sidebar:hover .nav-item>.nav-link {font-size: 13px;}
.sidebar-collapse #subline,
.sidebar-collapse #logoh1 {visibility: hidden;}

@media (min-width: 992px) {
    
    .sidebar-mini.sidebar-collapse .nav-sidebar .nav-header {
            display: block;
            visibility: hidden;
        }
    .sidebar-mini.sidebar-collapse .nav-sidebar:hover .nav-header {
        visibility: visible;
    }
}

/* ===========================
   LOGIN PAGE
   =========================== */


body.loginpage .content-wrapper {
    margin: auto!important;
}

body.loginpage .page-wave {
    padding-top: 160px;
    margin-top: 0;
}

body.loginpage #logoblock {
    margin: 0 auto 20px auto;
    border-bottom: 1px solid #fff;
    padding: 0px 20px 15px 20px;
    position: relative;
}

body.loginpage #logoh1 {
    color: #333;
    font-size: 48px;
}
body.loginpage .content {
    margin-top: -200px;
}

body.loginpage div#logoblock:after {
    content: '';
    display: block;
    border-bottom: 1px solid #064B73;
    height: 10px;
    width: 100%;
    position: absolute;
    left: 0;
    bottom: 1px;
    opacity: 0.3;
}

/* ===========================
   UTILITIES
   =========================== */

.btn {
    border-radius: 30px;
    padding: 10px;
    border: 0px;
}

.alert-info {
    border-radius: 30px;
}

.bg-gradient-nyenna {
    background-image: linear-gradient(310deg, var(--nyenna-dark) 0%, var(--nyenna-vivid) 100%);
}

.gradient-btn {
    background: linear-gradient(to right, #00cbff 0%, #a832fc 50%, #00cbff 100%);
    background-size: 200% auto;
    background-position: left center;
    color: #ffffff;
    cursor: pointer;
    transition: transform 0.2s ease;
}

.gradient-btn:hover {
    animation: scrollGradient 2s linear infinite;
}

@keyframes scrollGradient {
    0%   { background-position: 0% center; }
    100% { background-position: 200% center; }
}
