/* KLM v17 Professional UI/UX Polish
   Purpose: one visual system across dashboards, records, finance, AI, analytics, courses, and public pages. */
:root{
  --klm-navy:#0b1222;
  --klm-blue:#132f7a;
  --klm-sky:#0ea5e9;
  --klm-bg:#f6f8fc;
  --klm-panel:#ffffff;
  --klm-ink:#0f172a;
  --klm-muted:#64748b;
  --klm-border:rgba(15,23,42,.10);
  --klm-border-strong:rgba(15,23,42,.16);
  --klm-shadow:0 14px 38px rgba(2,6,23,.08);
  --klm-shadow-soft:0 8px 24px rgba(2,6,23,.06);
  --klm-radius:22px;
  --klm-radius-sm:14px;
  --klm-footer-bg:linear-gradient(90deg,#0b1222 0%,#101a34 45%,#132f7a 100%);
}

html{min-height:100%; scroll-behavior:smooth;}
body.kl-body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:
    radial-gradient(1000px 520px at 15% -10%, rgba(19,47,122,.13), transparent 58%),
    radial-gradient(760px 420px at 92% 0%, rgba(14,165,233,.10), transparent 54%),
    var(--klm-bg) !important;
  color:var(--klm-ink);
  -webkit-font-smoothing:antialiased;
}

