/* Componenti condivisi per Sezione finanziaria e Budget (dark-mode aware, usa le variabili --ins-* del tema) */

.bgt-wrap {
	--bgt-green: #1d4d3a;
	--bgt-green-hover: #163d2e;
	--bgt-green-soft-bg: var(--ins-success-bg-subtle);
	--bgt-green-soft-text: var(--ins-success-text-emphasis);
	--bgt-red: #a8453a;
	--bgt-red-soft-bg: var(--ins-danger-bg-subtle);
	--bgt-red-soft-text: var(--ins-danger-text-emphasis);
	color: var(--ins-body-color);
}

.bgt-updated {
	font-size: .78rem;
	color: var(--ins-secondary-color);
}

.bgt-datectrl {
	background: var(--ins-secondary-bg);
	border: 1px solid var(--ins-border-color);
	border-radius: 10px;
	width: auto;
	cursor: pointer;
	color: var(--ins-body-color);
}

.bgt-reload {
	background: var(--ins-secondary-bg);
	border: 1px solid var(--ins-border-color);
	border-radius: 10px;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	margin-left: .5rem;
	color: var(--ins-body-color);
}

/* Tab segmentati */
.bgt-seg {
	display: inline-flex;
	background: var(--ins-tertiary-bg);
	border-radius: 10px;
	padding: 3px;
	gap: 2px;
}

.bgt-seg-item {
	border: 0;
	background: transparent;
	color: var(--ins-secondary-color);
	font-size: .82rem;
	font-weight: 500;
	padding: .45rem 1.4rem;
	border-radius: 8px;
	white-space: nowrap;
}

.bgt-seg-item.active {
	background: var(--ins-secondary-bg);
	color: var(--ins-emphasis-color);
	font-weight: 600;
	box-shadow: 0 1px 3px rgba(0, 0, 0, .16);
}

/* KPI card */
.bgt-kpi {
	position: relative;
	background: var(--ins-secondary-bg);
	border: 1px solid var(--ins-border-color);
	border-radius: 12px;
	padding: 1rem 1.25rem;
	height: 100%;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
}

.bgt-kpi-badge {
	position: absolute;
	top: .85rem;
	right: .95rem;
	background: rgba(255, 255, 255, .2);
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	padding: .15rem .55rem;
	border-radius: 999px;
}

.bgt-kpi-danger-value {
	color: var(--bgt-red) !important;
}

.bgt-kpi-label {
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ins-secondary-color);
	margin-bottom: .35rem;
}

.bgt-kpi-value {
	font-size: 1.55rem;
	font-weight: 700;
	line-height: 1.2;
	color: var(--ins-emphasis-color);
}

.bgt-kpi-sub {
	font-size: .75rem;
	color: var(--ins-secondary-color);
	margin-top: .25rem;
}

.bgt-kpi.bgt-kpi-danger {
	background: var(--bgt-red);
	border-color: var(--bgt-red);
	color: #fff;
}

.bgt-kpi.bgt-kpi-success {
	background: var(--bgt-green);
	border-color: var(--bgt-green);
	color: #fff;
}

.bgt-kpi.bgt-kpi-danger .bgt-kpi-value,
.bgt-kpi.bgt-kpi-success .bgt-kpi-value {
	color: #fff;
}

.bgt-kpi.bgt-kpi-danger .bgt-kpi-label,
.bgt-kpi.bgt-kpi-danger .bgt-kpi-sub,
.bgt-kpi.bgt-kpi-success .bgt-kpi-label,
.bgt-kpi.bgt-kpi-success .bgt-kpi-sub {
	color: rgba(255, 255, 255, .78);
}

/* Card generica */
.bgt-card {
	background: var(--ins-secondary-bg);
	border: 1px solid var(--ins-border-color);
	border-radius: 12px;
	box-shadow: 0 1px 2px rgba(0, 0, 0, .06);
	overflow: hidden;
}

.bgt-card-header {
	padding: .9rem 1.25rem;
	border-bottom: 1px solid var(--ins-border-color);
	font-weight: 600;
	font-size: .92rem;
	color: var(--ins-emphasis-color);
}

.bgt-card-footer {
	padding: .6rem 1.25rem;
	border-top: 1px solid var(--ins-border-color);
	font-size: .78rem;
	color: var(--ins-secondary-color);
}

.bgt-month-title {
	font-weight: 700;
	font-size: .88rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--ins-emphasis-color);
}

.bgt-month-range {
	font-size: .78rem;
	color: var(--ins-secondary-color);
	font-weight: 400;
	margin-left: .5rem;
}

