




















.spinner{
	background-color:#000;
	opacity:0.5;
	width:100%;
	height:100%;
	text-align:center;
}
.lds-roller {
	display: inline-block;
	position: relative;
	width: 64px;
	height: 64px;
	margin-top:20%;
}
.lds-roller div {
	animation: lds-roller 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
	transform-origin: 32px 32px;
}
.lds-roller div:after {
	content: " ";
	display: block;
	position: absolute;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #fff;
	margin: -3px 0 0 -3px;
}
.lds-roller div:nth-child(1) {
	animation-delay: -0.036s;
}
.lds-roller div:nth-child(1):after {
	top: 50px;
	left: 50px;
}
.lds-roller div:nth-child(2) {
	animation-delay: -0.072s;
}
.lds-roller div:nth-child(2):after {
	top: 54px;
	left: 45px;
}
.lds-roller div:nth-child(3) {
	animation-delay: -0.108s;
}
.lds-roller div:nth-child(3):after {
	top: 57px;
	left: 39px;
}
.lds-roller div:nth-child(4) {
	animation-delay: -0.144s;
}
.lds-roller div:nth-child(4):after {
	top: 58px;
	left: 32px;
}
.lds-roller div:nth-child(5) {
	animation-delay: -0.18s;
}
.lds-roller div:nth-child(5):after {
	top: 57px;
	left: 25px;
}
.lds-roller div:nth-child(6) {
	animation-delay: -0.216s;
}
.lds-roller div:nth-child(6):after {
	top: 54px;
	left: 19px;
}
.lds-roller div:nth-child(7) {
	animation-delay: -0.252s;
}
.lds-roller div:nth-child(7):after {
	top: 50px;
	left: 14px;
}
.lds-roller div:nth-child(8) {
	animation-delay: -0.288s;
}
.lds-roller div:nth-child(8):after {
	top: 45px;
	left: 10px;
}
@keyframes lds-roller {
	0% {
	transform: rotate(0deg);
	}
	100% {
		transform: rotate(360deg);
	}
}





@media (max-width: 767px) {
	.hide_mobile {
		display:none !important;
	}
.tab {
		width: 98% !important;


	}
	.margin_monitor_50{
		margin-top:0px;
		margin-bottom:10px;
	}
	.showresp{
		display:table-cell !important;
	}
	.hideresp{
		display:none !important;
	}
	/* Responsive heights for maps and charts */
	.graph_home{ height: 280px; }
	#map{ height: 320px; }
	.h900{ height: 320px !important; }
	.h300{ height: 220px !important; }
	.h270{ height: 200px !important; }
	.h250{ height: 180px !important; }
	/* Logo scaling */
	.croppedlogo{ max-width: 160px; height: auto; }
}

.green{
	color:green !important;
}






.coral_red{
	color:#E63946;
}
.live_orange{
	color:#F77F00;
}
.gold_yellow{
	color:#FFC300;
}

.green_lime{
	color:#9EFF33;
}
.green_mint{
	color:#2ECC71;
}
.brilliant_azure{
	color:#00A8E8;
}
.electric_blue{
	color:#007BFF;
}
.blu_violet{
	color:#5A31F4;
}
.fucsia_rose{
	color:#D81B60;
}
.rosa_shock{
	color:#FF69B4;
}
.life_coral{
	color:#ff6f61;
}
.gold_lux{
	color:#FFD700;
}
.silver_grey{
	color:#C0C0C0;
}

.ametist_violet{
	color:#9B59B6;
}
.green_water{
	color:#1ABC9C;
}


.notice_insert_update{
	background-color: green;
	width: auto;
	max-width: 300px;
	padding: 10px;
	color: #fff;
	position: fixed;
	right: 0px;
	border-radius: 0px;
	z-index:100;
	-webkit-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
	-moz-box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
	box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.75);
}




















































































.w90p{
	width:90% !important;
}










.h250{
	height:250px !important;
}
.h270{
	height:270px !important;
}





.bold{
	font-weight:bold !important;
}

.mbnegative{
	margin-bottom: -8px;
}

.mb5{
	margin-bottom:5px !important;
}






.mt7{
	margin-top:7px;
}

.mt10{
	margin-top:10px;
}
.mt20{
	margin-top:20px;
}







.mb10{
	margin-bottom:10px;
}

.ml15{
	margin-left:15px;
}

.mr3{
	margin-right:3px;
}
.mr5{
	margin-right:5px;
}



.mr7{
	margin-right:7px;
}








.border_bottom_1_dotted{
	border-bottom:1px dotted #ccc;
}
.hiddenElement{
	display:none;
}





















.p15{
	padding:15px;
}



















.violet{
	color:#b9b9ff;
}























.fast_customer_list,.fast_customer_insert,.fast_polizze,.fast_polizze_insert,.fast_list_garanzie,.fast_sinistri_list,.fast_sinistri_insert,.fast_list_cvt,.fast_cvt,.fast_gestione_richiami{
	margin:0px 5px;
}
.bglogo{
	background-color:#333 !important;
}
.color_letter_1{
	color:#205cc4 !important;
}
.color_letter_2{
	color:#fa9021 !important;
}
.croppedlogo{
	width: 150px;
	text-align: center;


}














/*
.btn-success,.btn-warning,.btn-info{
	padding: 5px 20px;
	font-size: 12pt;
	text-transform: uppercase;
}
*/
.system_color{
	color:#f78c24;
}





.fastyle{
	color:#b50404;font-size:0.8em;margin-right:10px;
}
.frstyle{
	color:#b50404;
	text-decoration:none;
}






.p5_5_5_15{
	padding: 5px 5px 5px 15px !important;
}
.mw20{
	max-width:20px;
}


.fsize08{
	font-size: 0.8em !important;;
}







.chat_response_fix{
	max-height:600px;
	overflow: auto;
	overflow-x: auto;
	overflow-x: hidden;
}













.read_menu:hover{
	color:#53c0ff !important;
}
.insert_menu:hover{
	color:#f9993b !important;
}



.confirm_operator,.confirm_avatar,.confirm_day_polizze_show{
	float: right;
	margin-top: -20px;
	cursor: pointer;
}
.divisor{
	border-top: 1px solid #6f6f6f;
	width: 90%;
	margin: 0 auto;
}
.divisor-spaced{
	margin-top: 12px;
	margin-bottom: 12px;
}
.legend1{
	color:#00a65a;
}
.spanleg1{
	width: 20px;
	height: 10px;
	background-color: #00a65a;
	display: inline-block;
}
.legend2{
	color:#397eed;
}
.spanleg2{
	width: 20px;
	height: 10px;
	background-color: #397eed;
	display: inline-block;
}
.legend3{
	color:#ff0000;
}
.spanleg3{
	width: 20px;
	height: 10px;
	background-color: #ff0000;
	display: inline-block;
}
.legend4{
	color:#f0b31a;
}
.spanleg4{
	width: 20px;
	height: 10px;
	background-color: #f0b31a;
	display: inline-block;
}
.brf4{
	border-right: 1px solid #f4f4f4 !important;
}













.tab_shadow{
	box-shadow:4px 5px 13px rgba(0, 0, 0, 0.5);
}




































































































.fas,.fab,.far{
	margin-right:5px;
}













/* Prima riga (Visualizza / Cerca / Compagnia) in flex */
#table_scadenza_wrapper .row:first-child {
    display: flex;
    flex-wrap: wrap;          /* va a capo solo se serve */
    align-items: center;
    gap: 28px;                /* spazio uniforme tra i blocchi */
    margin-bottom: 10px;
}

/* IMPORTANTISSIMO: togli i float dei .col-* solo in questa riga */
#table_scadenza_wrapper .row:first-child > [class*="col-"] {
    float: none;              /* disattiva float di Bootstrap */
    width: auto;              /* misura al contenuto */
    padding: 0;               /* niente padding extra */
}























#div_table_scadute .dataTables_wrapper .row {
    margin-left: 0;
    margin-right: 0;
}
#div_table_scadute .dataTables_wrapper .row > [class*="col-"] {
    padding-left: 15px;
    padding-right: 15px;
}


.main-footer:hover .fastyle {
    animation: heartbeat 0.8s infinite;
}

@keyframes heartbeat {
  0%   { transform: scale(1); }
  20%  { transform: scale(1.3); }
  40%  { transform: scale(1); }
  60%  { transform: scale(1.3); }
  80%  { transform: scale(1); }
  100% { transform: scale(1); }
}

/* opzionale: colore più intenso durante il battito */
.main-footer:hover .fastyle {
    color: #b9042c; /* rosso acceso o quello che vuoi */
}
.pull-left.image {
    perspective: 800px; /* Serve per l'effetto 3D */
}

.pull-left.image img {
    transition: transform 0.6s ease;
    transform-style: preserve-3d;
}

.pull-left.image:hover img {
    transform: rotateY(360deg);
}








  
  

  
  
  

  .plate-it {
    display: inline-flex;
    align-items: center;
    border: 2px solid #000;
    border-radius: 4px;
    background: #ffffff;
    font-family: 'Arial Black', Arial, sans-serif;
    font-weight: bold;
    font-size: 13px;
    letter-spacing: 1px;
    overflow: hidden;
    height: 26px;
}

.plate-text {
    padding: 0 6px;
    color: #000;
}

.plate-blue {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #003399;
    color: #fff;
    font-size: 11px;
    font-weight: bold;
    padding: 0 3px;
    height: 100%;
}

.plate-left {
    width: 13px;
}


.plate-right {
    display: flex;
    align-items: center;
    justify-content: center;
}

.plate-right::after {
    content: '';
    width: 9px;
    height: 9px;
    border: 2px solid #ffcc00;
    border-radius: 50%;
	border-width: 1.5px;
    background: transparent;
    display: inline-block;
    box-sizing: border-box;
}


  @media (prefers-color-scheme: dark){
	:root{
		--tl-bg: #ffffff;     /* sfondo chiaro fisso */
	--tl-surface: #ffffff;
	--tl-text: #111827;
	--tl-muted: #6b7280;
	--tl-track: #e5e7eb;

	  --tl-shadow: rgba(0,0,0,.35);
	}
  }

  

  
  

  
  
  @keyframes tl-shimmer{ to { transform: translateX(100%);} }

  
  

  
  

  

  
  
  
  

  
  
  @keyframes tl-pulse{
	0%{ box-shadow: 0 0 0 .25em var(--tl-surface), 0 6px 18px var(--tl-shadow); }
	70%{ box-shadow: 0 0 0 .6em rgba(99,102,241,.15), 0 10px 24px var(--tl-shadow); }
	100%{ box-shadow: 0 0 0 .25em var(--tl-surface), 0 6px 18px var(--tl-shadow); }
  }

  
  
  
  
  
  

  
  
  
  
  
  
  
  
  

  
  
  
  
  
  
  
  
  

  
  @media (max-width: 640px){
	:root{ --tl-card-w: min(92vw, 28rem); --tl-gap: 3.6rem; }
	/* su mobile le card tutte sotto per leggibilità */
	.timeline-item .timeline-card{ top: calc(50% + 1.8em) !important; bottom:auto !important; }
	.timeline-item .timeline-stem{ top: calc(50% + .6em) !important; bottom:auto !important; height:3.8em; }
  }

  
  
  








@keyframes pulse {
    0%, 100% {
        opacity: 0.9;
    }
    50% {
        opacity: 1;
    }
}





@keyframes blink {
    0%, 50% {
        opacity: 1;
    }
    51%, 100% {
        opacity: 0.3;
    }
}

.notifications-menu:hover #time-part {
    background-color: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
}

