/* ELEVATE ELEGANT CARDS THEME START
   Purpose: user/admin card polish, readable contrast, soft color grouping.
   Safe layer: no route/backend changes, only visual CSS overrides.
*/
:root{
  --elevate-elegant-bg:#f5f7fb;
  --elevate-elegant-bg-2:#eef6ff;
  --elevate-elegant-surface:#ffffff;
  --elevate-elegant-surface-2:#f8fafc;
  --elevate-elegant-text:#0f172a;
  --elevate-elegant-heading:#0b1220;
  --elevate-elegant-muted:#475569;
  --elevate-elegant-soft:#64748b;
  --elevate-elegant-border:rgba(15,23,42,.105);
  --elevate-elegant-border-strong:rgba(15,23,42,.16);
  --elevate-elegant-shadow:0 18px 50px rgba(15,23,42,.085);
  --elevate-elegant-shadow-hover:0 24px 70px rgba(15,23,42,.13);
  --elevate-elegant-blue:#2563eb;
  --elevate-elegant-cyan:#0891b2;
  --elevate-elegant-emerald:#047857;
  --elevate-elegant-gold:#b7791f;
  --elevate-elegant-violet:#7c3aed;
  --elevate-elegant-rose:#be123c;
  --elevate-elegant-radius:22px;
}
html[data-elevate-theme="dark"]{
  --elevate-elegant-bg:#09111f;
  --elevate-elegant-bg-2:#101b2d;
  --elevate-elegant-surface:#101827;
  --elevate-elegant-surface-2:#111f33;
  --elevate-elegant-text:#e5edf8;
  --elevate-elegant-heading:#f8fafc;
  --elevate-elegant-muted:#b6c3d4;
  --elevate-elegant-soft:#94a3b8;
  --elevate-elegant-border:rgba(226,232,240,.14);
  --elevate-elegant-border-strong:rgba(226,232,240,.22);
  --elevate-elegant-shadow:0 18px 55px rgba(0,0,0,.34);
  --elevate-elegant-shadow-hover:0 24px 75px rgba(0,0,0,.44);
}

/* Global logged-in surface: clean, premium, and not too dark. */
body.elevate-app-body{
  color:var(--elevate-elegant-text);
  background:
    radial-gradient(circle at 12% 0%, rgba(37,99,235,.13), transparent 28%),
    radial-gradient(circle at 85% 10%, rgba(183,121,31,.12), transparent 30%),
    linear-gradient(135deg, var(--elevate-elegant-bg), var(--elevate-elegant-bg-2)) !important;
}
.elevate-main,.cakti-main,.elevate-content,.cakti-content{
  color:var(--elevate-elegant-text);
}
.elevate-content h1,.elevate-content h2,.elevate-content h3,.elevate-content h4,.elevate-content h5,.elevate-content h6,
.cakti-content h1,.cakti-content h2,.cakti-content h3,.cakti-content h4,.cakti-content h5,.cakti-content h6{
  color:var(--elevate-elegant-heading) !important;
  letter-spacing:-.015em;
}
.elevate-content p,.elevate-content li,.elevate-content td,.elevate-content th,.elevate-content label,
.cakti-content p,.cakti-content li,.cakti-content td,.cakti-content th,.cakti-content label{
  color:var(--elevate-elegant-text);
}
.elevate-content .text-muted,.cakti-content .text-muted,.elevate-topbar .text-muted{
  color:var(--elevate-elegant-muted) !important;
}
.elevate-content .small,.cakti-content .small,.elevate-content small,.cakti-content small{
  color:var(--elevate-elegant-soft);
}

