/* ============================================================
   MyDBS 2.0 — Styles globaux
   Palette : #2C1A0E (marron) · #C89A2E (or) · #F9F6F0 (crème)
   ============================================================ */
:root {
  --dbs-dark:     #2C1A0E;
  --dbs-dark2:    #1a0e05;
  --dbs-gold:     #C89A2E;
  --dbs-gold-lt:  #E8B84B;
  --dbs-gold-dim: rgba(200,154,46,.15);
  --dbs-cream:    #F9F6F0;
  --dbs-white:    #ffffff;
  --dbs-gray:     #6B7280;
  --dbs-light:    #F3F4F6;
  --dbs-border:   #E5E7EB;
  --dbs-success:  #16A34A;
  --dbs-danger:   #DC2626;
  --dbs-warning:  #D97706;
  --dbs-info:     #2563EB;
  --sidebar-w:    230px;
  --topbar-h:     62px;
  --radius:       10px;
  --shadow:       0 1px 4px rgba(0,0,0,.07);
  --shadow-md:    0 4px 16px rgba(0,0,0,.09);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:14.5px;-webkit-font-smoothing:antialiased}
body{font-family:'Inter',system-ui,sans-serif;background:var(--dbs-light);color:#1F2937;line-height:1.6}
a{color:var(--dbs-gold);text-decoration:none}
a:hover{color:var(--dbs-gold-lt)}
img{max-width:100%}

/* ── Sidebar ─────────────────────────────────────────────── */
.sidebar{
  position:fixed;top:0;left:0;bottom:0;width:var(--sidebar-w);
  background:var(--dbs-dark);display:flex;flex-direction:column;
  z-index:100;overflow-y:auto;overflow-x:hidden;
  transition:width .25s ease;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.1) transparent;
}
.sidebar-logo{
  display:flex;align-items:center;gap:10px;
  padding:16px 14px 13px;
  border-bottom:1px solid rgba(255,255,255,.07);
  flex-shrink:0;
}
.sidebar-logo img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid rgba(200,154,46,.5)}
.sidebar-logo-name{color:var(--dbs-white)}
.sidebar-logo-name strong{display:block;font-size:14.5px;font-weight:700;color:var(--dbs-gold);letter-spacing:-.3px}
.sidebar-logo-name span{font-size:10.5px;opacity:.5;white-space:nowrap}

