:root{
  --vg-primary:#C75A1F;
  --vg-secondary:#F4CDA1;
  --vg-bg:#ffffff;
  --vg-text:#111111;
  --vg-muted:#6c757d;
  --vg-sidebar-bg:linear-gradient(135deg,#F59E0B,#F43F5E,#9F1239);
  
}

*,
*::before,
*::after{
  box-sizing:border-box;
}

body{
  margin:0;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--vg-bg);
  color:var(--vg-text);
}

.text-vg-primary{
  color:var(--vg-primary) !important;
}

.btn-vg{
  background:var(--vg-primary);
  border-color:var(--vg-primary);
  color:#fff;
}
.btn-vg:hover{
  background:#8e365f;
  border-color:#8e365f;
  color:#fff;
}

.btn-outline-vg{
  border-color:var(--vg-primary);
  color:var(--vg-primary);
}
.btn-outline-vg:hover{
  background:var(--vg-primary);
  color:#fff;
}

.vg-role-card .card{
  border-radius:1rem;
  border:1px solid rgba(0,0,0,0.06);
  transition:transform .15s ease,box-shadow .15s ease;
}
.vg-role-card .card:hover{
  transform:translateY(-2px);
  box-shadow:0 0.5rem 1rem rgba(0,0,0,0.08);
}

.vg-footer{
  font-size:0.85rem;
}

/* Panel Layout */
.vg-sidebar{
  width:230px;
  min-height:100vh;
}
.bg-vg-sidebar{
  background:var(--vg-sidebar-bg);
}
.vg-panel-body{
  background:#f5f5f8;
}

/* Tables - mobile scroll */
.table-responsive{
  overflow-x:auto;
}
.table thead th{
  white-space:nowrap;
}

/* Forms */
.form-control:focus{
  border-color:var(--vg-primary);
  box-shadow:0 0 0 0.2rem rgba(181,74,120,.25);
}

input[type="file"].form-control{
  min-height:48px;
  padding-top:10px;
  padding-bottom:10px;
  cursor:pointer;
}

input[type="file"].form-control::file-selector-button{
  margin-right:12px;
  padding:8px 14px;
  border:0;
  border-radius:10px;
  background:var(--vg-primary);
  color:#fff;
  cursor:pointer;
}

.password-toggle{
  cursor:pointer;
}

/* Small utilities */
.badge-status-approved{
  background:#22c55e;
}
.badge-status-pending{
  background:#f97316;
}
.badge-status-rejected{
  background:#ef4444;
}
.section-shadow {
    width: 100%;
    height: 35px;
    background: linear-gradient(
        to bottom,
        rgba(181, 74, 120, 0.35),   /* purple tone */
        rgba(255, 255, 255, 0)
    );
}
/* SMALL RADIUS CARD – GLOBAL USE */


.contact-card {
  max-width: 600px;
  margin: 0 auto;
  background: #ffffff;
  border-radius: 16px;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0,0,0,0.08);
  text-align: left !important; /* 🔥 THIS FIXES alignment */
}

.contact-item {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 20px;
}

.contact-icon {
  width: 45px;
  height: 45px;
  border-radius: 50%;
  background: #f4cda1; /* Vishwagra light peach shade */
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  color: #B54A78; /* Vishwagra purple */
}

.contact-label {
  font-weight: 700;
  margin-bottom: 2px;
  color: #111;
}

.contact-value a {
  color: var(--vg-primary);
  text-decoration: none;
}
.contact-value a:hover {
  text-decoration: underline;
}
/* Sidebar Dropdown */
.vg-dropdown-menu {
    background: #1f1f1f !important;   /* matte dark */
    border-radius: 8px;
    padding: 6px 0;
    border: 1px solid #333 !important;
    min-width: 190px;
}

/* Dropdown Items */
.vg-dropdown-item {
    color: #eaeaea !important;
    padding: 10px 18px !important;
    font-size: 15px;
    transition: 0.25s ease;
    border-radius: 6px;
}

/* Hover Effect (Premium look) */
.vg-dropdown-item:hover {
    background: #6B1C66 !important;     /* your brand purple */
    color: #fff !important;
    transform: translateX(4px);         /* subtle slide */
}

/* Parent link arrow hover */
.vg-dropdown > a:hover {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 6px;
}
.vg-table-wrapper {
    width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden;
    display: block !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 6px;
}

.vg-table-wrapper table {
    width: max-content !important;
    min-width: 100% !important;
}

.vg-table-wrapper th,
.vg-table-wrapper td {
    white-space: nowrap !important;
}

.vg-table-wrapper::-webkit-scrollbar {
    height: 6px;
}

.vg-table-wrapper::-webkit-scrollbar-thumb {
    background: #b8b8b8;
    border-radius: 4px;
}

.vg-table-wrapper::-webkit-scrollbar-track {
    background: #f1f1f1;
}
/* ============================
   MOBILE SIDEBAR (Slide-In)
============================ */
@media (max-width: 768px) {

    .vg-sidebar {
        position: fixed;
        top: 0;
        left: -260px;
        height: 100vh;
        width: 230px;
        background: var(--vg-sidebar-bg);
        transition: left 0.3s ease;
        z-index: 9999;
    }

    .vg-sidebar.show {
        left: 0;
    }

    /* Overlay background */
    #sidebarOverlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(0,0,0,0.5);
        z-index: 9990;
    }

    #sidebarOverlay.active {
        display: block;
    }

    /* Content moves normally */
    .vg-panel-body {
        margin-left: 0 !important;
    }
}
/* Mobile Table Scroll Fix */
@media (max-width: 768px) {
    .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }
}
.table-responsive::-webkit-scrollbar {
    height: 6px;
}
.table-responsive::-webkit-scrollbar-thumb {
    background: #6B1C66;
    border-radius: 10px;
}
.table-responsive::-webkit-scrollbar-track {
    background: #f1f1f1;
}
.section-bg-soft {
  background: #f1e7e1;   /* very light peach (brand-safe) */
}

.section-bg-muted {
  background: #f8f9fb;   /* light neutral grey */
}

/* Remove header-to-content gap ONLY on home page */

.page-home-no-gap {
  margin-top: 0;
  padding-top: 0;
}

/* Remove accidental spacing from first section */
.page-home-no-gap section:first-of-type {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* If header has bottom margin */
.page-home-no-gap .vg-site-header {
  margin-bottom: 0 !important;
}

/* If main has padding */
.page-home-no-gap main {
  padding-top: 0 !important;
}
/* ============================
   ADMIN TOP HEADER ALIGNMENT
============================ */
.admin-topbar{
  margin-left: 230px;      /* SAME AS SIDEBAR WIDTH */
  height: 56px;
  background: #ffffff;
  z-index: 998;
}

/* Mobile: header full width */
@media (max-width: 768px){
  .admin-topbar{
    margin-left: 0;
  }
}
/* ============================
   FOOTER – VISHWAGRA FINAL
============================ */

/* Footer Base */
.vg-footer-dark {
  background:
    radial-gradient(circle at 12% 18%, rgba(255,214,170,0.22) 0%, rgba(255,214,170,0) 34%),
    radial-gradient(circle at 88% 84%, rgba(255,183,112,0.20) 0%, rgba(255,183,112,0) 36%),
    linear-gradient(150deg,#5A230C 0%,#8F3E16 34%,#C75A1F 68%,#E28A32 100%);
  color: #fff6ee;
  padding: 50px 0 20px;
  font-size: 14px;
}

/* Footer Grid Layout */
.footer-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 40px;
}

/* Footer Headings */
.footer-heading {
  color: #fffaf5;
  font-weight: 700;
  margin-bottom: 12px;
  letter-spacing: .2px;
}

.footer-title {
  color: #fff3e8;
  font-weight: 600;
  margin-bottom: 10px;
}

.footer-title-row{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  margin-bottom:12px;
}

.footer-count-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,0.16);
  border:1px solid rgba(255,245,230,0.30);
  color:#fffaf4;
  font-size:12px;
  font-weight:700;
  line-height:1;
}

/* Footer Text */
.vg-footer-dark p {
  line-height: 1.6;
  margin-bottom: 0;
}

/* Footer Lists */
.vg-footer-dark ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.vg-footer-dark ul li {
  margin-bottom: 6px;
}

/* Footer Links */
.vg-footer-dark a {
  color: #ffe9d3;
  text-decoration: none;
}

