/*=============================================
Contabilidad:
=============================================*/

#accountingApp{
	--acc-primary: var(--tata-primary, #0E2A5E);
	--acc-primary-soft: #e6ecf8;
	--acc-yellow: #FFD100;
	--acc-ink: #0a1530;
	--acc-muted: #6b7a92;
	--acc-line: #e1e7f0;
	--acc-th: #f4f7fb;
	--acc-hover: #f8fbff;
	--acc-ok: #14946b;
	--acc-danger: #E31837;
	color: #212529;
}

/*=============================================
Encabezado (mismo estilo del POS)
=============================================*/

.acc-topbar{
	padding: 1rem 1.25rem;
	border-radius: 1rem;
	color: #fff;
	background: linear-gradient(135deg, #071A3D 0%, #0E2A5E 60%, #2f5bb8 100%);
}

.acc-topbar-icon{
	width: 48px;
	height: 48px;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.25rem;
	background: rgba(255, 255, 255, .18);
}

.acc-topbar-title{ font-size: 1.35rem; font-weight: 800; margin: 0; }
.acc-topbar-sub{ font-size: .8rem; color: rgba(255, 255, 255, .8); }

.acc-chip{
	display: inline-flex;
	align-items: center;
	padding: .3rem .8rem;
	border-radius: 999px;
	background: var(--acc-yellow);
	color: #0E2A5E;
	font-size: .78rem;
	font-weight: 700;
}

.acc-chip-dark{ background: rgba(255, 255, 255, .15); color: #fff; }

/*=============================================
Pestañas
=============================================*/

.acc-tabs{ flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.acc-tabs::-webkit-scrollbar{ display: none; }
.acc-tabs .nav-link{ font-weight: 700; color: #3a4651; white-space: nowrap; border-radius: .6rem .6rem 0 0; }

/*=============================================
Paneles, títulos y textos
=============================================*/

.acc-panel{
	background: #fff;
	border: 1px solid var(--acc-line);
	border-radius: 1rem;
	overflow: hidden;
}

.acc-section-title{ font-size: 1.35rem; font-weight: 800; color: var(--acc-primary); letter-spacing: -.01em; }
.acc-count{ font-size: .8rem; color: var(--acc-muted); }
.acc-kicker{ font-size: .75rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--acc-muted); }
.acc-form-title{ font-size: 1.1rem; font-weight: 800; color: var(--acc-ink); margin: .15rem 0 0; word-break: break-word; }
.acc-label{ display: block; margin-bottom: .3rem; font-size: .8rem; font-weight: 700; color: var(--acc-ink); }
.acc-static{ min-height: 38px; display: flex; align-items: center; gap: .35rem; font-weight: 600; color: var(--acc-ink); }
.acc-readonly{ background: var(--acc-th); color: var(--acc-muted); }
.acc-note{ font-size: .8rem; color: var(--acc-muted); }

.acc-link{
	border: 0;
	padding: 0;
	background: none;
	color: var(--acc-primary);
	font-weight: 600;
	cursor: pointer;
}

.acc-link:hover{ text-decoration: underline !important; }

.acc-back{
	width: 34px;
	height: 34px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--acc-primary-soft);
	color: var(--acc-primary);
}

.acc-empty{ padding: 3rem 1.5rem; text-align: center; }
.acc-empty i{ display: inline-block; margin-bottom: .75rem; font-size: 2.4rem; color: var(--acc-primary); opacity: .35; }
.acc-empty-sm{ padding: 2.25rem 1rem; border: 0; color: var(--acc-muted); }

/*=============================================
Badges de estado
=============================================*/

.acc-badge{
	display: inline-flex;
	align-items: center;
	padding: .15rem .55rem;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 700;
	vertical-align: middle;
}

.acc-badge-off{ background: var(--acc-danger); color: #fff; }
.acc-badge-info{ background: var(--acc-primary-soft); color: var(--acc-primary); }
.acc-status-ok{ font-size: .78rem; font-weight: 600; color: var(--acc-ok); }

/*=============================================
Tablas (estilo s-table de Nubicta)
=============================================*/

.acc-table{ width: 100%; border-collapse: collapse; font-size: .85rem; }

.acc-table th{
	padding: .75rem .9rem;
	background: var(--acc-th);
	color: var(--acc-ink);
	font-weight: 700;
	text-align: left;
	white-space: nowrap;
	border-bottom: 1px solid var(--acc-line);
}

.acc-table th + th{ box-shadow: inset 1px 0 0 #d6dde8; }
.acc-table th.text-end{ text-align: right; }
.acc-table td{ padding: .65rem .9rem; border-bottom: 1px solid #edf0f4; }
.acc-table tbody tr:hover{ background: var(--acc-hover); }
.acc-table tfoot td{ font-weight: 700; background: #fffbe6; border-top: 2px solid var(--acc-yellow); }
.acc-table-sm{ font-size: .8rem; }
.acc-table-sm td{ padding: .5rem .75rem; }

.acc-truncate{ max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-row-link{ cursor: pointer; }
.acc-row-off td{ color: var(--acc-muted); }

.acc-level-1 td{ font-weight: 700; background: rgba(14, 42, 94, .05); }
.acc-level-2 td{ font-weight: 600; }

@media (max-width: 991px){
	.acc-table td{ white-space: nowrap; }
}

/*=============================================
Filtros de listado y reportes
=============================================*/

.acc-list-filters{ padding: 1rem; border-bottom: 1px solid var(--acc-line); }

.acc-search{ position: relative; }
.acc-search i{ position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); font-size: .8rem; color: var(--acc-muted); }
.acc-search input{ padding-left: 2.1rem; }

.acc-filters{ padding: 1.25rem 1.75rem; overflow: visible; }

.acc-filter{ display: flex; align-items: center; gap: .6rem; }
.acc-filter .form-control, .acc-filter .form-select{ max-width: 190px; }
.acc-filter input[name="tercero"]{ max-width: 390px; }

.acc-filter-label{
	flex: 0 0 150px;
	text-align: right;
	font-size: .85rem;
	color: var(--acc-ink);
}

@media (max-width: 575px){
	.acc-filter{ flex-wrap: wrap; }
	.acc-filter-label{ flex-basis: 100%; text-align: left; }
	.acc-filter .form-control, .acc-filter .form-select{ max-width: none; flex: 1; }
}

/*=============================================
Plan de cuentas: árbol + formulario
=============================================*/

.acc-split{ display: grid; grid-template-columns: 1fr; min-height: 480px; }

@media (min-width: 992px){
	.acc-split{ grid-template-columns: minmax(420px, 45%) 1fr; }
	.acc-split-tree{ border-right: 1px solid var(--acc-line); }
}

.acc-split-tree{ border-bottom: 1px solid var(--acc-line); }
.acc-split-form{ padding: 1.5rem; }

.acc-tree-expand{ padding: .6rem .75rem .4rem; font-size: .8rem; }

.acc-tree-row{
	display: grid;
	grid-template-columns: 150px 1fr;
	border-bottom: 1px solid var(--acc-line);
}

.acc-tree-row > div + div{ border-left: 1px solid #edf0f4; }
.acc-tree-head{ font-size: .78rem; font-weight: 700; color: var(--acc-muted); background: var(--acc-th); }
.acc-tree-head > div{ padding: .5rem .6rem; }

.acc-tree-search > div{ position: relative; }
.acc-tree-search i{ position: absolute; left: .6rem; top: 50%; transform: translateY(-50%); font-size: .7rem; color: var(--acc-muted); }

.acc-tree-search input{
	width: 100%;
	height: 36px;
	padding: 0 .4rem 0 1.6rem;
	border: 0;
	outline: 0;
	font-size: .8rem;
	background: transparent;
}

.acc-tree{ max-height: 640px; overflow: auto; }
.acc-tree-empty{ margin: 0; padding: 1.25rem; color: var(--acc-muted); }

.acc-node{
	display: grid;
	grid-template-columns: 150px 1fr;
	border-bottom: 1px solid #f1f3f6;
	font-size: .82rem;
	cursor: pointer;
}

.acc-node:hover{ background: var(--acc-hover); }
.acc-node.active{ background: var(--acc-primary-soft); box-shadow: inset 3px 0 0 var(--acc-yellow); }

.acc-node-code{ display: flex; align-items: center; gap: .25rem; padding: .45rem .5rem .45rem 0; font-weight: 600; color: var(--acc-ink); }
.acc-node-leaf{ font-weight: 400; color: #3a4651; }
.acc-node-name{ padding: .45rem .5rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-left: 1px solid #edf0f4; }
.acc-node-off{ color: var(--acc-muted); text-decoration: line-through; }

.acc-node-toggle{
	width: 16px;
	flex: none;
	padding: 0;
	border: 0;
	background: none;
	font-size: .6rem;
	color: var(--acc-muted);
}

.acc-hint{
	max-width: 520px;
	margin: 5rem auto 0;
	text-align: center;
	font-size: 1.5rem;
	line-height: 1.35;
	color: #c4c8cc;
}

/*=============================================
Hoja del comprobante (estilo documento de Nubicta)
=============================================*/

.acc-sheet{ padding: 1.5rem 1.75rem; overflow: visible; }
.acc-sheet-head{ padding-bottom: 1rem; border-bottom: 1px dashed var(--acc-line); }

.acc-grid{ width: 100%; border-collapse: separate; border-spacing: 0; font-size: .85rem; }

.acc-grid th{
	padding: .6rem .5rem;
	background: var(--acc-primary);
	color: #fff;
	font-weight: 600;
	text-align: center;
	white-space: nowrap;
}

.acc-grid th:first-child{ border-top-left-radius: .6rem; }
.acc-grid th:last-child{ border-top-right-radius: .6rem; }
.acc-grid th.text-end{ text-align: right; }
.acc-grid td{ padding: .4rem .35rem; vertical-align: top; border-bottom: 1px solid #edf0f4; }
.acc-grid-num{ width: 36px; text-align: center; color: var(--acc-muted); }
.acc-grid td.acc-grid-num{ padding-top: .75rem; font-size: .75rem; }
.acc-grid-account{ min-width: 300px; }
.acc-grid-customer{ min-width: 240px; }
.acc-grid-text{ min-width: 180px; }
.acc-grid-money{ width: 140px; min-width: 120px; }

.acc-grid-total td{ border-bottom: 0; padding-top: .6rem; font-weight: 800; color: var(--acc-ink); }
.acc-diff-label{ color: var(--acc-ok) !important; }

.acc-required-hint{ display: block; font-size: .7rem; color: var(--acc-danger); }

.acc-icon-btn{
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 8px;
	background: #fde8eb;
	color: var(--acc-danger);
	font-size: .8rem;
}

.acc-observations{ max-width: 520px; }

.acc-sheet-footer{
	position: sticky;
	bottom: 0;
	z-index: 2;
	display: flex;
	justify-content: flex-end;
	gap: .5rem;
	margin-top: 1rem;
	padding: .75rem 1rem;
	border: 1px solid var(--acc-line);
	border-radius: 1rem;
	background: rgba(255, 255, 255, .95);
	box-shadow: 0 -.5rem 1.5rem rgba(14, 42, 94, .06);
}

/*=============================================
Presupuesto contable
=============================================*/

.acc-intro{ max-width: 760px; margin-bottom: 1rem; font-size: .9rem; color: var(--acc-muted); }

.acc-info{
	display: flex;
	gap: .6rem;
	padding: .75rem 1rem;
	border-radius: .75rem;
	background: var(--acc-primary-soft);
	color: var(--acc-primary);
	font-size: .85rem;
}

.acc-info i{ margin-top: .15rem; }

.acc-budget-wrap{ border-radius: .6rem; }
.acc-budget-grid{ min-width: 1500px; }
.acc-budget-grid .acc-budget-account{ position: sticky; left: 0; z-index: 1; min-width: 300px; width: 300px; background: #fff; }
.acc-budget-grid th.acc-budget-account{ background: var(--acc-primary); z-index: 2; }
.acc-budget-month{ min-width: 92px; }
.acc-budget-month input{ padding-left: .35rem; padding-right: .35rem; }
.acc-budget-grid tbody td.text-end{ padding-top: .7rem; white-space: nowrap; }
.acc-budget-grid tfoot td{ white-space: nowrap; font-size: .8rem; }

.acc-stat{
	display: flex;
	align-items: center;
	gap: 1rem;
	height: 100%;
	padding: 1.1rem 1.25rem;
	border: 1px solid var(--acc-line);
	border-radius: 1rem;
	background: #fff;
}

.acc-stat-icon{
	width: 46px;
	height: 46px;
	flex: none;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
}

.acc-stat-blue{ background: linear-gradient(135deg, #0E2A5E, #2f5bb8); color: #fff; }
.acc-stat-green{ background: linear-gradient(135deg, #14946b, #3ed3a3); color: #fff; }
.acc-stat-yellow{ background: linear-gradient(135deg, #FFB800, #FFD100); color: #0E2A5E; }
.acc-stat-red{ background: linear-gradient(135deg, #E31837, #ff6b81); color: #fff; }
.acc-stat-label{ font-size: .8rem; color: var(--acc-muted); }
.acc-stat-value{ font-size: 1.25rem; font-weight: 800; color: var(--acc-ink); line-height: 1.2; }

.acc-progress{ height: 6px; margin-top: .4rem; border-radius: 999px; background: #e6ecf8; overflow: hidden; }
.acc-progress > div{ height: 100%; border-radius: 999px; background: linear-gradient(90deg, #0E2A5E, #2f5bb8); }
.acc-progress-sm{ width: 80px; margin-top: 0; }
.acc-progress-over > div{ background: var(--acc-danger); }
.acc-percent{ display: inline-flex; align-items: center; gap: .5rem; }

/*=============================================
Más procesos
=============================================*/

.acc-process-card{ height: 100%; }

.acc-process-title{
	display: flex;
	align-items: center;
	gap: .6rem;
	margin: 0;
	padding: 1rem 1.5rem;
	border-bottom: 1px solid #edf0f4;
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--acc-ink);
}

.acc-process-title i{
	width: 34px;
	height: 34px;
	flex: none;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: .9rem;
	background: var(--acc-primary-soft);
	color: var(--acc-primary);
}

.acc-process-list{ list-style: none; margin: 0; padding: .9rem 1.5rem 1.25rem; }
.acc-process-list li{ display: flex; align-items: flex-start; gap: .45rem; padding: .3rem 0; font-size: .88rem; }
.acc-process-list li > i{ margin-top: .3rem; font-size: .7rem; color: var(--acc-primary); }
.acc-process-list a{ color: var(--acc-ink); }
.acc-process-list a:hover{ color: var(--acc-primary); text-decoration: underline !important; }
.acc-process-off{ color: var(--acc-muted); cursor: default; }

.acc-badge-soon{ background: #eef1f6; color: var(--acc-muted); }
.acc-badge-ok{ background: #e2f6ee; color: var(--acc-ok); }

.acc-preview-head{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: .5rem;
	padding: .9rem 1rem;
	border-bottom: 1px solid var(--acc-line);
}

.acc-bulk{ border-bottom: 1px solid var(--acc-line); background: var(--acc-th); }

.acc-subtabs{ gap: .4rem; }

.acc-subtabs .nav-link{
	padding: .4rem .9rem;
	border: 1px solid var(--acc-line);
	border-radius: 999px;
	background: #fff;
	color: #3a4651;
	font-size: .85rem;
	font-weight: 600;
}

.acc-subtabs .nav-link.active{ background: var(--acc-primary); border-color: var(--acc-primary); color: #fff !important; }

/*=============================================
Cajas y bancos: conciliación
=============================================*/

.acc-summary{ width: 100%; max-width: 620px; margin: .5rem 1rem 1rem; font-size: .88rem; }
.acc-summary td{ padding: .4rem 0; }
.acc-summary td:last-child{ text-align: right; font-weight: 600; white-space: nowrap; padding-left: 1rem; }
.acc-summary-total td{ border-top: 2px solid var(--acc-yellow); font-weight: 800 !important; color: var(--acc-ink); }

.acc-scroll{ max-height: 560px; overflow: auto; }

.acc-table tr.acc-picked td{ background: var(--acc-primary-soft); }
.acc-table tr.acc-same td{ background: #fff8e1; }

/*=============================================
Reportes
=============================================*/

.acc-report-search{ width: 100%; max-width: 360px; }

.acc-report-toggle{
	width: 100%;
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: 1rem 1.5rem;
	border: 0;
	background: none;
	text-align: left;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--acc-ink);
}

.acc-report-toggle > i{ font-size: .8rem; color: var(--acc-muted); }
.acc-report-body{ padding: 1rem 1.5rem 1.5rem; border-top: 1px solid var(--acc-line); }
.acc-collapsed .acc-report-body{ display: none; }
.acc-report-group-title{ margin-bottom: .4rem; font-size: .95rem; font-weight: 800; color: var(--acc-primary); }

.acc-report-list{ list-style: none; margin: 0; padding: 0; }

.acc-report-list li{
	display: flex;
	align-items: center;
	gap: .75rem;
	padding: .6rem 0;
	border-bottom: 1px solid #edf0f4;
	font-size: .9rem;
}

.acc-report-list a{ color: var(--acc-ink); }
.acc-report-list a:hover{ color: var(--acc-primary); text-decoration: underline !important; }

.acc-report-star{ margin-left: auto; border: 0; background: none; color: #c4c8cc; font-size: .85rem; }
.acc-report-star.active, .acc-report-star-btn.active i{ color: #f5b400; }
.acc-report-star-btn i{ color: #c4c8cc; }

.acc-report-total td{ font-weight: 800; background: rgba(14, 42, 94, .05); }
.acc-report-strong td{ font-weight: 700; }
.acc-report-muted td{ color: var(--acc-muted); }
.acc-report-danger td{ color: var(--acc-danger); font-style: italic; }

@media print{

	body.acc-printing *{ visibility: hidden; }
	body.acc-printing #printReport, body.acc-printing #printReport *{ visibility: visible; }
	body.acc-printing #printReport{ position: absolute; top: 0; left: 0; width: 100%; border: 0; }
	body.acc-printing .acc-truncate{ max-width: none; white-space: normal; }
	body.acc-printing #printReport .table-responsive{ overflow: visible; }
	body.acc-printing #printReport table{ table-layout: auto; font-size: 8pt; }
	body.acc-printing #printReport td, body.acc-printing #printReport th{ padding: .25rem .35rem; }
	body.acc-printing #printReport td:not(.text-end):not(.acc-date){ word-break: break-word; white-space: normal !important; }
	body.acc-printing #sidebar-wrapper{ display: none !important; }

}

/*=============================================
Compras: documento imprimible
=============================================*/

.acc-doc-company{ font-size: 1.1rem; font-weight: 800; color: var(--acc-ink); }
.acc-doc-title{ font-size: .8rem; font-weight: 800; letter-spacing: .08em; color: var(--acc-muted); }
.acc-doc-number{ font-size: 1.6rem; font-weight: 800; color: var(--acc-primary); line-height: 1.1; }
.acc-signature{ padding-top: .4rem; border-top: 1px solid #999; font-size: .8rem; color: var(--acc-muted); text-align: center; }

@media print{

	body.acc-printing .acc-print-doc .acc-badge{ border: 1px solid #999; }

}

/*=============================================
Bandeja DIAN: detalle del registro de eventos
=============================================*/

.acc-event-detail > td{ background: var(--acc-th); padding: 1rem 1.25rem !important; }

/*=============================================
Certificados para imprimir
=============================================*/

.acc-print-area{ display: none; }

.acc-certificate{ padding: 2rem; font-size: 12pt; color: #000; page-break-after: always; }
.acc-certificate h1{ font-size: 16pt; font-weight: 800; text-align: center; margin-bottom: .25rem; }
.acc-certificate-period{ text-align: center; margin-bottom: 1.5rem; }
.acc-certificate table{ width: 100%; margin: 1rem 0; border-collapse: collapse; }
.acc-certificate th, .acc-certificate td{ padding: .35rem .5rem; border: 1px solid #999; }
.acc-certificate td:not(:first-child), .acc-certificate th:not(:first-child){ text-align: right; }
.acc-certificate tfoot td{ font-weight: 700; }
.acc-certificate-foot{ margin-top: 2rem; font-size: 10pt; }

@media print{

	body *{ visibility: hidden; }
	.acc-print-area, .acc-print-area *{ visibility: visible; }
	.acc-print-area{ display: block; position: absolute; top: 0; left: 0; width: 100%; }

}

/*=============================================
Detalle del comprobante
=============================================*/

.acc-detail-head > div > div{ font-weight: 600; color: var(--acc-ink); }
