:root{
  --fs-primary:#0d4d3c;     /* vert profond */
  --fs-primary-dark:#0a3c2f;
  --fs-accent:#e8b923;      /* or/jaune */
  --fs-bg:#f4f6f5;
  --fs-sidebar:#0a3c2f;
  --fs-sidebar-hover:#0d5a45;
}
body{background:var(--fs-bg);font-family:'Segoe UI',system-ui,-apple-system,sans-serif;}

/* ===== Authentification (écran scindé) ===== */
.auth-body{margin:0;}
.auth-split{display:flex;min-height:100vh;font-family:'Poppins','Segoe UI',system-ui,sans-serif;}

/* --- Panneau de marque --- */
.auth-brand-panel{position:relative;flex:1 1 54%;display:flex;flex-direction:column;
  justify-content:space-between;padding:3.2rem;color:#eaf5f0;overflow:hidden;
  background:radial-gradient(circle at 18% 18%,#16715626 0,transparent 55%),
             radial-gradient(circle at 85% 85%,#0c463680 0,transparent 50%),
             linear-gradient(135deg,var(--fs-primary) 0%,var(--fs-primary-dark) 100%);}
.auth-brand-panel::before{content:"";position:absolute;inset:0;opacity:.05;
  background-image:radial-gradient(#fff 1.1px,transparent 1.1px);background-size:24px 24px;}
.auth-brand-panel::after{content:"";position:absolute;right:-120px;bottom:-120px;width:360px;height:360px;
  border-radius:50%;border:60px solid rgba(232,185,35,.06);}
.auth-brand-inner{position:relative;max-width:470px;margin:auto 0;}
.auth-logo{width:66px;height:66px;border-radius:19px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,var(--fs-accent),#f4cf4a);color:#3a2e00;font-size:2rem;
  box-shadow:0 12px 30px rgba(0,0,0,.28);margin-bottom:1.6rem;overflow:hidden;}
.auth-logo img{width:100%;height:100%;object-fit:cover;}
.auth-logo-svg{width:72px;height:72px;border-radius:20px;display:block;margin-bottom:1.6rem;
  box-shadow:0 14px 32px rgba(0,0,0,.32);}
.auth-title{font-weight:800;font-size:2.7rem;line-height:1;margin:0;letter-spacing:-.02em;color:#fff;}
.auth-title span{color:var(--fs-accent);}
.auth-sub{text-transform:uppercase;letter-spacing:.35em;font-size:.78rem;font-weight:600;
  color:var(--fs-accent);margin:.5rem 0 1.5rem;}
.auth-tagline{font-size:1.06rem;line-height:1.65;color:#cfe6dd;margin-bottom:2.2rem;}
.auth-features{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.1rem;}
.auth-features li{display:flex;gap:1rem;align-items:center;}
.auth-features li i{flex:0 0 44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.1);color:var(--fs-accent);font-size:1.25rem;backdrop-filter:blur(4px);}
.auth-features strong{display:block;font-weight:600;color:#fff;font-size:.96rem;}
.auth-features span{font-size:.82rem;color:#a9c7bc;}
.auth-brand-foot{position:relative;font-size:.76rem;color:#8fb3a7;}

/* --- Panneau formulaire --- */
.auth-form-panel{flex:1 1 46%;display:flex;align-items:center;justify-content:center;padding:2rem;background:#f7faf9;}
.auth-form-card{width:100%;max-width:390px;animation:authIn .55s cubic-bezier(.2,.8,.2,1);}
@keyframes authIn{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:none;}}
.auth-welcome{font-weight:700;color:var(--fs-primary-dark);font-size:1.55rem;margin-bottom:.2rem;}
.auth-welcome-sub{color:#7a8a85;margin-bottom:1.9rem;font-size:.95rem;}
.auth-brand{font-weight:700;color:var(--fs-primary-dark);}
.auth-brand small{color:var(--fs-accent);font-weight:600;}

.auth-form-card .form-floating>label{color:#8a9893;}
.auth-form-card .form-control{padding:1rem;border:1.5px solid #dfe7e4;border-radius:.75rem;background:#fff;}
.auth-form-card .form-floating>.form-control{height:calc(3.3rem + 2px);}
.auth-form-card .form-control:focus{border-color:var(--fs-primary);box-shadow:0 0 0 .2rem rgba(13,77,60,.12);}
.btn-auth{background:linear-gradient(135deg,var(--fs-primary),#15765a);border:none;color:#fff;
  border-radius:.75rem;padding:.85rem;font-weight:600;letter-spacing:.02em;transition:.2s;}
.btn-auth:hover{filter:brightness(1.08);box-shadow:0 10px 24px rgba(13,77,60,.32);color:#fff;transform:translateY(-1px);}

@media (max-width:860px){
  .auth-split{flex-direction:column;}
  .auth-brand-panel{flex:none;padding:2.4rem 1.6rem;text-align:center;}
  .auth-brand-inner{margin:0 auto;}
  .auth-logo,.auth-logo-svg{margin-left:auto;margin-right:auto;}
  .auth-tagline,.auth-features,.auth-brand-foot{display:none;}
  .auth-title{font-size:2.1rem;}
  .auth-form-panel{flex:1;padding:2rem 1.4rem;}
}

/* ----- Layout applicatif ----- */
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:250px;background:var(--fs-sidebar);color:#cfe6dd;flex-shrink:0;
  position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transition:transform .25s ease;z-index:1040;}
.sidebar .brand{padding:1rem 1.25rem;font-weight:700;color:#fff;font-size:1.05rem;border-bottom:1px solid rgba(255,255,255,.08);}
.sidebar .brand .accent{color:var(--fs-accent);}
.sidebar .nav-section{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;
  color:#6f9b8c;padding:1rem 1.25rem .35rem;}
.sidebar .nav-link{color:#cfe6dd;padding:.55rem 1.25rem;display:flex;align-items:center;gap:.65rem;
  border-left:3px solid transparent;font-size:.92rem;}
.sidebar .nav-link:hover{background:var(--fs-sidebar-hover);color:#fff;}
.sidebar .nav-link.active{background:var(--fs-sidebar-hover);color:#fff;border-left-color:var(--fs-accent);}
.sidebar .nav-link i{width:1.1rem;text-align:center;}
.main{flex:1;margin-left:250px;display:flex;flex-direction:column;min-width:0;}
.topbar{background:#fff;border-bottom:1px solid #e3e8e6;padding:.6rem 1.25rem;
  display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:1030;}
.content{padding:1.5rem;flex:1;}
.page-title{font-weight:700;color:var(--fs-primary-dark);margin:0;}

.card{border:none;border-radius:.6rem;box-shadow:0 1px 3px rgba(0,0,0,.06);}
.card-header{background:#fff;border-bottom:1px solid #eef1f0;font-weight:600;}
.stat-card{border-radius:.7rem;color:#fff;overflow:hidden;}
.stat-card .stat-icon{font-size:2rem;opacity:.35;}
.stat-card .stat-value{font-size:1.5rem;font-weight:700;}
.stat-card .stat-label{font-size:.8rem;opacity:.9;}
.bg-fs-primary{background:var(--fs-primary)!important;}
.text-fs-primary{color:var(--fs-primary)!important;}
.btn-fs{background:var(--fs-primary);border-color:var(--fs-primary);color:#fff;}
.btn-fs:hover{background:var(--fs-primary-dark);border-color:var(--fs-primary-dark);color:#fff;}
a{color:var(--fs-primary);}
.table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:#5a6b66;}
.badge{font-weight:500;}
.sidebar-backdrop{display:none;}

@media (max-width:991.98px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.show{transform:translateX(0);}
  .main{margin-left:0;}
  .sidebar-backdrop.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:1035;}
}
@media print{
  .sidebar,.topbar,.no-print{display:none!important;}
  .main{margin-left:0;}
  .content{padding:0;}
}