/* Main cards used across user/admin pages. */
.elevate-content .card,
.elevate-content .cakti-card,
.elevate-content .elevate-card,
.elevate-content .dashboard-card,
.elevate-content .admin-card,
.elevate-content .stat-card,
.elevate-content .metric-card,
.elevate-content .result-panel,
.elevate-content .glass-card,
.elevate-content .pricing-card,
.elevate-content .topup-card,
.elevate-content .token-card,
.elevate-content .review-card,
.cakti-content .card,
.cakti-content .cakti-card,
.cakti-content .elevate-card,
.cakti-content .dashboard-card,
.cakti-content .admin-card,
.cakti-content .stat-card,
.cakti-content .metric-card,
.cakti-content .result-panel{
  position:relative;
  overflow:hidden;
  border:1px solid var(--elevate-elegant-border) !important;
  border-radius:var(--elevate-elegant-radius) !important;
  background:linear-gradient(145deg, rgba(255,255,255,.98), rgba(248,250,252,.96)) !important;
  color:var(--elevate-elegant-text) !important;
  box-shadow:var(--elevate-elegant-shadow) !important;
  backdrop-filter:blur(10px);
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
html[data-elevate-theme="dark"] .elevate-content .card,
html[data-elevate-theme="dark"] .elevate-content .cakti-card,
html[data-elevate-theme="dark"] .elevate-content .elevate-card,
html[data-elevate-theme="dark"] .elevate-content .dashboard-card,
html[data-elevate-theme="dark"] .elevate-content .admin-card,
html[data-elevate-theme="dark"] .elevate-content .stat-card,
html[data-elevate-theme="dark"] .elevate-content .metric-card,
html[data-elevate-theme="dark"] .elevate-content .result-panel,
html[data-elevate-theme="dark"] .cakti-content .card,
html[data-elevate-theme="dark"] .cakti-content .cakti-card,
html[data-elevate-theme="dark"] .cakti-content .result-panel{
  background:linear-gradient(145deg, rgba(15,23,42,.98), rgba(17,31,51,.96)) !important;
}
.elevate-content .card:hover,
.elevate-content .cakti-card:hover,
.elevate-content .elevate-card:hover,
.elevate-content .dashboard-card:hover,
.elevate-content .admin-card:hover,
.elevate-content .stat-card:hover,
.elevate-content .metric-card:hover,
.cakti-content .card:hover,
.cakti-content .cakti-card:hover{
  transform:translateY(-2px);
  border-color:var(--elevate-elegant-border-strong) !important;
  box-shadow:var(--elevate-elegant-shadow-hover) !important;
}

/* Elegant colored top line for cards without sacrificing readability. */
.elevate-content .card::before,
.elevate-content .cakti-card::before,
.elevate-content .elevate-card::before,
.elevate-content .dashboard-card::before,
.elevate-content .admin-card::before,
.elevate-content .stat-card::before,
.elevate-content .metric-card::before,
.cakti-content .card::before,
.cakti-content .cakti-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:5px;
  background:linear-gradient(90deg, var(--elevate-elegant-blue), var(--elevate-elegant-cyan));
  opacity:.95;
  pointer-events:none;
}
.elevate-content .row > [class*="col"]:nth-child(6n+1) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+1) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+1) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+1) .admin-card{
  background:linear-gradient(145deg, rgba(239,246,255,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+2) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .admin-card{
  background:linear-gradient(145deg, rgba(236,253,245,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+2) .card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .cakti-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .dashboard-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+2) .admin-card::before{
  background:linear-gradient(90deg, var(--elevate-elegant-emerald), #14b8a6);
}
.elevate-content .row > [class*="col"]:nth-child(6n+3) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .admin-card{
  background:linear-gradient(145deg, rgba(255,251,235,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+3) .card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .cakti-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .dashboard-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+3) .admin-card::before{
  background:linear-gradient(90deg, var(--elevate-elegant-gold), #f59e0b);
}
.elevate-content .row > [class*="col"]:nth-child(6n+4) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .admin-card{
  background:linear-gradient(145deg, rgba(245,243,255,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+4) .card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .cakti-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .dashboard-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+4) .admin-card::before{
  background:linear-gradient(90deg, var(--elevate-elegant-violet), #a855f7);
}
.elevate-content .row > [class*="col"]:nth-child(6n+5) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .admin-card{
  background:linear-gradient(145deg, rgba(236,254,255,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+5) .card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .cakti-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .dashboard-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+5) .admin-card::before{
  background:linear-gradient(90deg, var(--elevate-elegant-cyan), #38bdf8);
}
.elevate-content .row > [class*="col"]:nth-child(6n+6) .card,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .cakti-card,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .dashboard-card,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .admin-card{
  background:linear-gradient(145deg, rgba(255,241,242,.98), rgba(255,255,255,.96)) !important;
}
.elevate-content .row > [class*="col"]:nth-child(6n+6) .card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .cakti-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .dashboard-card::before,
.elevate-content .row > [class*="col"]:nth-child(6n+6) .admin-card::before{
  background:linear-gradient(90deg, var(--elevate-elegant-rose), #fb7185);
}
html[data-elevate-theme="dark"] .elevate-content .row > [class*="col"] .card,
html[data-elevate-theme="dark"] .elevate-content .row > [class*="col"] .cakti-card,
html[data-elevate-theme="dark"] .elevate-content .row > [class*="col"] .dashboard-card,
html[data-elevate-theme="dark"] .elevate-content .row > [class*="col"] .admin-card{
  background:linear-gradient(145deg, rgba(15,23,42,.98), rgba(17,31,51,.96)) !important;
}

/* Card content readability. */
.elevate-content .card .card-header,
.elevate-content .cakti-card .card-header,
.cakti-content .card .card-header{
  border-bottom:1px solid var(--elevate-elegant-border) !important;
  background:rgba(255,255,255,.38) !important;
  color:var(--elevate-elegant-heading) !important;
  font-weight:800;
}
html[data-elevate-theme="dark"] .elevate-content .card .card-header,
html[data-elevate-theme="dark"] .elevate-content .cakti-card .card-header,
html[data-elevate-theme="dark"] .cakti-content .card .card-header{
  background:rgba(15,23,42,.34) !important;
}
.elevate-content .card-title,.elevate-content .card h1,.elevate-content .card h2,.elevate-content .card h3,.elevate-content .card h4,.elevate-content .card h5,.elevate-content .card h6,
.elevate-content .cakti-card h1,.elevate-content .cakti-card h2,.elevate-content .cakti-card h3,.elevate-content .cakti-card h4,.elevate-content .cakti-card h5,.elevate-content .cakti-card h6{
  color:var(--elevate-elegant-heading) !important;
  font-weight:850;
}
.elevate-content .card p,.elevate-content .card li,.elevate-content .card span:not(.badge),.elevate-content .card div,
.elevate-content .cakti-card p,.elevate-content .cakti-card li,.elevate-content .cakti-card span:not(.badge),.elevate-content .cakti-card div{
  color:inherit;
}
.elevate-content .card .text-muted,.elevate-content .cakti-card .text-muted,
.elevate-content .card small,.elevate-content .cakti-card small{
  color:var(--elevate-elegant-muted) !important;
}

/* Tables inside admin/user cards. */
.elevate-content .table,
.cakti-content .table{
  --bs-table-color:var(--elevate-elegant-text);
  --bs-table-bg:transparent;
  --bs-table-striped-color:var(--elevate-elegant-text);
  --bs-table-hover-color:var(--elevate-elegant-text);
  color:var(--elevate-elegant-text) !important;
  border-color:var(--elevate-elegant-border) !important;
}
.elevate-content .table thead th,
.cakti-content .table thead th{
  background:linear-gradient(180deg, rgba(37,99,235,.10), rgba(8,145,178,.06)) !important;
  color:var(--elevate-elegant-heading) !important;
  border-bottom:1px solid var(--elevate-elegant-border-strong) !important;
  font-weight:850;
}
.elevate-content .table tbody tr,
.cakti-content .table tbody tr{
  border-color:var(--elevate-elegant-border) !important;
}
.elevate-content .table tbody tr:hover,
.cakti-content .table tbody tr:hover{
  background:rgba(37,99,235,.055) !important;
}
html[data-elevate-theme="dark"] .elevate-content .table thead th,
html[data-elevate-theme="dark"] .cakti-content .table thead th{
  background:linear-gradient(180deg, rgba(37,99,235,.22), rgba(8,145,178,.12)) !important;
}

/* Form controls are readable in cards and admin pages. */
.elevate-content .form-control,
.elevate-content .form-select,
.elevate-content textarea,
.elevate-content input,
.cakti-content .form-control,
.cakti-content .form-select,
.cakti-content textarea,
.cakti-content input{
  border-radius:14px !important;
  border-color:var(--elevate-elegant-border-strong) !important;
  color:var(--elevate-elegant-text) !important;
  background-color:rgba(255,255,255,.92) !important;
}
html[data-elevate-theme="dark"] .elevate-content .form-control,
html[data-elevate-theme="dark"] .elevate-content .form-select,
html[data-elevate-theme="dark"] .elevate-content textarea,
html[data-elevate-theme="dark"] .elevate-content input,
html[data-elevate-theme="dark"] .cakti-content .form-control,
html[data-elevate-theme="dark"] .cakti-content .form-select,
html[data-elevate-theme="dark"] .cakti-content textarea,
html[data-elevate-theme="dark"] .cakti-content input{
  background-color:rgba(15,23,42,.88) !important;
  color:var(--elevate-elegant-text) !important;
}
.elevate-content .form-control::placeholder,
.cakti-content .form-control::placeholder{
  color:var(--elevate-elegant-soft) !important;
  opacity:1;
}
.elevate-content .form-control:focus,
.elevate-content .form-select:focus,
.cakti-content .form-control:focus,
.cakti-content .form-select:focus{
  border-color:rgba(37,99,235,.55) !important;
  box-shadow:0 0 0 .22rem rgba(37,99,235,.16) !important;
}

/* Badges and alerts with readable contrast. */
.elevate-content .badge.bg-primary,.elevate-content .badge.bg-success,.elevate-content .badge.bg-danger,.elevate-content .badge.bg-info,.elevate-content .badge.bg-dark,
.cakti-content .badge.bg-primary,.cakti-content .badge.bg-success,.cakti-content .badge.bg-danger,.cakti-content .badge.bg-info,.cakti-content .badge.bg-dark{
  color:#fff !important;
}
.elevate-content .badge.bg-warning,
.cakti-content .badge.bg-warning{
  color:#111827 !important;
}
.elevate-content .bg-primary-subtle,.cakti-content .bg-primary-subtle{background:rgba(37,99,235,.12) !important;color:#1d4ed8 !important;border-color:rgba(37,99,235,.22) !important;}
.elevate-content .bg-success-subtle,.cakti-content .bg-success-subtle{background:rgba(4,120,87,.12) !important;color:#047857 !important;border-color:rgba(4,120,87,.22) !important;}
.elevate-content .bg-warning-subtle,.cakti-content .bg-warning-subtle{background:rgba(183,121,31,.14) !important;color:#92400e !important;border-color:rgba(183,121,31,.25) !important;}
.elevate-content .bg-danger-subtle,.cakti-content .bg-danger-subtle{background:rgba(190,18,60,.11) !important;color:#be123c !important;border-color:rgba(190,18,60,.22) !important;}
.elevate-content .alert,.cakti-content .alert{
  border-radius:18px !important;
  border-width:1px !important;
  box-shadow:0 10px 30px rgba(15,23,42,.055);
  color:var(--elevate-elegant-text) !important;
}

/* Buttons: modern but still Bootstrap-compatible. */
.elevate-content .btn,
.cakti-content .btn{
  border-radius:14px;
  font-weight:750;
}
.elevate-content .btn-primary,
.cakti-content .btn-primary{
  background:linear-gradient(135deg, #2563eb, #0891b2) !important;
  border-color:transparent !important;
  color:#fff !important;
  box-shadow:0 12px 24px rgba(37,99,235,.22);
}
.elevate-content .btn-success,
.cakti-content .btn-success{
  background:linear-gradient(135deg, #047857, #10b981) !important;
  border-color:transparent !important;
  color:#fff !important;
}
.elevate-content .btn-warning,
.cakti-content .btn-warning{
  background:linear-gradient(135deg, #f59e0b, #fbbf24) !important;
  border-color:transparent !important;
  color:#111827 !important;
}
.elevate-content .btn-danger,
.cakti-content .btn-danger{
  background:linear-gradient(135deg, #be123c, #ef4444) !important;
  border-color:transparent !important;
  color:#fff !important;
}
.elevate-content .btn-outline-primary,
.cakti-content .btn-outline-primary{
  border-color:rgba(37,99,235,.35) !important;
  color:#1d4ed8 !important;
}
html[data-elevate-theme="dark"] .elevate-content .btn-outline-primary,
html[data-elevate-theme="dark"] .cakti-content .btn-outline-primary{
  color:#93c5fd !important;
}

/* Topbar and sidebar polish. */
.elevate-topbar,.cakti-topbar{
  border:1px solid var(--elevate-elegant-border) !important;
  border-radius:22px !important;
  background:rgba(255,255,255,.82) !important;
  color:var(--elevate-elegant-text) !important;
  box-shadow:0 14px 42px rgba(15,23,42,.06) !important;
  backdrop-filter:blur(14px);
}
html[data-elevate-theme="dark"] .elevate-topbar,
html[data-elevate-theme="dark"] .cakti-topbar{
  background:rgba(15,23,42,.74) !important;
}
.elevate-sidebar,.cakti-sidebar{
  background:
    radial-gradient(circle at 20% 0%, rgba(56,189,248,.16), transparent 26%),
    linear-gradient(180deg, #07111f 0%, #0f172a 100%) !important;
  border-right:1px solid rgba(226,232,240,.12) !important;
}
.cakti-side-nav a,
.elevate-sidebar a{
  color:rgba(241,245,249,.86) !important;
  border-radius:14px;
}
.cakti-side-nav a:hover,
.elevate-sidebar a:hover,
.cakti-side-nav a.active,
.elevate-sidebar a.active{
  color:#fff !important;
  background:rgba(255,255,255,.11) !important;
}
.cakti-nav-label{
  color:rgba(226,232,240,.62) !important;
  letter-spacing:.11em;
}

/* Explicit contrast fixes for colored Bootstrap cards. */
.elevate-content .card.bg-primary,
.elevate-content .card.bg-success,
.elevate-content .card.bg-danger,
.elevate-content .card.bg-dark,
.cakti-content .card.bg-primary,
.cakti-content .card.bg-success,
.cakti-content .card.bg-danger,
.cakti-content .card.bg-dark{
  color:#fff !important;
}
.elevate-content .card.bg-primary *:not(.btn):not(.badge),
.elevate-content .card.bg-success *:not(.btn):not(.badge),
.elevate-content .card.bg-danger *:not(.btn):not(.badge),
.elevate-content .card.bg-dark *:not(.btn):not(.badge),
.cakti-content .card.bg-primary *:not(.btn):not(.badge),
.cakti-content .card.bg-success *:not(.btn):not(.badge),
.cakti-content .card.bg-danger *:not(.btn):not(.badge),
.cakti-content .card.bg-dark *:not(.btn):not(.badge){
  color:#fff !important;
}
.elevate-content .card.bg-warning,
.cakti-content .card.bg-warning{
  color:#111827 !important;
}
.elevate-content .card.bg-warning *:not(.btn):not(.badge),
.cakti-content .card.bg-warning *:not(.btn):not(.badge){
  color:#111827 !important;
}

@media(max-width: 768px){
  .elevate-content .card,
  .elevate-content .cakti-card,
  .elevate-content .dashboard-card,
  .elevate-content .admin-card,
  .cakti-content .card,
  .cakti-content .cakti-card{
    border-radius:18px !important;
    box-shadow:0 12px 34px rgba(15,23,42,.08) !important;
  }
  .elevate-topbar,.cakti-topbar{border-radius:18px !important;}
}
/* ELEVATE ELEGANT CARDS THEME END */