.bgt-month-total {
	font-size: .82rem;
	color: var(--ins-secondary-color);
	font-weight: 400;
}

.bgt-month-total b {
	color: var(--ins-emphasis-color);
}

/* Tabelle */
.bgt-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .86rem;
}

.bgt-table thead th {
	font-size: .66rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ins-secondary-color);
	padding: .65rem 1.25rem;
	border-bottom: 1px solid var(--ins-border-color);
	text-align: left;
	white-space: nowrap;
}

.bgt-table tbody td {
	padding: .7rem 1.25rem;
	border-bottom: 1px solid var(--ins-border-color);
	vertical-align: middle;
	color: var(--ins-body-color);
}

.bgt-table tbody tr:last-child td {
	border-bottom: 0;
}

.bgt-table .text-end,
.bgt-table thead th.text-end {
	text-align: right;
}

.bgt-table .bgt-cell-strong {
	font-weight: 600;
	color: var(--ins-emphasis-color);
}

.bgt-table .bgt-cell-muted {
	color: var(--ins-secondary-color);
	font-size: .78rem;
}

/* Pill scostamento */
.bgt-pill {
	display: inline-block;
	padding: .18rem .6rem;
	border-radius: 999px;
	font-size: .76rem;
	font-weight: 600;
	white-space: nowrap;
}

.bgt-pill-danger {
	background: var(--bgt-red-soft-bg);
	color: var(--bgt-red-soft-text);
}

.bgt-pill-success {
	background: var(--bgt-green-soft-bg);
	color: var(--bgt-green-soft-text);
}

/* Bottone principale */
.bgt-btn-primary {
	background: var(--bgt-green);
	color: #fff;
	border: 0;
	border-radius: 8px;
	padding: .5rem 1.1rem;
	font-size: .84rem;
	font-weight: 600;
}

.bgt-btn-primary:hover {
	background: var(--bgt-green-hover);
	color: #fff;
}

/* Icone azioni */
.bgt-icon-btn {
	width: 28px;
	height: 28px;
	border: 0;
	border-radius: 8px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .85rem;
	padding: 0;
}

.bgt-icon-btn.bgt-icon-edit {
	background: var(--bgt-green-soft-bg);
	color: var(--bgt-green-soft-text);
}

.bgt-icon-btn.bgt-icon-delete {
	background: var(--bgt-red-soft-bg);
	color: var(--bgt-red-soft-text);
}

.bgt-empty {
	text-align: center;
	color: var(--ins-secondary-color);
	font-size: .84rem;
	padding: 2.2rem 1rem;
}

/* Lista pazienti / ricerca */
.bgt-search {
	border: 1px solid var(--ins-border-color);
	border-radius: 8px;
	background: var(--ins-tertiary-bg);
	color: var(--ins-body-color);
	font-size: .84rem;
	padding: .45rem .75rem;
	width: 100%;
}

.bgt-patient-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: .5rem;
	padding: .55rem .9rem;
	border-radius: 8px;
	cursor: pointer;
	font-size: .85rem;
	color: var(--ins-body-color);
}

.bgt-patient-item:hover {
	background: var(--ins-tertiary-bg);
}

.bgt-patient-item.active {
	background: var(--bgt-green);
	color: #fff;
}

.bgt-patient-item .bgt-pill {
	flex-shrink: 0;
}

.bgt-select {
	border: 1px solid var(--ins-border-color);
	border-radius: 8px;
	background: var(--ins-secondary-bg);
	color: var(--ins-body-color);
	font-size: .84rem;
	padding: .45rem .75rem;
}

/* Search box con icona (tab Entrate/Uscite) */
.bgt-searchbox {
	position: relative;
	flex: 1;
	min-width: 180px;
}

.bgt-searchbox input {
	width: 100%;
	padding-left: 2.25rem;
}

.bgt-searchbox i {
	position: absolute;
	left: .75rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--ins-secondary-color);
}

.bgt-btn-icon {
	width: 38px;
	height: 38px;
	border: 0;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--bgt-green);
	color: #fff;
	flex-shrink: 0;
}

.bgt-btn-icon:hover {
	background: var(--bgt-green-hover);
	color: #fff;
}

.bgt-btn-outline {
	background: var(--ins-secondary-bg);
	border: 1px solid var(--ins-border-color);
	color: var(--ins-body-color);
	border-radius: 8px;
	padding: .5rem 1rem;
	font-size: .84rem;
	font-weight: 600;
	white-space: nowrap;
}

.bgt-btn-outline:hover {
	background: var(--ins-tertiary-bg);
	color: var(--ins-body-color);
}
