/* =====================================================================
   CoreMint Theme — design-only re-skin for core-mint
   Mint (#2EE6A6) on near-black (#05070A), elegant app-style + animations.
   This file ONLY restyles; it touches no markup logic or data.
   Loaded LAST so it overrides the base nj_theme / bootstrap / admin CSS.
   ===================================================================== */

:root {
  --cm-bg:        #05070A;
  --cm-bg-2:      #0a0f14;
  --cm-surface:   rgba(13, 20, 27, 0.85);
  --cm-glass:     rgba(255, 255, 255, 0.04);
  --cm-mint:      #2EE6A6;
  --cm-mint-2:    #5eecbf;
  --cm-emerald:   #06a874;
  --cm-text:      #e6edf3;
  --cm-muted:     #94a3b8;
  --cm-border:    rgba(255, 255, 255, 0.08);
  --cm-mint-bd:   rgba(46, 230, 166, 0.35);
  --cm-grad:      linear-gradient(135deg, #5eecbf, #2EE6A6 55%, #06a874);
  --cm-glow:      0 14px 40px -8px rgba(46, 230, 166, 0.45);
}

/* ============================= BASE ============================= */
html, body {
  background: var(--cm-bg) !important;
  color: var(--cm-text) !important;
  overflow-x: hidden !important;   /* kill left-right scroll from decorative orbs */
  max-width: 100%;
}
body {
  background:
    radial-gradient(900px 600px at 50% -10%, rgba(46,230,166,.10), transparent 60%),
    radial-gradient(700px 500px at 100% 100%, rgba(6,168,116,.10), transparent 60%),
    var(--cm-bg) !important;
  min-height: 100vh;
}
::selection { background: var(--cm-mint); color: #04130d; }
a { color: var(--cm-mint-2); }
a:hover, a:focus { color: var(--cm-mint); }

/* subtle grid texture on big surfaces */
body::before {
  content: "";
  position: fixed; inset: 0; z-index: -2; pointer-events: none;
  background-image:
    linear-gradient(rgba(46,230,166,.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(46,230,166,.04) 1px, transparent 1px);
  background-size: 46px 46px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
          mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
}

/* scrollbar */
* { scrollbar-color: rgba(46,230,166,.5) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--cm-bg-2); }
::-webkit-scrollbar-thumb { background: rgba(46,230,166,.4); border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: rgba(46,230,166,.65); }

/* ===================== LOGO (CSS swap) ===================== */
img[src*="logo.png"], img[src*="logo/logo"], .pm-logo img, .navbar-brand img {
  content: url("coremint-logo.svg");
  height: 40px !important;
  width: auto !important;
  object-fit: contain;
}
.pm-logo img { margin-left: 48px; }

/* ===================== FLOATING GLOW SHAPES ===================== */
.bg-shape { filter: blur(95px) !important; opacity: .4 !important; }
.bg-shape.one   { background: #10b981 !important; }
.bg-shape.two   { background: #2EE6A6 !important; }
.bg-shape.three { background: #067a56 !important; }

/* ===================== MEMBER APP CHROME ===================== */
.pm-header, .pm-footer, .pm-sidebar {
  background: rgba(10,15,20,.92) !important;
  border-color: rgba(46,230,166,.18) !important;
  backdrop-filter: blur(14px);
}
.pm-user { display: none !important; }            /* hide the username + human icon (top-right) */
.pm-logo { margin-left: auto !important; }         /* move the CoreMint logo to the right */
.pm-logo img { margin-left: 0 !important; }

.pm-menu-btn {
  background: var(--cm-bg-2) !important;
  border: 1px solid var(--cm-mint-bd) !important;
  color: var(--cm-mint) !important;
}

.pm-nav a, .pm-footer-menu a { color: #8b97a3 !important; }
.pm-nav a:hover, .pm-footer-menu a:hover { color: var(--cm-mint) !important; }
.pm-nav .active a, .pm-footer-menu .active a,
.pm-nav .active i, .pm-footer-menu .active i { color: var(--cm-mint) !important; }
.pm-nav li:last-child a, .pm-footer-menu .pm-logout a { color: #ff6b6d !important; }

/* center home button */
.pm-home a {
  background: var(--cm-grad) !important;
  color: #04130d !important;
  box-shadow: 0 12px 30px -6px rgba(46,230,166,.6) !important;
  margin-left: auto !important;    /* center the raised home button in its cell */
  margin-right: auto !important;
}
.pm-home i { color: #04130d !important; }

/* sidebar links */
.pm-sidebar ul li a { color: #c9d6df !important; }
.pm-sidebar ul li a:hover {
  background: rgba(46,230,166,.10) !important;
  color: var(--cm-mint) !important;
}

/* ===================== CARDS / GLASS PANELS ===================== */
.card, .tf-container, .panel, .panel-default, .widget, .dash-card {
  background: var(--cm-surface) !important;
  border: 1px solid rgba(46,230,166,.16) !important;
  border-radius: 18px !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.55) !important;
  color: var(--cm-text) !important;
  animation: cmFadeUp .6s cubic-bezier(.2,.7,.2,1) both;
}
.card:hover, .panel:hover, .dash-card:hover {
  border-color: var(--cm-mint-bd) !important;
  box-shadow: 0 24px 60px -20px rgba(46,230,166,.35) !important;
  transition: box-shadow .4s ease, border-color .4s ease;
}
.card-header, .panel-heading {
  background: rgba(46,230,166,.06) !important;
  border-color: rgba(46,230,166,.16) !important;
  color: var(--cm-mint) !important;
}
.panel-title, .card-title { color: var(--cm-mint) !important; }

/* ===================== BUTTONS ===================== */
.btn_theme, .btn-primary, .btn-info, .btn-success,
.btn-default.btn-primary, input[type="submit"].btn, .swal2-confirm {
  background: var(--cm-grad) !important;
  border: none !important;
  color: #04130d !important;
  font-weight: 600 !important;
  border-radius: 14px !important;
  box-shadow: var(--cm-glow) !important;
  transition: transform .25s ease, box-shadow .35s ease, filter .25s ease !important;
}
.btn_theme:hover, .btn-primary:hover, .btn-info:hover, .btn-success:hover,
input[type="submit"].btn:hover {
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 22px 55px -10px rgba(46,230,166,.65) !important;
  filter: brightness(1.05);
  color: #04130d !important;
}
.btn-outline-primary, .btn-outline-info {
  border: 1px solid var(--cm-mint-bd) !important;
  color: var(--cm-mint) !important;
  background: transparent !important;
}
.btn-outline-primary:hover, .btn-outline-info:hover {
  background: rgba(46,230,166,.12) !important;
  color: var(--cm-mint) !important;
}
.btn-secondary, .btn-default {
  background: var(--cm-glass) !important;
  border: 1px solid var(--cm-border) !important;
  color: var(--cm-text) !important;
}
.btn-danger { background: linear-gradient(135deg,#ff7a7c,#e23b3e) !important; border: none !important; }

/* ===================== FORMS ===================== */
.form-control, .form-select, select, textarea,
input[type="text"], input[type="password"], input[type="email"],
input[type="number"], input[type="tel"], input[type="date"] {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(255,255,255,.12) !important;
  color: var(--cm-text) !important;
  border-radius: 12px !important;
}
.form-control:focus, .form-select:focus, select:focus, textarea:focus,
input:focus {
  border-color: var(--cm-mint) !important;
  box-shadow: 0 0 0 3px rgba(46,230,166,.22) !important;
  outline: none !important;
}
.form-control::placeholder, input::placeholder { color: #64748b !important; }
.form-check-input:checked { background-color: var(--cm-mint) !important; border-color: var(--cm-mint) !important; }
label { color: #cbd5e1 !important; }

/* ===================== TEXT ACCENTS ===================== */
.text-info, .text-primary, .text-success { color: var(--cm-mint) !important; }
.text-gradient {
  background: linear-gradient(100deg, #fff, #5eecbf 45%, #2EE6A6) !important;
  -webkit-background-clip: text !important; background-clip: text !important;
  -webkit-text-fill-color: transparent !important; color: transparent !important;
}
.bg-primary, .bg-info, .bg-success { background: var(--cm-grad) !important; color:#04130d !important; }
.badge, .label {
  background: rgba(46,230,166,.15) !important;
  color: var(--cm-mint) !important;
  border: 1px solid rgba(46,230,166,.25) !important;
}
.badge-danger, .label-danger { background: rgba(255,107,109,.15) !important; color:#ff8b8d !important; border-color: rgba(255,107,109,.3) !important; }

/* ===================== TABLES ===================== */
.table, table.gridview, .gvTheGrid { color: #cbd5e1 !important; }
.table th, table th, thead th {
  color: var(--cm-mint) !important;
  border-color: rgba(46,230,166,.18) !important;
  background: rgba(46,230,166,.05) !important;
}
.table td, table td { border-color: rgba(255,255,255,.06) !important; }
.table-striped > tbody > tr:nth-of-type(odd),
table tr:nth-of-type(even) { background: rgba(255,255,255,.02) !important; }
.table-hover > tbody > tr:hover, table tr:hover { background: rgba(46,230,166,.06) !important; }

/* grid pager (ASP.NET) */
.gridpagerstyle { background: transparent !important; color: var(--cm-mint) !important; }
.gridpagerstyle span { background: var(--cm-grad) !important; color:#04130d !important; border:none !important; border-radius:8px !important; }
.gridpagerstyle a { background: var(--cm-glass) !important; color: var(--cm-text) !important; border:1px solid var(--cm-border) !important; border-radius:8px !important; }
.gridpagerstyle a:hover { background: rgba(46,230,166,.18) !important; color: var(--cm-mint) !important; }

/* ===================== ADMIN TEMPLATE ===================== */
#wrapper, #page-wrapper, .main-page, .content-wrapper { background: var(--cm-bg) !important; }
.top-navbar, .navbar-default, .navbar-static-top, .navbar.navbar-default {
  background: rgba(10,15,20,.92) !important;
  border-color: rgba(46,230,166,.18) !important;
}
.navbar-default .navbar-nav > li > a, .navbar-brand, .navbar-top-links > li > a { color: var(--cm-text) !important; }
.navbar-default .navbar-nav > li > a:hover { color: var(--cm-mint) !important; }
.sidebar, .sidebar-nav, .nav-second-level, .side-menu, #sidebar-wrapper {
  background: rgba(10,15,20,.96) !important;
  border-color: rgba(46,230,166,.14) !important;
}
.sidebar .nav > li > a, .side-menu li a, .nav-second-level li a { color: #c9d6df !important; }
.sidebar .nav > li > a:hover, .sidebar .nav > li.active > a,
.side-menu li a:hover, .side-menu li.active > a {
  background: rgba(46,230,166,.12) !important;
  color: var(--cm-mint) !important;
  border-left: 3px solid var(--cm-mint) !important;
}
.page-header, h1, h2, h3, h4, h5 { color: #fff; }

/* ===================== PRELOADER ===================== */
.preload, .preload-container { background: var(--cm-bg) !important; }
.spinner { border-top-color: var(--cm-mint) !important; }
/* Replace the old loader logo with the current CoreMint logo (overrides inline bg). */
.preload-logo {
  background-image: url('logo.png') !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

/* ===================== ELEGANT TOUCHES + ANIMATIONS ===================== */
@keyframes cmFadeUp {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: none; }
}
@keyframes cmShimmer {
  0%   { transform: translateX(-120%); }
  60%  { transform: translateX(120%); }
  100% { transform: translateX(120%); }
}
@keyframes cmFloat {
  from { transform: translate(0,0); }
  to   { transform: translate(40px,-40px); }
}

/* sheen sweep across primary buttons */
.btn_theme, .btn-primary { position: relative; overflow: hidden; }
.btn_theme::after, .btn-primary::after {
  content: ""; position: absolute; top: 0; left: 0; width: 45%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform: translateX(-120%);
}
.btn_theme:hover::after, .btn-primary:hover::after { animation: cmShimmer 1s ease; }

/* gentle entrance for content blocks — opacity only (no transform, so it
   never creates a containing block that could shift fixed/absolute popups) */
@keyframes cmFadeIn { from { opacity: 0; } to { opacity: 1; } }
.page-body > * { animation: cmFadeIn .5s ease both; }

/* mint focus ring for links/buttons (a11y + polish) */
a:focus-visible, button:focus-visible, .btn:focus-visible {
  outline: 2px solid var(--cm-mint); outline-offset: 2px;
}

/* dividers / borders that were light → mint-tinted */
hr { border-color: rgba(46,230,166,.18) !important; }
.border, .border-top, .border-bottom { border-color: var(--cm-border) !important; }

/* ===================== PUBLIC LANDING PAGE VARIABLES ===================== */
/* Recolor variable-driven marketing pages (index.html etc.) to mint. */
:root {
  --brand1: #2EE6A6 !important;
  --brand2: #06a874 !important;
  --brand3: #5eecbf !important;
  --good:   #2EE6A6 !important;
  --bg:     #05070A !important;
  --bg2:    #0a0f14 !important;
}
.btn-grad, .cta, .btn-cta, .hero-btn {
  background: var(--cm-grad) !important;
  color: #04130d !important; border: none !important;
}
.text-brand, .brand, .highlight { color: var(--cm-mint) !important; }