.notifications-menu #time-part .date-display {
    font-size: 0.85em;
    opacity: 0.9;
    margin-right: 8px;
    font-weight: 400;
}

@media (max-width: 991px) {
    #time-part {
        min-width: 100px;
        padding: 6px 10px;
        font-size: 0.9em;
    }

    #time-part .date-display {
        display: none;
    }
}

/* ===== PANNELLO RAPIDO - Stili Migliorati ===== */
.connectedSortable .box-info.tab_shadow {
    border-top: 4px solid #3c8dbc;
    border-radius: 8px;
    overflow: hidden;
    transition: all 0.3s ease;
}

.connectedSortable .box-info.tab_shadow:hover {
    box-shadow: 0 8px 20px rgba(60, 141, 188, 0.2);
    transform: translateY(-2px);
}

.connectedSortable .box-info .box-header {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-bottom: 2px solid #e0e0e0;
    padding: 15px 20px;
}

.connectedSortable .box-info .box-header .box-title {
    font-weight: 600;
    font-size: 16px;
    color: #2c3e50;
    letter-spacing: 0.5px;
}

.connectedSortable .box-info .box-header .violet {
    color: #8b5cf6;
    font-size: 18px;
    margin-right: 10px;
}

.connectedSortable .box-info .box-body {
    padding: 25px 20px;
    background: #ffffff;
}

/* Layout migliorato per i pulsanti */
.connectedSortable .box-info .box-body > div {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    align-items: stretch;
}

.connectedSortable .box-info .box-body > div.mt10 {
    margin-top: 20px;
}

/* Stili migliorati per i pulsanti del pannello rapido */
.connectedSortable .box-info .box-body .btn {
    padding: 14px 20px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-radius: 8px;
    border: none;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
    min-height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.connectedSortable .box-info .box-body .btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.connectedSortable .box-info .box-body .btn:hover::before {
    width: 300px;
    height: 300px;
}

.connectedSortable .box-info .box-body .btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.2);
}