/* One official navbar style across every page */
.kl-navbar{
  background:var(--klm-footer-bg) !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  box-shadow:0 10px 28px rgba(2,6,23,.18) !important;
  position:sticky;
  top:0;
  z-index:1030;
}
.kl-navbar .container-fluid{max-width:1560px;}
.klm-brand{min-width:0; gap:.7rem; cursor:default;}
.klm-brand-short{font-size:1.22rem; letter-spacing:.02em;}
.klm-brand-badge{
  background:rgba(255,255,255,.11) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  color:rgba(255,255,255,.94) !important;
  border-radius:999px;
  font-size:.86rem;
  max-width:15rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.kl-navbar .nav-link{
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  border-radius:14px;
  font-weight:800 !important;
  color:rgba(255,255,255,.92) !important;
}
.kl-navbar .nav-link:hover,.kl-navbar .nav-link:focus{
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
}
.kl-navbar .dropdown-menu{
  border:1px solid rgba(15,23,42,.08) !important;
  border-radius:16px !important;
  padding:.55rem !important;
  box-shadow:0 22px 58px rgba(2,6,23,.24) !important;
}
.kl-navbar .dropdown-item{
  border-radius:12px;
  font-weight:700;
  color:var(--klm-ink);
}
.kl-navbar .dropdown-item:hover,.kl-navbar .dropdown-item:focus{background:rgba(19,47,122,.08);}
.kl-navbar i,.kl-navbar .fa,.kl-navbar .fas,.kl-navbar .fa-solid,.kl-navbar .fa-regular,.kl-navbar .kl-nav-icon{display:none!important;}
.klm-lang-pill,.klm-user-pill,.klm-register-btn{
  background:rgba(255,255,255,.13)!important;
  border:1px solid rgba(255,255,255,.18)!important;
  border-radius:14px!important;
}

/* Page spacing and common shell */
.kl-page{
  flex:1 0 auto;
  width:100%;
  padding:1.6rem 0 2rem !important;
}
.kl-page > .container{
  max-width:1480px;
  width:100%;
}

/* Dashboard hero standardization */
.kl-hero-card,.kl-hero,.hero,.dashboard-hero,.page-hero{
  border:0 !important;
  border-radius:0 !important;
  background:linear-gradient(135deg,#0b1222 0%,#1d4ed8 62%,#0ea5e9 100%) !important;
  color:#fff !important;
  box-shadow:none !important;
  padding:2.8rem 3rem !important;
  margin-bottom:1.65rem !important;
}
.kl-hero-card h1,.kl-hero-card h2,.kl-hero-card h3,
.kl-hero h1,.kl-hero h2,.kl-hero h3,
.hero h1,.dashboard-hero h1,.page-hero h1{
  color:#fff !important;
  font-weight:900 !important;
  letter-spacing:-.035em;
}
.kl-hero-card p,.kl-hero-card .text-muted,
.kl-hero p,.kl-hero .text-muted,
.hero p,.dashboard-hero p,.page-hero p{
  color:rgba(255,255,255,.78) !important;
  font-weight:600;
}
.kl-hero-card .btn,.kl-hero .btn,.hero .btn,.dashboard-hero .btn,.page-hero .btn{
  border-radius:16px;
  font-weight:850;
}
.kl-crumbs,.eyebrow,.text-uppercase.small{
  letter-spacing:.04em;
  font-weight:850 !important;
}
.kl-crumbs::before{background:rgba(255,255,255,.72) !important;}

/* Consistent cards, panels, dashboards */
.card,.kl-card,.content-section,.list-group,.table-card,.metric-card,.stat-card,.analytics-card,.dashboard-card{
  border:1px solid var(--klm-border) !important;
  border-radius:var(--klm-radius) !important;
  background:var(--klm-panel) !important;
  box-shadow:var(--klm-shadow-soft) !important;
}
.card{overflow:hidden;}
.card-header,.kl-card-header{
  background:rgba(248,250,252,.88) !important;
  border-bottom:1px solid var(--klm-border) !important;
  font-weight:850;
}
.list-group{overflow:hidden;}
.list-group-item{
  border-color:var(--klm-border) !important;
  padding:.85rem 1rem;
  font-weight:700;
}
.list-group-item:first-child{border-top-left-radius:var(--klm-radius)!important;border-top-right-radius:var(--klm-radius)!important;}
.list-group-item:last-child{border-bottom-left-radius:var(--klm-radius)!important;border-bottom-right-radius:var(--klm-radius)!important;}

/* Metric cards */
.kl-metric,.metric,.stats-card,.stat-tile{
  border:1px solid var(--klm-border) !important;
  border-radius:var(--klm-radius) !important;
  background:#fff !important;
  box-shadow:var(--klm-shadow-soft) !important;
  padding:1.35rem !important;
}
.kl-metric .value,.metric .value,.stats-card .value,.stat-tile .value,
.card h2.display-6,.card .display-5,.card .display-6{
  color:var(--klm-ink);
  font-weight:900;
  letter-spacing:-.04em;
}

/* Buttons/forms */
.btn{border-radius:14px!important; font-weight:800!important;}
.btn-primary,.btn-success{
  background:#1677f2!important;
  border-color:#1677f2!important;
  box-shadow:0 8px 20px rgba(22,119,242,.18);
}
.btn-primary:hover,.btn-success:hover{background:#0f62d9!important;border-color:#0f62d9!important;}
.btn-outline-primary{border-color:rgba(22,119,242,.42)!important;color:#0f62d9!important;}
.form-control,.form-select,textarea,input[type="file"]{
  border-radius:12px!important;
  border-color:rgba(100,116,139,.28)!important;
  min-height:44px;
}
.form-control:focus,.form-select:focus,textarea:focus{
  border-color:rgba(22,119,242,.56)!important;
  box-shadow:0 0 0 .22rem rgba(22,119,242,.12)!important;
}
label,.form-label{font-weight:800;color:var(--klm-ink);}
.form-text,.helptext,small.text-muted{color:var(--klm-muted)!important;font-weight:600;}

/* Tables */
.table-responsive{border-radius:var(--klm-radius);}
.table{margin-bottom:0;}
.table thead th{
  background:#f8fafc!important;
  color:#334155!important;
  font-weight:900!important;
  text-transform:uppercase;
  letter-spacing:.04em;
  font-size:.78rem;
  border-bottom:1px solid var(--klm-border)!important;
}
.table tbody td{border-color:rgba(15,23,42,.07)!important;}

/* Alerts: consistent and auto-dismiss-friendly */
.alert{
  border-radius:18px!important;
  border:1px solid rgba(15,23,42,.10)!important;
  box-shadow:var(--klm-shadow-soft);
  font-weight:700;
}
.alert.auto-dismiss{transition:opacity .35s ease, transform .35s ease;}
.alert.auto-dismiss.klm-alert-closing{opacity:0;transform:translateY(-8px);}

/* Official footer across every page */
.kl-footer{
  flex-shrink:0;
  margin-top:auto!important;
  background:var(--klm-footer-bg)!important;
  border-top:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 -10px 28px rgba(2,6,23,.12)!important;
}
.kl-footer .container,.kl-footer-inner{max-width:1480px;}
.kl-footer h5{font-weight:900;color:#fff;}
.kl-footer p{color:rgba(255,255,255,.72)!important;font-weight:650;}
.kl-footer-copy{text-align:right;}

/* Remove accidental decorative icons/images beside captions across nav/sidebar labels */
.kl-navbar svg,.kl-navbar img,.kl-navbar .bi,.kl-navbar [class^="icon-"],.kl-navbar [class*=" icon-"]{display:none!important;}
.list-group-item i,.dropdown-item i{display:none!important;}

/* Language polish: prevent awkward mixed spacing and crowding */
[lang="ht"] .kl-navbar .nav-link,[lang="fr"] .kl-navbar .nav-link{font-size:.95rem;}
.text-muted{color:var(--klm-muted)!important;}

/* Mobile: no crowded pages */
@media (max-width: 991px){
  .kl-navbar{position:relative;}
  .kl-navbar .container-fluid{padding-left:1rem!important;padding-right:1rem!important;}
  .kl-navbar .navbar-collapse{padding:1rem 0 .65rem;}
  .kl-navbar .navbar-nav{gap:.35rem;align-items:stretch!important;}
  .kl-navbar .nav-link{justify-content:flex-start;padding:.85rem .95rem!important;background:rgba(255,255,255,.06);}
  .kl-navbar .dropdown-menu{box-shadow:none!important;border-radius:14px!important;margin:.25rem 0 .5rem 0!important;}
  .klm-brand-badge{max-width:12rem;}
  .kl-page{padding-top:1rem!important;}
  .kl-hero-card,.kl-hero,.hero,.dashboard-hero,.page-hero{padding:1.5rem!important;margin-left:-.25rem;margin-right:-.25rem;}
  .kl-hero-card h1,.kl-hero h1,.hero h1,.dashboard-hero h1,.page-hero h1{font-size:2rem!important;}
  .row.g-4>[class*="col-"],.row.g-3>[class*="col-"]{margin-bottom:.25rem;}
  .card,.kl-card,.content-section{border-radius:18px!important;}
  .table{font-size:.92rem;}
  .kl-footer-inner{display:block!important;text-align:left!important;}
  .kl-footer-copy{text-align:left!important;margin-top:1rem;}
}
@media (max-width: 575px){
  .klm-brand-short{font-size:1rem;}
  .klm-brand-badge{max-width:10rem;font-size:.78rem;padding:.28rem .55rem;}
  .kl-page>.container{padding-left:1rem;padding-right:1rem;}
  .btn{width:auto;max-width:100%;}
  .d-flex.gap-2,.d-flex.gap-3{flex-wrap:wrap;}
}