.sidebar-section{padding:6px 0}
.sidebar-label{
  font-size:9.5px;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;color:rgba(255,255,255,.3);
  padding:10px 14px 4px;
}
.sidebar-nav{list-style:none}
.sidebar-nav li a{
  display:flex;align-items:center;gap:9px;
  padding:8.5px 14px;font-size:13px;font-weight:500;
  color:rgba(255,255,255,.65);border-left:3px solid transparent;
  transition:all .15s;white-space:nowrap;
}
.sidebar-nav li a i{font-size:15px;width:18px;flex-shrink:0;text-align:center}
.sidebar-nav li a:hover{background:rgba(255,255,255,.05);color:#fff;border-left-color:rgba(200,154,46,.4)}
.sidebar-nav li a.active{
  background:rgba(200,154,46,.1);color:var(--dbs-gold-lt);
  border-left-color:var(--dbs-gold);font-weight:600;
}
.sidebar-nav li a .nav-badge{
  margin-left:auto;background:var(--dbs-gold);color:var(--dbs-dark);
  font-size:9.5px;font-weight:700;padding:1px 6px;border-radius:10px;
}
.sidebar-collapse{
  margin-top:auto;padding:12px 14px;
  border-top:1px solid rgba(255,255,255,.07);
}
.sidebar-collapse-btn{
  display:flex;align-items:center;gap:8px;font-size:12px;
  color:rgba(255,255,255,.4);cursor:pointer;background:none;border:none;width:100%;
}
.sidebar-collapse-btn:hover{color:rgba(255,255,255,.7)}

/* ── Topbar ──────────────────────────────────────────────── */
.topbar{
  position:fixed;top:0;left:var(--sidebar-w);right:0;
  height:var(--topbar-h);background:var(--dbs-white);
  border-bottom:1px solid var(--dbs-border);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 20px;z-index:99;gap:16px;
}
.topbar-left{display:flex;align-items:center;gap:12px;flex:1}
.topbar-hamburger{
  width:34px;height:34px;border:1px solid var(--dbs-border);
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;background:none;color:#6B7280;font-size:14px;display:none;
}
.topbar-page-title{font-size:16px;font-weight:700;color:#111827}
.topbar-breadcrumb{font-size:11.5px;color:#9CA3AF;margin-top:1px}

.topbar-search{
  display:flex;align-items:center;gap:8px;
  background:var(--dbs-light);border:1px solid var(--dbs-border);
  border-radius:8px;padding:7px 12px;width:260px;flex-shrink:0;
}
.topbar-search input{
  border:none;background:none;outline:none;
  font-size:13px;width:100%;color:#374151;
}
.topbar-search input::placeholder{color:#9CA3AF}
.topbar-search i{color:#9CA3AF;font-size:13px}

.topbar-right{display:flex;align-items:center;gap:10px}

.topbar-icon{
  position:relative;width:34px;height:34px;
  background:var(--dbs-light);border:1px solid var(--dbs-border);
  border-radius:8px;display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:#6B7280;font-size:14px;transition:all .15s;
}
.topbar-icon:hover{background:#F3F4F6;color:#111}
.topbar-icon .badge-notif{
  position:absolute;top:-4px;right:-4px;
  background:var(--dbs-danger);color:#fff;
  font-size:9px;font-weight:700;padding:1px 4px;
  border-radius:8px;min-width:15px;text-align:center;
}
.topbar-btn-action{
  display:flex;align-items:center;gap:7px;
  background:var(--dbs-gold);color:var(--dbs-dark);
  border:none;border-radius:8px;padding:7px 14px;
  font-size:12.5px;font-weight:700;cursor:pointer;
  white-space:nowrap;transition:background .15s;
}
.topbar-btn-action:hover{background:var(--dbs-gold-lt)}

.topbar-user{display:flex;align-items:center;gap:9px;cursor:pointer;position:relative}
.topbar-user-avatar{
  width:34px;height:34px;border-radius:50%;
  background:var(--dbs-gold);color:var(--dbs-dark);
  display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:13px;border:2px solid var(--dbs-gold-dim);
  overflow:hidden;flex-shrink:0;
}
.topbar-user-avatar img{width:100%;height:100%;object-fit:cover}
.topbar-user-name strong{display:block;font-size:12.5px;color:#111;font-weight:600}
.topbar-user-name span{font-size:11px;color:#9CA3AF}

/* Dropdown user */
.user-dropdown{
  display:none;position:absolute;top:44px;right:0;
  background:var(--dbs-white);border:1px solid var(--dbs-border);
  border-radius:10px;min-width:175px;
  box-shadow:var(--shadow-md);z-index:200;overflow:hidden;
}
.user-dropdown.open{display:block}
.user-dropdown a{
  display:flex;align-items:center;gap:9px;
  padding:10px 14px;font-size:12.5px;color:#374151;
  border-bottom:1px solid #F3F4F6;transition:background .1s;
}
.user-dropdown a:last-child{border-bottom:none;color:var(--dbs-danger)}
.user-dropdown a:hover{background:var(--dbs-light)}
.user-dropdown a i{width:14px;text-align:center;color:#9CA3AF}
.user-dropdown a:last-child i{color:var(--dbs-danger)}

/* ── Main content ────────────────────────────────────────── */
.main-content{margin-left:var(--sidebar-w);padding-top:var(--topbar-h);min-height:100vh}
.page-body{padding:22px}

/* ── KPI row ─────────────────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:12px;margin-bottom:20px}
.kpi-card{
  background:var(--dbs-white);border:1px solid var(--dbs-border);
  border-radius:var(--radius);padding:14px 15px;
}
.kpi-icon{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:16px;margin-bottom:8px}
.kpi-label{font-size:11px;color:var(--dbs-gray);font-weight:500;margin-bottom:2px}
.kpi-value{font-size:22px;font-weight:800;color:#111;line-height:1.1}
.kpi-trend{font-size:10.5px;margin-top:3px}
.kpi-trend.up{color:var(--dbs-success)} .kpi-trend.down{color:var(--dbs-danger)}
.kpi-trend.neutral{color:var(--dbs-gray)}

/* ── Cards ───────────────────────────────────────────────── */
.card{
  background:var(--dbs-white);border:1px solid var(--dbs-border);
  border-radius:var(--radius);padding:16px 18px;
}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.card-title{font-size:13.5px;font-weight:700;color:#111}
.card-link{font-size:11.5px;color:var(--dbs-gold);font-weight:600}
.card-link:hover{color:var(--dbs-gold-lt)}

/* ── Grid layouts ────────────────────────────────────────── */
.row-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.row-3-1{display:grid;grid-template-columns:2fr 1fr;gap:16px}
.row-1-1-1{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}

/* ── Tableaux ────────────────────────────────────────────── */
.table-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:12.5px}
thead th{background:var(--dbs-light);color:#374151;font-weight:600;padding:9px 12px;text-align:left;border-bottom:1px solid var(--dbs-border)}
tbody td{padding:9px 12px;border-bottom:1px solid #F3F4F6;color:#374151}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover td{background:#FAFAFA}

/* ── Badges ──────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:20px}
.badge-gold   {background:var(--dbs-gold-dim);color:#92680A}
.badge-success{background:rgba(22,163,74,.1);color:#15803D}
.badge-danger {background:rgba(220,38,38,.1);color:#B91C1C}
.badge-warning{background:rgba(217,119,6,.1);color:#B45309}
.badge-info   {background:rgba(37,99,235,.1);color:#1D4ED8}
.badge-gray   {background:#F3F4F6;color:#4B5563}

/* ── Boutons ─────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;padding:8px 16px;border-radius:8px;border:none;cursor:pointer;transition:all .15s;text-decoration:none}
.btn-gold  {background:var(--dbs-gold);color:var(--dbs-dark)}
.btn-gold:hover{background:var(--dbs-gold-lt);color:var(--dbs-dark)}
.btn-outline{background:transparent;border:1.5px solid var(--dbs-border);color:#374151}
.btn-outline:hover{background:var(--dbs-light)}
.btn-danger{background:var(--dbs-danger);color:#fff}
.btn-sm{padding:5px 10px;font-size:11.5px}

/* ── Flash messages ──────────────────────────────────────── */
.flash{display:flex;align-items:center;gap:8px;padding:11px 15px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:16px}
.flash-success{background:rgba(22,163,74,.08);color:#166534;border:1px solid rgba(22,163,74,.2)}
.flash-error  {background:rgba(220,38,38,.07);color:#991B1B;border:1px solid rgba(220,38,38,.2)}
.flash-info   {background:rgba(37,99,235,.07);color:#1E40AF;border:1px solid rgba(37,99,235,.2)}

/* ── Progress ────────────────────────────────────────────── */
.progress{height:5px;background:var(--dbs-light);border-radius:3px;overflow:hidden}
.progress-bar{height:100%;border-radius:3px;transition:width .4s}
.progress-gold   {background:var(--dbs-gold)}
.progress-success{background:var(--dbs-success)}
.progress-danger {background:var(--dbs-danger)}

/* ── Alertes dashboard ───────────────────────────────────── */
.alert-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #F3F4F6}
.alert-row:last-child{border-bottom:none}
.alert-ico{width:32px;height:32px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0}
.alert-ico.red   {background:rgba(220,38,38,.1) ;color:var(--dbs-danger)}
.alert-ico.orange{background:rgba(217,119,6,.1) ;color:var(--dbs-warning)}
.alert-ico.blue  {background:rgba(37,99,235,.1) ;color:var(--dbs-info)}
.alert-ico.green {background:rgba(22,163,74,.1) ;color:var(--dbs-success)}
.alert-count{margin-left:auto;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;padding:0 5px;background:var(--dbs-dark);color:var(--dbs-gold)}

/* ── Cours list ──────────────────────────────────────────── */
.cours-row{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid #F3F4F6;font-size:12.5px}
.cours-row:last-child{border-bottom:none}
.cours-time{font-size:11px;color:var(--dbs-gray);min-width:70px;line-height:1.5}
.cours-info strong{display:block;font-size:13px;font-weight:600}
.cours-info span  {color:var(--dbs-gray);font-size:11.5px}
.cours-salle{margin-left:auto;font-size:11px;color:var(--dbs-gray);white-space:nowrap}

/* ── Responsive ──────────────────────────────────────────── */
@media(max-width:1280px){.kpi-grid{grid-template-columns:repeat(4,1fr)}}
@media(max-width:1024px){.row-3{grid-template-columns:1fr 1fr}.row-3-1{grid-template-columns:1fr}}
@media(max-width:768px){
  .sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}
  .main-content{margin-left:0}.topbar{left:0}
  .topbar-hamburger{display:flex}
  .row-2,.row-3,.kpi-grid{grid-template-columns:1fr}
  .topbar-search{display:none}
}
