:root{
  --beige:#f6efe4;
  --brown:#7a4c24;
  --dark:#252525;
  --primary:#8b5e34;
  --white:#fff;
}
body{
  background:#f7f4ef;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:#2b2b2b;
}
.login-body{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#f7ead9,#fff,#ead9c0);
}
.login-card{
  width:min(430px,92vw);
  background:white;
  border-radius:28px;
  padding:34px;
}
.logo-circle,.brand-icon{
  width:58px;
  height:58px;
  border-radius:50%;
  background:linear-gradient(135deg,#9b6a38,#d8b98b);
  display:flex;
  align-items:center;
  justify-content:center;
  color:white;
  font-size:28px;
}
.app{display:flex;min-height:100vh}
.sidebar{
  width:270px;
  background:#fff7ed;
  padding:22px;
  position:fixed;
  top:0;
  bottom:0;
  left:0;
  border-right:1px solid #eadcca;
  overflow:auto;
}
.brand{display:flex;gap:12px;align-items:center;margin-bottom:28px}
.brand small{display:block;color:#777}
.sidebar nav a{
  display:block;
  text-decoration:none;
  color:#3d3328;
  padding:13px 14px;
  border-radius:16px;
  margin-bottom:7px;
  font-weight:600;
}
.sidebar nav a:hover{background:#ead9c0;color:#5d3518}
.sidebar .logout{color:#b02a37}
.content{margin-left:270px;width:calc(100% - 270px)}
.topbar{
  background:white;
  border-radius:0 0 22px 22px;
  padding:18px 28px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  position:sticky;
  top:0;
  z-index:10;
}
.page-title{margin-bottom:22px}
.page-title h2{font-weight:800;color:#3b2d20}
.page-title p{color:#777;margin:0}
.stat-card{
  border-radius:28px;
  padding:25px;
  min-height:155px;
  box-shadow:0 12px 30px rgba(0,0,0,.07);
}
.stat-card span{font-size:34px}
.stat-card h3{font-size:36px;font-weight:900;margin:12px 0 0}
.stat-card p{font-weight:700;color:#555}
.bg-soft-blue{background:#eaf2ff}
.bg-soft-green{background:#e9f8ef}
.bg-soft-orange{background:#fff2df}
.bg-soft-purple{background:#f0e9ff}
.card-pro,.class-card,.doc-card{
  border:0;
  border-radius:26px;
  box-shadow:0 12px 30px rgba(0,0,0,.07);
  background:white;
  overflow:hidden;
}
.card-pro .card-header{
  background:#fff7ed;
  border:0;
  font-weight:800;
  padding:18px 22px;
  color:#5d3518;
}
.card-pro .card-body,.class-card .card-body,.doc-card{padding:22px}
.modal-pro{border:0;border-radius:24px;overflow:hidden}
.modal-pro .modal-header{background:#fff7ed}
.btn-primary{background:#8b5e34;border-color:#8b5e34}
.btn-primary:hover{background:#6d4524;border-color:#6d4524}
.table thead th{background:#fff7ed;color:#4e351f}
.form-control,.form-select{border-radius:14px;padding:10px 12px}
.doc-card{padding:25px;min-height:180px}
.mini-list{
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:10px 0;
  border-bottom:1px solid #f1e4d4;
}
.mini-list:last-child{border-bottom:0}
.fiche{
  border:2px solid #ead9c0;
  border-radius:18px;
  padding:20px;
  background:#fffdf9;
}
.avatar{
  width:42px;
  height:42px;
  object-fit:cover;
  border-radius:50%;
  border:2px solid #ead9c0;
}
.avatar.empty{
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff7ed;
}
.fiche-photo{
  width:90px;
  height:90px;
  object-fit:cover;
  border-radius:50%;
  border:3px solid #ead9c0;
}
@media(max-width:900px){
 .sidebar{position:relative;width:100%;height:auto}
 .app{display:block}
 .content{margin-left:0;width:100%}
 .topbar{border-radius:0}
 .sidebar nav{display:grid;grid-template-columns:1fr 1fr;gap:6px}
}
@media print{
 .sidebar,.topbar,.btn,.modal-footer,.dataTables_filter,.dataTables_length,.dataTables_paginate,.dataTables_info{display:none!important}
 .content{margin:0;width:100%}
 .card-pro,.doc-card,.class-card{box-shadow:none}
}

.section-title{background:#fff7ed;border-left:5px solid #8b5e34;padding:10px 14px;border-radius:14px;font-weight:800;color:#5d3518;margin-bottom:16px}.nav-pills .nav-link{border-radius:14px;color:#5d3518;font-weight:700}.nav-pills .nav-link.active{background:#8b5e34}.modal-xl{max-width:1150px}.info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 18px}.info-grid p{margin-bottom:6px}