.vg-footer-dark a:hover {
  color: #ffffff;
  text-decoration: underline;
}

/* Footer Bottom Bar */
.footer-bottom {
  margin-top: 30px;
  padding-top: 15px;
  border-top: 1px solid rgba(255,244,231,0.34);
  text-align: center;
  font-size: 13px;
  color: #fff3e8;
}

.footer-brand-card{
  background:linear-gradient(145deg,rgba(255,255,255,0.16),rgba(255,255,255,0.07));
  border:1px solid rgba(255,245,232,0.30);
  border-radius:14px;
  padding:16px;
  box-shadow:0 10px 22px rgba(47,18,6,0.25);
}

.footer-action-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}

.footer-action-btn{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 10px;
  border-radius:10px;
  background:linear-gradient(145deg,rgba(255,255,255,0.24),rgba(255,255,255,0.12));
  border:1px solid rgba(255,245,230,0.34);
  color:#fff;
  text-decoration:none;
  font-weight:600;
}

.footer-action-btn:hover{
  background:linear-gradient(145deg,rgba(255,255,255,0.34),rgba(255,255,255,0.16));
  color:#fff;
  text-decoration:none;
}

.footer-icon-list{
  list-style:none;
  padding:0;
  margin:0;
}

.footer-icon-list li{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-bottom:8px;
}

.footer-icon-list i{
  color:#ffd39f;
  margin-top:2px;
}

