
/* ===== Doli Audit - styles ===== */
.page-dashboard .audit-section-title{font-size:1.05em;font-weight:600;margin:18px 0 10px;color:#2b3a55;border-left:4px solid #1f6feb;padding-left:8px}
.audit-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin-bottom:10px}
.audit-kpi-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e5e8ee;border-radius:10px;padding:14px 16px;box-shadow:0 1px 3px rgba(20,30,60,.06);transition:transform .12s ease,box-shadow .12s ease}
.audit-kpi-card:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(20,30,60,.12)}
.audit-kpi-icon{width:46px;height:46px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;color:#fff;flex:0 0 auto}
.audit-kpi-body{min-width:0}
.audit-kpi-value{font-size:1.35em;font-weight:700;line-height:1.1;color:#1c2733}
.audit-kpi-label{font-size:.82em;color:#6b7686;margin-top:2px}
.audit-kpi-sub{font-size:.72em;color:#9aa3b0}
.audit-kpi-blue .audit-kpi-icon{background:#2f6fed}
.audit-kpi-indigo .audit-kpi-icon{background:#5b54d6}
.audit-kpi-green .audit-kpi-icon{background:#1faa6b}
.audit-kpi-teal .audit-kpi-icon{background:#0fb5ad}
.audit-kpi-orange .audit-kpi-icon{background:#f08c1e}
.audit-kpi-red .audit-kpi-icon{background:#e2483d}
.audit-kpi-grey .audit-kpi-icon{background:#8a94a3}

.audit-charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:8px}
.audit-chart-box{background:#fff;border:1px solid #e5e8ee;border-radius:10px;padding:14px}
@media(max-width:900px){.audit-charts-row{grid-template-columns:1fr}}

/* progress bars */
.audit-progress{position:relative;background:#eef1f6;border-radius:8px;height:18px;width:130px;display:inline-block;overflow:hidden}
.audit-progress-bar{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,#1faa6b,#3ec98a)}
.audit-progress span{position:relative;font-size:.72em;color:#1c2733;line-height:18px;padding-left:6px;font-weight:600}

/* gantt */
.audit-gantt{border:1px solid #e5e8ee;border-radius:10px;overflow:hidden;background:#fff;margin-bottom:8px}
.audit-gantt-row{display:flex;align-items:center;border-bottom:1px solid #f0f2f6}
.audit-gantt-row:last-child{border-bottom:0}
.audit-gantt-label{flex:0 0 160px;padding:8px 10px;font-weight:600;font-size:.85em}
.audit-gantt-track{position:relative;flex:1;height:30px;background:repeating-linear-gradient(90deg,#fafbfd,#fafbfd 49px,#eef1f6 50px)}
.audit-gantt-bar{position:absolute;top:5px;height:20px;background:#2f6fed;border-radius:5px;color:#fff;font-size:.72em;overflow:hidden;min-width:30px}
.audit-gantt-bar span{position:relative;z-index:2;padding:0 6px;line-height:20px;white-space:nowrap}
.audit-gantt-progress{position:absolute;left:0;top:0;height:100%;background:rgba(31,170,107,.85)}

.audit-report-tabs,.audit-doc-filter{margin-bottom:8px}
.audit-doc-types{margin:8px 0}

/* ===== Site cockpit ===== */
.audit-subtitle{font-size:1.02em;font-weight:600;margin:16px 0 8px;color:#2b3a55;border-left:4px solid #1f6feb;padding-left:8px}
.audit-cockpit{margin:6px 0 14px}
.audit-cockpit-kpi{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));margin-bottom:14px}
.audit-cockpit-progress{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:6px 0 16px}
.audit-cockpit-progress .audit-prog-label{display:block;font-size:.8em;color:#6b7686;margin-bottom:4px}
.audit-cockpit-progress .audit-progress{width:100%;height:22px}
.audit-cockpit-progress .audit-progress span{line-height:22px}
.audit-progress-bar-blue{background:linear-gradient(90deg,#2f6fed,#5a93ff)!important}
@media(max-width:760px){.audit-cockpit-progress{grid-template-columns:1fr}}

.audit-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.audit-module-tile{position:relative;background:#fff;border:1px solid #e5e8ee;border-radius:10px;transition:transform .12s ease,box-shadow .12s ease}
.audit-module-tile:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(20,30,60,.12)}
.audit-module-main{display:flex;align-items:center;gap:10px;padding:12px 14px;color:inherit;text-decoration:none}
.audit-module-main:hover{text-decoration:none}
.audit-module-icon{width:40px;height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;color:#fff;background:#5b6b86;flex:0 0 auto}
.audit-module-info{min-width:0}
.audit-module-count{font-size:1.3em;font-weight:700;color:#1c2733;line-height:1}
.audit-module-label{font-size:.78em;color:#6b7686;margin-top:2px}
.audit-module-add{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:#1faa6b;color:#fff!important;display:flex;align-items:center;justify-content:center;font-size:11px;text-decoration:none;opacity:.85}
.audit-module-add:hover{opacity:1;text-decoration:none}
.audit-module-tile:nth-child(3n+1) .audit-module-icon{background:#2f6fed}
.audit-module-tile:nth-child(3n+2) .audit-module-icon{background:#5b54d6}
.audit-module-tile:nth-child(3n) .audit-module-icon{background:#0fb5ad}

/* ===== Lines editor & totals ===== */
#btplines input,#btpdeclines input{padding:3px 5px}
.audit-totals{display:flex;justify-content:flex-end;margin:10px 0 4px}
.audit-totals table{min-width:340px}
.audit-totals .liste_total td{font-weight:700;font-size:1.05em}
#audit-tva{text-align:right}
.audit-delline,.audit-deldline{color:#e2483d}
.button-add{display:inline-block}

/* ===== Dynamic related-objects panels (chained data entry) ===== */
.audit-related-wrap{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;margin:6px 0 14px}
.audit-related-panel{background:#fff;border:1px solid #e5e8ee;border-radius:10px;padding:10px 12px;box-shadow:0 1px 3px rgba(20,30,60,.06)}
.audit-related-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600;color:#2b3a55}
.audit-related-head .badge{margin-left:4px}
.audit-related-panel table{margin:0}
.audit-related-panel .liste_titre th{font-size:.78em}
.butActionNew{background:#1faa6b!important;border-color:#1faa6b!important;color:#fff!important;padding:3px 9px;font-size:.8em;border-radius:6px;text-decoration:none}
.butActionNew:hover{background:#178a56!important;text-decoration:none}
.paddingright{margin-right:5px}

/* ===== Doli Audit main-menu icon : force the new BLUE logo on the themed top-menu icon =====
   The user's icon element carries classes "site-menu-icon mainmenu icon-doliaudit doliaudit".
   Newer Dolibarr (v18+) renders an empty themed span and applies a generated/generic background
   (seen as the old orange logo). We override it with maximum specificity + !important, covering
   the 3 possible mechanisms: element background-image, ::before content/background, and inner <img>.
   Image uses the NEW filename (cache-busting) referenced relatively from this css file. */

/* (1) Element background-image (themed icon span using a background). Icon-specific selectors only. */
body [class~="dolauditico"],
body [class~="icon-doliaudit"],
body .site-menu-icon.doliaudit,
body .site-menu-icon.mainmenu.doliaudit,
body .tmenuimage.doliaudit,
body a.tmenuimage.doliaudit,
body span.tmenuimageforpng.doliaudit,
body .mainmenu.doliaudit.tmenuimageforpng {
	background-image: url(../img/object_dolauditlogo.png) !important;
	background-repeat: no-repeat !important;
	background-position: center center !important;
	background-size: contain !important;
}
/* (2) ::before that uses content:url(...) (generated raster module icon) -> replace by our logo */
body [class~="dolauditico"]::before,
body [class~="icon-doliaudit"]::before,
body .site-menu-icon.doliaudit::before,
body .tmenuimage.doliaudit::before,
body .mainmenu.doliaudit.tmenuimageforpng::before {
	content: url(../img/object_dolauditlogo.png) !important;
	width: 1.3em !important;
	height: 1.3em !important;
	vertical-align: middle !important;
	color: transparent !important;
}
/* (3) Inner <img> (themed icon span containing an <img src=old>) -> replace the image via content */
body [class~="icon-doliaudit"] img,
body .site-menu-icon.doliaudit img,
body .tmenuimage.doliaudit img {
	content: url(../img/object_dolauditlogo.png) !important;
	width: 1.4em !important;
	height: 1.4em !important;
	object-fit: contain !important;
}
/* Top-menu image prefix (when used) kept small & tidy */
.tmenu img.pictofixedwidth, .tmenuimage img.pictofixedwidth { max-width: 18px; max-height: 18px; }

/* ===== Checklist B4: keep the custom object picto small in lists / cards / titles =====
   The object_dolauditlogo PNG would otherwise render at its natural size in list FK columns,
   card banners and list titles (rendered outside table.liste). A module-unique global rule is safe. */
img[src*="object_dolauditlogo"]{
	width:18px !important; height:18px !important;
	max-width:18px !important; max-height:18px !important;
	min-width:0 !important; object-fit:contain; vertical-align:middle;
}
/* but NOT the top-menu icon element (it must fill its menu box) */
.dolauditico, .tmenuimage img, .mainmenuaspan img { width:auto; height:auto; }
