You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
909 lines
33 KiB
909 lines
33 KiB
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<title><?php echo $page_title; ?></title>
|
|
<!-- Tell the browser to be responsive to screen width -->
|
|
<meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
|
|
<!-- Bootstrap 3.3.7 -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/bootstrap/dist/css/bootstrap.min.css') ?>">
|
|
<!-- Font Awesome -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/font-awesome/css/font-awesome.min.css') ?>">
|
|
<!-- Ionicons -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/Ionicons/css/ionicons.min.css') ?>">
|
|
<!-- Theme style -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/dist/css/AdminLTE.min.css') ?>">
|
|
<!-- AdminLTE Skins. Choose a skin from the css/skins
|
|
folder instead of downloading all of them to reduce the load. -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/dist/css/skins/_all-skins.min.css') ?>">
|
|
<!-- Morris chart -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/morris.js/morris.css') ?>">
|
|
<!-- jvectormap -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/jvectormap/jquery-jvectormap.css') ?>">
|
|
<!-- Date Picker -->
|
|
<link rel="stylesheet"
|
|
href="<?php echo base_url('assets/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css') ?>">
|
|
<!-- Daterange picker -->
|
|
<link rel="stylesheet"
|
|
href="<?php echo base_url('assets/bower_components/bootstrap-daterangepicker/daterangepicker.css') ?>">
|
|
<!-- bootstrap wysihtml5 - text editor -->
|
|
<link rel="stylesheet"
|
|
href="<?php echo base_url('assets/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css') ?>">
|
|
<link rel="stylesheet"
|
|
href="<?php echo base_url('assets/bower_components/datatables.net-bs/css/dataTables.bootstrap.min.css') ?>">
|
|
<!-- Select2 -->
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/bower_components/select2/dist/css/select2.min.css') ?>">
|
|
<link rel="stylesheet" href="<?php echo base_url('assets/plugins/fileinput/fileinput.min.css') ?>">
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
|
<!-- icheck -->
|
|
<!-- iCheck for checkboxes and radio inputs -->
|
|
<!-- <link rel="stylesheet" href="<?php echo base_url('assets/plugins/iCheck/all.css') ?>"> -->
|
|
|
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
<!--[if lt IE 9]>
|
|
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
|
|
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
<![endif]-->
|
|
|
|
<!-- Google Font -->
|
|
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic"> -->
|
|
<!-- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"> -->
|
|
|
|
<!-- jQuery 3 -->
|
|
<script src="<?php echo base_url('assets/bower_components/jquery/dist/jquery.min.js') ?>"></script>
|
|
<script src="<?php echo base_url('assets/bower_components/jquery-ui/jquery-ui.min.js') ?>"></script>
|
|
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
|
|
<script>
|
|
$.widget.bridge('uibutton', $.ui.button);
|
|
</script>
|
|
<!-- Bootstrap 3.3.7 -->
|
|
<script src="<?php echo base_url('assets/bower_components/bootstrap/dist/js/bootstrap.min.js') ?>"></script>
|
|
<!-- Morris.js charts -->
|
|
<script src="<?php echo base_url('assets/bower_components/raphael/raphael.min.js') ?>"></script>
|
|
<script src="<?php echo base_url('assets/bower_components/morris.js/morris.min.js') ?>"></script>
|
|
<!-- Sparkline -->
|
|
<script
|
|
src="<?php echo base_url('assets/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js') ?>"></script>
|
|
<!-- jvectormap -->
|
|
<script src="<?php echo base_url('assets/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js') ?>"></script>
|
|
<script src="<?php echo base_url('assets/plugins/jvectormap/jquery-jvectormap-world-mill-en.js') ?>"></script>
|
|
<!-- jQuery Knob Chart -->
|
|
<script src="<?php echo base_url('assets/bower_components/jquery-knob/dist/jquery.knob.min.js') ?>"></script>
|
|
<!-- daterangepicker -->
|
|
<script src="<?php echo base_url('assets/bower_components/moment/min/moment.min.js') ?>"></script>
|
|
<script src="<?php echo base_url('assets/bower_components/bootstrap-daterangepicker/daterangepicker.js') ?>"></script>
|
|
<!-- datepicker -->
|
|
<script
|
|
src="<?php echo base_url('assets/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js') ?>"></script>
|
|
<!-- Bootstrap WYSIHTML5 -->
|
|
<script src="<?php echo base_url('assets/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js') ?>"></script>
|
|
<!-- Slimscroll -->
|
|
<script src="<?php echo base_url('assets/bower_components/jquery-slimscroll/jquery.slimscroll.min.js') ?>"></script>
|
|
<!-- FastClick -->
|
|
<script src="<?php echo base_url('assets/bower_components/fastclick/lib/fastclick.js') ?>"></script>
|
|
<!-- Select2 -->
|
|
<script src="<?php echo base_url('assets/bower_components/select2/dist/js/select2.full.min.js') ?>"></script>
|
|
<!-- AdminLTE App -->
|
|
<script src="<?php echo base_url('assets/dist/js/adminlte.min.js') ?>"></script>
|
|
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
|
|
<script src="<?php echo base_url('assets/dist/js/pages/dashboard.js') ?>"></script>
|
|
<!-- AdminLTE for demo purposes -->
|
|
<script src="<?php echo base_url('assets/dist/js/demo.js') ?>"></script>
|
|
<script src="<?php echo base_url('assets/plugins/fileinput/fileinput.min.js') ?>"></script>
|
|
<!-- <script src="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/js/all.min.js"></script> -->
|
|
<!-- jQuery UI 1.11.4 -->
|
|
<script src="<?php echo base_url('assets/plugins/iCheck/icheck.min.js') ?>"></script>
|
|
|
|
<!-- DataTables -->
|
|
<script src="<?php echo base_url('assets/bower_components/datatables.net/js/jquery.dataTables.min.js') ?>"></script>
|
|
<script
|
|
src="<?php echo base_url('assets/bower_components/datatables.net-bs/js/dataTables.bootstrap.min.js') ?>"></script>
|
|
|
|
|
|
|
|
|
|
|
|
</head>
|
|
|
|
<body class="hold-transition skin-blue sidebar-mini">
|
|
<div class="wrapper">
|
|
<style>
|
|
/* Styles de base */
|
|
body {
|
|
margin: 0;
|
|
padding: 0;
|
|
font-family: 'Source Sans Pro', sans-serif;
|
|
overflow-x: hidden;
|
|
min-height: 100vh;
|
|
background-color: #ecf0f5;
|
|
}
|
|
|
|
/* Wrapper principal */
|
|
.wrapper {
|
|
display: flex;
|
|
flex-direction: column;
|
|
min-height: 100vh;
|
|
position: relative;
|
|
}
|
|
|
|
/* Contenu principal */
|
|
.content-wrapper {
|
|
flex: 1;
|
|
overflow-y: auto;
|
|
padding-bottom: 60px;
|
|
margin-left: 230px;
|
|
padding-top: 50px;
|
|
transition: margin-left 0.3s ease;
|
|
}
|
|
|
|
/* Footer fixe - Même taille et position que le content-wrapper */
|
|
.main-footer {
|
|
position: fixed;
|
|
bottom: 0;
|
|
left: 230px; /* collé à la sidebar */
|
|
margin-left: 2px; /* petit espace de 2px */
|
|
right: 0;
|
|
z-index: 1000;
|
|
background-color: #ecf0f5;
|
|
padding: 10px 15px;
|
|
border-top: 1px solid #d2d6de;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
transition: left 0.3s ease, margin-left 0.3s ease;
|
|
}
|
|
|
|
/* Sidebar */
|
|
.main-sidebar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
height: 100vh;
|
|
overflow-y: auto;
|
|
z-index: 810;
|
|
width: 230px;
|
|
background-color: #222d32;
|
|
transition: width 0.3s ease;
|
|
}
|
|
|
|
/* Header */
|
|
.main-header {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
z-index: 1000;
|
|
background-color: #3c8dbc;
|
|
height: 50px;
|
|
transition: margin-left 0.3s ease;
|
|
}
|
|
|
|
/* Logo */
|
|
.logo {
|
|
display: block;
|
|
padding: 15px;
|
|
text-align: center;
|
|
background-color: #367fa9;
|
|
color: white;
|
|
font-size: 18px;
|
|
font-weight: bold;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
transition: padding 0.3s ease;
|
|
}
|
|
|
|
.logo-mini {
|
|
display: none;
|
|
}
|
|
|
|
.logo-lg {
|
|
display: inline;
|
|
}
|
|
/* Bouton sidebar-toggle uniquement dans le header */
|
|
/* Position du bouton sidebar-toggle */
|
|
.sidebar-toggle {
|
|
position: fixed; /* Aligné avec ton header (ajuste si besoin) */
|
|
left: 230px; /* Collé à la sidebar en mode normal */
|
|
z-index: 2000; /* Au-dessus de tout */
|
|
background: #3c8dbc;
|
|
color: #fff;
|
|
padding: 8px 12px;
|
|
border-radius: 3px;
|
|
cursor: pointer;
|
|
transition: left 0.3s ease; /* Animation fluide */
|
|
}
|
|
|
|
/* En mode réduit */
|
|
.sidebar-collapsed .sidebar-toggle {
|
|
left: 70px; /* Suit la sidebar réduite */
|
|
}
|
|
|
|
|
|
/* Menu */
|
|
.sidebar-menu {
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
.sidebar-menu > li {
|
|
position: relative;
|
|
margin: 0;
|
|
}
|
|
|
|
.sidebar-menu > li > a {
|
|
padding: 12px 15px;
|
|
display: block;
|
|
color: #b8c7ce;
|
|
text-decoration: none;
|
|
border-left: 3px solid transparent;
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.sidebar-menu > li > a:hover {
|
|
color: #fff;
|
|
background: #1e282c;
|
|
border-left-color: #3c8dbc;
|
|
}
|
|
|
|
.sidebar-menu > li.active > a {
|
|
color: #fff;
|
|
background: #1e282c;
|
|
border-left-color: #3c8dbc;
|
|
}
|
|
|
|
.sidebar-menu i {
|
|
width: 25px;
|
|
text-align: center;
|
|
margin-right: 10px;
|
|
}
|
|
|
|
/* Sous-menu */
|
|
.treeview-menu {
|
|
display: none;
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
background: #2c3b41;
|
|
}
|
|
|
|
.treeview-menu > li {
|
|
margin: 0;
|
|
}
|
|
|
|
.treeview-menu > li > a {
|
|
padding: 10px 15px 10px 45px;
|
|
display: block;
|
|
font-size: 14px;
|
|
color: #8aa4af;
|
|
text-decoration: none;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.treeview-menu > li > a:hover {
|
|
color: #fff;
|
|
background: #1e282c;
|
|
}
|
|
|
|
/* Flèche */
|
|
.pull-right-container {
|
|
position: absolute;
|
|
right: 10px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
}
|
|
|
|
.fa-angle-left {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
/* Affichage normal des sous-menus */
|
|
.treeview.menu-open > .treeview-menu {
|
|
display: block;
|
|
}
|
|
|
|
.treeview.menu-open > a > .pull-right-container > .fa-angle-left {
|
|
transform: rotate(-90deg);
|
|
}
|
|
|
|
/* Notifications */
|
|
.navbar-badge {
|
|
font-size: 1.4rem;
|
|
font-weight: 300;
|
|
padding: 2px 4px;
|
|
position: absolute;
|
|
right: 5px;
|
|
top: 9px;
|
|
}
|
|
|
|
.badge-warning {
|
|
color: #1f2d3d;
|
|
background-color: #ffc107;
|
|
}
|
|
|
|
/* Dropdown */
|
|
.dropdown-menu {
|
|
position: absolute;
|
|
top: 100%;
|
|
right: 0;
|
|
z-index: 1000;
|
|
display: none;
|
|
min-width: 280px;
|
|
padding: .5rem 0;
|
|
margin: .125rem 0 0;
|
|
font-size: 1rem;
|
|
color: #212529;
|
|
text-align: left;
|
|
list-style: none;
|
|
background-color: #fff;
|
|
background-clip: padding-box;
|
|
border: 1px solid rgba(0, 0, 0, .15);
|
|
border-radius: .25rem;
|
|
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175);
|
|
}
|
|
|
|
.dropdown-menu.show {
|
|
display: block;
|
|
}
|
|
|
|
/* === MODE REDUIT === */
|
|
.sidebar-collapsed .main-sidebar {
|
|
width: 70px;
|
|
overflow-y: auto;
|
|
overflow-x: visible;
|
|
/* Scrollbar à gauche en mode réduit */
|
|
direction: rtl;
|
|
}
|
|
|
|
.sidebar-collapsed .main-sidebar .sidebar-menu {
|
|
direction: ltr; /* Rétablir la direction normale pour le contenu */
|
|
}
|
|
|
|
.sidebar-collapsed .content-wrapper {
|
|
margin-left: 70px;
|
|
}
|
|
|
|
.sidebar-collapsed .main-header {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
/* Footer en mode sidebar réduite - Même taille que le content-wrapper réduit */
|
|
.sidebar-collapsed .main-footer {
|
|
left: 70px; /* Même position que le content-wrapper en mode réduit */
|
|
margin-left: 2px;
|
|
}
|
|
|
|
/* LOGO CENTRÉ EN MODE RÉDUIT - AMÉLIORATION */
|
|
.sidebar-collapsed .logo {
|
|
padding: 15px 5px; /* Padding réduit horizontalement */
|
|
text-align: center; /* Centrage du texte */
|
|
display: flex; /* Utilisation de flexbox pour un meilleur centrage */
|
|
align-items: center; /* Centrage vertical */
|
|
justify-content: center; /* Centrage horizontal */
|
|
width: 70px; /* Largeur fixe correspondant à la sidebar réduite */
|
|
box-sizing: border-box; /* Inclure le padding dans la largeur */
|
|
}
|
|
|
|
.sidebar-collapsed .logo-mini {
|
|
display: inline-block; /* Affichage du logo mini */
|
|
text-align: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.sidebar-collapsed .logo-lg {
|
|
display: none; /* Masquer le logo long */
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li > a > span {
|
|
display: none;
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li > a .pull-right-container {
|
|
display: none;
|
|
}
|
|
|
|
/* Icônes centrées - AMÉLIORATION */
|
|
.sidebar-collapsed .sidebar-menu > li > a {
|
|
text-align: center;
|
|
padding: 12px 0;
|
|
position: relative;
|
|
display: flex; /* Utilisation de flexbox */
|
|
align-items: center; /* Centrage vertical */
|
|
justify-content: center; /* Centrage horizontal */
|
|
width: 70px; /* Largeur fixe */
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu i {
|
|
margin-right: 0;
|
|
display: block;
|
|
font-size: 18px;
|
|
width: auto; /* Largeur automatique pour les icônes */
|
|
text-align: center;
|
|
}
|
|
|
|
/* Tooltip pour afficher le texte du menu principal au survol */
|
|
.sidebar-collapsed .sidebar-menu > li > a::before {
|
|
content: attr(data-tooltip);
|
|
position: absolute;
|
|
left: 70px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
background: #2c3b41;
|
|
color: #fff;
|
|
padding: 8px 12px;
|
|
border-radius: 4px;
|
|
white-space: nowrap;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: all 0.2s ease;
|
|
z-index: 9998;
|
|
font-size: 14px;
|
|
box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
|
|
border-left: 3px solid #3c8dbc;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li:hover > a::before {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
left: 75px;
|
|
}
|
|
|
|
/* Flèche pour le tooltip */
|
|
.sidebar-collapsed .sidebar-menu > li > a::after {
|
|
content: "";
|
|
position: absolute;
|
|
left: 70px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 0;
|
|
height: 0;
|
|
border-style: solid;
|
|
border-width: 5px 5px 5px 0;
|
|
border-color: transparent #2c3b41 transparent transparent;
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: all 0.2s ease;
|
|
z-index: 9999;
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li:hover > a::after {
|
|
opacity: 1;
|
|
visibility: visible;
|
|
}
|
|
|
|
/* Masquer les tooltips pour les éléments avec sous-menu */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a::before,
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a::after {
|
|
display: none;
|
|
}
|
|
|
|
/* Améliorations pour les sous-menus en mode réduit */
|
|
.sidebar-collapsed .sidebar-menu > li {
|
|
position: relative;
|
|
}
|
|
|
|
/* Sous-menus affichés au hover en mode réduit - POSITIONNÉS DANS LE CONTENT-WRAPPER */
|
|
.sidebar-collapsed .treeview-menu {
|
|
position: fixed; /* Position fixe par rapport à la fenêtre */
|
|
left: 80px; /* 70px (sidebar) + 10px de marge */
|
|
top: 0; /* Sera ajusté par JavaScript pour aligner avec l'élément parent */
|
|
width: 180px; /* Taille réduite (était 200px) */
|
|
max-width: calc(100vw - 100px); /* Éviter les débordements */
|
|
z-index: 9999;
|
|
box-shadow: 0 4px 15px rgba(0,0,0,0.25);
|
|
border-radius: 4px; /* Border-radius plus petit */
|
|
border-left: 2px solid #3c8dbc; /* Bordure plus fine */
|
|
opacity: 0;
|
|
visibility: hidden;
|
|
transition: opacity 0.3s ease, visibility 0.3s ease, transform 0.3s ease;
|
|
display: block !important;
|
|
background: #fff; /* Fond blanc pour se démarquer du content-wrapper */
|
|
border: 1px solid #d2d6de;
|
|
pointer-events: none;
|
|
transform: translateX(-20px) scale(0.95);
|
|
transform-origin: left center;
|
|
margin-top: 50px; /* Prendre en compte la hauteur du header fixe */
|
|
}
|
|
|
|
/* Style spécial pour les sous-menus dans le content-wrapper */
|
|
.sidebar-collapsed .treeview-menu {
|
|
background: linear-gradient(135deg, #fff 0%, #f8f9fa 100%);
|
|
backdrop-filter: blur(8px); /* Blur réduit */
|
|
border: 1px solid rgba(210, 214, 222, 0.8);
|
|
}
|
|
|
|
/* RENDRE LES SOUS-MENUS CLIQUABLES - TOUJOURS ACTIFS */
|
|
.sidebar-collapsed .treeview:hover .treeview-menu {
|
|
pointer-events: auto !important; /* Force l'activation des clics */
|
|
opacity: 1;
|
|
visibility: visible;
|
|
transform: translateX(0) scale(1);
|
|
}
|
|
|
|
/* Maintenir l'affichage ET les clics du sous-menu quand on le survole directement */
|
|
.sidebar-collapsed .treeview-menu:hover {
|
|
opacity: 1 !important;
|
|
visibility: visible !important;
|
|
pointer-events: auto !important; /* Garantir la cliquabilité */
|
|
transform: translateX(0) scale(1) !important;
|
|
}
|
|
|
|
/* Maintenir l'affichage quand on survole les liens à l'intérieur */
|
|
.sidebar-collapsed .treeview-menu > li > a:hover {
|
|
pointer-events: auto !important;
|
|
}
|
|
|
|
/* Zone de transition invisible élargie pour maintenir l'affichage */
|
|
.sidebar-collapsed .treeview::after {
|
|
content: "";
|
|
position: absolute;
|
|
top: -5px; /* Zone étendue vers le haut */
|
|
right: -30px; /* Zone très élargie vers la droite */
|
|
bottom: -5px; /* Zone étendue vers le bas */
|
|
width: 40px; /* Zone large pour atteindre facilement le content-wrapper */
|
|
background: transparent;
|
|
z-index: 9998;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.sidebar-collapsed .treeview:hover::after {
|
|
pointer-events: auto;
|
|
}
|
|
|
|
/* Zone de maintien au-dessus du sous-menu */
|
|
.sidebar-collapsed .treeview-menu::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: -10px;
|
|
left: -30px;
|
|
right: -10px;
|
|
height: 15px;
|
|
background: transparent;
|
|
z-index: 9999;
|
|
pointer-events: auto; /* Permettre l'interaction */
|
|
}
|
|
|
|
/* Style des liens dans les sous-menus pour le content-wrapper - TAILLE RÉDUITE */
|
|
.sidebar-collapsed .treeview-menu > li > a {
|
|
padding: 8px 12px; /* Padding réduit (était 10px 15px) */
|
|
color: #495057; /* Couleur sombre pour contraster avec le fond blanc */
|
|
white-space: nowrap;
|
|
border-bottom: 1px solid rgba(210, 214, 222, 0.4);
|
|
transition: all 0.3s ease;
|
|
font-size: 12px; /* Taille de police réduite (était 13px) */
|
|
font-weight: 500;
|
|
display: block;
|
|
position: relative;
|
|
cursor: pointer; /* Curseur pointer pour indiquer la cliquabilité */
|
|
text-decoration: none; /* Supprimer le soulignement */
|
|
}
|
|
|
|
/* S'assurer que les liens sont cliquables */
|
|
.sidebar-collapsed .treeview-menu > li > a {
|
|
pointer-events: auto !important;
|
|
z-index: 10000; /* Z-index élevé pour garantir la cliquabilité */
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu > li:last-child > a {
|
|
border-bottom: none;
|
|
border-radius: 0 0 4px 4px; /* Border-radius réduit */
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu > li:first-child > a {
|
|
border-radius: 4px 4px 0 0; /* Border-radius réduit */
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu > li > a:hover {
|
|
background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
|
|
color: #fff;
|
|
padding-left: 15px; /* Padding réduit pour le hover (était 20px) */
|
|
transform: translateX(2px); /* Translation plus petite */
|
|
box-shadow: inset 0 0 10px rgba(255,255,255,0.1); /* Ombre réduite */
|
|
}
|
|
|
|
/* Icônes dans les sous-menus - TAILLE RÉDUITE */
|
|
.sidebar-collapsed .treeview-menu > li > a i {
|
|
margin-right: 6px; /* Marge réduite (était 8px) */
|
|
width: 14px; /* Largeur réduite (était 16px) */
|
|
text-align: center;
|
|
font-size: 11px; /* Taille d'icône réduite (était 12px) */
|
|
opacity: 0.7;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu > li > a:hover i {
|
|
opacity: 1;
|
|
transform: scale(1.05); /* Réduction de l'effet de zoom */
|
|
}
|
|
|
|
/* En-tête du sous-menu avec le titre du parent - TAILLE RÉDUITE */
|
|
.sidebar-collapsed .treeview-menu::after {
|
|
content: attr(data-parent-title);
|
|
display: block;
|
|
padding: 6px 12px 5px 12px; /* Padding réduit (était 8px 15px 6px 15px) */
|
|
background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
|
|
color: #fff;
|
|
font-size: 10px; /* Taille de police réduite (était 11px) */
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.2px; /* Espacement réduit */
|
|
border-radius: 4px 4px 0 0; /* Border-radius réduit */
|
|
border-bottom: 1px solid rgba(255,255,255,0.2); /* Bordure plus fine */
|
|
margin-bottom: 0;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Ajuster l'espacement du premier élément pour l'en-tête */
|
|
.sidebar-collapsed .treeview-menu > li:first-child {
|
|
margin-top: 22px; /* Espace pour l'en-tête réduite (était 25px) */
|
|
}
|
|
|
|
/* Flèche pointant vers la sidebar - TAILLE RÉDUITE */
|
|
.sidebar-collapsed .treeview-menu::before {
|
|
content: "";
|
|
position: absolute;
|
|
left: -5px; /* Position ajustée (était -6px) */
|
|
top: 12px; /* Position ajustée (était 15px) */
|
|
width: 0;
|
|
height: 0;
|
|
border-style: solid;
|
|
border-width: 5px 5px 5px 0; /* Taille réduite (était 6px) */
|
|
border-color: transparent #3c8dbc transparent transparent;
|
|
filter: drop-shadow(-1px 0 1px rgba(0,0,0,0.2)); /* Ombre réduite */
|
|
}
|
|
|
|
/* Indicateur visuel pour les menus avec sous-menus en mode réduit */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a::after {
|
|
content: "▶";
|
|
position: absolute;
|
|
right: 8px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
font-size: 9px; /* Taille réduite (était 10px) */
|
|
color: #8aa4af;
|
|
transition: all 0.3s ease;
|
|
display: block !important; /* Forcer l'affichage de la flèche */
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li.treeview:hover > a::after {
|
|
color: #3c8dbc; /* Couleur plus visible au hover */
|
|
right: 6px;
|
|
transform: translateY(-50%) scale(1.2) rotate(90deg); /* Rotation de la flèche */
|
|
}
|
|
|
|
/* Amélioration de l'indicateur de sous-menu */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a {
|
|
position: relative;
|
|
}
|
|
|
|
/* Ajout d'un petit point pour indiquer la présence d'un sous-menu */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a::before {
|
|
content: "●";
|
|
position: absolute;
|
|
bottom: 3px;
|
|
left: 50%;
|
|
transform: translateX(-50%);
|
|
font-size: 5px; /* Taille réduite (était 6px) */
|
|
color: #3c8dbc;
|
|
opacity: 0.7;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.sidebar-collapsed .sidebar-menu > li.treeview:hover > a::before {
|
|
opacity: 1;
|
|
color: #fff;
|
|
transform: translateX(-50%) scale(1.3); /* Effet réduit */
|
|
}
|
|
|
|
/* Tooltip spécial pour les menus avec sous-menus - MASQUÉ EN MODE RÉDUIT */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a.tooltip-disabled::before {
|
|
display: none !important; /* Masquer le tooltip pour les menus avec sous-menus */
|
|
}
|
|
|
|
/* Amélioration du survol des éléments principaux en mode réduit */
|
|
.sidebar-collapsed .sidebar-menu > li > a:hover {
|
|
background-color: #1e282c;
|
|
border-left-color: #3c8dbc;
|
|
transform: scale(1.03); /* Léger agrandissement au hover (était 1.05) */
|
|
}
|
|
|
|
/* Effet spécial pour les menus avec sous-menus */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview > a:hover {
|
|
background-color: #1e282c;
|
|
border-left-color: #3c8dbc;
|
|
transform: scale(1.03); /* Effet réduit */
|
|
box-shadow: 1px 0 8px rgba(60, 141, 188, 0.3); /* Ombre pour indiquer l'ouverture */
|
|
}
|
|
|
|
/* Animation d'ouverture du sous-menu dans le content-wrapper */
|
|
.sidebar-collapsed .treeview:hover .treeview-menu {
|
|
animation: slideInFromSidebar 0.3s cubic-bezier(0.4, 0, 0.2, 1); /* Durée réduite */
|
|
}
|
|
|
|
@keyframes slideInFromSidebar {
|
|
0% {
|
|
opacity: 0;
|
|
transform: translateX(-20px) scale(0.95); /* Distance réduite */
|
|
filter: blur(2px); /* Effet de flou réduit */
|
|
}
|
|
60% {
|
|
opacity: 0.8;
|
|
transform: translateX(3px) scale(1.01); /* Distance réduite */
|
|
filter: blur(0.5px); /* Effet de flou réduit */
|
|
}
|
|
100% {
|
|
opacity: 1;
|
|
transform: translateX(0) scale(1);
|
|
filter: blur(0);
|
|
}
|
|
}
|
|
|
|
/* Positionnement dynamique basé sur la position de l'élément parent */
|
|
.sidebar-collapsed .sidebar-menu > li.treeview {
|
|
position: relative;
|
|
}
|
|
|
|
/* Ajustement automatique de la position verticale */
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(1) .treeview-menu { top: 50px; } /* 0px + header */
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(2) .treeview-menu { top: 94px; } /* ~44px par item */
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(3) .treeview-menu { top: 138px; }
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(4) .treeview-menu { top: 182px; }
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(5) .treeview-menu { top: 226px; }
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(6) .treeview-menu { top: 270px; }
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(7) .treeview-menu { top: 314px; }
|
|
.sidebar-collapsed .sidebar-menu > li:nth-child(8) .treeview-menu { top: 358px; }
|
|
|
|
/* Adaptation responsive du sous-menu dans le content-wrapper - TAILLES RÉDUITES */
|
|
@media (max-width: 992px) {
|
|
.sidebar-collapsed .treeview-menu {
|
|
width: 150px; /* Largeur réduite pour tablettes (était 170px) */
|
|
left: 75px;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.sidebar-collapsed .treeview-menu {
|
|
width: 130px; /* Largeur réduite pour mobile (était 150px) */
|
|
left: 10px;
|
|
right: auto;
|
|
max-width: calc(100vw - 20px);
|
|
}
|
|
|
|
/* Réduire encore plus les éléments sur mobile */
|
|
.sidebar-collapsed .treeview-menu > li > a {
|
|
padding: 6px 10px; /* Padding réduit (était 8px 12px) */
|
|
font-size: 11px; /* Taille réduite (était 12px) */
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu > li > a i {
|
|
margin-right: 5px; /* Marge réduite (était 6px) */
|
|
width: 12px; /* Largeur réduite (était 14px) */
|
|
font-size: 10px; /* Taille réduite (était 11px) */
|
|
}
|
|
}
|
|
|
|
|
|
/* Scrollbar standard pour mode normal */
|
|
.main-sidebar::-webkit-scrollbar {
|
|
width: 8px;
|
|
}
|
|
|
|
.main-sidebar::-webkit-scrollbar-track {
|
|
background: #1a2226;
|
|
}
|
|
|
|
.main-sidebar::-webkit-scrollbar-thumb {
|
|
background: #3c8dbc;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
.main-sidebar::-webkit-scrollbar-thumb:hover {
|
|
background: #367fa9;
|
|
}
|
|
|
|
/* Scrollbar très fine pour le mode réduit - POSITIONNÉE À GAUCHE */
|
|
.sidebar-collapsed .main-sidebar::-webkit-scrollbar {
|
|
width: 4px; /* Scrollbar très fine */
|
|
}
|
|
|
|
.sidebar-collapsed .main-sidebar::-webkit-scrollbar-track {
|
|
background: rgba(26, 34, 38, 0.8);
|
|
border-radius: 0;
|
|
}
|
|
|
|
.sidebar-collapsed .main-sidebar::-webkit-scrollbar-thumb {
|
|
background: rgba(60, 141, 188, 0.7);
|
|
border-radius: 2px;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.sidebar-collapsed .main-sidebar::-webkit-scrollbar-thumb:hover {
|
|
background: rgba(54, 127, 169, 0.9);
|
|
}
|
|
|
|
/* Pour Firefox - Scrollbar fine en mode réduit */
|
|
.sidebar-collapsed .main-sidebar {
|
|
scrollbar-width: thin;
|
|
scrollbar-color: rgba(60, 141, 188, 0.7) rgba(26, 34, 38, 0.8);
|
|
}
|
|
|
|
/* Amélioration de la zone de scroll pour une meilleure UX */
|
|
.sidebar-collapsed .main-sidebar {
|
|
padding-left: 2px; /* Petit espace pour la scrollbar à gauche */
|
|
padding-right: 0;
|
|
}
|
|
|
|
/* Indicateur de scroll en mode réduit - À GAUCHE */
|
|
.sidebar-collapsed .main-sidebar::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0; /* Indicateur positionné à gauche */
|
|
width: 1px;
|
|
height: 100%;
|
|
background: linear-gradient(to bottom,
|
|
rgba(60, 141, 188, 0.3) 0%,
|
|
rgba(60, 141, 188, 0.1) 50%,
|
|
rgba(60, 141, 188, 0.3) 100%);
|
|
pointer-events: none;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Animation douce pour le scroll */
|
|
.sidebar-collapsed .main-sidebar {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
/* Responsive */
|
|
@media (max-width: 768px) {
|
|
.main-sidebar {
|
|
margin-left: -230px;
|
|
}
|
|
|
|
.content-wrapper {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.main-header {
|
|
width: 100%;
|
|
margin-left: 0;
|
|
}
|
|
|
|
/* Footer en mode mobile - Même taille que le content-wrapper */
|
|
.main-footer {
|
|
left: 0; /* Même position que le content-wrapper sur mobile */
|
|
}
|
|
|
|
.sidebar-mobile-open .main-sidebar {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.sidebar-mobile-open .content-wrapper {
|
|
margin-left: 0;
|
|
}
|
|
|
|
.sidebar-mobile-open .main-footer {
|
|
left: 0; /* Footer suit le content-wrapper */
|
|
}
|
|
|
|
.sidebar-collapsed .treeview-menu {
|
|
left: 70px;
|
|
width: 150px; /* Largeur réduite (était 180px) */
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
</style>
|