.footer-centre-list-window{
  position:relative;
  overflow:hidden;
  height:172px;
  mask-image:linear-gradient(to bottom, transparent, #000 10%, #000 90%, transparent);
  -webkit-mask-image:linear-gradient(to bottom, transparent, #000 10%, #000 90%, transparent);
}

.footer-centre-list-track{
  display:flex;
  flex-direction:column;
  will-change:transform;
  animation:footerCentreVerticalScroll 72s linear infinite;
}

.footer-centre-list-window:hover .footer-centre-list-track{
  animation-play-state:paused;
}

.footer-centre-list{
  list-style:none;
  padding:0;
  margin:0;
  flex-shrink:0;
}

.footer-centre-list li{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:28px;
  margin-bottom:6px;
}

.footer-centre-list a{
  display:block;
  color:#ffe9d3;
  text-decoration:none;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.35;
  flex:1 1 auto;
  min-width:0;
}

.footer-centre-list a:hover{
  color:#ffffff;
  text-decoration:underline;
}

.footer-centre-bullet{
  width:7px;
  height:7px;
  border-radius:50%;
  background:#ffd39f;
  flex:0 0 7px;
  box-shadow:0 0 0 3px rgba(255,211,159,0.14);
}

@keyframes footerCentreVerticalScroll{
  from{
    transform:translateY(0);
  }
  to{
    transform:translateY(-50%);
  }
}

@media (max-width: 768px){
  .footer-action-grid{
    grid-template-columns:1fr;
  }

  .vg-footer-dark{
    padding: 28px 0 16px;
  }

  .footer-row{
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .footer-brand-card{
    padding: 14px;
  }

  .footer-bottom{
    margin-top: 18px;
    padding-top: 12px;
  }

  .footer-centre-list-window{
    height:172px;
  }

  .footer-centre-list-track{
    animation-duration:64s;
  }
}
/* ============================
   ABOUT HERO – FULL WIDTH
============================ */
.about-hero{
  width: 100%;
  background: linear-gradient(
    135deg,
    #F59E0B 0%,
    #F43F5E 50%,
    #9F1239 100%
  );
  padding: 60px 0;
  border-radius: 28px;
  margin-bottom: 0;
}

.about-subtitle{
  color:#F9FAFB;
  font-size:1.05rem;
}
/* Hero bottom soft shadow */
.section-shadow{
  width:100%;
  height:35px;
  background:linear-gradient(
    to bottom,
    rgba(181,74,120,0.35),
    rgba(255,255,255,0)
  );
}
/* ============================
   WHY LIST – CLEAN ALIGNMENT
============================ */
.vg-why-list{
  list-style:none;
  padding-left:0;
  margin:0;
}

.vg-why-list li{
  position:relative;
  padding-left:100px;
  margin-bottom:16px;
  font-size:15.5px;
  line-height:1.6;
  color:#111;
}

.vg-why-list li::before{
  content:"✓";
  position:absolute;
  left:70px;
  top:2px;
  color:var(--vg-primary);
  font-weight:700;
}
/* ============================
   ACTIVE NAV – UNDERLINE ONLY
============================ */
.navbar .nav-link{
  text-decoration:none !important;
  border-bottom:none !important;
}

.navbar .nav-link.active{
  color:var(--vg-primary) !important;
  font-weight:600;
  border-bottom:2px solid var(--vg-primary) !important;
}
/* ============================
   STICKY FOOTER SUPPORT
============================ */
html, body{
  height:100%;
}

body{
  display:flex;
  flex-direction:column;
}

main{
  flex:1;
}
/* Courses dropdown scroll */
.courses-scroll{
  max-height:260px;
  overflow-y:auto;
  scrollbar-width:thin;
}

.courses-scroll::-webkit-scrollbar{
  width:6px;
}
.courses-scroll::-webkit-scrollbar-thumb{
  background:#6B1C66;
  border-radius:6px;
}
.courses-scroll::-webkit-scrollbar-track{
  background:#f1f1f1;
}
/* ============================
   AUTH PAGES – REMOVE SCROLL
============================ */
.auth-page {
  overflow-x: hidden;
}

/* Keep auth pages in normal document flow so header, body, footer stack correctly */
.auth-page main {
  display: block;
  width: 100%;
  padding: 24px 12px 32px !important;
}

/* Ensure footer sticks without extra height */
.auth-page footer {
  margin-top: auto;
}

/* Auth card width control (login pages) */
.auth-page .auth-card-col{
  flex: 0 0 auto;
  width: 620px;
  max-width: 100%;
  margin: 12px 0;
}

.auth-page .row.justify-content-center{
  display: flex;
  justify-content: center;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.auth-page .row.justify-content-center > [class*="col-"],
.auth-page .row.justify-content-center > .auth-card-col{
  width: 100%;
  max-width: 720px;
  padding-left: 0;
  padding-right: 0;
}

.auth-page .card{
  width: 100%;
}

.auth-page .card-body{
  padding: 24px;
}

.auth-page .register-submit-btn{
  max-width: 100%;
}

.register-submit-btn{
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 220px;
  padding: 10px 24px;
}
@media (max-width: 480px){
  .auth-page main{
    display: block;
    width: 100%;
    padding: 16px 10px 24px !important;
  }

  .auth-page .auth-card-col{
    width: 100%;
    max-width: 100%;
    margin: 8px 0;
  }

  .auth-page .card{
    border-radius: 12px;
  }

  .auth-page .card-body{
    padding: 16px;
  }

  .auth-page .row.g-3{
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
  }

  .auth-page .form-control,
  .auth-page .form-select,
  .auth-page .input-group-text{
    font-size: 16px;
  }

  .auth-page .register-submit-btn,
  .auth-page .btn.w-100{
    width: 100% !important;
    min-width: 0;
  }

  .auth-page h3{
    font-size: 1.35rem;
  }

  .auth-page hr{
    margin: 1rem 0;
  }
}
/* ======================================================
   HEADER – FINAL PROFESSIONAL ALIGNMENT
====================================================== */

/* Navbar height & vertical centering */
.navbar {
  min-height: 72px;
}

.navbar-brand {
  display: flex;
  align-items: center;
  font-size: 1.6rem;
  padding: 0;
}

/* NAV ITEMS – SINGLE LINE GUARANTEE */
.navbar-nav {
  align-items: center;
  gap: 8px !important;
}

.navbar-nav .nav-link {
  white-space: nowrap !important;   /* ⛔ NEVER BREAK LINE */
  padding: 6px 10px;
  line-height: 1.4;
  font-size: 15px;
}

/* Active underline clean */
.navbar .nav-link.active {
  color: var(--vg-primary) !important;
  font-weight: 600;
  border-bottom: 2px solid var(--vg-primary);
}

/* Login / Register buttons alignment */
.navbar .btn {
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* ======================================================
   COURSES DROPDOWN – FINAL FIX
====================================================== */

.vg-courses-menu {
  width: 420px;
  padding: 14px;
  border-radius: 14px;
}

.vg-courses-menu .row {
  margin: 0;
}

.vg-courses-menu .col-6 {
  padding: 0 8px;
}

/* Each course item */
.vg-courses-menu a {
  display: block;
  padding: 8px 10px;
  margin-top: 6px;
  border-radius: 8px;
  font-size: 14.5px;
  white-space: nowrap;            /* ⛔ NO WRAP HERE ALSO */
}

/* Hover */
.vg-courses-menu a:hover {
  background: rgba(199, 90, 31, 0.12);
}

/* Scroll fix */
.courses-scroll {
  max-height: 260px;
  overflow-y: auto;
}

/* ======================================================
   RESPONSIVE SAFETY (SMALL DESKTOPS)
====================================================== */
@media (max-width: 1200px) {
  .navbar-nav .nav-link {
    font-size: 14px;
    padding: 6px 8px;
  }
}

/* ============================
   NAVBAR DROPDOWN – WHITE BG
============================ */

.vg-dropdown-menu {
  background: #ffffff !important;
  border: 1px solid #e5e7eb !important;
  box-shadow: 0 12px 30px rgba(0,0,0,0.12);
}

/* Dropdown items */
.vg-dropdown-item {
  color: #111 !important;
}

/* Hover stays premium */
.vg-dropdown-item:hover {
  background: rgba(199, 90, 31, 0.12) !important;
  color: var(--vg-primary) !important;
}
/* ===============================
   SAFE HORIZONTAL SCROLL FIX
   (NO GLOBAL SIDE EFFECTS)
================================ */

/* Lock overflow only at layout level */
body {
  overflow-x: hidden;
}

/* Prevent panel area from leaking width */
.vg-panel-body {
  max-width: 100%;
  overflow-x: hidden;
}

/* Protect only direct layout rows */
.vg-panel-body > .container,
.vg-panel-body > .container-fluid {
  overflow-x: hidden;
}

/* Fix only layout rows (NOT Bootstrap grid logic) */
.vg-panel-body .row {
  margin-left: 0;
  margin-right: 0;
}

/* Media safety inside panel only */
.vg-panel-body img,
.vg-panel-body video,
.vg-panel-body iframe {
  max-width: 100%;
  height: auto;
}

/* ======================================================
   2026 THEME REFRESH (LOGO-BASED, RESPONSIVE)
====================================================== */
:root{
  --vg-primary:#C75A1F;
  --vg-primary-dark:#8F3E16;
  --vg-primary-soft:#F4CDA1;
  --vg-accent:#E28A32;
  --vg-bg:#FFF8F2;
  --vg-surface:#FFFFFF;
  --vg-border:#F0E2D4;
  --vg-shadow:0 10px 28px rgba(106,45,14,0.10);
  --vg-radius:14px;
  --vg-sidebar-bg:linear-gradient(165deg,#A84819 0%,#C75A1F 42%,#E28A32 100%);
}

body{
  font-family:"Outfit","Segoe UI",Tahoma,sans-serif;
  background:
    radial-gradient(circle at 0% 0%, rgba(226,138,50,0.10) 0, rgba(226,138,50,0) 42%),
    radial-gradient(circle at 100% 100%, rgba(199,90,31,0.10) 0, rgba(199,90,31,0) 45%),
    var(--vg-bg);
  color:#1D1B18;
}

.card{
  border:1px solid var(--vg-border);
  border-radius:var(--vg-radius);
  box-shadow:var(--vg-shadow);
}

.btn{
  border-radius:10px;
  font-weight:600;
}

.btn-vg{
  background:linear-gradient(135deg,var(--vg-primary) 0%,var(--vg-accent) 100%);
  border-color:var(--vg-primary);
  box-shadow:0 6px 14px rgba(199,90,31,0.25);
}
.btn-vg:hover{
  background:linear-gradient(135deg,var(--vg-primary-dark) 0%,var(--vg-primary) 100%);
  border-color:var(--vg-primary-dark);
  transform:translateY(-1px);
}

.btn-outline-vg{
  border-color:var(--vg-primary);
  color:var(--vg-primary);
  background:#fff;
}
.btn-outline-vg:hover{
  background:rgba(199,90,31,0.08);
  color:var(--vg-primary-dark);
  border-color:var(--vg-primary-dark);
}

.table{
  border-radius:12px;
  overflow:hidden;
}
.table thead th{
  background:#FFF2E7 !important;
  color:#6C2C0F;
  border-bottom:1px solid #F3D8BF;
}
.table td{
  border-color:#F5E9DD;
}

.form-control,
.form-select{
  border-radius:10px;
  border:1px solid #E8D7C7;
  background:#fff;
}
.form-control:focus,
.form-select:focus{
  border-color:var(--vg-primary);
  box-shadow:0 0 0 0.2rem rgba(199,90,31,0.15);
}

.vg-panel-topbar{
  background:rgba(255,255,255,0.88) !important;
  backdrop-filter:blur(8px);
  border-bottom:1px solid #F0E2D4 !important;
}

.vg-sidebar{
  border-right:1px solid rgba(255,255,255,0.18);
}
.vg-sidebar .nav-link{
  border-radius:10px;
  margin:2px 8px;
  font-weight:500;
}
.vg-sidebar .nav-link:hover{
  background:rgba(255,255,255,0.18) !important;
}
.vg-sidebar .nav-link.active,
.vg-sidebar .nav-link[aria-expanded="true"]{
  background:rgba(255,255,255,0.26) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,0.30);
}

.navbar{
  background:rgba(255,255,255,0.92) !important;
  backdrop-filter:blur(8px);
  border-bottom:1px solid #F0E2D4;
}
.navbar .nav-link{
  border-radius:8px;
}
.navbar .nav-link:hover{
  background:rgba(199,90,31,0.08);
}

.badge{
  border-radius:999px;
  font-weight:600;
}

@media (max-width: 768px){
  .card{
    border-radius:12px;
    box-shadow:0 6px 18px rgba(106,45,14,0.10);
  }
  .btn{
    min-height:36px;
    width:fit-content !important;
    min-width:0 !important;
    padding:8px 14px;
  }

  .btn-fixed-140,
  .btn-fixed-160,
  .btn-fixed-200,
  .btn-fixed-300{
    width:auto !important;
  }

  input[type="submit"].btn,
  input[type="button"].btn,
  input[type="reset"].btn{
    width:fit-content !important;
    min-width:0 !important;
  }

  a.btn,
  button.btn{
    width:fit-content !important;
    min-width:0 !important;
  }

  .btn.w-100,
  .w-100.btn,
  .register-submit-btn{
    width:fit-content !important;
  }
}

/* Home: live actionable blocks */
.live-impact-card{
  background:linear-gradient(145deg,#fff6ed 0%,#ffffff 100%);
}
.metric-box{
  background:#fff;
  border:1px solid #f1ddc9;
  border-radius:12px;
  padding:12px 10px;
  text-align:center;
  height:100%;
}
.metric-icon{
  width:36px;
  height:36px;
  margin:0 auto 8px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#fff1e2 0%,#ffe0bc 100%);
  color:var(--vg-primary-dark);
  font-size:16px;
}
.metric-label{
  font-size:12px;
  color:#8a6b53;
  margin-bottom:4px;
}
.metric-value{
  font-size:1.45rem;
  font-weight:700;
  color:var(--vg-primary-dark);
}
.quick-action-box{
  border:1px dashed #e8c9ab;
  background:#fffdf9;
  border-radius:12px;
  padding:14px;
}
.goal-card{
  background:linear-gradient(145deg,#ffffff 0%,#fff7ef 100%);
}
.goal-result-box{
  border:1px solid #eddac6;
  border-radius:12px;
  background:#fff;
  padding:14px;
  color:#6b4a31;
  font-weight:500;
}
.goal-v2-wrap{
  border:1px solid #ecd8c2;
  border-radius:16px;
  overflow:hidden;
  background:#fff;
  box-shadow:0 12px 26px rgba(106,45,14,.10);
}
.goal-v2-left{
  background:linear-gradient(155deg,#fff2e3 0%,#ffe5ca 100%);
  padding:28px 24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-right:1px solid #efd8bf;
}
.goal-v2-left h3{
  color:#7b3414;
}
.goal-v2-left p{
  color:#6d4d36;
}
.goal-v2-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  background:#fff;
  border:1px solid #edcaa4;
  color:#8e3e16;
  border-radius:999px;
  padding:5px 12px;
  font-size:12px;
  font-weight:700;
}
.goal-v2-right{
  background:#fff;
  padding:24px;
}
.goal-select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%23C75A1F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:16px;
  padding-right:40px;
}
.goal-view-btn{
  background:linear-gradient(135deg,#0EA472 0%,#12B886 100%);
  border:1px solid #0E9F6E;
  color:#fff;
  font-weight:700;
  box-shadow:0 8px 18px rgba(18,184,134,0.28);
}
.goal-view-btn:hover{
  background:linear-gradient(135deg,#0B8D61 0%,#0FAE7D 100%);
  border-color:#0B8D61;
  color:#fff;
}
.goal-view-btn.disabled,
.goal-view-btn:disabled{
  background:linear-gradient(135deg,#8ADBBE 0%,#95E1C7 100%);
  border-color:#86D6BA;
  color:#ffffff;
  opacity:.9;
}
@media (max-width: 991px){
  .goal-v2-left{
    border-right:none;
    border-bottom:1px solid #efd8bf;
    padding:22px 18px;
  }
  .goal-v2-right{
    padding:18px;
  }
}

.market-card{
  display:flex;
  flex-direction:column;
  border:1px solid #eddbc8;
  background:linear-gradient(155deg,#fff 0%,#fff8f1 100%);
  box-shadow:0 10px 22px rgba(106,45,14,0.08);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.market-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 30px rgba(106,45,14,0.13);
  border-color:#e8c9a8;
}
.course-chip{
  display:inline-block;
  font-size:11px;
  font-weight:700;
  color:#7a3414;
  background:#ffe7cf;
  border:1px solid #f2c79a;
  border-radius:999px;
  padding:4px 10px;
}
.course-icon-mini{
  width:28px;
  height:28px;
  border-radius:8px;
  background:#fff0df;
  color:#b4551f;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
}

/* Home "What We Provide" actionable cards */
.provide-card{
  background:#fff;
  border:1px solid #efddc9;
  border-radius:14px;
  padding:16px;
  box-shadow:0 10px 22px rgba(106,45,14,0.08);
  transition:transform .18s ease, box-shadow .18s ease;
}
.provide-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 26px rgba(106,45,14,0.13);
}
.provide-icon{
  width:46px;
  height:46px;
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:10px;
  background:linear-gradient(135deg,#fff1e1,#ffe0be);
  color:var(--vg-primary-dark);
  font-size:20px;
}

/* Home mini moving slider */
.mini-ticker-wrap{
  position:relative;
  overflow:hidden;
  border-radius:12px;
  border:1px solid #efd9c2;
  background:linear-gradient(90deg,#fff8ee 0%,#fff 100%);
  padding:10px 0;
}
.mini-ticker-track{
  display:flex;
  width:max-content;
  gap:10px;
  animation:miniTickerMove 28s linear infinite;
  padding-right:10px;
}
.mini-ticker-item{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:14px;
  font-weight:600;
  color:#6a3b1a;
  background:#fff;
  border:1px solid #efd8bf;
  border-radius:999px;
  padding:7px 12px;
  white-space:nowrap;
}
.mini-ticker-item i{
  color:var(--vg-primary);
}
@keyframes miniTickerMove{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
@media (max-width: 576px){
  .mini-ticker-item{
    font-size:12.5px;
    padding:6px 10px;
  }
  .mini-ticker-track{
    animation-duration:24s;
  }
}

/* Home contact revamp */
.home-contact-revamp{
  background:linear-gradient(145deg,#fff8f0 0%,#ffffff 100%);
}
.contact-detail-list{
  display:grid;
  gap:12px;
}
.contact-detail-item{
  display:flex;
  gap:12px;
  background:#fff;
  border:1px solid #f0dfcd;
  border-radius:12px;
  padding:12px;
}
.contact-detail-icon{
  width:38px;
  height:38px;
  border-radius:50%;
  background:#fff1e5;
  color:var(--vg-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:16px;
  flex-shrink:0;
}
.contact-detail-label{
  font-size:13px;
  color:#8a6b53;
  font-weight:600;
}
.contact-detail-value{
  font-size:14px;
  color:#3b2d23;
}
.contact-detail-value a{
  color:var(--vg-primary-dark);
  text-decoration:none;
}
.contact-detail-value a:hover{
  text-decoration:underline;
}
.home-contact-actions{
  background:#fff;
  border:1px solid #efdcc8;
  border-radius:12px;
  padding:14px;
}
.mini-stat{
  border:1px solid #ecd6bf;
  background:#fffaf4;
  border-radius:10px;
  text-align:center;
  padding:10px 8px;
  height:100%;
}
.mini-stat-value{
  font-size:1.05rem;
  font-weight:700;
  color:var(--vg-primary-dark);
}
.mini-stat-label{
  font-size:12px;
  color:#8a6b53;
}

/* Home reveal motion */
.reveal-up{
  opacity:0;
  transform:translateY(18px);
  transition:opacity .55s ease,transform .55s ease;
}
.reveal-up.is-visible{
  opacity:1;
  transform:translateY(0);
}

/* Home social proof */
.social-proof-card{
  background:linear-gradient(145deg,#fff7ef 0%,#ffffff 100%);
  border:1px solid #ecd8c2;
  border-radius:16px;
  padding:20px;
  box-shadow:0 12px 24px rgba(106,45,14,0.10);
}
.testimonial-controls{
  display:flex;
  align-items:center;
  gap:8px;
}
.testimonial-slider{
  position:relative;
  min-height:170px;
}
.testimonial-item{
  display:none;
  background:#fff;
  border:1px solid #efddcb;
  border-radius:12px;
  padding:16px;
  box-shadow:0 8px 18px rgba(106,45,14,0.08);
}
.testimonial-item.active{
  display:block;
  animation:testimonialFade .35s ease;
}
.testimonial-text{
  margin-bottom:10px;
  color:#3a2a1e;
  line-height:1.65;
  font-weight:500;
}
.testimonial-author{
  font-size:13px;
  color:#7f5e47;
  font-weight:700;
}
.trust-strip{
  background:#fff;
  border:1px solid #eddac5;
  border-radius:16px;
  padding:18px;
  box-shadow:0 12px 24px rgba(106,45,14,0.08);
}
.logo-marquee-wrap{
  overflow:hidden;
  border-radius:12px;
  border:1px solid #ecd7c2;
  background:linear-gradient(100deg,#fff9f2 0%,#fff 100%);
  padding:10px 0;
}
.logo-marquee-track{
  display:flex;
  width:max-content;
  gap:10px;
  animation:logoMarqueeMove 24s linear infinite;
  padding-right:10px;
}
.logo-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
  font-size:13px;
  color:#6b4125;
  border:1px solid #efd8bf;
  background:#fff;
  border-radius:999px;
  padding:7px 12px;
  font-weight:600;
}
.logo-chip i{
  color:var(--vg-primary);
}
@keyframes logoMarqueeMove{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(-50%); }
}
@keyframes testimonialFade{
  from{ opacity:0; transform:translateY(6px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (max-width: 768px){
  .social-proof-card,
  .trust-strip{
    padding:16px;
  }
  .testimonial-slider{
    min-height:190px;
  }
  .logo-marquee-track{
    animation-duration:20s;
  }
}

/* Home parallax enhancements */
.home-parallax-hero{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  background:
    radial-gradient(circle at 15% 18%, rgba(255,255,255,0.62) 0%, rgba(255,255,255,0) 38%),
    linear-gradient(160deg,#f4ddd0 0%,#f8eee7 48%,#ffffff 100%);
}
.home-parallax-hero::before,
.home-parallax-hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  z-index:0;
}
.home-parallax-hero::before{
  width:300px;
  height:300px;
  top:-120px;
  right:4%;
  background:radial-gradient(circle,rgba(226,138,50,.25) 0%,rgba(226,138,50,0) 68%);
}
.home-parallax-hero::after{
  width:340px;
  height:340px;
  bottom:-180px;
  left:-90px;
  background:radial-gradient(circle,rgba(199,90,31,.2) 0%,rgba(199,90,31,0) 72%);
}
.home-parallax-content{
  position:relative;
  z-index:2;
}
.home-parallax-orb{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  z-index:1;
  filter:blur(0.2px);
}
.home-orb-a{
  width:180px;
  height:180px;
  right:16%;
  top:42px;
  background:radial-gradient(circle,rgba(255,255,255,0.9) 0%,rgba(255,255,255,0) 74%);
}
.home-orb-b{
  width:140px;
  height:140px;
  left:8%;
  bottom:26px;
  background:radial-gradient(circle,rgba(255,224,193,0.8) 0%,rgba(255,224,193,0) 74%);
}
.home-logo-parallax{
  filter:drop-shadow(0 20px 30px rgba(95,45,20,.16));
}
.home-parallax-band{
  overflow:hidden;
  position:relative;
}
.home-parallax-band::before{
  content:"";
  position:absolute;
  inset:-35% -20% auto auto;
  width:320px;
  height:320px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.24) 0%,rgba(255,255,255,0) 68%);
}
@media (max-width: 991px){
  .home-parallax-hero::before,
  .home-parallax-hero::after,
  .home-parallax-orb,
  .home-parallax-band::before{
    display:none;
  }
}

/* WhatsApp Floating CTA - Frontend */
.vg-whatsapp-float{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:1200;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  background:#25D366;
  color:#fff;
  text-decoration:none;
  font-weight:600;
  box-shadow:0 10px 24px rgba(0,0,0,0.22);
  animation:vgPulse 2s infinite;
}
.vg-whatsapp-float i{
  font-size:20px;
  line-height:1;
}
.vg-whatsapp-float:hover{
  color:#fff;
  background:#1fb458;
  text-decoration:none;
}
@keyframes vgPulse{
  0%{ box-shadow:0 0 0 0 rgba(37,211,102,0.55); }
  70%{ box-shadow:0 0 0 14px rgba(37,211,102,0); }
  100%{ box-shadow:0 0 0 0 rgba(37,211,102,0); }
}
@media (max-width: 576px){
  .vg-whatsapp-float{
    right:12px;
    bottom:14px;
    padding:9px 12px;
  }
.vg-whatsapp-float span{
    display:none;
  }
}

/* About Vishwagra - Home revamp */
.about-vg-card{
  border-radius:24px;
  padding:40px 24px;
  background:linear-gradient(130deg,#8f3e16 0%,#c75a1f 35%,#e28a32 100%);
  box-shadow:0 16px 34px rgba(106,45,14,0.22);
}
.about-vg-content{
  max-width:940px;
  position:relative;
  z-index:2;
  animation:aboutRise .75s ease both;
}
.about-vg-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,0.42);
  background:rgba(255,255,255,0.14);
  color:#fff;
  font-size:12px;
  letter-spacing:.6px;
  text-transform:uppercase;
  font-weight:700;
}
.about-vg-glow{
  position:absolute;
  border-radius:50%;
  filter:blur(2px);
  animation:aboutPulse 6s ease-in-out infinite;
}
.about-vg-glow-1{
  width:220px;
  height:220px;
  background:radial-gradient(circle,rgba(255,255,255,.24) 0%,rgba(255,255,255,0) 72%);
  top:-70px;
  left:-40px;
}
.about-vg-glow-2{
  width:260px;
  height:260px;
  background:radial-gradient(circle,rgba(255,216,173,.34) 0%,rgba(255,216,173,0) 72%);
  right:-80px;
  bottom:-100px;
  animation-delay:1.2s;
}
@keyframes aboutPulse{
  0%{ transform:translateY(0) scale(1); opacity:.85; }
  50%{ transform:translateY(-6px) scale(1.04); opacity:1; }
  100%{ transform:translateY(0) scale(1); opacity:.85; }
}
@keyframes aboutRise{
  from{ transform:translateY(10px); opacity:0; }
  to{ transform:translateY(0); opacity:1; }
}
@media (max-width: 768px){
  main{
    padding-top: 1rem !important;
    padding-bottom: 0 !important;
  }

  .reveal-up{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .about-vg-card{
    padding:30px 18px;
    border-radius:18px;
  }
  .about-subtitle{
    font-size:.95rem;
    line-height:1.65;
  }
}

/* Home navbar dropdown overlap fix */
.vg-site-header{
  position: relative;
  z-index: 3000;
}

.vg-site-header .navbar,
.vg-site-header .container,
.vg-site-header .navbar-collapse,
.vg-site-header .navbar-nav,
.vg-site-header .nav-item.dropdown{
  position: relative;
}

.vg-site-header .navbar,
.vg-site-header .navbar-collapse,
.vg-site-header .navbar-nav{
  overflow: visible;
}

.vg-site-header .dropdown-menu{
  z-index: 3100;
  margin-top: .35rem;
}

@media (max-width: 991.98px){
  html,
  body{
    overflow-x:hidden;
  }

  body:not(.auth-page) main{
    display:block;
    width:100%;
    overflow:visible;
  }

  body:not(.auth-page) main .reveal-up,
  body:not(.auth-page) main [data-reveal]{
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    transition:none !important;
  }

  body:not(.auth-page) main > section,
  body:not(.auth-page) main > div{
    position:relative;
    z-index:1;
  }

  .vg-footer-dark{
    position:relative;
    z-index:2;
    clear:both;
  }

  .vg-site-header,
  .vg-site-header .navbar,
  .vg-site-header .container,
  main,
  main > div,
  main > section{
    max-width:100%;
    overflow-x:hidden;
  }

  .vg-site-header .navbar{
    min-height:68px;
  }

  .mini-ticker-wrap,
  .goal-v2-wrap,
  .social-proof-card,
  .trust-strip,
  .home-contact-revamp,
  .live-impact-card{
    max-width: 100%;
  }

  .vg-site-header .container{
    position: relative;
    max-width:100%;
    padding-left:12px;
    padding-right:12px;
  }

  .vg-site-header .navbar-brand{
    max-width:calc(100% - 68px);
    font-size:1.55rem;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .vg-site-header .vg-mobile-cart-trigger{
    position: absolute !important;
    top: 22px;
    right: 82px;
    z-index: 3160;
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .vg-site-header #mainNav > a.position-relative{
    display: none;
  }

  .vg-site-header .dropdown-menu{
    position: static;
    z-index: auto;
    margin-top: 0;
  }

  body.vg-mobile-nav-open{
    overflow: hidden;
  }

  body.vg-mobile-nav-open::before{
    content:"";
    position:fixed;
    top:0;
    left:0;
    right:0;
    bottom:0;
    background:rgba(29,27,24,0.28);
    z-index:3140;
  }

  .vg-site-header .navbar-toggler{
    position: relative;
    z-index: 3160;
  }

  .vg-site-header #mainNav{
    display:none !important;
  }

  .vg-mobile-drawer{
    display:block;
    position:fixed;
    top:0;
    right:0;
    bottom:0;
    width:min(340px, 88vw);
    max-width:88vw;
    transform:translateX(100%);
    transition:transform .24s ease;
    z-index:3150;
    pointer-events:none;
  }

  .vg-mobile-drawer.show{
    transform:translateX(0);
    pointer-events:auto;
  }

  .vg-mobile-drawer-backdrop{
    position:fixed;
    inset:0;
    border:0;
    padding:0;
    background:rgba(29,27,24,0.28);
    z-index:3140;
    opacity:0;
    pointer-events:none;
    transition:opacity .24s ease;
    appearance:none;
    -webkit-appearance:none;
  }

  .vg-mobile-drawer-backdrop.show{
    display:block;
    opacity:1;
    pointer-events:auto;
  }

  body.modal-open .vg-mobile-drawer{
    transform:translateX(100%) !important;
    pointer-events:none !important;
  }

  body.modal-open .vg-mobile-drawer-backdrop{
    display:none !important;
    opacity:0 !important;
    pointer-events:none !important;
  }

  body.vg-modal-opening .vg-mobile-drawer{
    transform:translateX(100%) !important;
    transition:none !important;
    pointer-events:none !important;
  }

  body.vg-modal-opening .vg-mobile-drawer-backdrop{
    display:none !important;
    opacity:0 !important;
    transition:none !important;
    pointer-events:none !important;
  }

  .vg-mobile-drawer-panel{
    height:100%;
    background:linear-gradient(180deg,#fffaf5 0%,#fff2e7 100%);
    border-left:1px solid #f0e2d4;
    box-shadow:-14px 0 34px rgba(0,0,0,0.16);
    padding:18px 16px 24px;
    overflow-y:auto;
  }

  .vg-mobile-drawer-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid #f0e2d4;
  }

  .vg-mobile-drawer-title{
    font-size:1.2rem;
    font-weight:700;
    color:#6c2c0f;
  }

  .vg-mobile-drawer-close{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:40px;
    height:40px;
    border:1px solid #f0e2d4;
    border-radius:10px;
    background:#fff;
    color:#6c2c0f;
    appearance:none;
    -webkit-appearance:none;
  }

  .vg-mobile-drawer-nav{
    display:flex;
    flex-direction:column;
    gap:8px;
  }

  .vg-mobile-drawer-link{
    display:block;
    padding:12px 14px;
    border:1px solid #f0e2d4;
    border-radius:12px;
    background:#fff;
    color:#3f2a1d;
    font-weight:600;
    text-decoration:none;
  }

  .vg-mobile-drawer-link.active{
    background:#c75a1f;
    border-color:#c75a1f;
    color:#fff;
  }

  .vg-mobile-drawer-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
    margin-top:16px;
    padding-top:16px;
    border-top:1px solid #f0e2d4;
  }

  .vg-site-header #mainNav .navbar-nav{
    align-items: stretch;
    gap: 2px !important;
    margin-right: 0 !important;
    width: 100%;
  }

  .vg-site-header #mainNav.navbar-collapse{
    flex-basis: auto;
  }

  .vg-site-header #mainNav .nav-link{
    display: block;
    width: 100%;
    padding: 12px 0;
    text-align: left;
    border-bottom: 1px solid #f4e8dc !important;
    border-radius: 0;
  }

  .vg-site-header #mainNav .nav-link.active{
    border-bottom-color: var(--vg-primary) !important;
  }

  .vg-site-header #mainNav .dropdown-menu{
    padding: 6px 0 0;
    margin: 0 0 8px;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none;
  }

  .vg-site-header #mainNav .dropdown-item{
    padding: 10px 14px !important;
    border-radius: 10px;
    margin-bottom: 6px;
    background: #fff8f2;
  }

  .vg-site-header #mainNav > .d-flex{
    position: static;
    bottom: auto;
    margin-top: 8px !important;
    padding-top: 14px;
    border-top: 1px solid #f4e8dc;
    background: linear-gradient(180deg, rgba(255,248,242,0) 0%, var(--vg-bg) 18%);
  }

  .vg-site-header #mainNav > .d-flex .btn{
    flex: 1 1 0;
  }

  .modal-dialog{
    margin: 0.75rem auto;
    max-width: calc(100vw - 1rem);
  }

  .modal-content{
    max-height: calc(100vh - 1.5rem);
    border-radius: 18px;
    overflow: hidden;
  }

  .modal-body{
    max-height: calc(100vh - 9.5rem);
    overflow-y: auto;
  }

  #loginModal .row,
  #registerModal .row{
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
  }

  #loginModal .vg-role-card .card,
  #registerModal .vg-role-card .card{
    min-height: 96px;
    padding: 1rem 0.9rem;
  }
}

/* ======================================================
   BUTTON TEXT COLOR LOCK (NO HOVER/ACTIVE CHANGE)
====================================================== */
.btn{
  --bs-btn-hover-color: var(--bs-btn-color);
  --bs-btn-active-color: var(--bs-btn-color);
  --bs-btn-focus-color: var(--bs-btn-color);
}
.btn:hover,
.btn:focus,
.btn:focus-visible,
.btn:active{
  color: var(--bs-btn-color) !important;
}

/* Admin panel: force button text to stay constant */
.vg-panel-body .btn{
  --bs-btn-hover-color: var(--bs-btn-color) !important;
  --bs-btn-active-color: var(--bs-btn-color) !important;
  --bs-btn-focus-color: var(--bs-btn-color) !important;
  --bs-btn-color: #ffffff !important;
  color: #ffffff !important;
}
.vg-panel-body .btn:hover,
.vg-panel-body .btn:focus,
.vg-panel-body .btn:focus-visible,
.vg-panel-body .btn:active{
  color: var(--bs-btn-color) !important;
}

/* Admin panel: avoid black text on light buttons */
.vg-panel-body .btn-light,
.vg-panel-body .btn-outline-light{
  --bs-btn-color: var(--vg-primary) !important;
  --bs-btn-hover-color: var(--vg-primary) !important;
  --bs-btn-active-color: var(--vg-primary) !important;
  --bs-btn-focus-color: var(--vg-primary) !important;
  color: var(--vg-primary) !important;
}

/* Admin panel: ensure colored buttons use white text */
.vg-panel-body .btn-vg,
.vg-panel-body .btn-primary,
.vg-panel-body .btn-success,
.vg-panel-body .btn-danger,
.vg-panel-body .btn-info,
.vg-panel-body .btn-warning{
  --bs-btn-color: #ffffff !important;
  --bs-btn-hover-color: #ffffff !important;
  --bs-btn-active-color: #ffffff !important;
  --bs-btn-focus-color: #ffffff !important;
  color: #ffffff !important;
}

/* Admin panel: cover non-.btn buttons too */
.vg-panel-body button,
.vg-panel-body input[type="button"],
.vg-panel-body input[type="submit"],
.vg-panel-body input[type="reset"]{
  color: var(--bs-btn-color, inherit) !important;
}
.vg-panel-body button:hover,
.vg-panel-body button:focus,
.vg-panel-body button:active,
.vg-panel-body input[type="button"]:hover,
.vg-panel-body input[type="button"]:focus,
.vg-panel-body input[type="button"]:active,
.vg-panel-body input[type="submit"]:hover,
.vg-panel-body input[type="submit"]:focus,
.vg-panel-body input[type="submit"]:active,
.vg-panel-body input[type="reset"]:hover,
.vg-panel-body input[type="reset"]:focus,
.vg-panel-body input[type="reset"]:active{
  color: var(--bs-btn-color, inherit) !important;
}

/* Admin panel: make secondary/reset/cancel buttons match theme with white text */
.vg-panel-body .btn-secondary,
.vg-panel-body .btn-outline-secondary,
.vg-panel-body .btn-cancel{
  color: #ffffff !important;
  border-color: var(--vg-primary) !important;
  background: var(--vg-primary) !important;
}
.vg-panel-body .btn-secondary:hover,
.vg-panel-body .btn-secondary:focus,
.vg-panel-body .btn-secondary:active,
.vg-panel-body .btn-outline-secondary:hover,
.vg-panel-body .btn-outline-secondary:focus,
.vg-panel-body .btn-outline-secondary:active,
.vg-panel-body .btn-cancel:hover,
.vg-panel-body .btn-cancel:focus,
.vg-panel-body .btn-cancel:active{
  background: var(--vg-primary) !important;
  color: #ffffff !important;
  border-color: var(--vg-primary) !important;
}

/* Admin: disabled buttons should still show readable text */
.vg-panel-body .btn:disabled,
.vg-panel-body .btn.disabled{
  color: #ffffff !important;
  opacity: 0.75;
}

/* Admin logout button: constant color */
.vg-panel-body .btn-logout-theme{
  background: #dc3545 !important;
  border-color: #dc3545 !important;
  color: #ffffff !important;
}
.vg-panel-body .btn-logout-theme:hover,
.vg-panel-body .btn-logout-theme:focus,
.vg-panel-body .btn-logout-theme:active{
  background: #c82333 !important;
  border-color: #c82333 !important;
  color: #ffffff !important;
}

/* Admin back button: theme text on outline */
.vg-panel-body .btn-back-theme{
  color: var(--vg-primary) !important;
  border-color: var(--vg-primary) !important;
  background: transparent !important;
}
.vg-panel-body .btn-back-theme:hover,
.vg-panel-body .btn-back-theme:focus,
.vg-panel-body .btn-back-theme:active{
  background: var(--vg-primary) !important;
  color: #ffffff !important;
  border-color: var(--vg-primary) !important;
}

/* Admin: psychometric images same size */
.vg-panel-body .psychometric-image{
  width: 220px;
  height: 160px;
  object-fit: cover;
  border-radius: 8px;
}

/* Admin: fix file label alignment for psychometric images */
.vg-panel-body .psychometric-file-label{
  display: block;
  margin-bottom: 6px;
}
.vg-panel-body .psychometric-file-input{
  display: block;
}

/* Admin reset button: keep text visible on hover */
.vg-panel-body .btn-reset-theme{
  color: var(--vg-primary) !important;
  border-color: var(--vg-primary) !important;
}
.vg-panel-body .btn-reset-theme:hover,
.vg-panel-body .btn-reset-theme:focus,
.vg-panel-body .btn-reset-theme:active{
  background: var(--vg-primary) !important;
  color: #ffffff !important;
  border-color: var(--vg-primary) !important;
}

/* Admin: compact action button (padding only) */
.vg-panel-body .btn-short{
  padding: 6px 12px;
  width: auto;
  min-width: 0;
  display: inline-flex;
}

/* Admin: fixed width for specific buttons */
.vg-panel-body .btn-fixed-140{
  width: 140px;
}

.vg-panel-body .btn-fixed-160{
  width: 160px;
}

.vg-panel-body .btn-fixed-200{
  width: 200px;
}

.vg-panel-body .btn-fixed-300{
  width: 300px;
}
.vg-panel-body .btn-wrap{
  white-space: normal;
  text-align: center;
  line-height: 1.2;
}

.vg-page-titlebar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:1rem;
}

.vg-page-title-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  margin-left:auto;
}

/* Panel buttons: keep visible spacing between adjacent actions */
.vg-panel-body .btn + .btn,
.vg-panel-body .btn + a.btn,
.vg-panel-body a.btn + .btn,
.vg-panel-body a.btn + a.btn{
  margin-left:10px;
}

/* Admin: Employee contracts mobile 2-column layout */
@media (max-width: 576px){
  .vg-panel-body .contract-form{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }
  .vg-panel-body .contract-form .form-col{
    flex: 0 0 calc(50% - 6px);
    max-width: calc(50% - 6px);
  }
  .vg-panel-body .contract-form .form-actions{
    flex: 0 0 100%;
    max-width: 100%;
  }

  .vg-panel-body .contract-filter-form{
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
  }
.vg-panel-body .contract-filter-form .filter-col{
  flex: 0 0 calc(50% - 6px);
  max-width: calc(50% - 6px);
  }
}

/* Admin: compact filter buttons on desktop */
@media (min-width: 992px){
.vg-panel-body .contract-filter-form .btn-compact{
  padding: 6px 10px;
}
}


/* Admin: employee contracts dropdown arrow */
.vg-panel-body .contract-form .form-select,
.vg-panel-body .contract-filter-form .form-select{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%236C2C0F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 14px 14px;
}

/* Admin: dropdown arrow for all selects */
.vg-panel-body .form-select,
.vg-panel-body select{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' stroke='%236C2C0F' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  background-size: 14px 14px;
}

/* Panel date inputs: keep native mobile rendering visible */
.vg-panel-body input[type="date"],
.vg-panel-body input[type="datetime-local"]{
  min-height: 46px;
  line-height: 1.4;
  color: #2f241b !important;
  background-color: #ffffff !important;
  -webkit-appearance: auto;
  appearance: auto;
}

.vg-panel-body input[type="date"]::-webkit-date-and-time-value,
.vg-panel-body input[type="datetime-local"]::-webkit-date-and-time-value{
  min-height: 1.4em;
  text-align: left;
}

.vg-panel-body input[type="date"]::-webkit-datetime-edit,
.vg-panel-body input[type="datetime-local"]::-webkit-datetime-edit{
  color: #2f241b;
  opacity: 1;
}

.vg-panel-body input[type="date"]::-webkit-calendar-picker-indicator,
.vg-panel-body input[type="datetime-local"]::-webkit-calendar-picker-indicator{
  opacity: 1;
  cursor: pointer;
}

.btn-vg{
  --bs-btn-color: #ffffff;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
  --bs-btn-focus-color: #ffffff;
}

.btn-outline-vg{
  --bs-btn-color: var(--vg-primary);
  --bs-btn-hover-color: var(--vg-primary);
  --bs-btn-active-color: var(--vg-primary);
  --bs-btn-focus-color: var(--vg-primary);
}

.goal-view-btn{
  --bs-btn-color: #ffffff;
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-color: #ffffff;
  --bs-btn-focus-color: #ffffff;
}

.vg-site-header .vg-mobile-action-cart{
  display: none;
}

.vg-mobile-header-bar{
  display:none;
}

.vg-mobile-drawer{
  display:none;
}

.vg-mobile-drawer-backdrop{
  display:none;
}

.modal-backdrop{
  z-index:5000 !important;
}

.modal{
  z-index:5010 !important;
}

@media (max-width: 991.98px){
  .vg-site-header{
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    z-index: 4000 !important;
    background: #ffffff !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .auth-page .vg-site-header{
    position: relative !important;
    top: auto;
    left: auto;
    right: auto;
  }

  .vg-site-header .navbar{
    min-height: 68px;
    background: #ffffff !important;
    box-shadow: 0 6px 18px rgba(106,45,14,0.08);
  }

  body:not(.auth-page){
    padding-top: 72px !important;
  }

  body.auth-page{
    padding-top: 0 !important;
  }

  .page-home-no-gap main{
    padding-top: 0 !important;
  }

  .vg-site-header .container{
    position: relative;
    display: flex !important;
    flex-wrap: wrap;
    min-height: 68px;
    align-items: center;
  }

  .vg-mobile-header-bar{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    width:100%;
    min-height:68px;
    visibility: visible !important;
    opacity: 1 !important;
  }

  .vg-mobile-drawer{
    display:block !important;
  }

  .vg-mobile-brand{
    display:block !important;
    max-width:calc(100% - 112px);
    font-size:1.45rem;
    line-height:1.1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    color: var(--vg-primary) !important;
  }

  .vg-mobile-header-actions{
    display:flex !important;
    align-items:center;
    gap:10px;
    margin-left:auto;
  }

  .vg-site-header .navbar{
    position: relative;
    padding-right: 0;
  }

  .vg-site-header .vg-desktop-brand,
  .vg-site-header .vg-desktop-toggler{
    display:none !important;
  }

  .vg-site-header .container > .navbar-brand:not(.vg-mobile-brand),
  .vg-site-header .container > .navbar-toggler.vg-desktop-toggler{
    display:none !important;
  }

  .vg-site-header .navbar-toggler{
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 42px;
    padding: 0;
    border: 1px solid #f0e2d4;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(106,45,14,0.10);
  }

  .vg-site-header .navbar-toggler:focus{
    box-shadow: 0 0 0 0.2rem rgba(199,90,31,0.18);
  }

  .vg-site-header .navbar-toggler-icon{
    width: 1.2rem;
    height: 1.2rem;
  }

  .vg-site-header .vg-mobile-cart-trigger{
    display: none !important;
  }

  .vg-site-header #mainNav > a.position-relative{
    display: none !important;
  }

  .vg-site-header #mainNav > .d-flex{
    align-items: center;
    gap: 12px !important;
  }

  .vg-site-header .vg-mobile-action-cart{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    min-width: 44px;
    height: 42px;
    border: 1px solid #f0e2d4;
    border-radius: 10px;
    background: #fff;
  }
}

