/* Amélioration de l'interface de gestion des heures */

body, .container { background: #f6f8fa; }

.card {
    border-radius: 1.1rem;
    box-shadow: 0 2px 12px 0 rgba(60,72,88,.08);
    border: none;
    transition: box-shadow 0.2s;
}
.card:hover { box-shadow: 0 4px 24px 0 rgba(60,72,88,.16); }

.summary-card-header {
    font-size: 1.2em;
    font-weight: 600;
    padding: 1.1em 0.5em;
    border-radius: 1.1rem 1.1rem 0 0;
    background: #f1f3f6;
    margin-bottom: 0.5em;
}
.summary-card-header.positif { color: #198754; background: linear-gradient(90deg, #e6f9ed 0%, #f1f3f6 100%); }
.summary-card-header.negatif { color: #dc3545; background: linear-gradient(90deg, #fdeaea 0%, #f1f3f6 100%); }
.summary-card-header.equilibre { color: #0d6efd; background: linear-gradient(90deg, #eaf1fd 0%, #f1f3f6 100%); }

.summary-list { display: flex; flex-direction: column; gap: 0.5em; font-size: 1.05em; }
.summary-item { display: flex; align-items: center; justify-content: space-between; padding: 0.4em 0.7em; border-radius: 0.6em; background: #fff; box-shadow: 0 1px 4px 0 rgba(60,72,88,.06); }

.duration-big { font-size: 1.25em; font-weight: 600; letter-spacing: 0.03em; }

.enregistrement.type-plus { border-left: 5px solid #198754; }
.enregistrement.type-moins { border-left: 5px solid #dc3545; }
.enregistrement.type-paye { border-left: 5px solid #0dcaf0; }
.enregistrement.type-enfant_malade { border-left: 5px solid #ffc107; }
.enregistrement.type-deces { border-left: 5px solid #6c757d; }

.card-body .badge { font-size: 0.85em; padding: 0.5em 0.8em; border-radius: 0.7em; margin-right: 0.5em; }

.btn { border-radius: 0.7em; font-weight: 500; transition: background 0.15s, color 0.15s; }
.btn-primary { background: linear-gradient(90deg, #0d6efd 60%, #6ea8fe 100%); border: none; }
.btn-primary:hover { background: linear-gradient(90deg, #0b5ed7 60%, #5c9cf5 100%); }
.btn-outline-secondary, .btn-outline-warning, .btn-outline-danger { border-width: 2px; }

input.form-control, select.form-control, textarea.form-control {
    border-radius: 0.7em;
    border: 1px solid #e0e3e7;
    background: #fff;
    transition: border 0.15s;
}
input.form-control:focus, select.form-control:focus, textarea.form-control:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.1rem #0d6efd33;
}

.comment-box {
    background: #f8f9fa;
    border-radius: 0.6em;
    padding: 0.4em 1em 0.4em 2em;
    font-size: 0.98em;
    color: #495057;
    min-height: 2em;
    box-shadow: 0 1px 4px 0 rgba(60,72,88,.04);
}

/* Filtres */
#filterForm .input-group, #globalFilterForm .input-group {
    background: #f8fafc;
    border-radius: 1em;
    box-shadow: 0 1px 6px 0 rgba(60,72,88,.07);
    padding: 0.5em 0.7em;
    gap: 0.5em;
    flex-wrap: wrap;
}
#filterForm .input-group > *, #globalFilterForm .input-group > * { min-width: 0; }
#filterForm .form-control, #globalFilterForm .form-control, #filterForm .form-select, #globalFilterForm .form-select {
    font-size: 1em;
    min-width: 100px;
    max-width: 180px;
    flex: 1 1 120px;
}
#filterForm .btn, #globalFilterForm .btn {
    min-width: 38px;
    min-height: 38px;
    font-size: 1.1em;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border-radius: 0.7em;
}
#filterForm .btn-primary, #globalFilterForm .btn-primary, #filterForm .btn-outline-secondary, #globalFilterForm .btn-outline-secondary {
    margin-left: 0.2em;
}
@media (max-width: 600px) {
    #filterForm .input-group, #globalFilterForm .input-group {
        flex-direction: column;
        align-items: stretch;
        gap: 0.5em;
        padding: 0.7em 0.3em;
        box-shadow: 0 1px 8px 0 rgba(60,72,88,.10);
    }
    #filterForm .form-control, #globalFilterForm .form-control, #filterForm .form-select, #globalFilterForm .form-select {
        max-width: 100%; min-width: 0; width: 100%; font-size: 1.08em; box-sizing: border-box;
    }
    #filterForm .form-select, #globalFilterForm .form-select {
        width: 100%; min-width: 0; max-width: 100%; padding-right: 2.2em;
    }
    #filterForm .btn, #globalFilterForm .btn {
        min-width: 100%; margin: 0.1em 0 0 0; font-size: 1.13em;
    }
    #filterForm .input-group-text, #globalFilterForm .input-group-text {
        justify-content: center; width: 100%; border-radius: 0.7em 0.7em 0 0; margin-bottom: 0.2em;
    }
    #navFilterForm {
        justify-content: center !important;
    }
}

#globalFilterForm .input-group-text {
    background: #e9ecef;
    border: none;
    border-radius: 0.7em;
    font-size: 1.1em;
    color: #3383d5;
}
#globalFilterForm select.form-select {
    min-width: 110px; max-width: 130px; background: #f1f5f9; border: 1px solid #e0e3e7; font-weight: 500; color: #3383d5;
}
#globalFilterForm input[type="month"], #globalFilterForm input[type="number"] {
    min-width: 120px; max-width: 150px; background: #fff; border: 1px solid #e0e3e7; font-weight: 500; color: #495057;
}
#globalFilterForm input[type="month"]:focus, #globalFilterForm input[type="number"]:focus {
    border-color: #0d6efd; box-shadow: 0 0 0 0.1rem #0d6efd33;
}
#globalFilterForm .btn-primary, #globalFilterForm .btn-outline-secondary {
    min-width: 38px; min-height: 38px; font-size: 1.1em; display: flex; align-items: center; justify-content: center; padding: 0; border-radius: 0.7em;
}
#globalFilterForm .btn-outline-secondary:focus { border-color: #0d6efd; }
#globalFilterForm .text-muted { font-size: 0.93em; color: #6c757d !important; }
#globalFilterForm .badge.bg-info, #globalFilterForm .badge.bg-secondary {
    font-size: 0.95em; padding: 0.4em 0.9em; border-radius: 0.7em; margin-left: 0.3em;
}
#globalFilterForm .fw-bold { color: #3383d5; }
@media (max-width: 600px) {
    #globalFilterForm .input-group { flex-direction: column; align-items: stretch; gap: 0.4em; padding: 0.7em 0.3em; }
    #globalFilterForm .btn-primary, #globalFilterForm .btn-outline-secondary { min-width: 100%; margin-top: 0.2em; }
}