.connectedSortable .box-info .box-body .btn:active {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.connectedSortable .box-info .box-body .btn i {
    font-size: 16px;
    transition: transform 0.3s ease;
}

.connectedSortable .box-info .box-body .btn:hover i {
    transform: scale(1.2);
}

/* Colori specifici per ogni pulsante */
.connectedSortable .box-info .box-body .btn-primary {
    background: linear-gradient(135deg, #3498db 0%, #2980b9 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .btn-primary:hover {
    background: linear-gradient(135deg, #2980b9 0%, #21618c 100%);
}

.connectedSortable .box-info .box-body .btn-success {
    background: linear-gradient(135deg, #2ecc71 0%, #27ae60 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .btn-success:hover {
    background: linear-gradient(135deg, #27ae60 0%, #229954 100%);
}

.connectedSortable .box-info .box-body .btn-warning {
    background: linear-gradient(135deg, #f39c12 0%, #e67e22 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .btn-warning:hover {
    background: linear-gradient(135deg, #e67e22 0%, #d35400 100%);
}

.connectedSortable .box-info .box-body .btn-info {
    background: linear-gradient(135deg, #17a2b8 0%, #138496 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .btn-info:hover {
    background: linear-gradient(135deg, #138496 0%, #117a8b 100%);
}

.connectedSortable .box-info .box-body .bg-gray {
    background: linear-gradient(135deg, #95a5a6 0%, #7f8c8d 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .bg-gray:hover {
    background: linear-gradient(135deg, #7f8c8d 0%, #6c7a7b 100%);
}

.connectedSortable .box-info .box-body .bg-maroon {
    background: linear-gradient(135deg, #c0392b 0%, #a93226 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .bg-maroon:hover {
    background: linear-gradient(135deg, #a93226 0%, #922b21 100%);
}

.connectedSortable .box-info .box-body .bg-navy {
    background: linear-gradient(135deg, #34495e 0%, #2c3e50 100%);
    color: #ffffff;
}

.connectedSortable .box-info .box-body .bg-navy:hover {
    background: linear-gradient(135deg, #2c3e50 0%, #1a252f 100%);
}

/* Rimuove i margini esistenti per usare il gap del grid */
.connectedSortable .box-info .box-body .btn.mb5 {
    margin-bottom: 0;
}



@media (min-width: 769px) and (max-width: 992px) {
    .connectedSortable .box-info .box-body > div {
        grid-template-columns: repeat(2, 1fr);
    }
}
.attachments_sidebar{
	background-color: #2b2b2b;
	border: 1px solid #2b2b2b;
	color: #fff;
}
@media (max-width: 991px) {
	.h900 { height: 420px !important; }
}
@media (max-width: 767px) {
	.h900 { height: 300px !important; }
	.h270 { height: 200px !important; }
	.h250 { height: 180px !important; }
	.logo-lg img.logo-uploaded { max-width: 100%; max-height: 50px; object-fit: contain; }
	.box .box-header .box-tools { float: none !important; }
}












































































.polizza-status-badge.active {
	background: #d4edda;
	color: #155724;
	border: 1px solid #c3e6cb;
}













@media (max-width: 480px) {
	.polizza-detail-header {
		padding: 15px;
	}

	.polizza-detail-header h4 {
		font-size: 16px;
	}

	.polizza-section-title {
		font-size: 12px;
		padding: 10px;
	}

	.polizza-data-value {
		font-size: 14px;
	}
}



.polizza-table-header .row {
	margin: 0;
}

.polizza-table-header .row > div {
	padding: 14px 15px;
	vertical-align: middle;
	word-wrap: break-word;
	overflow-wrap: break-word;
	line-height: 1.4;
	font-weight: 600;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: #495057;
	border-right: 1px solid #cbd5e0;
}

.polizza-table-header .row > div:last-child {
	border-right: none;
}



.polizza-table-row .row {
	margin: 0;
	display: flex;
	align-items: stretch;
}

.polizza-table-row .row > div {
	padding: 14px 15px;
	font-size: 14px;
	color: #212529;
	border-right: 1px solid #f0f0f0;
	vertical-align: middle;
	word-wrap: break-word;
	overflow-wrap: break-word;
	line-height: 1.5;
	display: flex;
	align-items: center;
	min-height: 50px;
}

.polizza-table-row .row > div:last-child {
	border-right: none;
}

.polizza-table-row .row > div:first-child {
	justify-content: center;
	padding-left: 10px;
	padding-right: 10px;
}

.polizza-table-row .row > div:first-child i {
	font-size: 18px;
	color: #3c8dbc;
	transition: all 0.2s ease;
	cursor: pointer;
	padding: 5px;
	border-radius: 4px;
}

.polizza-table-row .row > div:first-child i:hover {
	color: #ffffff;
	background-color: #3c8dbc;
	transform: scale(1.15);
	width: 25px;
}

/* Miglioramento per colonna TIPO che può avere testo lungo */
.polizza-table-row .row > div:nth-child(4) {
	font-weight: 500;
	word-break: break-word;
	hyphens: auto;
}



@media (max-width: 480px) {
	.polizza-table-header .row > div,
	.polizza-table-row .row > div {
		padding: 8px 5px;
		font-size: 11px;
		min-height: 40px;
	}

	.polizza-table-row .row > div:first-child i {
		font-size: 14px;
	}
}



#table_detailed:not(.hiddenElement) {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
	min-height: 200px !important;
}

#table_detailed .box-body {
	padding: 20px !important;
	min-height: 200px !important;
	width: 100% !important;
	display: block !important;
}



#task_completed section.content {
	display: block !important;
	visibility: visible !important;
	opacity: 1 !important;
}









/* Base e login page */
:root {
	--bg: #0f1419;
	--surface: #1a2332;
	--surface-hover: #243044;
	--border: #2d3a4f;
	--text: #e6edf3;
	--text-muted: #8b9cb3;
	--accent: #3b82f6;
	--accent-hover: #2563eb;
	--error: #ef4444;
	--radius: 12px;
	--shadow: 0 25px 50px -12px rgba(0,0,0,.4);
}

* { box-sizing: border-box; }

/* Stili body per login: solo quando c'è .login-card (pagina login / recupero password) */
body:has(.login-card) {
	margin: 0;
	min-height: 100vh;
	font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;
	background: var(--bg);
	color: var(--text);
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem;
	background-image:
		radial-gradient(ellipse 120% 80% at 50% -30%, rgba(59, 130, 246, 0.2) 0%, rgba(59, 130, 246, 0.06) 40%, transparent 70%),
		radial-gradient(ellipse 80% 60% at 80% 100%, rgba(59, 130, 246, 0.08) 0%, transparent 50%),
		radial-gradient(ellipse 60% 50% at 20% 110%, rgba(59, 130, 246, 0.06) 0%, transparent 45%);
}

/* Main occupa almeno il viewport: la card resta centrata anche quando reCAPTCHA aggiunge elementi */
body:has(.login-card) .app-main {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	flex: 1;
	min-height: calc(100vh - 2rem);
}
body:has(.login-card) .app-content,
body:has(.login-card) .container-fluid {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
}
body:has(.login-card) .container-fluid { max-width: 100%; }

.login-card {
	width: 100%;
	max-width: 440px;
	background: var(--surface);
	border: 1px solid var(--border);
	border-radius: var(--radius);
	box-shadow: var(--shadow);
	padding: 3rem;
}

.login-card h1 {
	margin: 0 0 0.5rem;
	font-size: 2rem;
	font-weight: 700;
	text-align: center;
}

.login-card .subtitle {
	text-align: center;
	color: var(--text-muted);
	font-size: 1.125rem;
	margin-bottom: 2rem;
}

.login-card .form-group {
	margin-bottom: 1.25rem;
}

.login-card .form-group label {
	display: block;
	font-size: 1.0625rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
	color: var(--text-muted);
}

.login-card .form-group input {
	width: 100%;
	padding: 0.75rem 1rem;
	font-size: 1.125rem;
	font-family: inherit;
	color: var(--text);
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: 8px;
	transition: border-color .2s;
}

.login-card .form-group input::placeholder { color: var(--text-muted); opacity: .8; }
.login-card .form-group input:focus {
	outline: none;
	border-color: var(--accent);
}

.login-card .form-group input[type="password"] { letter-spacing: 0.05em; }

/* Pulsante login: solo dentro .login-card per non sovrascrivere AdminLTE .btn / .btn-tool */
.login-card .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100%;
	padding: 0.875rem 1.25rem;
	font-size: 1.0625rem;
	font-weight: 600;
	font-family: inherit;
	color: #fff;
	background: var(--accent);
	border: none;
	border-radius: 8px;
	cursor: pointer;
	transition: background .2s;
}

.login-card .btn:hover { background: var(--accent-hover); }
.login-card .btn:focus { outline: none; box-shadow: 0 0 0 3px rgba(59, 130, 246, .35); }

/* Pulsantino "Hai perso la password?" */
.login-card .form-group-forgot {
	margin-top: 1.25rem;
	margin-bottom: 0;
	text-align: left;
}
.login-card .btn-forgot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4rem;
	padding: 0.5rem 1rem;
	font-size: 1rem;
	font-weight: 500;
	font-family: inherit;
	color: var(--text-muted);
	background: transparent;
	border: 1px solid var(--border);
	border-radius: 8px;
	text-decoration: none;
	transition: color .2s, border-color .2s, background .2s;
}
.login-card .btn-forgot:hover {
	color: var(--accent);
	border-color: var(--accent);
	background: rgba(59, 130, 246, .08);
}
.login-card .btn-forgot:focus {
	outline: none;
	box-shadow: 0 0 0 2px rgba(59, 130, 246, .25);
}

.login-card .alert {
	padding: 0.75rem 1rem;
	border-radius: 8px;
	font-size: 0.875rem;
	margin-bottom: 1.25rem;
}

.login-card .alert-error {
	background: rgba(239, 68, 68, .12);
	border: 1px solid rgba(239, 68, 68, .3);
	color: #fca5a5;
}

.login-card .login-logo-wrap {
	text-align: center;
	margin-bottom: 1rem;
}
.login-card .login-logo {
	display: block;
	max-width: 250px;
	height: auto;
	margin: 0 auto;
}

.login-card .icon-wrap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	background: rgba(59, 130, 246, .15);
	border-radius: 10px;
	margin-bottom: 1rem;
}

.login-card .icon-wrap i { font-size: 1.25rem; color: var(--accent); }
html:has(body .login-card) {
	font-size: 80%;
}

/* Mobile: posiziona la card più in alto riducendo il margine superiore */
@media (max-width: 768px) {
	body:has(.login-card) .app-main {
		align-items: flex-start;
		min-height: auto;
		padding-top: 2rem;
	}
	body:has(.login-card) .app-content,
	body:has(.login-card) .container-fluid {
		align-items: flex-start;
	}
	.login-card {
		padding: 2rem;
	}
}

/* ═══════════════════════════════════════════════════════════════════
   CUSTOMER FORM — Stili personalizzati
   ═══════════════════════════════════════════════════════════════════ */

/* Header scheda cliente — allineato al toolbar senza gap */
.scheda-stampa .nav-tabs-custom > .box-header.with-border { border-bottom: none !important; margin-bottom: 15px !important; }
.scheda-stampa .nav-tabs-custom > .box-body { padding-top: 0 !important; }
.customer-header {
	background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
	color: #fff;
	padding: 18px 25px;
	border-radius: 4px 4px 0 0;
	display: flex;
	align-items: center;
	gap: 15px;
	box-sizing: border-box;
}
/* Scheda: header inside box-body → estende ai bordi (stessa larghezza di nav-tabs-custom) */
.scheda-stampa .box-body .customer-header {
	width: 100%;
	margin: -15px -15px 20px -15px;
}
/* Lista: header direct child di nav-tabs-custom → margin solo bottom */
.nav-tabs-custom > .customer-header {
	margin-bottom: 20px;
}
.customer-header .customer-avatar {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: rgba(255,255,255,0.2);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	flex-shrink: 0;
}
.customer-header .customer-info {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 50px;
}
.customer-header .customer-info h3 {
	margin: 0 0 2px 0;
	font-size: 18px;
	font-weight: 600;
}
.customer-header .customer-info small {
	opacity: 0.85;
	font-size: 12px;
}
/* Header scheda: testo secondario leggibile su sfondo blu */
.customer-header .customer-info .scheda-header-meta {
	margin: 0;
	color: rgba(255,255,255,0.95) !important;
	font-size: 12px;
}

/* Link tel/email nella scheda cliente/fornitore — stesso colore, icone davanti */
.scheda-stampa .link-tel,
.scheda-stampa .link-email {
	cursor: pointer;
	text-decoration: underline;
	color: #3c8dbc;
}
.scheda-stampa .link-tel:hover,
.scheda-stampa .link-email:hover {
	text-decoration: none;
	color: #367fa9;
}
.scheda-stampa .link-tel .fa-phone,
.scheda-stampa .link-email .fa-envelope {
	margin-right: 6px;
	opacity: 0.9;
}

/* Note scheda — elenco senza bordi, input integrato */
.notes-list-unbordered {
	background: transparent;
	border: none;
	padding: 0;
}
.notes-list-unbordered .notes-list-item {
	white-space: pre-wrap;
	padding: 0;
	border: none;
	background: transparent;
}
.notes-list-unbordered .notes-list-item .note-content,
.notes-list-unbordered .notes-list-item .text-muted {
	margin: 0;
	padding: 0;
	display: block;
	line-height: 1.35;
}
.notes-list-unbordered .notes-list-item .text-muted { font-size: 12px; }
.notes-list-unbordered .notes-list-item .btn-delete-note {
	margin: -2px 0 0 0;
	vertical-align: middle;
}
/* Spaziatura tra una nota e l’altra */
.notes-list-unbordered #note_aggiuntive_list .notes-list-item + .notes-list-item { padding-top: 6px; margin-top: 0; border-top: 1px solid #f0f0f0; }
.notes-list-unbordered .note-principale + #note_aggiuntive_list { padding-top: 8px; margin-top: 4px; }
.notes-list-unbordered .notes-add-row {
	padding-top: 12px;
	margin-top: 4px;
}
/* Pulsante Aggiungi nota: più distacco dalla textarea */
.notes-list-unbordered .notes-add-row .btn-add { margin-top: 14px; }
.notes-list-unbordered .notes-input {
	border: 1px solid #d2d6de;
	border-radius: 4px;
	background: #fff;
	box-shadow: none;
}
.notes-list-unbordered .notes-input:focus {
	border-color: #3c8dbc;
	box-shadow: 0 0 0 1px rgba(60,141,188,0.2);
}
.notes-list-unbordered #no_notes_msg { padding: 10px 0; margin: 0; }

/* Section headers dentro i tab — colori dallo skin-blue AdminLTE */
.section-title {
	font-size: 14px;
	font-weight: 600;
	background-color: #036;
  	color: #fff;
  	padding: 10px;
  	border-left: 3px solid #3a87b4;
	padding: 12px;
	margin: 5px 0 15px 0;
}
.section-title i { color: #3a87b4; margin-right: 6px; }
.section-title.section-green { border-color: #00a65a; }
.section-title.section-green i { color: #00a65a; }
.section-title.section-orange { border-color: #f39c12; }
.section-title.section-orange i { color: #f39c12; }
.section-title.section-red { border-color: #dd4b39; }
.section-title.section-red i { color: #dd4b39; }

/* Tab badge conteggio — usa colore skin-blue */
.nav-tabs > li > a .badge-tab {
	background: #3c8dbc;
	color: #fff;
	font-size: 10px;
	padding: 2px 6px;
	border-radius: 10px;
	margin-left: 5px;
	min-width: 18px;
	text-align: center;
	display: inline-block;
}
.nav-tabs > li > a .badge-tab.badge-empty {
	background: #f39c12;
	color: #fff;
	font-weight: 600;
	box-shadow: 0 0 0 1px rgba(243,156,18,0.4);
}
/* Barra informativa "sezioni da completare" sopra le tab (Inserisci Cliente/Fornitore/Defunto) */
.tasks-hint-bar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 8px 12px;
	margin: 0 0 10px 0;
	background: linear-gradient(135deg, #fff8e6 0%, #fff3d6 100%);
	border: 1px solid #f0d78c;
	border-radius: 6px;
	font-size: 13px;
	color: #8a6d3b;
}
.tasks-hint-bar i { color: #f39c12; flex-shrink: 0; }

/* Footer pulsanti — tono con la sidebar #222d32 */
.customer-footer {
	background: #ecf0f5;
	border-top: 2px solid #d2d6de;
	padding: 15px 20px;
	margin: 0 -15px -15px -15px;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

/* Stato cliente badge — colori AdminLTE */
.customer-status {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	
}
.customer-status.status-active { background: rgb(250, 250, 250); color: #008d4c; }
.customer-status.status-suspended { background: rgb(250,250,250); color: #db8b0b; }
.customer-status.status-deleted { background: rgb(250,250,250); color: #d33724; }

/* Migliora spaziatura form-group nei tab */
#customer_form .tab-pane .form-group { margin-bottom: 12px; }
#customer_form .tab-pane label { font-size: 12px; font-weight: 600; color: #555; margin-bottom: 3px; }
#customer_form .tab-pane .form-control { border-radius: 3px; border-color: #d2d6de; }
#customer_form .tab-pane .form-control:focus { border-color: #3c8dbc; box-shadow: 0 0 0 2px rgba(60,141,188,0.15); }
#customer_form .tab-pane hr { border-color: #e4e4e4; margin: 18px 0; }

/* Tab come schede distinte (bordo e separazione visiva, senza linea spessa sopra, allineate a sinistra) */
.nav-tabs-custom > .nav-tabs {
	background: #f4f6f9;
	border: 1px solid #d2d6de;
	border-radius: 8px;
	padding: 6px 6px 0 0;
	padding-left: 0;
	margin-bottom: 0;
	border-bottom: none;
}
.nav-tabs-custom > .nav-tabs > li {
	margin: 0 2px 0 0;
	border-top: none !important;
}
.nav-tabs-custom > .nav-tabs > li > a {
	border: 1px solid #d2d6de;
	border-top: none;
	border-bottom: none;
	border-radius: 6px 6px 0 0;
	margin-right: 0;
	padding: 10px 16px;
	background: #fff;
	color: #555;
}
.nav-tabs-custom > .nav-tabs > li > a:hover {
	background: #e8ecef;
	border-color: #b5bbc1;
	color: #333;
}
.nav-tabs-custom > .nav-tabs > li.active > a,
.nav-tabs-custom > .nav-tabs > li.active > a:hover,
.nav-tabs-custom > .nav-tabs > li.active > a:focus {
	background: #fff;
	border-color: #3c8dbc;
	border-left-color: #3c8dbc;
	border-top: 1px solid #3c8dbc;
	border-bottom: 1px solid #fff;
	margin-bottom: -1px;
	color: #333;
	font-weight: 600;
}
/* Prima tab attiva: bordo sinistro azzurro visibile subito (AdminLTE lo imposta a transparent) */
.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a,
.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a:hover,
.nav-tabs-custom > .nav-tabs > li:first-of-type.active > a:focus {
	border-left-color: #3c8dbc !important;
}
.nav-tabs-custom .tab-content {
	border: 1px solid #d2d6de;
	border-top: none;
	border-radius: 0 0 8px 8px;
	padding: 15px;
	background: #fff;
}

/* Lista clienti/fornitori/defunti/collaboratori/veicoli/caselle — intestazioni DataTable blu notte (#2d4168) */
#customers_table thead th,
#suppliers_table thead th,
#deceased_table thead th,
#employees_table thead th,
#vehicles_table thead th,
#table_mail_account thead th,
/* Dati di base, Anagrafiche comuni, Pratiche, Necrologi, Preventivi, Contratti, Fatture, Note credito */
#masthead_table thead th,
#obituary_price_table thead th,
#vehicle_price_table thead th,
#meeting_place_table thead th,
#license_table thead th,
#article_table thead th,
#ac_table thead th,
#practice_table thead th,
#obituary_table thead th,
#quotes_table thead th,
#contracts_table thead th,
#invoices_table thead th,
#received_invoices_table thead th,
#credit_notes_table thead th,
/* Magazzino */
#warehouse_category_table thead th,
#warehouse_table thead th,
#warehouse_article_table thead th,
#warehouse_price_list_table thead th,
#warehouse_stock_table thead th,
#warehouse_low_stock_table thead th {
	background: #2d4168 !important;
	color: #fff !important;
	border-color: #2d4168 !important;
	font-weight: 600;
	font-size: 13px;
	text-transform: none;
	padding: 12px 10px !important;
	letter-spacing: 0.3px;
}
#customers_table thead th,
#suppliers_table thead th,
#deceased_table thead th,
#employees_table thead th,
#vehicles_table thead th,
#table_mail_account thead th,
#masthead_table thead th,
#obituary_price_table thead th,
#vehicle_price_table thead th,
#meeting_place_table thead th,
#license_table thead th,
#article_table thead th,
#ac_table thead th,
#practice_table thead th,
#obituary_table thead th,
#quotes_table thead th,
#contracts_table thead th,
#invoices_table thead th,
#received_invoices_table thead th,
#credit_notes_table thead th,
#warehouse_category_table thead th,
#warehouse_table thead th,
#warehouse_article_table thead th,
#warehouse_price_list_table thead th,
#warehouse_stock_table thead th,
#warehouse_low_stock_table thead th {
	border-bottom-color: rgba(255,255,255,0.2) !important;
}

/* Pulsanti export DataTable — allineati a destra e colorati (override stili DataTables) */
.dt-buttons-right {
	text-align: right !important;
	display: flex !important;
	justify-content: flex-end !important;
}
.dt-buttons-right .dt-buttons,
.dt-buttons-right > div {
	margin-left: auto;
}
.dt-buttons-right .dt-button {
	margin-left: 5px;
	border: none !important;
	text-shadow: none !important;
}
.dt-buttons-right .dt-button.btn-success {
	background: #00a65a !important;
	color: #fff !important;
}
.dt-buttons-right .dt-button.btn-success:hover { background: #008d4c !important; color: #fff !important; }
.dt-buttons-right .dt-button.btn-info {
	background: #00c0ef !important;
	color: #fff !important;
}
.dt-buttons-right .dt-button.btn-info:hover { background: #00a7d0 !important; color: #fff !important; }
.dt-buttons-right .dt-button.btn-danger {
	background: #dd4b39 !important;
	color: #fff !important;
}
.dt-buttons-right .dt-button.btn-danger:hover { background: #c9302c !important; color: #fff !important; }
.dt-buttons-right .dt-button.btn-primary {
	background: #3c8dbc !important;
	color: #fff !important;
}
.dt-buttons-right .dt-button.btn-primary:hover { background: #367fa9 !important; color: #fff !important; }

/* Lista clienti/fornitori/defunti/collaboratori/veicoli e liste dati base/anagrafiche comuni — allineamento icone azioni */
#customers_table td:last-child .btn,
#suppliers_table td:last-child .btn,
#deceased_table td:last-child .btn,
#employees_table td:last-child .btn,
#vehicles_table td:last-child .btn,
#ac_table td:last-child .btn,
#license_table td:last-child .btn,
#masthead_table td:last-child .btn,
#meeting_place_table td:last-child .btn,
#article_table td:last-child .btn,
#practice_table td:last-child .btn,
#obituary_table td:last-child .btn,
#obituary_price_table td:last-child .btn,
#vehicle_price_table td:last-child .btn {
	display: inline-block;
	vertical-align: middle;
	margin-right: 2px;
}

/* Modal documenti — form caricamento allineato e leggibile */
#modal_entity_docs .form-modal-docs .form-group {
	margin-bottom: 12px;
}
#modal_entity_docs .form-modal-docs label {
	display: block;
	font-weight: 600;
	font-size: 12px;
	color: #555;
	margin-bottom: 4px;
}
#modal_entity_docs .form-modal-docs .row .form-group:last-child {
	margin-bottom: 0;
}

/* Scheda cliente/fornitore — stampa */
@media print {
	.no-print, .btn_scheda_stampa, .btn_scheda_indietro, .sidebar, .main-header, .main-footer, .content-header, #spinner {
		display: none !important;
	}
	.scheda-stampa { padding: 0 !important; }
	.table-scheda th { font-weight: 600; }
}
.scheda-stampa .table-scheda th { width: 180px; color: #555; }
/* Consensi privacy — colonna etichette più ampia per evitare a capo su "Consenso comunicazione a terzi" */
.scheda-stampa .table-privacy-consents th { min-width: 250px; width: 250px !important; }

/* Conti bancari — cella Predef. con iCheck, checkbox più grande, testo allineato */
.bank-account-row .bank-predef-cell {
	display: flex;
	align-items: flex-end;
	min-height: 64px;
}
.bank-account-row .bank-predef-cell .bank-predef-icheck,
.bank-account-row .bank-predef-cell .checkbox {
	margin: 0;
	display: flex;
	align-items: center;
	min-height: 34px;
}
.bank-account-row .bank-predef-cell .bank-predef-icheck label,
.bank-account-row .bank-predef-cell .checkbox label {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	margin: 0;
	cursor: pointer;
	font-weight: normal;
}
/* Checkbox iCheck più grande (22px → ~28px) */
.bank-predef-cell [class^="icheckbox_square"],
.bank-predef-cell [class*="icheckbox_square"] {
	transform: scale(1.25);
	transform-origin: left center;
}

/* Pulsanti Aggiungi — icona + più visibile, dimensioni aumentate */
.btn-add { padding: 6px 14px !important; font-weight: 600; color: #fff; }
.btn-add .fa-plus-circle,
.btn-add .fa-lg,
.btn-add i { margin-right: 6px; vertical-align: middle; color: #fff !important; }

/* SweetAlert2 — testi più grandi per migliore leggibilità */
.swal2-popup { font-size: 16px !important; }
.swal2-title { font-size: 1.5em !important; line-height: 1.4; }
.swal2-html-container { font-size: 1.1em !important; line-height: 1.5; }
.swal2-actions .swal2-styled,
.swal2-actions .swal2-confirm,
.swal2-actions .swal2-cancel { font-size: 1em !important; padding: 10px 24px !important; }

/* Modale Orari apertura (cimiteri) — font e size come il resto del gestionale */
.swal-orari-apertura.swal2-popup {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 12px 40px rgba(45, 65, 104, 0.2);
	padding: 0;
	font-size: 14px !important;
	font-family: inherit;
}
.swal-orari-apertura .swal2-header {
	padding: 20px 50px 16px 24px;
	background: linear-gradient(135deg, #2d4168 0%, #3c5a8a 100%);
	border-bottom: none;
}
.swal-orari-apertura .swal2-title {
	color: #fff !important;
	font-size: 16px !important;
	font-weight: 600;
	margin: 0;
	padding-right: 0;
}
.swal-orari-apertura .swal2-title::before {
	content: '\f017';
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
	margin-right: 10px;
	opacity: 0.95;
}
.swal-orari-apertura .swal2-close {
	top: 16px !important;
	right: 16px !important;
	width: 36px !important;
	height: 36px !important;
	line-height: 36px !important;
	font-size: 20px !important;
	color: #fff !important;
	background: rgba(255,255,255,0.2) !important;
	border: none !important;
	border-radius: 50% !important;
	transition: background 0.2s, transform 0.15s;
	opacity: 1 !important;
}
.swal-orari-apertura .swal2-close:hover {
	background: rgba(255,255,255,0.35) !important;
	transform: scale(1.05);
	color: #fff !important;
}
.swal-orari-apertura .swal2-html-container {
	margin: 0 !important;
	padding: 18px 24px 24px !important;
	max-height: 60vh;
	overflow-y: auto;
	font-size: 14px !important;
}
.orari-modal-list {
	display: flex;
	flex-direction: column;
	gap: 0;
}
.orari-modal-day {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 14px 16px;
	border-radius: 8px;
	background: #f8f9fc;
	border: 1px solid #e8ecf4;
	margin-bottom: 8px;
	font-size: 14px !important;
	font-family: inherit;
}
.orari-modal-day:last-child { margin-bottom: 0; }
.orari-modal-day:nth-child(even) { background: #fff; }
.orari-day-name {
	font-weight: 600;
	color: #2d4168;
	flex-shrink: 0;
	font-size: 14px !important;
}
.orari-day-name i {
	margin-right: 8px;
	color: #3c5a8a;
	opacity: 0.9;
}
.orari-day-slots {
	color: #444;
	text-align: right;
	font-weight: 500;
	font-size: 14px !important;
}
.orari-slot-sep { color: #8a9bb5; }

/* Griglia orari apertura (modale Cimiteri e scheda cimitero) */
.cemetery-orari-grid { margin-top: 10px; border: 1px solid #e0e0e0; border-radius: 6px; padding: 12px; background: #fafbfc; }
.cemetery-orari-grid .orari-grid-header { margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid #e8ecf4; color: #2d4168; font-size: 12px; }
.cemetery-orari-grid .orari-day-row { margin-bottom: 8px; align-items: center; }
.cemetery-orari-grid .orari-day-row:last-child { margin-bottom: 0; }
.cemetery-orari-grid .orari-day-label { font-weight: 500; color: #333; }
.cemetery-orari-grid .orari-day-row input[type="time"] { display: inline-block; width: calc(50% - 4px); max-width: 85px; }
.cemetery-orari-grid .orari-day-open { margin: 0; cursor: pointer; }
/* 1ª e 2ª fascia: i due time sulla stessa riga (evita wrap) */
.cemetery-orari-grid .orari-day-row .orari-fascia-cell { display: flex; flex-wrap: nowrap; align-items: center; gap: 6px; }
.cemetery-orari-grid .orari-day-row .orari-fascia-cell input[type="time"] { flex: 0 1 auto; min-width: 70px; }

/* ═══════════════════════════════════════════════════════════════════════════
   Gestione credenziali — due pannelli bianchi distinti (inserimento / tabella)
   Card a filo della larghezza contenuto; padding interno per non attaccare al bordo
   ═══════════════════════════════════════════════════════════════════════════ */
.credential-panels-wrapper {
	margin-left: -15px;
	margin-right: -15px;
	padding: 0px 15px;
	background: #f4f6f9;
}
.credential-panel {
	position: relative;
}
.credential-panel-insert {
	margin-bottom: 56px;
}
.credential-panel-table {
	margin-top: 12px;
}
.credential-card-white {
	background: #fff !important;
	border-radius: 4px;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	border: 1px solid #dee2e6 !important;
}
.credential-card-white .card-header {
	padding-left: 24px;
	padding-right: 24px;
}
.credential-card-white .card-body {
	padding-left: 24px;
	padding-right: 24px;
}
/* Pannello tabella: corpo con padding laterale (override p-0) così il datatable non è attaccato ai bordi */
.credential-panel-table .credential-card-white > .card-body {
	padding-left: 24px !important;
	padding-right: 24px !important;
}
.credential-panel-insert .credential-card-white {
	margin-bottom: 0;
}
.credential-panel-table .credential-card-white {
	margin-top: 0;
}

/* Gestione credenziali — selettore tipo: tutte le icone su una riga, compatte e ordinate */
.credential-type-row {
	display: flex;
	flex-wrap: nowrap;
	margin-left: -6px;
	margin-right: -6px;
	gap: 0;
}
.credential-type-row > .credential-type-col {
	flex: 1 1 0;
	min-width: 0;
	padding-left: 6px;
	padding-right: 6px;
	margin-bottom: 0;
}
/* Radio nascosto: si vede solo icona + testo */
.credential-panels-wrapper .type-option input[type="radio"] {
	position: absolute !important;
	width: 0 !important;
	height: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
	margin: 0 !important;
}
.credential-panels-wrapper .type-option {
	cursor: pointer;
	transition: all 0.2s ease;
	background: #fff;
	border: 2px solid #dee2e6;
	height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 72px;
	padding: 10px 8px !important;
	position: relative;
}
.credential-panels-wrapper .type-option i {
	margin-bottom: 4px;
}
.credential-panels-wrapper .type-option span {
	font-size: 12px;
	font-weight: 500;
	color: #495057;
}
.credential-panels-wrapper .type-option:hover {
	background-color: #f0f4ff !important;
	border-color: #b8d4ff !important;
}
/* Selezionato: bordo blu, sfondo e ombra ben visibili */
.credential-panels-wrapper .type-option.border-primary {
	border-width: 2px !important;
	border-color: #3c8dbc !important;
	background: linear-gradient(180deg, #e8f4fc 0%, #d6ebf9 100%) !important;
	box-shadow: inset 0 0 0 1px rgba(60, 141, 188, 0.2);
}
.credential-panels-wrapper .type-option.border-primary i {
	opacity: 1;
}
.credential-panels-wrapper .type-option.border-primary span {
	color: #2d6a9a;
	font-weight: 600;
}

/* DataTable credenziali — intestazione come Anagrafica cliente, celle con più respiro dai bordi */
#table_pwd thead th {
	white-space: nowrap;
	background: #2d4168 !important;
	color: #fff !important;
	border-color: #2d4168 !important;
	font-weight: 600;
	font-size: 13px;
	text-transform: none;
	padding: 12px 20px !important;
	letter-spacing: 0.3px;
	border-bottom-color: rgba(255, 255, 255, 0.2) !important;
}
#table_pwd tbody td {
	padding-left: 20px;
	padding-right: 20px;
}
#table_pwd tbody tr {
	background: #fff;
}
#table_pwd tbody tr:hover {
	background-color: #f5f5f5 !important;
}

#table_pwd .toggle-pwd-visibility {
	cursor: pointer;
	color: #6c757d;
	user-select: none;
}
#table_pwd .toggle-pwd-visibility:hover {
	color: #3c8dbc;
}

/* Inserisci/Modifica Defunto — Foto a destra, altezza 3 righe (Nome/Cognome, Sesso/Stato Civile/Nazionalità, Religione) */
.deceased-anagrafica-top {
	align-items: stretch;
}
.deceased-photo-col {
	display: flex;
	flex-direction: column;
}
.deceased-photo-col .deceased-photo-form-group {
	display: flex;
	flex-direction: column;
	flex: 1;
	min-height: 0;
	margin-bottom: 0;
	align-items: center;
}
.deceased-photo-col .deceased-photo-wrap {
	flex: 1;
	min-height: 140px;
	width: 160px;
	max-width: 100%;
	border: 2px dashed #ddd;
	border-radius: 8px;
	cursor: pointer;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
}
.deceased-photo-col .deceased-photo-form-group label {
	align-self: center;
}
.deceased-photo-col .deceased-photo-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ═══ Pagina 404 ═══ */
.page-404 {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
	background: #eef1f5;
}
@keyframes cardEnter {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@keyframes numPulse {
	0%, 100% { transform: scale(1); opacity: 1; }
	50% { transform: scale(1.02); opacity: 0.95; }
}
@keyframes iconFloat {
	0%, 100% { transform: translateY(0); }
	50% { transform: translateY(-6px); }
}
.page-404 .card-404 {
	max-width: 480px;
	width: 100%;
	border: none;
	border-radius: 20px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.1), 0 4px 20px rgba(0,0,0,0.06);
	overflow: hidden;
	text-align: center;
	animation: cardEnter 0.6s ease-out forwards;
}
.page-404 .card-404 .card-head {
	background: linear-gradient(135deg, #3c8dbc 0%, #2679a8 100%);
	color: #fff;
	padding: 2.5rem 2rem 2rem;
}
.page-404 .card-404 .icon-404 {
	font-size: 4rem;
	opacity: 0.95;
	margin-bottom: 0.75rem;
	animation: iconFloat 3s ease-in-out infinite;
}
.page-404 .card-404 .big-404 {
	font-size: 7rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: -3px;
	text-shadow: 0 4px 20px rgba(0,0,0,0.2);
	margin-bottom: 0.35rem;
	animation: numPulse 2.5s ease-in-out infinite;
}
.page-404 .card-404 .card-head p {
	margin: 0;
	opacity: 0.98;
	font-size: 1.6rem;
	font-weight: 600;
	letter-spacing: 0.02em;
}
.page-404 .card-404 .card-body {
	padding: 2.5rem 2rem;
	background: #fff;
}
.page-404 .card-404 .card-body .lead {
	color: #495057;
	margin-bottom: 2rem;
	font-size: 1.2rem;
	line-height: 1.6;
}
.page-404 .card-404 .btn-home {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	padding: 0.9rem 2rem;
	font-size: 1.15rem;
	border-radius: 10px;
	font-weight: 600;
	background: linear-gradient(135deg, #3c8dbc 0%, #2679a8 100%);
	border: none;
	color: #fff;
	text-decoration: none;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.page-404 .card-404 .btn-home:hover {
	color: #fff;
	transform: translateY(-2px) scale(1.02);
	box-shadow: 0 8px 28px rgba(38, 121, 168, 0.45);
}
.page-404 .card-404 .btn-home i {
	font-size: 1.2rem;
}

/* ═══ Lista Clienti (list_customer.tpl) ═══ */
#customer_filters {
	background: #f8f9fa;
	border: 1px solid #e4e4e4;
	border-radius: 4px;
	padding: 15px;
	margin-bottom: 15px;
}
#customer_filters .section-title {
	margin-top: 0;
}
#customer_filters .form-group {
	margin-bottom: 8px;
}
#customer_filters .filters-actions {
	margin-top: 5px;
}
#customers_table {
	width: 100%;
}
#customers_table th.th-actions {
	width: 120px;
}
#modal_docs_loading {
	padding: 20px;
}
#modal_docs_content,
#modal_docs_empty,
#modal_docs_upload_section {
	display: none;
}
#modal_docs_table th.th-actions {
	width: 90px;
}
#modal_doc_file_supplier_wrap {
	display: none;
}

/* ═══ Stili da template (no style= nei .tpl) ═══ */
.sidebar-settings-muted { color: #6c757d; }
#supplier_filters,
#deceased_filters,
#vehicle_filters,
#employee_filters,
#ac_filters,
#db_filters,
#practice_filters,
#obituary_filters,
#warehouse_category_filters,
#warehouse_filters,
#warehouse_article_filters,
#warehouse_price_list_filters,
#warehouse_stock_filters,
#warehouse_low_stock_filters,
#warehouse_export_filters {
	background: #f8f9fa;
	border: 1px solid #e4e4e4;
	border-radius: 4px;
	padding: 15px;
	margin-bottom: 15px;
}
#supplier_filters .section-title,
#deceased_filters .section-title,
#vehicle_filters .section-title,
#employee_filters .section-title,
#ac_filters .section-title,
#db_filters .section-title,
#practice_filters .section-title,
#obituary_filters .section-title,
#warehouse_category_filters .section-title,
#warehouse_filters .section-title,
#warehouse_article_filters .section-title,
#warehouse_price_list_filters .section-title,
#warehouse_stock_filters .section-title,
#warehouse_low_stock_filters .section-title,
#warehouse_export_filters .section-title { margin-top: 0; }
#supplier_filters .form-group,
#deceased_filters .form-group,
#vehicle_filters .form-group,
#employee_filters .form-group,
#ac_filters .form-group,
#db_filters .form-group,
#practice_filters .form-group,
#obituary_filters .form-group,
#warehouse_category_filters .form-group,
#warehouse_filters .form-group,
#warehouse_article_filters .form-group,
#warehouse_price_list_filters .form-group,
#warehouse_stock_filters .form-group,
#warehouse_low_stock_filters .form-group,
#warehouse_export_filters .form-group { margin-bottom: 8px; }
#supplier_filters .row .col-md-12.text-right,
#deceased_filters .row .col-md-12.text-right,
#vehicle_filters .row .col-md-12.text-right,
#employee_filters .row .col-md-12.text-right { margin-top: 5px; }
#ac_filters .filters-actions,
#db_filters .filters-actions,
#practice_filters .filters-actions,
#obituary_filters .filters-actions,
#warehouse_category_filters .filters-actions,
#warehouse_filters .filters-actions,
#warehouse_article_filters .filters-actions,
#warehouse_price_list_filters .filters-actions,
#warehouse_stock_filters .filters-actions,
#warehouse_low_stock_filters .filters-actions,
#warehouse_export_filters .filters-actions { margin-top: 5px; }

/* Separazione area filtri da DataTable (stessa convenzione di list_customer) */
.datatable-section {
	margin-top: 20px;
}

#suppliers_table,
#deceased_table { width: 100%; }
#suppliers_table th.th-actions { width: 120px; }
#deceased_table th.th-actions { width: 100px; }
#warehouse_category_table th.th-actions,
#warehouse_table th.th-actions,
#warehouse_article_table th.th-actions,
#warehouse_price_list_table th.th-actions { width: 140px; }
.initially-hidden { display: none !important; }
.customer-status.ml10 { margin-left: 10px; }
.select2.width-full { width: 100% !important; }
.section_company { display: none; }
#address_map_wrapper { display: none; margin-top: 10px; }
#address_map {
	width: 100%;
	height: 300px;
	border: 1px solid #ddd;
	border-radius: 4px;
}
.btn-add.va-middle { vertical-align: middle; }
#documents_table.th-docs-actions th.th-100,
#documents_table th.th-100,
#deceased_docs_table th.th-100 { width: 100px; }
.doc-type-options-tpl { display: none; }
.upload-actions-row { margin-top: 10px; }
#btn_upload_all_docs.initially-hidden { display: none !important; }
.form-group.mb-15 { margin-bottom: 15px; }
.label-checkbox { font-size: 14px; cursor: pointer; }
.label-checkbox .text-muted { margin-left: 22px; }
.callout-info.mt-5 { margin-top: 5px; }
.bank-account-row { margin-bottom: 15px; padding: 12px; background: #f9f9f9; border-radius: 4px; }
.bank-predef-cell .checkbox label { cursor: pointer; font-weight: normal; padding-left: 0; }
textarea.note-resize { resize: vertical; }
.customer-header.header-dark { background: linear-gradient(135deg, #555 0%, #333 100%); }
.insert_deceased .tab-content.padded { padding: 15px; }
.deceased-photo-wrap.has-photo { background: #e0e0e0; }
.deceased-photo-wrap.no-photo { background: #f5f5f5 url('../../img/avatar/avatar.jpg') center/cover no-repeat; }
.deceased-photo-wrap img { width: 100%; height: 100%; object-fit: cover; }
.deceased-photo-wrap .photo-preview-empty { display: none; }
#deceased_photo_input { display: none; }
.text-center.mt-20 { margin-top: 20px; }
.mb-15 { margin-bottom: 15px; }
#mandatary_form_template { display: none; }
.btn_mandatary_select { display: none; }
.mandatary_search_results {
	display: none;
	max-height: 150px;
	overflow-y: auto;
	border: 1px solid #ddd;
	border-radius: 4px;
	margin-top: 5px;
}
.box-header.with-border.no-print {
	background: #f9f9f9;
	padding: 10px 15px;
}
.nav-tabs-custom .customer-avatar img { width: 80px; height: 80px; object-fit: cover; border-radius: 8px; }
.box-body .customer-header { margin-bottom: 20px; }
.customer-info h3 { margin-top: 0; }
.customer-info .label { margin-left: 10px; }
#panel_credenziali,
#panel_carta { display: none; }
#table_pwd { width: 100%; }
.remove_row { cursor: pointer; }
.reset-password-wrap { text-align: center; }
.reset-password-wrap .icon-wrap { margin-left: auto; margin-right: auto; }
.login-card .form-group.mt-1 { margin-top: 1rem; text-align: center; }
.scheda-cliente .customer-header,
.scheda-fornitore .customer-header { margin-bottom: 20px; }
.scheda-cliente .customer-info h3,
.scheda-fornitore .customer-info h3 { margin-top: 0; }
.scheda-cliente .customer-info .label,
.scheda-fornitore .customer-info .label { margin-left: 10px; }
#scheda_address_map {
	width: 100%;
	height: 280px;
	border: 1px solid #ddd;
	border-radius: 4px;
	margin-bottom: 20px;
}
.scheda-cliente .customer-header,
.scheda-fornitore .customer-header { margin-bottom: 20px; }
.scheda-cliente .customer-info h3,
.scheda-fornitore .customer-info h3 { margin-top: 0; }
.scheda-cliente .customer-info .label,
.scheda-fornitore .customer-info .label { margin-left: 10px; }
.login-honeypot {
	position: absolute;
	left: -9999px;
	top: -9999px;
	opacity: 0;
	height: 0;
	width: 0;
	overflow: hidden;
}

/* ═══ Colonna Azioni tabelle: uniformità modifica, eliminazione, schede, documenti, disattivazione ═══ */
.dt-actions-nowrap {
	white-space: nowrap;
	display: inline-flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: 4px;
}
.dt-actions-nowrap .btn-xs {
	min-width: 28px;
	height: 28px;
	padding: 0;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.table td:last-child .dt-actions-nowrap,
table.dataTable td:last-child .dt-actions-nowrap {
	justify-content: center;
}
table.dataTable thead th:last-child { text-align: center; }
.doc-icon-has-docs { color: #28a745; }
.doc-icon-empty { color: #ffc107; }
.doc-upload-row {
	background: #f9f9f9;
	border: 1px solid #e0e0e0;
	border-radius: 4px;
	padding: 12px 15px;
	margin-bottom: 10px;
	position: relative;
}
.doc-upload-row .btn_remove_doc_row {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 10;
	width: 24px;
	height: 24px;
	background: #d9534f;
	color: #fff;
	border-radius: 3px;
	font-size: 14px;
	line-height: 24px;
	text-align: center;
	cursor: pointer;
	display: block;
	box-sizing: border-box;
}
.doc-upload-row .form-group { margin-bottom: 8px; }
.doc-upload-row .doc-preview,
.doc-upload-row .doc-upload-status {
	display: none;
	margin-top: 5px;
}
.doc-preview-inner {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
}
.doc-preview-inner.doc-preview-inner-center { align-items: center; }
.doc-preview-img {
	max-height: 80px;
	max-width: 120px;
	border: 1px solid #ddd;
	border-radius: 3px;
	object-fit: contain;
}

/* Placeholder in maiuscolo: resta in caso normale (es. "Codice Fiscale" invece di "CODICE FISCALE") */
input.text-uppercase::placeholder {
	text-transform: none;
}

/* ═══ Gestione Parametri (gestione_parametri.tpl) ═══ */
.settings-page-wrap { max-width: 100%; }
.settings-page-wrap .customer-header.header-dark { margin-bottom: 24px; }
.settings-sections { padding: 0; }
.settings-sections .section-title { margin: 24px 0 14px 0; }
.settings-sections .section-title:first-of-type { margin-top: 0; }
.settings-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 14px 24px;
	margin-bottom: 8px;
}
.settings-row { display: flex; flex-direction: column; gap: 6px; }
.settings-row label {
	font-size: 12px;
	font-weight: 600;
	color: #555;
	margin: 0;
}
.settings-field-wrap {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}
.settings-field-wrap .settings-input { flex: 1; min-width: 180px; }
.settings-field-wrap .btn-save-param { flex-shrink: 0; }
.settings-row-full .settings-field-wrap { flex-direction: column; align-items: flex-start; }
.settings-row-full .settings-field-wrap .settings-input { width: 100%; min-width: 0; }
.settings-row-full .settings-field-wrap textarea.settings-input { max-width: 100%; }
.mt10 { margin-top: 10px; }
.settings-page-wrap .btn-save-param { padding: 5px 12px; }
.settings-page-wrap .section-title.section-green { border-left-color: #00a65a; }
.settings-page-wrap .section-title.section-green i { color: #00a65a; }
.settings-page-wrap .section-title.section-orange { border-left-color: #f39c12; }
.settings-page-wrap .section-title.section-orange i { color: #f39c12; }

.settings-logo-block { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 24px; margin-bottom: 20px; }
.settings-logo-preview {
	width: 180px;
	height: 100px;
	border: 1px solid #d2d6de;
	border-radius: 8px;
	background: #f9f9f9;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.settings-logo-preview .settings-logo-img { max-width: 100%; max-height: 100%; object-fit: contain; }
.settings-logo-placeholder {
	color: #999;
	font-size: 13px;
	text-align: center;
	padding: 10px;
}
.settings-logo-placeholder i { font-size: 28px; display: block; margin-bottom: 6px; color: #ccc; }
.settings-logo-upload { display: flex; flex-direction: column; gap: 8px; }
.settings-logo-upload .help-block { margin: 0; font-size: 12px; }

.settings-smtp-test-wrap { margin-bottom: 12px; }
.settings-smtp-test-wrap #btn_test_smtp_open { margin-right: 8px; }
.settings-pec-test-wrap { margin-bottom: 12px; }
.settings-pec-test-wrap #btn_test_pec_open { margin-right: 8px; }

/* ═══ Caselle di posta — Form ═══ */
.mail-provider-select:focus {
	border-color: #3b82f6;
	box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}
/* Le 4 righe del form equidistanti (stesso margine sotto ogni riga) */
.mail-account-form-row {
	margin-bottom: 1.5rem;
}
.mail-account-form-hint {
	margin-bottom: 1.5rem;
}
.mail-account-row-servers {
	/* nessun border-top, stessa spaziatura delle altre righe */
}

/* Pulsanti Salva/Annulla staccati dai campi, senza linea sopra */
.mail-account-form-actions-row {
	margin-top: 2rem;
	padding-top: 0;
	border-top: none;
}

/* Tabella Elenco caselle ben distinta dal form di inserimento */
.mail-account-list-card {
	margin-top: 2.5rem;
	padding-top: 0;
	border-top: 2px solid #dee2e6;
}
.mail-account-list-card .card-header {
	background-color: #f8f9fa;
	border-bottom: 1px solid #dee2e6;
	font-weight: 600;
}

/* ═══ Mailbox (mini client di posta) ═══ */
.mailbox-unread { font-weight: bold; }
.mailbox-folders-list { margin-left: 15px; }
.mailbox-account-item > a { display: block; padding: 8px 12px; }
.mailbox-account-link {
	display: flex;
	align-items: center;
	border-left: 3px solid #007bff;
	background-color: rgba(0, 123, 255, 0.06);
	border-radius: 0 4px 4px 0;
}
.mailbox-account-link .fa-envelope { color: #007bff; }
.mailbox-folders-list li a { padding: 6px 12px; font-size: 13px; }
.mailbox-folder-unread { margin-left: 6px; font-size: 11px; vertical-align: middle; }
.mailbox-read-info, .mailbox-read-message { word-break: break-word; }
#modal_mailbox_read_body {
	text-decoration: none !important;
	font-size: 14px;
	line-height: 1.5;
	word-break: break-word;
}
#modal_mailbox_read_body * { text-decoration: none !important; }
#modal_mailbox_read_body a[href] { text-decoration: underline !important; }
#modal_mailbox_read_body a[href]:hover { opacity: 0.9; }
#modal_mailbox_read_body img { max-width: 100%; height: auto; vertical-align: middle; }
#modal_mailbox_read_body iframe { max-width: 100%; }

/* Barra comandi mailbox: una sola riga, senza andare a capo */
.mailbox-controls {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px;
	min-width: 0;
}
.mailbox-controls .btn-group,
.mailbox-controls .checkbox-toggle,
.mailbox-controls .mailbox-btn-refresh { flex-shrink: 0; }
.mailbox-controls .float-right {
	display: flex;
	align-items: center;
	flex-shrink: 0;
	margin-left: auto;
	gap: 8px;
}
.mailbox-controls .float-right .btn-group { flex-shrink: 0; }
.mailbox-att-count { display: inline-flex; align-items: center; gap: 2px; margin-right: 4px; }
.mailbox-att-count .mailbox-att-n { font-size: 11px; color: #6c757d; }
.mailbox-att-col { width: 2.5em; max-width: 2.5em; text-align: center; }
.mailbox-date { white-space: nowrap; font-size: 0.9em; }
.mailbox-star-link { text-decoration: none; }
.mailbox-star .fas.mailbox-star-icon.fa-star { color: #f0ad4e; }
.mailbox-star .far.mailbox-star-icon.fa-star { color: #c4a747; }

/* Barra filtri e ordinamento mailbox */
.mailbox-filter-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; min-height: 42px; }
.mailbox-filter-label { font-weight: 600; margin-right: 6px; color: #495057; }
.mailbox-filter-btns .mailbox-filter-btn.active { font-weight: 600; }
.mailbox-sort-wrap { margin-left: auto; }
.mailbox-sort-btn .mailbox-sort-label { margin-left: 2px; }

/* ═══ Gestione Utenti ═══ */
.form-user-gestione .form-user-row {
	margin-bottom: 1rem;
}
.form-user-gestione .form-user-row:last-of-type { margin-bottom: 0; }
.form-user-gestione label { margin-bottom: 0.35rem; }
.form-user-gestione .form-user-actions-row {
	margin-top: 1.25rem;
	margin-bottom: 0;
	padding-top: 0.5rem;
	border-top: 1px solid #dee2e6;
}
.user-privileges-wrap {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 0.75rem 1.25rem;
	min-height: 2em;
}
.user-privileges-wrap .user-priv-item {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.6rem 0.85rem;
	background: #f8f9fa;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
	margin: 0;
}
.user-privileges-wrap .user-priv-item:hover {
	background: #e9ecef;
	border-color: #adb5bd;
}
.user-privileges-wrap .user-priv-item input.user-priv-cb {
	margin: 0;
	flex-shrink: 0;
	cursor: pointer;
}
.user-privileges-wrap .user-priv-item .user-priv-label {
	font-size: 0.9375rem;
	color: #495057;
	user-select: none;
}
.user-list-card { margin-top: 0; }
.user-list-divider { border: 0; border-top: 1px solid #dee2e6; margin: 2.5rem 0 1.5rem 0; }
.user-avatar-upload-wrap {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
}
.user-avatar-input-wrap { flex: 0 1 auto; min-width: 0; max-width: 460px; }
.user-avatar-upload-wrap input[type="file"].form-control { height: auto; padding: 6px 12px; width: 100%; }
.user-avatar-preview-wrap { flex: 0 0 auto; }
.user-avatar-preview-img {
	width: 80px;
	height: 80px;
	object-fit: cover;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	display: block;
}

/* ═══ Statistiche accessi (login log) ═══ */
.login-log-browser-icon {
	width: 56px;
	height: 56px;
	vertical-align: middle;
	object-fit: contain;
}
.login-log-browser-name {
	font-size: 12px;
	vertical-align: middle;
}
.login-log-ip-link {
	cursor: pointer;
	text-decoration: underline;
	text-decoration-style: dotted;
}
.login-log-ip-link:hover {
	text-decoration-style: solid;
}

/* Whois modal (SweetAlert) */
.swal2-html-container pre.login-log-whois-pre {
	max-height: 70vh;
	overflow: auto;
	white-space: pre-wrap;
	word-break: break-word;
	font-size: 12px;
	text-align: left;
	margin: 0;
	padding: 8px;
	background: #f5f5f5;
	border-radius: 4px;
}

/* ═══ Modal Calcolatrice ═══ */
.modal_calculator-dialog {
	width: 320px;
	margin: 30px auto;
}
.modal_calculator-content {
	border-radius: 12px;
	overflow: hidden;
	box-shadow: 0 8px 32px rgba(0,0,0,0.15);
}
.modal_calculator-body {
	padding: 16px;
	background: linear-gradient(180deg, #f8f9fa 0%, #e9ecef 100%);
}
.calc-display-wrap {
	margin-bottom: 12px;
}
.calc-display {
	width: 100%;
	height: 56px;
	padding: 12px 16px;
	font-size: 28px;
	font-weight: 600;
	text-align: right;
	border: 2px solid #dee2e6;
	border-radius: 10px;
	background: #fff;
	box-shadow: inset 0 1px 3px rgba(0,0,0,0.08);
	font-family: inherit;
}
.calc-buttons {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 8px;
}
.calc-btn {
	height: 52px;
	font-size: 20px;
	font-weight: 600;
	border: none;
	border-radius: 10px;
	cursor: pointer;
	transition: transform 0.05s ease, box-shadow 0.15s ease;
	background: #fff;
	color: #333;
	box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.calc-btn:hover {
	background: #f1f3f5;
	box-shadow: 0 4px 10px rgba(0,0,0,0.12);
}
.calc-btn:active {
	transform: scale(0.97);
}
.calc-btn-num {
	background: #fff;
	color: #212529;
}
.calc-btn-op {
	background: #e7f1ff;
	color: #0d6efd;
}
.calc-btn-op:hover {
	background: #cfe2ff;
}
.calc-btn-eq {
	background: linear-gradient(180deg, #0d6efd 0%, #0a58ca 100%);
	color: #fff;
	grid-column: span 1;
}
.calc-btn-eq:hover {
	background: linear-gradient(180deg, #0b5ed7 0%, #084298 100%);
	color: #fff;
}
.calc-btn-zero {
	grid-column: span 2;
}

/* ═══ Calendario — Box Crea evento ═══ */
.box-calendar-create {
	border-radius: 8px;
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
	border: 1px solid #e8e8e8;
}
.box-calendar-create-header {
	background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
	border-bottom: 1px solid #dee2e6;
	border-radius: 8px 8px 0 0;
	padding: 12px 15px;
}
.box-calendar-create-header .box-title,
.calendar-create-title {
	font-size: 1.5rem;
	font-weight: 700;
	color: #2c3e50;
	margin: 0;
}
.box-calendar-create-header .calendar-create-title i,
.calendar-create-title i {
	margin-right: 10px;
	color: #3c8dbc;
}
.box-calendar-create .input-group-addon {
	cursor: pointer;
	background: #f8f9fa;
	border-color: #dee2e6;
}
.box-calendar-create .input-group-addon:hover {
	background: #e9ecef;
}
.box-calendar-create .input-group-addon i {
	pointer-events: none;
}
.box-calendar-create-body {
	padding: 16px 15px;
}
.calendar-create-field {
	margin-bottom: 12px;
}
.calendar-create-field label,
.box-calendar-create .calendar-color-label {
	font-weight: 600;
	color: #2c3e50;
	font-size: 1.05rem;
	margin-bottom: 6px;
	display: block;
}
.box-calendar-create .form-control {
	border-radius: 6px;
	border-color: #dee2e6;
}
.box-calendar-create .form-control:focus {
	border-color: #3c8dbc;
	box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.2);
}
.calendar-btn-add {
	border-radius: 6px;
	font-weight: 600;
	padding: 10px 16px;
	margin-top: 8px;
	transition: opacity 0.2s, transform 0.1s;
}
.calendar-btn-add:hover {
	opacity: 0.95;
	transform: translateY(-1px);
}
.calendar-color-picker .fc-color-picker {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.calendar-color-picker .fc-color-picker li {
	margin: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}
.calendar-color-picker .fc-color-picker a {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: none;
	box-sizing: border-box;
	background: transparent;
	flex-shrink: 0;
	outline: none;
}
.calendar-color-picker .fc-color-picker a:focus {
	outline: none;
}
.calendar-color-picker .fc-color-picker a i {
	display: block;
	font-size: 20px;
	line-height: 0;
	width: 1em;
	height: 1em;
}
.calendar-btn-quick {
	margin-top: 8px;
	border-radius: 6px;
}
.quick-event-item {
	position: relative;
	padding-right: 28px;
}
.quick-event-remove {
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
	opacity: 0.85;
	font-size: 12px;
	padding: 2px 4px;
	line-height: 1;
	border-radius: 3px;
}
.quick-event-remove:hover {
	opacity: 1;
	background: rgba(0, 0, 0, 0.2);
}

/* ═══ Editor manifesti funebri ═══ */
.funeral-manifest-editor-wrap .funeral-editor-box {
	margin-bottom: 0;
}
.funeral-manifest-editor-wrap .funeral-editor-body {
	padding: 10px 15px;
}
.funeral-manifest-editor-wrap .funeral-editor-toolbar {
	margin-bottom: 10px;
}
.funeral-manifest-editor-wrap .funeral-toolbar-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 12px;
}
.funeral-manifest-editor-wrap .funeral-label-inline {
	margin: 0 4px 0 0;
	font-weight: normal;
	white-space: nowrap;
}
.funeral-manifest-editor-wrap .funeral-manifest-title-input {
	width: 200px;
}
.funeral-manifest-editor-wrap .funeral-toolbar-sep {
	width: 1px;
	height: 24px;
	background: #dee2e6;
	margin: 0 4px;
}
.funeral-manifest-editor-wrap .funeral-text-format-bar {
	display: inline-flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 4px 8px;
}
.funeral-manifest-editor-wrap .funeral-text-format-bar.ml10 { margin-left: 10px; }
.funeral-manifest-editor-wrap .funeral-editor-canvas-container {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: calc(100vh - 220px);
	height: calc(100vh - 220px);
	background: #2d3748;
	border: 1px solid #dee2e6;
	border-radius: 4px;
	padding: 15px;
	overflow: auto;
}
.funeral-manifest-editor-wrap .funeral-editor-canvas-container .canvas-wrapper {
	display: inline-block;
	box-shadow: 0 4px 20px rgba(0,0,0,0.3);
}
.funeral-manifest-editor-wrap #funeral_manifest_canvas {
	display: block;
	background: #fff;
}
.funeral-manifest-editor-wrap .funeral-editor-placeholder {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	text-align: center;
	color: #a0aec0;
	padding: 20px;
}
.funeral-manifest-editor-wrap .funeral-editor-placeholder.hiddenElement {
	display: none;
}
.funeral-manifest-editor-wrap .mb15 { margin-bottom: 15px; }
.funeral-manifest-editor-wrap .mr10 { margin-right: 10px; }
.funeral-manifest-editor-wrap .mr15 { margin-right: 15px; }
.funeral-manifest-editor-wrap .mt10 { margin-top: 10px; }
/* Modal ritaglio foto defunto */
.funeral-crop-wrap img {
	display: block;
}
.funeral-crop-wrap .img-container {
	max-height: 70vh;
	overflow: hidden;
}

/* ═══ Quick Access Dashboard ═══ */
.dashboard-cards-wrap {
	display: flex;
	flex-wrap: wrap;
	gap: 15px;
}
.qa-dashboard-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08);
	overflow: hidden;
}
#quick_access_dashboard.qa-dashboard-card,
.calendar-dashboard-card,
.map-customers-dashboard-card {
	flex: 0 0 calc((100% - 30px) / 3);
	min-width: 0;
}
.qa-dashboard-card .qa-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
	border-bottom: 1px solid rgba(0,0,0,0.1);
	background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
	color: #fff;
}
.qa-dashboard-card .qa-card-title {
	margin: 0;
	font-size: 16px;
	font-weight: 600;
	color: #fff;
}
.qa-dashboard-card .qa-card-close {
	background: transparent;
	border: none;
	padding: 4px 8px;
	color: rgba(255,255,255,0.9);
	cursor: pointer;
	border-radius: 4px;
	line-height: 1;
	transition: color 0.2s ease, background 0.2s ease;
}
.qa-dashboard-card .qa-card-close:hover {
	color: #fff;
	background: rgba(255,255,255,0.2);
}
.qa-dashboard-card .qa-card-body {
	padding: 15px 16px;
}
.quick-access-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 8px;
	padding: 25px 15px;
	text-align: center;
	cursor: pointer;
	transition: all 0.2s ease;
	margin-bottom: 15px;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 115px;
	height: 115px;
	box-sizing: border-box;
}
#quick_access_dashboard .qa-card-body .row {
	align-items: stretch;
}
#quick_access_dashboard .qa-card-body .row > [class*="col-"] {
	display: flex;
}
#quick_access_dashboard .quick-access-card {
	flex: 1;
	width: 100%;
	min-height: 115px;
	height: 115px;
}
.quick-access-card:hover {
	border-color: #3c8dbc;
	box-shadow: 0 4px 12px rgba(60,141,188,0.15);
	transform: translateY(-2px);
}
.quick-access-card i {
	font-size: 32px;
	display: block;
	margin-bottom: 10px;
	flex-shrink: 0;
}
.quick-access-card span {
	font-size: 14px;
	font-weight: 600;
	color: #333;
	line-height: 1.25;
}
.qa-quote-new i { color: #f39c12; }
.qa-quote-list i { color: #3c8dbc; }
.qa-customer-new i { color: #00a65a; }
.qa-customer-list i { color: #605ca8; }
.qa-practice-list i { color: #3c8dbc; }
.qa-obituary-list i { color: #605ca8; }

/* Calendario dashboard (box home) */
.calendar-dashboard-card .qa-card-body {
	min-height: 200px;
	background: #fff;
}
#calendar_mini {
	min-height: 280px;
	font-size: 12px;
	background: #fff;
}
#calendar_mini .fc-view-container,
#calendar_mini .fc-scroller,
#calendar_mini .fc-time-grid,
#calendar_mini .fc-bg table,
#calendar_mini td.fc-day,
#calendar_mini .fc-axis {
	background: #fff !important;
}
#calendar_mini .fc-time-grid .fc-slats td {
	background: #fff;
}
#calendar_mini .fc-header-toolbar {
	margin-bottom: 8px;
}
#calendar_mini .fc-toolbar button {
	font-size: 11px;
	padding: 2px 6px;
}
#calendar_mini .fc-toolbar-title {
	font-size: 13px;
}
#calendar_mini .fc-event {
	font-size: 11px;
	padding: 1px 3px;
}
#calendar_mini .fc-daygrid-day-number {
	font-size: 11px;
}

/* Mappa clienti dashboard */
.map-customers-dashboard-card .qa-card-body {
	padding: 0;
	overflow: hidden;
	flex: 1;
	min-height: 280px;
	display: flex;
	flex-direction: column;
}
.map-customers-dashboard-card {
	display: flex;
	flex-direction: column;
}
#map_customers_canvas {
	width: 100%;
	flex: 1;
	min-height: 280px;
	background: #e8f4fc;
}
/* Tooltip/InfoWindow mappa: stile card */
.map-infowindow-card {
	min-width: 200px;
	max-width: 280px;
	padding: 0;
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0,0,0,0.12);
	border: 1px solid #e0e0e0;
	overflow: hidden;
	font-family: inherit;
}
.map-infowindow-card .map-infowindow-header {
	background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
	color: #fff;
	padding: 10px 14px;
	font-weight: 600;
	font-size: 14px;
	line-height: 1.3;
}
.map-infowindow-card .map-infowindow-body {
	padding: 10px 14px;
	font-size: 12px;
	color: #555;
	line-height: 1.4;
}
.map-infowindow-card .map-infowindow-body .map-infowindow-sub {
	color: #777;
	margin-top: 4px;
}
.gm-style-iw-d {
	overflow: auto !important;
	padding: 0 !important;
	margin: 0 !important;
}
.gm-style-iw-c {
	padding: 0 !important;
	padding-top: 0 !important;
	border-radius: 8px !important;
}
.gm-style .gm-style-iw,
.gm-style-iw {
	padding: 0 !important;
	padding-top: 0 !important;
	margin: 0 !important;
}
.gm-style-iw-tc::after { background: #fff !important; }
/* Niente spazio sopra il contenuto dell'InfoWindow (titolo a filo con il bordo) */
.gm-style-iw-d .map-infowindow-card,
.gm-style-iw .map-infowindow-card {
	margin: 0 !important;
	margin-top: 0 !important;
}
.gm-style-iw .map-infowindow-card .map-infowindow-header {
	border-radius: 8px 8px 0 0;
}
/* Elimina eventuale spazio sopra l'InfoWindow (wrapper Google) */
.gm-style-iw-ch,
.gm-style-iw-c > div,
.gm-style-iw-tc {
	padding-top: 0 !important;
	margin-top: 0 !important;
}

/* Pulsante chiudi (X) InfoWindow mappa: nascosto (si chiude con mouseout / click altrove) */
.gm-style-iw-c .gm-ui-hover-effect,
.gm-style .gm-style-iw-c button.gm-ui-hover-effect,
.gm-style-iw-c button[aria-label],
.gm-style-iw + button,
.gm-style-iw-tc > div,
button.gm-ui-hover-effect {
	display: none !important;
	visibility: hidden !important;
	width: 0 !important;
	height: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
/* Nasconde il contenitore angolo in alto a destra dell'InfoWindow (evita X e bordo) */
.gm-style-iw-tc {
	display: none !important;
}

/* Comandi mappa Google (Mappa / Satellite / Etichette): blocco compatto, testo proporzionato */
.gm-style-mtc,
#map_customers_canvas .gm-style-mtc,
#map_customers_dashboard .gm-style-mtc {
	font-size: 11px !important;
	padding: 2px 0 !important;
	margin: 0 !important;
	transform: scale(0.8);
	transform-origin: left top;
}
.gm-style-mtc > div,
.gm-style-mtc > div:first-child,
.gm-style-mtc > div > div,
.gm-style-mtc .gm-control-active,
.gm-style-mtc div[role="button"] {
	font-size: 11px !important;
	padding: 3px 6px !important;
	line-height: 1.3 !important;
	min-height: auto !important;
	height: auto !important;
}
.gm-style-mtc button,
.gm-style-mtc .gm-control-active {
	font-size: 11px !important;
	padding: 3px 6px !important;
}
/* Checkbox Etichette/Rilievo e label */
.gm-style-mtc label,
.gm-style-mtc input[type="checkbox"] {
	font-size: 11px !important;
	padding: 2px 4px !important;
	margin: 0 !important;
}
.gm-style-mtc input[type="checkbox"] {
	width: 12px !important;
	height: 12px !important;
	min-width: 12px !important;
	min-height: 12px !important;
	margin: 0 4px 0 0 !important;
}

.customer-map-detail-content .table-scheda th {
	color: #666;
}

/* ═══ Preventivi ═══ */
.quote-section-title-row {
	background-color: #f5f5f5 !important;
}
.quote-section-title-row td {
	font-weight: 700;
}
.section-title-input {
	font-weight: 700;
	border: 1px dashed #ccc !important;
	background: transparent !important;
}
.quote-summary-row td {
	border-top: none !important;
	padding: 3px 8px !important;
}
.quote-total-row td {
	border-top: 2px solid #333 !important;
	padding: 6px 8px !important;
}
.quote-actions-bar {
	border-top: 1px solid #e0e0e0;
	padding: 15px;
	background: #fafafa;
}
.quote-drag-handle {
	cursor: grab;
}
#quote_items_table .form-control.input-sm {
	padding: 3px 6px;
	height: 28px;
}
#quote_items_table .item-fixed {
	width: 16px;
	height: 16px;
	cursor: pointer;
}
.fsize14 {
	font-size: 14px;
}

/* ═══ Contratti ═══ */
.qa-contract-list i { color: #f39c12; }

#contract_items_table .form-control.input-sm {
	padding: 3px 6px;
	height: 28px;
}
#contract_items_table .item-fixed {
	width: 16px;
	height: 16px;
	cursor: pointer;
}

/* ═══ Tab su mobile (mascherine inserimento) ═══ */
@media (max-width: 767px) {
	/* Contenitore tab scrollabile orizzontalmente: si vedono tutti e si può scorrere */
	.nav-tabs-custom > .nav-tabs {
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		overflow-y: hidden;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: thin;
		padding-bottom: 4px;
		margin-left: -6px;
		margin-right: -6px;
		padding-left: 6px;
		padding-right: 6px;
	}
	.nav-tabs-custom > .nav-tabs::-webkit-scrollbar {
		height: 6px;
	}
	.nav-tabs-custom > .nav-tabs::-webkit-scrollbar-thumb {
		background: #c2c2c2;
		border-radius: 3px;
	}
	/* Ogni tab resta leggibile: no wrap, min-width, touch target adeguato */
	.nav-tabs-custom > .nav-tabs > li {
		flex: 0 0 auto;
	}
	.nav-tabs-custom > .nav-tabs > li > a {
		white-space: nowrap;
		min-width: 0;
		padding: 12px 14px;
		font-size: 13px;
	}
	/* Icona + testo sempre visibili; badge non va a capo */
	.nav-tabs-custom > .nav-tabs > li > a .badge-tab {
		margin-left: 4px;
		vertical-align: middle;
	}
}
/* Tab verticali (flex-column) dentro nav-tabs-custom: su mobile diventano orizzontali scrollabili */
@media (max-width: 767px) {
	.nav-tabs-custom .nav-tabs.flex-column {
		flex-direction: row !important;
		display: flex;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 6px;
		margin-bottom: 12px;
		border-bottom: 1px solid #d2d6de;
	}
	.nav-tabs-custom .nav-tabs.flex-column .nav-item {
		flex: 0 0 auto;
	}
	.nav-tabs-custom .nav-tabs.flex-column .nav-link {
		white-space: nowrap;
		padding: 10px 14px;
	}
}

/* ═══ Liste: spazio tra pulsante "Nuovo" e tabella (allineato a lista clienti) ═══ */
.list-actions-row {
	margin-bottom: 22px;
}
/* Tabelle liste (anagrafiche comuni, licenze, dati base, ecc.) — width e colonna Azioni come lista clienti */
#ac_table,
#license_table,
#masthead_table,
#meeting_place_table,
#article_table,
#practice_table,
#obituary_table,
#obituary_price_table,
#vehicle_price_table {
	width: 100% !important;
}
#ac_table th.th-actions,
#license_table th.th-actions,
#masthead_table th.th-actions,
#meeting_place_table th.th-actions,
#article_table th.th-actions,
#practice_table th.th-actions,
#obituary_table th.th-actions,
#obituary_price_table th.th-actions,
#vehicle_price_table th.th-actions {
	width: 80px !important;
}

/* ═══ DataTables: paginazione compatta e senza bordo hover (tutte le tabelle del progetto) ═══ */
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0;
	align-items: center;
	margin: 2px 0 !important;
	padding-left: 0 !important;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li {
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > a,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > span {
	padding: 5px 10px !important;
	margin: 0 !important;
	margin-left: -1px !important;
	border: 1px solid #ddd;
	color: #333;
	min-width: 34px;
	text-align: center;
	float: none !important;
	display: inline-block;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li:first-child > a {
	margin-left: 0 !important;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > a:hover,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > a:focus,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > span:hover,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li > span:focus {
	border-color: #ddd !important;
	background-color: #f5f5f5 !important;
	color: #333 !important;
	outline: none !important;
	box-shadow: none !important;
}
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li.active > a,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li.active > a:hover,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li.active > span,
div.dataTables_wrapper div.dataTables_paginate ul.pagination > li.active > span:hover {
	background-color: #3c8dbc !important;
	border-color: #3c8dbc !important;
	color: #fff !important;
}

/* ═══ Task board (mini Jira) — sotto le card dashboard, tutta larghezza ═══ */
.task-board-wrapper.task-board-fullwidth {
	flex: 0 0 100%;
	width: 100%;
	box-sizing: border-box;
	margin-left: 0;
	margin-right: 0;
}
.task-board-wrapper .task-board-header.qa-card-header {
	background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
	border-radius: 0;
}
.task-board-wrapper .task-board-body.qa-card-body {
	padding: 15px 16px;
}
.task-board-wrapper .task-board-body .mb10 { margin-bottom: 10px; }
.task-board {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	padding-bottom: 8px;
	min-height: 120px;
}
.task-board-column {
	flex: 1;
	min-width: 0;
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.task-board-column-header {
	padding: 10px 12px;
	font-weight: 600;
	font-size: 12px;
	color: #fff;
	border-radius: 6px 6px 0 0;
	background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%);
}
.task-board-column[data-status="todo"] .task-board-column-header { background: linear-gradient(135deg, #5d6d7e 0%, #4a5a6a 100%); }
.task-board-column[data-status="taken"] .task-board-column-header { background: linear-gradient(135deg, #f39c12 0%, #e08e0b 100%); }
.task-board-column[data-status="in_progress"] .task-board-column-header { background: linear-gradient(135deg, #3c8dbc 0%, #367fa9 100%); }
.task-board-column[data-status="done"] .task-board-column-header { background: linear-gradient(135deg, #00a65a 0%, #008d4c 100%); }
.task-board-column-cards {
	flex: 1;
	padding: 6px;
	min-height: 80px;
	overflow-y: auto;
	max-height: 240px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.task-board-card {
	background: #fff;
	border: 1px solid #e0e0e0;
	border-radius: 6px;
	padding: 10px;
	box-shadow: 0 1px 2px rgba(0,0,0,0.05);
	transition: box-shadow 0.15s ease;
	width: 100%;
	box-sizing: border-box;
	min-width: 0;
}
.task-board-card:hover {
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.task-board-card-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
	margin-bottom: 6px;
}
.task-board-card-title {
	font-weight: 600;
	font-size: 13px;
	color: #333;
	flex: 1;
	word-break: break-word;
	min-width: 0;
}
.task-board-card-desc {
	font-size: 11px;
	color: #666;
	margin-bottom: 8px;
	line-height: 1.35;
	word-break: break-word;
}
.task-board-card-meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	flex-wrap: wrap;
}
.task-board-card-assignee {
	font-size: 11px;
}
.task-board-card-assignee:not([style*="color"]) {
	color: #777;
}
.task-board-card-edit.btn-default,
.task-board-card-delete.btn-default {
	background: transparent;
	border-color: #adadad;
	color: #333;
}
.task-board-card-edit.btn-default:hover,
.task-board-card-delete.btn-default:hover {
	background: #e6e6e6;
	border-color: #adadad;
	color: #333;
}
.task-board-card-delete.btn-default:hover {
	background: #f5f5f5;
	color: #a94442;
}
.task-board-card-status {
	width: auto;
	min-width: 100px;
	font-size: 11px;
	height: 26px;
	padding: 2px 6px;
}
.task-board-wrapper .dt-actions-nowrap .btn {
	margin-left: 2px;
}

/* Task board — colonna vuota: icona + testo "Nessun task presente" */
.task-board-column-empty {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 24px 12px;
	text-align: center;
	color: #999;
	min-height: 80px;
}
.task-board-column-empty .task-board-empty-icon {
	font-size: 28px;
	margin-bottom: 8px;
	opacity: 0.7;
}
.task-board-column-empty .task-board-empty-text {
	font-size: 13px;
}