@media (max-width: 768px){
  .vg-panel-body form[method="get"] .btn-reset-theme,
  .vg-panel-body form[method="get"] .btn-outline-secondary,
  .vg-panel-body form[method="get"] .btn-outline-vg{
    margin-left: 4px !important;
  }

  .vg-panel-body form[method="get"] .btn + .btn,
  .vg-panel-body form[method="get"] .btn + a.btn,
  .vg-panel-body form[method="get"] a.btn + .btn,
  .vg-panel-body form[method="get"] a.btn + a.btn{
    margin-left: 4px !important;
  }

  .auth-page .register-submit-btn,
  .auth-page .btn.w-100,
  .auth-page .w-100.btn{
    width: 100% !important;
    min-width: 0 !important;
  }

  .vg-site-header #mainNav > .d-flex .btn{
    flex: 0 0 auto !important;
  }

  .d-flex.gap-1:has(.btn),
  .d-flex.gap-2:has(.btn),
  .d-flex.gap-3:has(.btn),
  .d-flex.gap-4:has(.btn),
  .d-flex.gap-5:has(.btn){
    gap: 6px !important;
  }

  .d-flex:has(> .btn + .btn){
    gap: 6px !important;
  }

  .d-flex:has(> .btn + .btn) > .btn + .btn{
    margin-left: 0 !important;
  }

  .d-flex.justify-content-between:has(.btn),
  .d-flex.justify-content-between.flex-wrap:has(.btn){
    justify-content: flex-start !important;
    gap: 6px !important;
  }

  .d-flex.justify-content-between:has(.btn) > .btn + .btn,
  .d-flex.justify-content-between.flex-wrap:has(.btn) > .btn + .btn{
    margin-left: 0 !important;
  }

  .vg-panel-body .btn + .btn,
  .vg-panel-body .btn + a.btn,
  .vg-panel-body a.btn + .btn,
  .vg-panel-body a.btn + a.btn{
    margin-left:10px !important;
  }

  .vg-panel-body .container-fluid > form[method="get"].row:has(> :nth-child(2)){
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: end;
  }

  .vg-panel-body .container-fluid > form[method="get"].row:has(> :nth-child(2)) > [class*="col-"]{
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    grid-column: span 3;
  }

  .vg-panel-body .container-fluid > .row.g-2:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"],
  .vg-panel-body .container-fluid > .row.g-3:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"]{
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    grid-column: span 3;
  }

  .vg-panel-body .container-fluid > form[method="get"].row > .col-12{
    grid-column: 1 / -1;
  }

  .vg-panel-body form[method="get"] > .row.g-2:has(.form-control):has(.form-select),
  .vg-panel-body form[method="get"] > .row.g-3:has(.form-control):has(.form-select){
    --bs-gutter-x: 0.85rem;
    --bs-gutter-y: 0.85rem;
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 0.85rem;
    align-items: end;
  }

  .vg-panel-body form[method="get"] > .row.g-2:has(.form-control):has(.form-select) > [class*="col-"],
  .vg-panel-body form[method="get"] > .row.g-3:has(.form-control):has(.form-select) > [class*="col-"]{
    width: 100%;
    max-width: 100%;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
    grid-column: span 3;
  }

  .vg-panel-body form[method="get"] > .row.g-2:has(.form-control):has(.form-select) > [class*="col-"]:has(.btn):not(:has(.form-control, .form-select, textarea)),
  .vg-panel-body form[method="get"] > .row.g-3:has(.form-control):has(.form-select) > [class*="col-"]:has(.btn):not(:has(.form-control, .form-select, textarea)){
    grid-column: span 1;
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
  }

  .vg-panel-body form[method="get"] > .row.g-2:has(.form-control):has(.form-select) > [class*="col-"] .btn,
  .vg-panel-body form[method="get"] > .row.g-3:has(.form-control):has(.form-select) > [class*="col-"] .btn{
    width: fit-content !important;
  }

  .vg-panel-body .container-fluid > form[method="get"].row:has(> :nth-child(2)) > [class*="col-"]:has(.btn):not(:has(.form-control, .form-select, textarea)),
  .vg-panel-body .container-fluid > .row.g-2:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"]:has(.btn):not(:has(.form-control, .form-select, textarea)),
  .vg-panel-body .container-fluid > .row.g-3:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"]:has(.btn):not(:has(.form-control, .form-select, textarea)){
    grid-column: span 1;
    display:flex;
    align-items:flex-end;
    justify-content:flex-start;
  }

  .vg-panel-body .container-fluid > form[method="get"].row:has(> :nth-child(2)) > [class*="col-"] .btn,
  .vg-panel-body .container-fluid > .row.g-2:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"] .btn,
  .vg-panel-body .container-fluid > .row.g-3:has(> :nth-child(2)):has(.form-control):has(.form-select) > [class*="col-"] .btn{
    width: fit-content !important;
    min-width: 86px !important;
    justify-content: center;
  }

  .vg-panel-body .container-fluid > form[method="get"].row:has(> :nth-child(2)) > [class*="col-"]:has(.btn) + [class*="col-"]:has(.btn),
  .vg-panel-body form[method="get"] > .row.g-2:has(.form-control):has(.form-select) > [class*="col-"]:has(.btn) + [class*="col-"]:has(.btn),
  .vg-panel-body form[method="get"] > .row.g-3:has(.form-control):has(.form-select) > [class*="col-"]:has(.btn) + [class*="col-"]:has(.btn){
    margin-left: 4px;
  }
}