@media (max-width: 767px) {
    .summary-list { font-size: 0.98em; }
    .duration-big { font-size: 1.1em; }
    .card { margin-bottom: 1.2em; }
}

.enregistrement:hover { background: #f1f3f6; box-shadow: 0 2px 12px 0 rgba(60,72,88,.10); transition: background 0.2s, box-shadow 0.2s; }

.modal-content { border-radius: 1.1rem; }

.badge.bg-info { background: linear-gradient(90deg, #0dcaf0 60%, #b6effb 100%) !important; color: #0d6efd !important; }
.badge.bg-secondary { background: linear-gradient(90deg, #adb5bd 60%, #dee2e6 100%) !important; color: #495057 !important; }

/* Impression */
@media print {
    .no-print, .no-print *, .navbar, .d-md-none.mb-3, .col-md-3.d-none.d-md-block, footer, .footer, .page-header, h1, h2, h3, h4, h5, h6.text-primary, h2.no-print, h1.no-print, h3.no-print, h4.no-print, h5.no-print, h6.no-print { display: none !important; }
    html, body, .container, .printable { background: #fff !important; font-size: 12px !important; line-height: 1.2 !important; max-width: 100vw !important; overflow: visible !important; }
    .card, .shadow-sm, .shadow-lg { box-shadow: none !important; border: 1px solid #bbb !important; }
    .table, .table-bordered, .table-striped { background: #fff !important; color: #222 !important; border-collapse: collapse !important; font-size: 0.85em !important; }
    .table th, .table td { border: 1px solid #bbb !important; background: #fff !important; color: #222 !important; padding: 0.4em 0.7em !important; }
    .badge, .badge.bg-success, .badge.bg-danger, .badge.bg-info, .badge.bg-warning, .badge.bg-secondary { background: none !important; color: #222 !important; border: 1px solid #bbb !important; box-shadow: none !important; font-size: 1em !important; padding: 0.2em 0.5em !important; }
    .summary-card-header, .summary-list, .summary-item, .duration-big, .badge, .comment-box { font-size: 0.95em !important; }
    .summary-card-header, .summary-list, .summary-item { background: none !important; color: #222 !important; box-shadow: none !important; }
    .duration-big { color: #222 !important; font-weight: 600 !important; }
    .comment-box { background: none !important; color: #555 !important; font-size: 0.96em !important; box-shadow: none !important; border: none !important; padding: 0.1em 0 0.1em 1.2em !important; }
    .enregistrement { break-inside: avoid; page-break-inside: avoid; }
    .container, .printable { display: block !important; }
    .filter-state-print, .filter-state-print-printonly { display: block !important; color: #222 !important; margin-bottom: 1em !important; font-size: 1.08em !important; font-weight: 600 !important; }
    .filter-state-print .badge { background: none !important; color: #222 !important; border: 1px solid #bbb !important; box-shadow: none !important; font-size: 1em !important; padding: 0.2em 0.5em !important; }
    .col-md-9 { flex: 0 0 100% !important; max-width: 100% !important; }
    .card.enregistrement { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; page-break-inside: avoid; margin-bottom: 0.5rem !important; box-shadow: none !important; border: 1px solid #ccc !important; }
    .card.enregistrement .card-body { display: flex !important; flex-direction: row !important; align-items: center !important; justify-content: space-between !important; width: 100%; padding: 0.5rem 1rem !important; }
    .card.enregistrement .summary-item, .card.enregistrement .comment-box { margin: 0 1.5rem 0 0 !important; display: inline-block !important; vertical-align: middle !important; }
    .card.enregistrement .duration-big { font-size: 1.1em !important; margin: 0 1.5rem 0 0 !important; }
    .card.enregistrement .d-flex { flex-wrap: nowrap !important; gap: 1.5rem !important; }
    .card.enregistrement .no-print { display: none !important; }
}

.list-group-item.list-group-item-action:hover, .list-group-item.list-group-item-action:focus {
    background: #e0f2fe !important; color: #3383d5 !important; font-weight: 600 !important; transition: background 0.15s, color 0.15s;
}

nav.navbar {
    background: linear-gradient(90deg, #23272b 60%, #3a4250 100%) !important;
    box-shadow: 0 2px 12px 0 rgba(60,72,88,.13);
    border-bottom: 2px solid #0d6efd;
    padding-top: 0.7em !important;
    padding-bottom: 0.7em !important;
    font-size: 0.98em !important;
}
.navbar-brand { font-size: 1.08em; font-weight: 700; color: #fff !important; letter-spacing: 0.02em; display: flex; align-items: center; gap: 0.5em; }
.navbar-brand i { color: #0d6efd; font-size: 1.2em; }
.navbar-nav .nav-link { color: #e0e6ed !important; font-size: 0.98em; font-weight: 500; padding: 0.6em 1.1em !important; border-radius: 0.7em; margin: 0 0.2em; transition: background 0.15s, color 0.15s; display: flex; align-items: center; gap: 0.5em; }
.navbar-nav .nav-link.active, .navbar-nav .nav-link:focus, .navbar-nav .nav-link:hover { background: #0d6efd !important; color: #fff !important; box-shadow: 0 2px 8px 0 rgba(13,110,253,.10); }
.navbar-nav .nav-link.text-danger { color: #ff4d4f !important; font-weight: 600; }
.navbar-nav .nav-link.text-danger:hover, .navbar-nav .nav-link.text-danger:focus { background: #fff0f0 !important; color: #b02a37 !important; }
.navbar-toggler { border-radius: 0.7em; border: 2px solid #0d6efd; background: #23272b; }
.navbar-toggler:focus { outline: none; box-shadow: 0 0 0 0.15rem #0d6efd55; }
@media (max-width: 991px) {
    .navbar-nav .nav-link { margin: 0.2em 0; padding: 0.7em 1.2em !important; font-size: 1em; }
}

.recap-summary-block { width: 300px; max-width: 100%; margin-left: auto; margin-right: auto; display: block; }

.filter-group {
	flex: 1;
	min-width: fit-content;
}

.filter-actions {
	justify-content: flex-end;
}

@media (max-width: 991px) {
	.filter-group {
		width: 100%;
	}

	.filter-actions {
		justify-content: stretch;
	}

	.filter-actions button {
		flex: 1;
	}
}

.navbar-brand span {
	font-weight: 600;
	letter-spacing: 0.5px;
}

.nav-link.active {
	border-bottom: 3px solid #0d6efd;
	padding-bottom: 0.5rem;
}