/* RFDP – CSS Administration */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--blue:#1877F2;--blue-dark:#1255b8;--blue-light:#e8f0fe;--dark:#0f172a;--gray:#64748b;--light:#f1f5f9;--white:#fff;--border:#e2e8f0;--radius:8px;--sidebar-w:240px;--font:'Inter',system-ui,sans-serif}
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
body{font-family:var(--font);background:var(--light);color:var(--dark)}
a{color:var(--blue);text-decoration:none}
img{max-width:100%}

/* LAYOUT */
.admin-wrapper{display:flex;min-height:100vh}
.admin-sidebar{width:var(--sidebar-w);background:var(--dark);display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;overflow-y:auto;z-index:100}
.admin-content{margin-left:var(--sidebar-w);flex:1;min-width:0}

/* SIDEBAR */
.sidebar-brand{display:flex;align-items:center;gap:.6rem;padding:1.25rem 1rem;border-bottom:1px solid rgba(255,255,255,.1);font-weight:700;color:#fff;font-size:1rem}
.brand-icon{width:32px;height:32px;border-radius:7px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}
.sidebar-nav{flex:1;padding:.75rem 0}
.nav-item{display:flex;align-items:center;gap:.6rem;padding:.6rem 1.25rem;color:rgba(255,255,255,.65);font-size:.875rem;transition:all .15s}
.nav-item:hover{color:#fff;background:rgba(255,255,255,.08);text-decoration:none}
.nav-item.active{color:#fff;background:var(--blue)}
.sidebar-footer{padding:1rem;border-top:1px solid rgba(255,255,255,.1)}
.sidebar-footer span{display:block;color:rgba(255,255,255,.6);font-size:.8rem;margin-bottom:.5rem}
.btn-logout{display:block;text-align:center;padding:.45rem;background:rgba(255,255,255,.1);color:rgba(255,255,255,.8);border-radius:var(--radius);font-size:.85rem;transition:background .15s}
.btn-logout:hover{background:rgba(255,0,0,.3);color:#fff;text-decoration:none}

/* TOPBAR */
.admin-topbar{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 2rem;background:#fff;border-bottom:1px solid var(--border)}
.admin-topbar h1{font-size:1.25rem;font-weight:700}
.btn-secondary{padding:.45rem 1rem;background:var(--light);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;color:var(--gray)}
.btn-secondary:hover{background:var(--border);text-decoration:none}

/* MAIN */
.admin-main{padding:1.5rem 2rem}

/* STAT CARDS */
.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}
.stat-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:1.25rem}
.stat-card .num{font-size:2rem;font-weight:800;color:var(--blue)}
.stat-card .lbl{font-size:.8rem;color:var(--gray);margin-top:.25rem}
.stat-card .ico{font-size:1.5rem;margin-bottom:.5rem}

/* PANEL */
.panel{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:1.5rem}
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border)}
.panel-header h2{font-size:1rem;font-weight:700}
.panel-body{padding:1.5rem}

/* TABLE */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{width:100%;border-collapse:collapse;font-size:.875rem}
thead th{text-align:left;font-weight:600;color:var(--gray);padding:.6rem 1rem;background:var(--light);border-bottom:1px solid var(--border);white-space:nowrap}
tbody td{padding:.75rem 1rem;border-bottom:1px solid var(--border);vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:#fafbff}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1.1rem;border-radius:var(--radius);font-size:.85rem;font-weight:600;cursor:pointer;border:none;transition:all .15s;text-decoration:none}
.btn-primary{background:var(--blue);color:#fff}
.btn-primary:hover{background:var(--blue-dark);text-decoration:none;color:#fff}
.btn-danger{background:#fee2e2;color:#b91c1c}
.btn-danger:hover{background:#fecaca;text-decoration:none}
.btn-sm{padding:.3rem .7rem;font-size:.78rem}

/* FORMS */
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-weight:600;font-size:.85rem;margin-bottom:.35rem}
.form-control{width:100%;padding:.55rem .8rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;font-family:var(--font)}
.form-control:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(24,119,242,.1)}
textarea.form-control{resize:vertical;min-height:90px}
select.form-control{background:#fff}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}

/* MODAL */
.modal-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;align-items:center;justify-content:center;padding:1rem}
.modal-backdrop.open{display:flex}
.modal{background:#fff;border-radius:12px;max-width:680px;width:100%;max-height:90vh;overflow-y:auto}
.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border)}
.modal-header h3{font-weight:700}
.modal-close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--gray)}
.modal-body{padding:1.5rem}
.modal-footer{padding:1rem 1.5rem;border-top:1px solid var(--border);display:flex;gap:.75rem;justify-content:flex-end}

/* BADGES / ALERTS */
.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.73rem;font-weight:600}
.badge-blue{background:var(--blue-light);color:var(--blue)}
.badge-green{background:#dcfce7;color:#15803d}
.badge-red{background:#fee2e2;color:#b91c1c}
.badge-yellow{background:#fef9c3;color:#a16207}
.alert{padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1rem;font-size:.9rem;font-weight:500}
.alert-success{background:#dcfce7;color:#15803d}
.alert-error{background:#fee2e2;color:#b91c1c}

/* LOGIN */
.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a 0%,#1e3a6e 100%);padding:1rem}
.login-card{background:#fff;border-radius:16px;padding:2.5rem;width:100%;max-width:420px;box-shadow:0 24px 64px rgba(0,0,0,.3)}
.login-logo{text-align:center;margin-bottom:2rem}
.login-logo .brand-icon{width:56px;height:56px;border-radius:14px;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.75rem;font-weight:800;margin:0 auto .75rem}
.login-logo h2{font-size:1.5rem;font-weight:800}
.login-logo p{color:var(--gray);font-size:.9rem}

/* ============================================================
   RESPONSIVE (paliers repris de BERAPSAD : 1024 / 900 / 768 / 480 / 360)
============================================================ */

/* Tablette large */
@media (max-width:1024px){
  :root{--sidebar-w:210px}
  .admin-topbar{padding:1.1rem 1.5rem}
  .admin-main{padding:1.25rem 1.5rem}
  .stat-cards{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
}

/* Tablette : la sidebar passe en barre horizontale en haut de page */
@media (max-width:900px){
  .admin-wrapper{flex-direction:column}
  .admin-sidebar{position:static;inset:auto;width:100%;overflow-y:visible;flex-direction:row;flex-wrap:wrap;align-items:center}
  .sidebar-brand{border-bottom:none;padding:.85rem 1rem;flex:1}
  .sidebar-footer{border-top:none;padding:.5rem 1rem;display:flex;align-items:center;gap:.75rem}
  .sidebar-footer span{margin-bottom:0}
  .btn-logout{padding:.4rem .9rem;white-space:nowrap}
  .sidebar-nav{order:3;flex:0 0 100%;display:flex;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:.4rem .5rem;border-top:1px solid rgba(255,255,255,.1)}
  .nav-item{flex-shrink:0;white-space:nowrap;padding:.55rem .9rem;border-radius:var(--radius)}
  .admin-content{margin-left:0}
}

/* Mobile */
@media (max-width:768px){
  .admin-topbar{padding:1rem;gap:.75rem;flex-wrap:wrap}
  .admin-topbar h1{font-size:1.1rem}
  .admin-main{padding:1rem}
  .stat-cards{grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:10px;margin-bottom:1.25rem}
  .stat-card{padding:14px 16px}
  .stat-card .ico{font-size:1.5rem}
  .stat-card .num{font-size:1.25rem}
  .stat-card .lbl{font-size:.7rem}
  .panel-header{padding:.9rem 1rem;gap:.75rem;flex-wrap:wrap}
  .panel-body{padding:1.1rem 1rem}
  .form-row{grid-template-columns:1fr}
  thead th,tbody td{padding:.6rem .75rem}
  .modal-header{padding:1rem}
  .modal-body{padding:1rem}
  .modal-footer{padding:.85rem 1rem;flex-wrap:wrap}
  .login-card{padding:2rem 1.5rem}
}

/* Petits mobiles */
@media (max-width:480px){
  .sidebar-footer span{display:none}
  .stat-cards{grid-template-columns:repeat(2,1fr);gap:8px}
  .stat-card{padding:12px 14px}
  .stat-card .ico{font-size:1.3rem}
  .stat-card .num{font-size:1.1rem}
  .stat-card .lbl{font-size:.66rem;margin-top:0}
  .panel{border-radius:12px}
  .panel-header{padding:.85rem .9rem}
  .panel-header h2{font-size:.88rem}
  .panel-body{padding:1rem .9rem}
  table{font-size:.8rem}
  .modal-footer .btn{flex:1;justify-content:center}
  .login-card{padding:1.75rem 1.25rem;border-radius:14px}
}

@media (max-width:360px){
  .stat-cards{gap:6px}
  .stat-card{padding:10px 12px}
  .nav-item{padding:.5rem .7rem;font-size:.82rem}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition:none !important;animation:none !important}
}