/* LCERI brand tokens & shared styles */
:root {
  --brand-blue: #1f4e6b;
  --brand-blue-dark: #163a52;
  --brand-blue-soft: #e7eef3;
  --brand-orange: #ee6c2c;
  --brand-orange-dark: #c95412;
  --brand-orange-soft: #fff1e8;
  --ink: #1b2330;
  --muted: #5b6779;
  --line: #e6eaf0;
  --success: #16a34a;
  --warn: #d97706;
  --danger: #dc2626;
  --radius: 14px;
  --shadow-sm: 0 1px 2px rgba(15, 25, 40, .06);
  --shadow-md: 0 8px 24px rgba(15, 25, 40, .08);
  --shadow-lg: 0 18px 48px rgba(15, 25, 40, .14);
  --font-display: 'Poppins', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, sans-serif;
}

html, body { background: #f6f8fb; color: var(--ink); font-family: var(--font-body); }
h1, h2, h3, h4, h5, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6, .navbar-brand, .btn { font-family: var(--font-display); }
a { color: var(--brand-blue); }
a:hover { color: var(--brand-orange); }

/* Buttons */
.btn-brand { background: var(--brand-orange); border-color: var(--brand-orange); color: #fff; font-weight: 600; }
.btn-brand:hover { background: var(--brand-orange-dark); border-color: var(--brand-orange-dark); color: #fff; }
.btn-brand-outline { border: 2px solid var(--brand-orange); color: var(--brand-orange); font-weight: 600; background: transparent; }
.btn-brand-outline:hover { background: var(--brand-orange); color: #fff; }
.btn-blue { background: var(--brand-blue); border-color: var(--brand-blue); color: #fff; }
.btn-blue:hover { background: var(--brand-blue-dark); border-color: var(--brand-blue-dark); color: #fff; }

/* Top contact bar */
.top-bar { background: var(--brand-blue-dark); color: #cfe0ee; font-size: .85rem; }
.top-bar a { color: #cfe0ee; text-decoration: none; }
.top-bar a:hover { color: var(--brand-orange); }
.top-bar .social a { margin-left: .85rem; font-size: 1rem; }

/* Main navbar */
.main-nav { background: #fff; box-shadow: var(--shadow-sm); }
.main-nav .navbar-brand { display:flex; align-items:center; gap:.6rem; font-weight: 700; color: var(--brand-blue); }
.main-nav .navbar-brand img { height: 44px; }
.main-nav .nav-link { font-weight: 500; color: var(--ink); padding-left: 1rem; padding-right: 1rem; }
.main-nav .nav-link:hover, .main-nav .nav-link.active { color: var(--brand-orange); }

/* Hero / slider */
.hero { position: relative; height: 78vh; min-height: 480px; color:#fff; overflow:hidden; }
.hero .slide { position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition: opacity 1.2s ease; }
.hero .slide.active { opacity:1; }
.hero::after { content:''; position:absolute; inset:0; background: linear-gradient(120deg, rgba(22,58,82,.85), rgba(238,108,44,.55)); }
.hero .hero-content { position:relative; z-index:2; max-width: 760px; }
.hero h1 { font-size: clamp(2.2rem, 5vw, 4rem); font-weight:800; line-height:1.05; }
.hero p { font-size: 1.15rem; opacity: .95; }
.hero .dots { position:absolute; bottom:24px; left:50%; transform:translateX(-50%); z-index:3; }
.hero .dots span { display:inline-block; width:10px; height:10px; border-radius:50%; background:rgba(255,255,255,.5); margin:0 4px; cursor:pointer; }
.hero .dots span.active { background: var(--brand-orange); width: 26px; border-radius: 6px; }

/* Section title */
.section-title { text-align:center; margin-bottom: 2.5rem; }
.section-title small { color: var(--brand-orange); font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }
.section-title h2 { font-weight: 800; color: var(--brand-blue-dark); margin-top:.4rem; }

/* Category boxes */
.cat-box { background:#fff; border-radius: var(--radius); padding: 1.75rem 1.25rem; text-align:center; box-shadow: var(--shadow-sm); border-top: 4px solid transparent; transition: .25s; }
.cat-box:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-top-color: var(--brand-orange); }
.cat-box .icon { width: 64px; height: 64px; border-radius: 16px; background: var(--brand-blue-soft); color: var(--brand-blue); display:inline-flex; align-items:center; justify-content:center; font-size: 1.6rem; margin-bottom: 1rem; }
.cat-box:hover .icon { background: var(--brand-orange-soft); color: var(--brand-orange); }

/* Course card */
.course-card { background:#fff; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); transition:.25s; height:100%; display:flex; flex-direction:column; }
.course-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.course-card .thumb { aspect-ratio: 16/10; background:#ccc center/cover; position:relative; }
.course-card .level { position:absolute; top:10px; left:10px; background:var(--brand-orange); color:#fff; padding:.25rem .6rem; border-radius: 999px; font-size:.7rem; font-weight: 700; text-transform: uppercase; }
.course-card .body { padding: 1rem 1.1rem; flex:1; display:flex; flex-direction:column; }
.course-card .body h5 { font-weight: 700; color: var(--brand-blue-dark); }
.course-card .meta { display:flex; align-items:center; gap:.6rem; margin-top:auto; padding-top: .75rem; border-top:1px solid var(--line); }
.course-card .meta img { width:36px; height:36px; border-radius:50%; object-fit:cover; }
.course-card .price { margin-left:auto; color: var(--brand-orange); font-weight: 800; }

/* Footer */
footer.site-footer { background: var(--brand-blue-dark); color: #cfe0ee; padding: 3rem 0 1.25rem; }
footer.site-footer h6 { color: #fff; font-weight: 700; }
footer.site-footer a { color: #cfe0ee; text-decoration: none; display:block; padding: .25rem 0; }
footer.site-footer a:hover { color: var(--brand-orange); }
footer .bottom { border-top: 1px solid rgba(255,255,255,.1); margin-top: 2rem; padding-top: 1rem; font-size: .85rem; }

/* Dashboards */
.dash { display:grid; grid-template-columns: 260px 1fr; min-height: 100vh; }
.dash aside { background: linear-gradient(180deg, var(--brand-blue-dark), var(--brand-blue)); color: #cfe0ee; padding: 1.25rem 0; }
.dash aside .brand { display:flex; gap:.6rem; align-items:center; padding: 0 1.25rem 1.25rem; border-bottom: 1px solid rgba(255,255,255,.08); }
.dash aside .brand img { height: 36px; }
.dash aside .brand .t { color:#fff; font-weight:700; font-family: var(--font-display); }
.dash aside nav a { display:flex; align-items:center; gap: .75rem; color:#cfe0ee; padding: .7rem 1.25rem; text-decoration: none; font-weight: 500; border-left: 3px solid transparent; }
.dash aside nav a:hover { background: rgba(255,255,255,.04); color:#fff; }
.dash aside nav a.active { background: rgba(238,108,44,.15); color:#fff; border-left-color: var(--brand-orange); }
.dash aside nav .sect { padding: 1rem 1.25rem .35rem; font-size:.75rem; letter-spacing:1.5px; text-transform: uppercase; opacity:.6; }

.dash main { background: #f6f8fb; }
.topbar { background:#fff; box-shadow: var(--shadow-sm); padding: .8rem 1.5rem; display:flex; align-items:center; }
.topbar .title { font-weight:700; color:var(--brand-blue-dark); font-size:1.1rem; }
.topbar .user { margin-left:auto; display:flex; align-items:center; gap:.75rem; }
.topbar .user img { width:36px; height:36px; border-radius:50%; }

.content { padding: 1.75rem; }

.stat-card { border-radius: var(--radius); color:#fff; padding: 1.25rem 1.25rem; box-shadow: var(--shadow-sm); }
.stat-card .v { font-size: 2rem; font-weight: 800; line-height: 1; }
.stat-card .l { opacity:.9; font-weight: 500; }
.stat-card .icn { width:48px; height:48px; border-radius:12px; background: rgba(255,255,255,.18); display:inline-flex; align-items:center; justify-content:center; font-size:1.3rem; }
.bg-blue { background: linear-gradient(135deg, #1f4e6b, #2e7299); }
.bg-orange { background: linear-gradient(135deg, #ee6c2c, #f59c5b); }
.bg-green { background: linear-gradient(135deg, #16a34a, #4ade80); }
.bg-teal { background: linear-gradient(135deg, #0d9488, #2dd4bf); }
.bg-purple { background: linear-gradient(135deg, #7c3aed, #a78bfa); }

.card-soft { background:#fff; border:0; border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.card-soft .card-header { background: transparent; border-bottom: 1px solid var(--line); font-weight:700; color: var(--brand-blue-dark); }

.badge-status { font-weight: 600; padding: .35em .65em; border-radius: 999px; font-size:.72rem; }
.badge-pending { background:#fef3c7; color:#92400e; }
.badge-active  { background:#dcfce7; color:#166534; }
.badge-inactive{ background:#e5e7eb; color:#374151; }

/* Auth pages */
.auth-wrap { min-height: 100vh; display:grid; grid-template-columns: 1fr 1fr; }
.auth-side { background: linear-gradient(135deg, var(--brand-blue-dark), var(--brand-blue)); color:#fff; display:flex; align-items:center; justify-content:center; padding: 3rem; }
.auth-side .pitch { max-width: 420px; }
.auth-side img { height: 80px; margin-bottom: 1.25rem; filter: drop-shadow(0 8px 24px rgba(0,0,0,.3)); }
.auth-form { display:flex; align-items:center; justify-content:center; padding: 3rem; }
.auth-form .card { width: 100%; max-width: 460px; }
.captcha-row { display:flex; align-items:center; gap: .75rem; }
.captcha-row svg { border: 1px solid var(--line); border-radius: 8px; background:#fff; }
@media (max-width: 991px){ .auth-wrap { grid-template-columns: 1fr; } .auth-side { display:none; } .dash { grid-template-columns: 1fr; } .dash aside { display:none; } }

/* Tables */
.table { background:#fff; }
.table thead th { background: var(--brand-blue-soft); color: var(--brand-blue-dark); border-bottom:0; font-weight: 700; }

/* Forms */
.form-control:focus, .form-select:focus { border-color: var(--brand-orange); box-shadow: 0 0 0 .2rem rgba(238,108,44,.15); }
