radiantrh/Bootstrap_new/css/style_office.css
2025-12-29 21:55:54 +00:00

1267 lines
28 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* ============================================
STYLE OFFICE POUR LE PORTAIL RH - VERSION CORRIGÉE
Encodage: UTF-8 sans BOM
============================================ */
:root {
/* PowerPoint/Office 2019 Color Palette */
--office-primary: #b7472a; /* Sidebar color - PowerPoint accent */
--office-secondary: #2b579a; /* Header/buttons - Office blue */
--office-accent: #107c10; /* Success/active states - Excel green */
--office-light: #f3f2f1; /* Background - Office gray */
--office-common: #e6e6e6; /* Background - Office gray */
--office-dark: #323130; /* Text color */
--office-border: #d0d0d0; /* Borders */
--office-hover: #f0f0f0; /* Hover states */
--office-card: #ffffff; /* Card backgrounds */
/* Dimensions */
--sidebar-width: 260px;
--sidebar-collapsed: 70px;
--header-height: 64px;
--transition-speed: 0.3s;
/* Responsive breakpoints */
--breakpoint-tablet: 1200px;
--breakpoint-mobile: 768px;
--office-primary-light: rgba(183, 71, 42, 0.08);
--office-primary-lighter: rgba(183, 71, 42, 0.04);
--office-primary-border: rgba(183, 71, 42, 0.15);
--office-warm-bg: #fefcfb;
--office-card-highlight: #fff9f8;
--content-margin-left: calc(var(--sidebar-width) + 24px);
--content-margin-right: 24px;
--container-max: 1400px;
--container-pad: 24px;
}
/* ============================================
BASE STYLES & RESET
============================================ */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Segoe UI', 'Segoe UI Web (West European)', -apple-system, BlinkMacSystemFont, Roboto, 'Helvetica Neue', sans-serif;
background-color: var(--office-common);
color: var(--office-dark);
line-height: 1.5;
overflow-x: hidden;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* ============================================
HEADER STYLES
============================================ */
.app-header {
background-color: var(--office-light) !important;
height: var(--header-height);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1030;
}
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
padding: 0 24px;
}
.logo-container {
display: flex;
align-items: center;
gap: 16px;
}
.app-logo {
display: flex;
align-items: center;
color: #313c4c;
text-decoration: none;
font-weight: 600;
font-size: 20px;
}
.app-logo img { height: 36px; }
.notification-btn i{ font-size : 15pt !important; }
#lienlogo img{ width:50px; max-height: 50px; }
/* ============================================
SIDEBAR STYLES
============================================ */
.app-sidebar {
width: var(--sidebar-width); /* 70px */
background: linear-gradient(180deg, var(--office-primary) 0%, #a53e24 100%);
position: fixed;
top: var(--header-height);
left: 0;
bottom: 0;
z-index: 1020;
box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
transition: width var(--transition-speed) ease;
overflow-y: auto;
overflow-x: hidden;
}
/* Pattern overlay */
.app-sidebar::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image:
radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.03) 0%, transparent 20%),
radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.03) 0%, transparent 20%);
pointer-events: none;
}
.sidebar-nav {
padding: 24px 0;
}
.nav-section {
margin-bottom: 32px;
padding: 0 20px;
}
.nav-title {
color: rgba(255, 255, 255, 0.7);
font-size: 12px;
font-weight: 600;
text-transform: uppercase;
letter-spacing: 0.5px;
margin-bottom: 12px;
padding: 0 16px;
}
.nav-item {
margin-bottom: 4px;
}
.nav-link {
display: flex;
align-items: center;
color: rgba(255, 255, 255, 0.85);
padding: 12px 16px;
text-decoration: none;
border-radius: 6px;
transition: all 0.2s ease;
position: relative;
overflow: hidden;
}
.nav-link:hover {
background-color: rgba(255, 255, 255, 0.1);
color: white;
}
.nav-link.active {
background-color: rgba(255, 255, 255, 0.15);
color: white;
font-weight: 500;
}
.nav-link i {
width: 24px;
font-size: 18px;
margin-right: 12px;
text-align: center;
}
.nav-text {
flex: 1;
font-size: 14px;
}
.nav-badge {
background-color: var(--office-accent);
color: white;
font-size: 11px;
padding: 2px 6px;
border-radius: 10px;
margin-left: 8px;
}
.nav-arrow {
font-size: 12px;
opacity: 0.7;
transition: transform 0.2s ease;
}
.nav-link[aria-expanded="true"] .nav-arrow {
transform: rotate(90deg);
}
.nav-submenu {
background-color: rgba(0, 0, 0, 0.1);
border-radius: 6px;
margin-top: 4px;
padding: 8px 0;
}
.nav-submenu .nav-link {
padding: 8px 16px 8px 52px;
font-size: 13px;
}
.nav-submenu .nav-link::before {
content: '•';
position: absolute;
left: 36px;
opacity: 0.6;
}
/* ============================================
MAIN CONTENT AREA
============================================ */
.app-main {
margin-left: var(--sidebar-width);
padding-top: var(--header-height);
min-height: 100vh;
transition: margin-left var(--transition-speed) ease;
background-color: var(--office-light);
}
/* Quand sidebar réduite */
.app-sidebar.collapsed {
width: var(--sidebar-collapsed);
}
.app-main.collapsed {
margin-left: var(--sidebar-collapsed);
}
.app-main.sidebar-open {
margin-left: var(--sidebar-width);
}
/* ============================================
NAVIGATION TABS
============================================ */
.nav-bar {
background-color: white;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
border: 1px solid var(--office-border);
position: fixed;
top: var(--header-height); /* Directement sous le header */
left: var(--sidebar-width); /* Commence après la sidebar */
right: 0;
z-index: 1000;
height: 56px;
display: flex;
align-items: center;
padding: 0;
margin: 0;
transition: left var(--transition-speed) ease;
}
/* Conteneur pour centrer le contenu */
.nav-bar > .nav-tabs {
width: 100%;
max-width: var(--container-max);
margin: 0 auto;
padding: 0 var(--container-pad);
height: 100%;
display: flex;
align-items: center;
gap: 4px;
overflow-x: auto;
}
.nav-tab {
display: inline-flex;
align-items: center;
padding: 10px 18px;
background-color: transparent;
color: var(--office-dark);
text-decoration: none;
border-radius: 6px;
font-size: 14px;
font-weight: 500;
white-space: nowrap;
transition: all 0.2s ease;
border: 1px solid transparent;
height: 40px;
}
.nav-tab:hover {
background-color: var(--office-hover);
color: var(--office-secondary);
}
.nav-tab.active {
background-color: var(--office-secondary);
color: white;
border-color: var(--office-secondary);
}
.nav-tab i {
margin-right: 8px;
font-size: 16px;
}
/* Content card */
.content-card {
background: var(--office-card);
border-radius: 8px;
box-shadow: 0 2px 6px rgba(0,0,0,.05);
margin-top: 8px; /* Ajout pour rapprocher visuellement la carte de la nav-bar */
}
.content-area {
padding: calc(var(--header-height) + 56px) 24px 24px 24px; /* supprime le +8px */
max-width: 1400px;
margin: 24px auto !important;
}
/* Sidebar collapsée (tablette) */
@media (max-width: 1200px) {
.nav-bar { left: var(--sidebar-collapsed); }
.content-area { padding-left: 24px; padding-right: 24px; }
}
.card-header {
background-color: #fafafa;
border-bottom: 1px solid var(--office-border);
padding: 20px 24px;
font-weight: 600;
color: var(--office-dark);
font-size: 18px;
display: flex;
align-items: center;
justify-content: space-between;
}
.card-body {
padding: 24px;
background-color: var(--office-card);
}
/* ============================================
HEADER CONTROLS
============================================ */
.header-controls {
display: flex;
align-items: center;
gap: 16px;
}
.header-btn {
background: transparent;
border: none;
color: #313c4c;
padding: 8px;
border-radius: 4px;
cursor: pointer;
position: relative;
transition: background-color 0.2s ease;
}
.header-btn:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.notification-badge {
position: absolute;
top: 2px;
right: 2px;
background-color: var(--office-accent);
color: white;
font-size: 10px;
font-weight: 600;
width: 15px;
height: 15px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
}
.user-menu {
display: flex;
align-items: center;
gap: 12px;
cursor: pointer;
padding: 4px 12px;
border-radius: 6px;
transition: background-color 0.2s ease;
}
.user-menu:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.user-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
background: linear-gradient(135deg, var(--office-primary), #ff6b35);
color: white;
display: flex;
align-items: center;
justify-content: center;
font-weight: 600;
font-size: 14px;
}
.user-info {
display: flex;
flex-direction: column;
}
.user-name {
color: #313c4c;
font-weight: 500;
font-size: 14px;
}
.user-role {
color: #313c4c;
font-size: 12px;
}
/* ============================================
CONTEXT PANEL
============================================ */
.context-panel {
position: fixed;
right: -380px;
top: var(--header-height);
bottom: 0;
width: 380px;
background-color: white;
box-shadow: -2px 0 12px rgba(0, 0, 0, 0.1);
z-index: 1015;
transition: right 0.3s ease;
display: flex;
flex-direction: column;
border-left: 1px solid var(--office-border);
}
.context-panel.open {
right: 0;
}
.context-header {
background: linear-gradient(135deg, var(--office-primary), #ee6a49);
color: white;
padding: 20px 24px;
display: flex;
align-items: center;
justify-content: space-between;
}
.context-title {
font-size: 18px;
font-weight: 600;
display: flex;
align-items: center;
gap: 10px;
}
.context-close {
background: transparent;
border: none;
color: white;
font-size: 20px;
cursor: pointer;
padding: 4px;
border-radius: 4px;
transition: background-color 0.2s ease;
}
.context-close:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.context-body {
flex: 1;
padding: 24px;
overflow-y: auto;
background-color: #d0d0d0 !important;
}
.context-section {
margin-bottom: 28px;
}
.section-title {
font-size: 14px;
font-weight: 600;
color: var(--office-secondary);
margin-bottom: 12px;
text-transform: uppercase;
letter-spacing: 0.5px;
display: flex;
align-items: center;
gap: 8px;
}
.section-title i {
font-size: 16px;
}
.info-box {
background-color: #fafafa;
border: 1px solid var(--office-border);
border-radius: 6px;
padding: 16px;
margin-bottom: 12px;
}
.info-label {
font-size: 12px;
color: #666;
margin-bottom: 4px;
}
.info-value {
font-size: 15px;
font-weight: 500;
color: var(--office-dark);
line-height: 1.4;
}
.action-btn {
width: 100%;
padding: 12px;
background-color: white;
border: 1px solid var(--office-border);
border-radius: 6px;
color: var(--office-dark);
font-weight: 500;
text-align: left;
display: flex;
align-items: center;
gap: 10px;
cursor: pointer;
transition: all 0.2s ease;
margin-bottom: 8px;
}
.action-btn:hover {
background-color: var(--office-hover);
border-color: var(--office-secondary);
color: var(--office-secondary);
}
.action-btn i {
width: 20px;
text-align: center;
font-size: 18px;
}
.photo-container {
text-align: center;
padding: 16px;
background-color: #fafafa;
border-radius: 8px;
border: 1px solid var(--office-border);
}
.patient-photo {
width: 150px;
height: 150px;
border-radius: 8px;
object-fit: cover;
border: 3px solid white;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
cursor: pointer;
transition: transform 0.3s ease;
}
.patient-photo:hover {
transform: scale(1.05);
}
/* ============================================
CONTEXT TOGGLE BUTTON
============================================ */
.context-toggle {
position: fixed;
right: 24px;
bottom: 24px;
width: 56px;
height: 56px;
border-radius: 50%;
background: linear-gradient(135deg, var(--office-primary), #ff6b35);
color: white;
border: none;
box-shadow: 0 4px 12px rgba(183, 71, 42, 0.3);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 20px;
z-index: 1010;
transition: all 0.3s ease;
}
.context-toggle:hover {
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(183, 71, 42, 0.4);
}
/* ============================================
TEST MODE INDICATOR
============================================ */
.test-indicator {
background: linear-gradient(45deg, #ffd700, #ffed4e);
color: #8a6d3b;
padding: 4px 12px;
border-radius: 4px;
font-size: 12px;
font-weight: 600;
display: inline-flex;
align-items: center;
gap: 6px;
margin-left: 12px;
animation: pulse 2s infinite;
}
@keyframes pulse {
0% { opacity: 1; }
50% { opacity: 0.7; }
100% { opacity: 1; }
}
/* ============================================
LANGUAGE SELECTOR
============================================ */
.language-selector {
display: flex;
align-items: center;
gap: 8px;
padding: 6px 12px;
background-color: rgba(255, 255, 255, 0.1);
border-radius: 4px;
cursor: pointer;
transition: background-color 0.2s ease;
color: #313c4c;
}
.language-selector:hover {
background-color: rgba(255, 255, 255, 0.2);
}
.language-flag {
width: 24px;
height: 16px;
object-fit: cover;
border-radius: 2px;
}
/* ============================================
MODAL CUSTOMIZATION
============================================ */
.modal-office .modal-header {
background: linear-gradient(135deg, var(--office-secondary), #1e4a8b);
color: white;
border-bottom: none;
}
.modal-office .modal-title {
font-weight: 600;
}
/* Force le modal et son voile noir au-dessus de tout */
.modal-office {
z-index: 1060 !important;
}
/* Le backdrop (le fond noir) doit aussi être remonté */
.modal-backdrop {
z-index: 1055 !important;
}
/* ============================================
RESPONSIVE DESIGN
============================================ */
@media (max-width: 1200px) {
.app-sidebar {
width: var(--sidebar-collapsed);
}
.app-main {
margin-left: var(--sidebar-collapsed);
}
.nav-text,
.nav-title,
.nav-badge,
.nav-arrow {
display: none;
}
.nav-link {
justify-content: center;
padding: 16px;
}
.nav-link i {
margin-right: 0;
font-size: 20px;
}
.nav-submenu .nav-link {
padding: 12px;
justify-content: center;
}
.nav-submenu .nav-link::before {
display: none;
}
.context-panel {
width: 100%;
right: -100%;
}
}
/* Mobile — UNE SEULE définition */
@media (max-width: 768px) {
.app-sidebar { transform: translateX(-100%); width: var(--sidebar-width); }
.app-sidebar.show { transform: translateX(0); }
.app-main { margin-left: 0; }
.nav-bar { left: 0; border-radius: 0; top: var(--header-height); }
.nav-bar > .nav-tabs { padding: 0 16px; }
/* Garder +8px ici pour fermer lécart (rouge) */
.content-area { padding: calc(var(--header-height) + 56px + 8px) 16px 16px 16px; max-width: 100%; }
.content-card { border-radius: 8px; margin: 8px 0 16px 0; /* 8px en haut, 16px en bas */ }
.header-content { padding: 0 16px; }
.user-info { display: none; }
.accordion-header, .accordion-header i, .accordion-header span {
font-size: 1.8rem !important;
font-weight: bold !important;
}
.accordion-title {
font-size: 0.9rem !important;
}
.financial-item {
border-right: none !important;
border-bottom: 1px solid var(--office-border);
}
.editor-paper {
padding: 1rem !important;
font-size: 9pt;
}
}
/* Écrans larges : mêmes insets pour nav-tabs et content-area */
@media (min-width: 1400px) {
.nav-bar > .nav-tabs {
padding-left: calc((100vw - 1400px) / 2);
padding-right: calc((100vw - 1400px) / 2);
}
.content-area {
padding-left: calc((100vw - 1400px) / 2);
padding-right: calc((100vw - 1400px) / 2);
}
}
/* ============================================
SCROLLBAR STYLING
============================================ */
.app-sidebar::-webkit-scrollbar,
.context-body::-webkit-scrollbar {
width: 6px;
}
.app-sidebar::-webkit-scrollbar-track,
.context-body::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.1);
border-radius: 3px;
}
.app-sidebar::-webkit-scrollbar-thumb,
.context-body::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.3);
border-radius: 3px;
}
.app-sidebar::-webkit-scrollbar-thumb:hover,
.context-body::-webkit-scrollbar-thumb:hover {
background: rgba(255, 255, 255, 0.4);
}
/* ============================================
STYLE DE SCROLLBAR POUR NAV-TABS
============================================ */
.nav-tabs::-webkit-scrollbar {
height: 4px;
}
.nav-tabs::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.05);
border-radius: 2px;
}
.nav-tabs::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.2);
border-radius: 2px;
}
.nav-tabs::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.3);
}
/*Accueil*/
.container { padding: 0 25px 25px 25px 25px; }
h1 { margin-bottom: 20px; }
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.card {
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 6px rgba(0,0,0,.05);
}
.card h3 { margin: 0 0 10px; font-size: 14px; color: #666; }
.card .value { font-size: 1.0rem; font-weight: bold; }
.grid-1{display:grid; grid-template-rows:auto; margin-top:25px;}
.grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:20px; margin-top:25px; }
ul { list-style:none; padding:0; margin:0; }
li { padding:10px 0; border-bottom:1px solid #eee; }
li i { margin-right:10px; color:#007bff; }
.alert i { color:#ff9800; }
.chart {
height: 190px;
background:#eef2f7;
border-radius:6px;
display:flex;
align-items:center;
justify-content:center;
color:#888;
font-style:italic;
min-height: 315px;
}
/* Style pour les sous-détails dans les KPIs */
.sub-values {
margin-top: 10px;
padding-top: 10px;
border-top: 1px solid #eee; /* Fine séparation pour l'harmonie */
}
.sub-item {
display: flex;
justify-content: space-between;
font-size: 12px; /* Plus petit pour ne pas voler la vedette au KPI principal */
color: #666;
line-height: 1.6;
}
.sub-item strong {
color: #333;
}
.accordion-section {
margin-bottom: 2px;
border: 1px solid #ddd;
border-radius: 5px;
overflow: hidden;
}
.accordion-header {
display: flex;
align-items: center;
padding: 12px 15px;
background-color: #f1f5fc;
cursor: pointer;
font-weight: bold;
font-size: 1.1rem;
transition: background-color 0.3s;
margin: 0;
}
.accordion-header:hover {
background-color: #e9ecef;
}
.accordion-header.active {
background-color: #e2e6ea;
}
.accordion-header i:first-child {
margin-right: 10px;
font-size: 1.2rem;
}
.accordion-title {
flex-grow: 1;
}
.accordion-icon {
margin-left: auto;
transition: transform 0.3s ease;
}
.accordion-header.active .accordion-icon {
transform: rotate(180deg);
}
.accordion-content {
display: none;
padding: 2px;
background-color: #fff;
border-top: 1px solid #ddd;
}
.tab-container {
width: 100%;
overflow: auto;
}
.table td.text-end, .table th.text-end {
white-space: nowrap !important;
min-width: 110px; /* Légèrement augmenté pour les gros montants */
padding-left: 15px !important;
padding-right: 15px !important; /* Ajout crucial pour l'équilibre visuel */
font-family: 'Courier New', Courier, monospace; /* Optionnel: police mono pour aligner les décimales */
}
/* Global Container */
#div_police,
#div_texte_cp,
#div_emission {
background-color: var(--office-light);
color: var(--office-dark);
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
/* Card Styling */
#div_police .card,
#div_texte_cp .card,
#div_emission .card{
border: 1px solid var(--office-border);
border-radius: 2px; /* Office style is more rectangular */
}
#div_police .card-header,
#div_texte_cp .card-header,
#div_emission .card-header {
border-bottom: 1px solid var(--office-border) !important;
background-color: white;
color: var(--office-dark);
border-bottom: none;
}
/* Form Controls */
.form-label {
color: var(--office-primary);
margin-bottom: 2px;
font-size: 0.75rem;
}
.form-control {
border-radius: 2px;
border: 1px solid var(--office-border);
font-size: 0.9rem;
padding: 0.5rem 0.75rem;
}
.form-control[readonly] {
background-color: var(--office-warm-bg);
border-color: var(--office-common);
box-shadow: inset 0 1px 2px rgba(0,0,0,0.02);
color: #555;
font-weight: 500;
}
/* Status Boxes (Custom) */
.status-box {
border: 1px solid var(--office-border);
padding: 8px;
text-align: center;
background: white;
display: flex;
flex-direction: column;
border-radius: 2px;
}
.status-box.active {
background-color: var(--office-secondary);
color: white;
border-color: var(--office-secondary);
}
.status-box small {
font-size: 0.65rem;
text-transform: uppercase;
display: block;
}
.status-box span {
font-weight: bold;
font-size: 1rem;
}
/* Financial Footer */
.financial-item {
transition: background 0.3s;
}
.financial-item:hover {
background-color: var(--office-hover);
}
/* Buttons */
.btn-primary {
background-color: var(--office-primary);
border-color: var(--office-primary);
}
.btn-secondary {
background-color: var(--office-secondary);
border-color: var(--office-secondary);
}
.btn-outline-office {
color: var(--office-secondary);
border-color: var(--office-secondary);
}
.btn-outline-office:hover {
background-color: var(--office-secondary);
color: white;
}
/* Tables */
.custom-table thead th {
background-color: var(--office-common);
border-bottom: 2px solid var(--office-primary);
color: var(--office-dark);
font-weight: 600;
font-size: 0.8rem;
padding: 12px;
}
.custom-table tbody td {
padding: 10px 12px;
border-bottom: 1px solid var(--office-border);
}
/* Datepicker Specific */
.datepicker {
border-left: 3px solid var(--office-primary) !important;
font-weight: bold;
}
/* Styles spécifiques à l'éditeur de texte CP */
/* Effet "Feuille de papier" pour le textarea */
.editor-paper {
background-color: #ffffff !important;
background-image:
linear-gradient(#f1f1f1 1px, transparent 1px);
background-size: 100% 2.5rem; /* Simule des lignes d'écriture si besoin */
line-height: 2.5rem;
padding: 2rem !important;
border: 1px solid var(--office-border) !important;
border-radius: 0;
font-family: 'Consolas', 'Monaco', 'Courier New', monospace; /* Police technique et lisible */
color: var(--office-dark);
resize: vertical;
transition: all 0.3s ease;
}
.editor-paper:focus {
outline: none;
box-shadow: 0 0 15px rgba(0,0,0,0.1) !important;
border-color: var(--office-secondary) !important; /* Focus bleu Office */
}
/* Bouton Enregistrer - Style Bleu Office */
#div_texte_cp .btn-secondary {
background-color: var(--office-secondary) !important;
border-color: var(--office-secondary) !important;
border-radius: 2px;
transition: transform 0.2s;
}
#div_texte_cp .btn-secondary:hover {
background-color: #1e4275 !important;
transform: translateY(-1px);
}
/* Conteneur de l'éditeur */
.editor-container {
background: white;
border-radius: 2px;
position: relative;
}
/* Style Table Quittance - Thème Office */
.custom-quittance-table thead th {
background-color: var(--office-primary) !important; /* Orange PowerPoint */
color: white;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.5px;
border: none;
padding: 12px 8px;
}
.custom-quittance-table tbody td {
font-size: 0.85rem;
border-bottom: 1px solid var(--office-border);
padding: 10px 8px;
}
/* Alternance de couleurs subtile */
.custom-quittance-table tbody tr:nth-child(even) {
background-color: var(--office-primary-lighter);
}
/* Alignements spécifiques */
.text-end { text-align: right !important; }
.text-center { text-align: center !important; }
/* Modal Styles */
.bg-office-blue {
background-color: var(--office-secondary) !important;
}
.btn-office-gray {
background-color: var(--office-common);
color: var(--office-dark);
border: 1px solid var(--office-border);
}
/* Animation au chargement (nécessite Animate.css ou transition simple) */
.animate__fadeIn {
animation: fadeIn 0.5s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; transform: translateY(10px); }
to { opacity: 1; transform: translateY(0); }
}
/* Boutons d'action dans le tableau */
.custom-quittance-table .btn-group .btn {
padding: 0.25rem 0.5rem;
border-color: var(--office-border);
}
.custom-quittance-table .btn-group .btn:hover {
background-color: var(--office-hover);
}
.custom-quittance-table .btn-link {
color: var(--office-secondary);
}
/* Footer de table plus marqué */
.custom-quittance-table tfoot {
background-color: var(--office-light) !important;
border-top: 2px solid var(--office-secondary);
}
/* Background spécifique pour la carte récapitulative TTC */
.bg-office-primary-lighter {
background-color: var(--office-primary-lighter);
}
/* Header bleu type Office */
.bg-office-blue {
background-color: var(--office-secondary) !important;
}
/* Style spécifique pour le footer de la table émission */
.custom-quittance-table tfoot.table-dark {
background-color: var(--office-dark) !important;
border-top: 3px solid var(--office-primary);
}
@media print {
.btn, .modal, .sr-only { display: none !important; }
.card { border: 1px solid #ddd !important; box-shadow: none !important; }
}
/* Style Table Collèges - Vision Office 365 */
.custom-college-table thead th {
background-color: var(--office-common) !important;
color: var(--office-dark) !important;
font-size: 0.65rem;
font-weight: 800;
text-transform: uppercase;
border-bottom: 2px solid var(--office-primary);
vertical-align: middle;
padding: 10px 5px;
}
.custom-college-table tbody td {
font-size: 0.75rem; /* Compact pour tenir toutes les colonnes */
white-space: nowrap;
padding: 8px 5px;
}
/* Séparateurs verticaux pour groupes de données (Nb, HT, TTC) */
.border-start {
border-left: 1px solid var(--office-border) !important;
}
/* Style des boutons de montant (Action principale) */
.custom-college-table .btn-primary {
background-color: var(--office-secondary);
border: none;
font-size: 0.75rem;
}
.custom-college-table .btn-primary:hover {
background-color: var(--office-primary);
transform: scale(1.05);
}
/* Footer de table sombre type Excel Premium */
.custom-college-table tfoot {
border-top: 3px solid var(--office-primary);
background-color: var(--office-dark) !important;
}
.custom-college-table tfoot td {
padding: 12px 5px;
}
/* Badge de catégorie épuré */
.badge.rounded-pill {
font-weight: 600;
padding: 5px 10px;
}