@media (max-width: 576px){
  .home-action-row{
    --bs-gutter-x: 0;
    --bs-gutter-y: 0;
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 0.35rem;
  }

  .home-action-row > .home-action-col{
    flex: 0 0 auto;
    width: auto;
    max-width: none;
    min-width: 0;
    padding-left: 0;
    padding-right: 0;
  }

  .home-action-row .btn{
    width: auto;
    min-width: 0;
    min-height: 38px;
    padding: 7px 8px;
    font-size: 0.74rem;
    line-height: 1;
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border-radius: 10px;
  }

  .home-action-row .btn i{
    margin-right: 0 !important;
    display: inline-block;
    margin-bottom: 0;
  }
}

/* Final auth-page mobile reset */
@media (max-width: 991.98px){
  body.vg-panel-body{
    padding-top:0 !important;
    margin-top:0 !important;
  }

  body.vg-panel-body .vg-panel-wrapper,
  body.vg-panel-body .vg-panel-content,
  body.vg-panel-body .vg-panel-topbar,
  body.vg-panel-body main{
    margin-top:0 !important;
    padding-top:0 !important;
  }

  .auth-page{
    display:block !important;
    min-height:0 !important;
  }

  .auth-page .vg-site-header{
    position:relative !important;
    top:auto !important;
    left:auto !important;
    right:auto !important;
    z-index:auto !important;
    background:#ffffff !important;
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .auth-page .vg-site-header .navbar{
    min-height:auto !important;
    padding:12px 0 !important;
    box-shadow:none !important;
    display:block !important;
  }

  .auth-page .vg-site-header .container{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    min-height:68px !important;
  }

  .auth-page .vg-site-header #mainNav,
  .auth-page .vg-site-header .vg-desktop-toggler{
    display:none !important;
  }

  .auth-page .vg-site-header .vg-desktop-brand{
    display:none !important;
  }

  .auth-page .vg-mobile-header-bar{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:12px !important;
    width:100% !important;
    min-height:68px !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  .auth-page .vg-mobile-brand{
    display:block !important;
    max-width:calc(100% - 112px) !important;
    overflow:visible !important;
    font-size:1.45rem !important;
    line-height:1.1 !important;
    padding:0 !important;
  }

  .auth-page .vg-mobile-header-actions{
    display:flex !important;
    align-items:center !important;
    gap:10px !important;
    margin-left:auto !important;
  }

  .auth-page .vg-site-header .vg-mobile-action-cart,
  .auth-page .vg-site-header .vg-mobile-drawer-toggle,
  .auth-page .vg-mobile-drawer,
  .auth-page .vg-mobile-drawer-backdrop{
    display:none !important;
    pointer-events:none !important;
  }

  .auth-page{
    padding-top:0 !important;
  }

  .auth-page main{
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    flex:none !important;
    overflow:visible !important;
    padding:16px 12px 24px !important;
  }

  .auth-page main > .row.justify-content-center{
    display:flex !important;
    align-items:flex-start !important;
    justify-content:center !important;
    width:100% !important;
    max-width:760px !important;
    margin:0 auto !important;
  }

  .auth-page main > .row.justify-content-center > [class*="col-"],
  .auth-page main > .row.justify-content-center > .auth-card-col{
    flex:0 0 100% !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
  }

  .auth-page .card{
    position:relative !important;
    z-index:2 !important;
    pointer-events:auto !important;
  }

  .auth-page form,
  .auth-page .card-body,
  .auth-page .row,
  .auth-page [class*="col-"]{
    position:relative;
    z-index:3;
    pointer-events:auto;
  }

  .auth-page .form-control,
  .auth-page .form-select,
  .auth-page .input-group-text,
  .auth-page input,
  .auth-page select,
  .auth-page textarea,
  .auth-page button,
  .auth-page label{
    position:relative;
    z-index:4;
    pointer-events:auto !important;
    font-size:16px !important;
  }

  .auth-page input[type="file"].form-control{
    min-height:52px;
  }

  .auth-page footer{
    margin-top:24px !important;
  }
}
