:root {
	/* Toma los colores del tema (Astra) y cae en la paleta Malka si no existen. */
	--malka-crm-accent: var(--ast-global-color-0, #B8A792);
	--malka-crm-accent-dark: var(--ast-global-color-1, #9C8B76);
	--malka-crm-heading: var(--ast-global-color-2, #2B2B2B);
	--malka-crm-body: var(--ast-global-color-3, #6B6B6B);
	--malka-crm-base: #F9F8F6;
	--malka-crm-line: #E5DED6;
	--malka-crm-muted: #9A9A9A;

	/* Tipografía heredada del tema: cuerpo 300, títulos y botones 500. */
	--malka-crm-font: inherit;
	--malka-crm-size: .95rem;
	--malka-crm-weight: 300;
}

.malka-crm-projects,
.malka-crm-quotes,
.malka-crm-panel,
.malka-crm-final {
	font-family: var(--malka-crm-font);
	font-weight: var(--malka-crm-weight);
}

/* ═══════════════════════════════════════════════════════
   Portal del cliente — Estudio Malka
   Tipografía heredada del tema. Líneas finas, mucho aire,
   etiquetas en versalitas y un solo acento: arena #B8A792.
   ═══════════════════════════════════════════════════════ */

.malka-crm-projects {
	color: var(--malka-crm-body);
	font-size: .92rem;
	line-height: 1.6;
}

.malka-crm-intro {
	color: var(--malka-crm-body);
	margin-bottom: 1.75rem;
	max-width: 62ch;
}

/* ── Selector de proyectos ─────────────────────────────── */
.malka-crm-project-nav {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin-bottom: 1.75rem;
}

.malka-crm-chip {
	display: inline-block;
	padding: .35rem .85rem;
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
	font-size: .78rem;
	letter-spacing: .02em;
	text-decoration: none;
	color: var(--malka-crm-body);
	background: transparent;
	transition: border-color .2s ease, color .2s ease;
}

.malka-crm-chip:hover,
.malka-crm-chip:focus {
	border-color: var(--malka-crm-accent);
	color: var(--malka-crm-heading);
	text-decoration: none;
}

.malka-crm-chip.is-active {
	background: var(--malka-crm-accent);
	border-color: var(--malka-crm-accent);
	color: #fff;
}

/* ── Cabecera del proyecto ─────────────────────────────── */
.malka-crm-project-head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
	padding-bottom: .85rem;
	margin-bottom: 1.1rem;
	border-bottom: 1px solid var(--malka-crm-line);
}

.malka-crm-project-head h3 {
	margin: 0;
	font-size: 1.35rem;
	font-weight: 400;
	letter-spacing: -.01em;
	color: var(--malka-crm-heading);
}

.malka-crm-status {
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--malka-crm-accent-dark);
}

.malka-crm-progress {
	position: relative;
	height: 3px;
	background: var(--malka-crm-line);
	border-radius: 0;
	margin-bottom: 2.5rem;
}

.malka-crm-progress__bar {
	height: 100%;
	background: var(--malka-crm-accent);
	transition: width .5s ease;
}

.malka-crm-progress__label {
	position: absolute;
	top: 10px;
	right: 0;
	font-size: .7rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
}

/* ── Paneles ───────────────────────────────────────────── */
.malka-crm-panel {
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
	margin-bottom: .75rem;
	background: #fff;
}

.malka-crm-panel > summary {
	list-style: none;
	cursor: pointer;
	padding: 1rem 1.25rem;
	display: flex;
	align-items: center;
	gap: .7rem;
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--malka-crm-heading);
	user-select: none;
	transition: background .2s ease;
}

.malka-crm-panel > summary:hover {
	background: var(--malka-crm-base);
}

.malka-crm-panel > summary::-webkit-details-marker {
	display: none;
}

.malka-crm-panel > summary::before {
	content: "";
	width: 6px;
	height: 6px;
	border-right: 1px solid var(--malka-crm-accent);
	border-bottom: 1px solid var(--malka-crm-accent);
	transform: rotate(-45deg);
	transition: transform .2s ease;
	flex: 0 0 auto;
}

.malka-crm-panel[open] > summary::before {
	transform: rotate(45deg);
}

.malka-crm-panel__count {
	margin-left: auto;
	font-size: .7rem;
	letter-spacing: .08em;
	color: var(--malka-crm-muted);
}

.malka-crm-panel__body {
	padding: 0 1.25rem 1.5rem;
}

.malka-crm-panel .malka-crm-gantt-wrap {
	border: none;
	padding: 0;
	margin-bottom: 0;
	overflow-x: auto;
}

/* ── Etapas ────────────────────────────────────────────── */
.malka-crm-tasks-list {
	display: flex;
	flex-direction: column;
}

.malka-crm-stage {
	border-top: 1px solid var(--malka-crm-line);
}

.malka-crm-stage:first-child {
	border-top: 0;
}

.malka-crm-stage-head {
	display: flex;
	align-items: center;
	gap: .75rem;
	width: 100%;
	padding: 1rem 0;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
	color: var(--malka-crm-heading) !important;
	transition: opacity .2s ease;
}

.malka-crm-stage-head:hover,
.malka-crm-stage-head:focus {
	background: transparent !important;
	color: var(--malka-crm-heading) !important;
	opacity: .68;
}

.malka-crm-stage-chev {
	flex: 0 0 auto;
	width: 6px;
	height: 6px;
	border-right: 1px solid var(--malka-crm-accent);
	border-bottom: 1px solid var(--malka-crm-accent);
	transform: rotate(-45deg);
	transition: transform .2s ease;
}

.malka-crm-stage.is-open .malka-crm-stage-chev {
	transform: rotate(45deg);
}

.malka-crm-stage-name {
	flex: 1 1 auto;
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .01em;
	line-height: 1.4;
}

.malka-crm-stage-meta {
	display: flex;
	align-items: center;
	gap: 1rem;
	flex-shrink: 0;
	font-size: .72rem;
	letter-spacing: .06em;
	color: var(--malka-crm-muted);
}

.malka-crm-stage-pct {
	min-width: 3ch;
	text-align: right;
	color: var(--malka-crm-accent-dark);
}

.malka-crm-stage-body {
	display: none;
	padding-bottom: .5rem;
}

.malka-crm-stage.is-open .malka-crm-stage-body {
	display: block;
}

/* ── Ítems ─────────────────────────────────────────────── */
.malka-crm-item {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: start;
	gap: 1.5rem;
	padding: .9rem 0 .9rem 1.4rem;
	border-top: 1px solid var(--malka-crm-base);
}

.malka-crm-item:first-child {
	border-top: 0;
}

.malka-crm-item.is-level-3 {
	padding-left: 2.6rem;
}

.malka-crm-item__name {
	margin: 0 0 .2rem;
	font-size: .88rem;
	font-weight: 400;
	color: var(--malka-crm-heading);
	line-height: 1.45;
	display: flex;
	align-items: baseline;
	gap: .5rem;
	flex-wrap: wrap;
}

.malka-crm-item.is-done .malka-crm-item__name {
	color: var(--malka-crm-muted);
}

.malka-crm-item__meta {
	margin: 0;
	font-size: .72rem;
	letter-spacing: .03em;
	color: var(--malka-crm-muted);
}

.malka-crm-item__side {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .45rem;
	min-width: 0;
}

.malka-crm-pct {
	font-size: .82rem;
	color: var(--malka-crm-body);
	font-variant-numeric: tabular-nums;
}

.malka-crm-pct.is-done {
	color: var(--malka-crm-accent-dark);
}

/* ── Etiquetas y chips ─────────────────────────────────── */
.malka-crm-tag {
	display: inline-block;
	padding: .1rem .45rem;
	border: 1px solid var(--malka-crm-accent);
	border-radius: 2px;
	font-size: .6rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--malka-crm-accent-dark);
	background: transparent;
	line-height: 1.6;
}

.malka-crm-chip,
.malka-crm-deadline,
.malka-crm-badge,
.malka-crm-pay {
	display: inline-block;
	padding: .18rem .55rem;
	border-radius: 2px;
	font-size: .62rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	background: var(--malka-crm-base);
	color: var(--malka-crm-body);
	border: 1px solid var(--malka-crm-line);
	white-space: nowrap;
	line-height: 1.7;
}

.malka-crm-chip--ok,
.malka-crm-deadline--done,
.malka-crm-badge--approved,
.malka-crm-pay--pagado {
	background: #F1F4F0;
	border-color: #D5E0D4;
	color: #4E7355;
}

.malka-crm-chip--warn,
.malka-crm-deadline--soon,
.malka-crm-pay--por_vencer {
	background: #FAF4EC;
	border-color: #EBDCC6;
	color: #8A6B33;
}

.malka-crm-deadline--late,
.malka-crm-deadline--overdue,
.malka-crm-badge--changes,
.malka-crm-pay--vencido {
	background: #FAEFEA;
	border-color: #EBD5C9;
	color: #8F5334;
}

/* ── Botones ───────────────────────────────────────────── */
.malka-crm-cta,
.malka-crm-btn {
	display: inline-block;
	padding: .42rem 1rem;
	background: var(--malka-crm-accent);
	color: #fff !important;
	border: 1px solid var(--malka-crm-accent);
	border-radius: 2px;
	font-size: .7rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	text-decoration: none;
	cursor: pointer;
	line-height: 1.6;
	transition: background .2s ease, border-color .2s ease;
	font-family: inherit;
}

.malka-crm-cta:hover,
.malka-crm-cta:focus,
.malka-crm-btn:hover,
.malka-crm-btn:focus {
	background: var(--malka-crm-accent-dark) !important;
	border-color: var(--malka-crm-accent-dark) !important;
	color: #fff !important;
	text-decoration: none;
}

.malka-crm-cta--ghost,
.malka-crm-btn--ghost {
	background: transparent !important;
	color: var(--malka-crm-body) !important;
	border-color: var(--malka-crm-line);
}

.malka-crm-cta--ghost:hover,
.malka-crm-btn--ghost:hover {
	background: transparent !important;
	border-color: var(--malka-crm-accent) !important;
	color: var(--malka-crm-heading) !important;
}

.malka-crm-link {
	background: none !important;
	border: 0 !important;
	padding: 0 !important;
	font-size: .72rem;
	letter-spacing: .03em;
	color: var(--malka-crm-accent-dark) !important;
	text-decoration: underline;
	text-underline-offset: 3px;
	cursor: pointer;
	font-family: inherit;
}

.malka-crm-link:hover {
	color: var(--malka-crm-heading) !important;
}

/* ── Bloque de aprobación ──────────────────────────────── */
.malka-crm-approval {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .4rem;
	max-width: 260px;
}

.malka-crm-approval__actions {
	display: flex;
	gap: .35rem;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.malka-crm-approval__rounds,
.malka-crm-approval__note-line {
	font-size: .66rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
	text-align: right;
}

.malka-crm-approval__hint {
	margin: 0;
	font-size: .72rem;
	line-height: 1.5;
	color: var(--malka-crm-body);
	text-align: right;
	max-width: 260px;
}

.malka-crm-approval__sign,
.malka-crm-approval__note {
	width: 260px;
	max-width: 100%;
	padding: .9rem;
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
	text-align: left;
}

.malka-crm-approval__warning {
	margin: 0 0 .7rem;
	font-size: .72rem;
	line-height: 1.5;
	color: #8F5334;
}

.malka-crm-approval__sign label,
.malka-crm-approval__note label {
	display: block;
	margin-bottom: .55rem;
}

.malka-crm-approval__sign label > span,
.malka-crm-approval__note label > span {
	display: block;
	font-size: .62rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
	margin-bottom: .25rem;
}

.malka-crm-approval__sign input,
.malka-crm-approval__note textarea {
	width: 100%;
	padding: .45rem .55rem;
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
	font-size: .85rem;
	background: #fff;
	font-family: inherit;
}

.malka-crm-approval__comment {
	margin: .3rem 0 0;
	padding: .7rem .85rem;
	background: var(--malka-crm-base);
	border-left: 2px solid var(--malka-crm-accent);
	border-radius: 0;
	font-size: .78rem;
	font-style: normal;
	color: var(--malka-crm-body);
	text-align: left;
	width: 260px;
	max-width: 100%;
}

.malka-crm-approval__comment cite {
	display: block;
	margin-top: .4rem;
	font-size: .66rem;
	color: var(--malka-crm-muted);
	font-style: normal;
}

.malka-crm-approval__feedback {
	margin: 0;
	font-size: .72rem;
	color: #4E7355;
	text-align: right;
}

.malka-crm-approval__feedback.is-error {
	color: #8F5334;
}

/* ── Tarea del cliente ─────────────────────────────────── */
.malka-crm-clienttask {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: .4rem;
	flex-wrap: wrap;
}

.malka-crm-clienttask .malka-crm-btn {
	padding: .3rem .8rem;
	font-size: .66rem;
}

.malka-crm-grace {
	width: 100%;
	margin: .3rem 0 0;
	font-size: .7rem;
	line-height: 1.5;
	color: #8F5334;
	text-align: right;
	background: none;
	border: 0;
	padding: 0;
}

/* ── Entrega final ─────────────────────────────────────── */
.malka-crm-final {
	margin-top: 1.5rem;
	padding: 1.5rem;
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
}

.malka-crm-final h4 {
	margin: 0 0 .4rem;
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--malka-crm-heading);
	font-weight: 500;
}

.malka-crm-final p {
	font-size: .85rem;
	margin: 0 0 1rem;
	max-width: 60ch;
}

.malka-crm-final .malka-crm-approval {
	align-items: flex-start;
	max-width: none;
}

.malka-crm-final .malka-crm-approval__actions,
.malka-crm-final .malka-crm-approval__rounds,
.malka-crm-final .malka-crm-approval__hint,
.malka-crm-final .malka-crm-approval__feedback {
	justify-content: flex-start;
	text-align: left;
}

/* ── Tablas ────────────────────────────────────────────── */
.malka-crm-table {
	width: 100%;
	border-collapse: collapse;
}

.malka-crm-table th {
	padding: .6rem .5rem;
	border-bottom: 1px solid var(--malka-crm-line);
	text-align: left;
	font-size: .64rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
	font-weight: 500;
}

.malka-crm-table td {
	padding: .7rem .5rem;
	border-bottom: 1px solid var(--malka-crm-base);
	text-align: left;
	font-size: .85rem;
}

.malka-crm-empty {
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
	border-radius: 2px;
	padding: 2.5rem 1.5rem;
	text-align: center;
	color: var(--malka-crm-muted);
	font-size: .88rem;
}

/* ── Frappe Gantt ──────────────────────────────────────── */
.gantt .bar-progress { fill: var(--malka-crm-accent); }
.gantt .bar { fill: #EFEBE5; }
.gantt .bar-label { fill: #4A4A4A; font-size: 11px; }
.gantt .malka-crm-milestone .bar { fill: var(--malka-crm-heading); }
.gantt .grid-header { fill: var(--malka-crm-base); }
.gantt .grid-row { fill: #fff; }
.gantt .grid-row:nth-child(even) { fill: #FCFBFA; }
.gantt .tick { stroke: var(--malka-crm-line); }
.gantt .today-highlight { fill: #F6F1EB; }

.malka-crm-gantt-toolbar {
	display: flex;
	gap: .3rem;
	margin-bottom: .9rem;
}

.malka-crm-gantt-toolbar .malka-crm-btn {
	padding: .3rem .8rem;
	font-size: .66rem;
}

.malka-crm-btn--ghost.is-active {
	border-color: var(--malka-crm-accent) !important;
	color: var(--malka-crm-accent-dark) !important;
}

/* ── Móvil ─────────────────────────────────────────────── */
@media (max-width: 640px) {
	.malka-crm-item {
		grid-template-columns: 1fr;
		gap: .6rem;
		padding-left: .8rem;
	}

	.malka-crm-item.is-level-3 {
		padding-left: 1.6rem;
	}

	.malka-crm-item__side {
		align-items: flex-start;
		flex-direction: row;
		flex-wrap: wrap;
		width: 100%;
	}

	.malka-crm-approval {
		align-items: flex-start;
		max-width: none;
		width: 100%;
	}

	.malka-crm-approval__actions,
	.malka-crm-approval__rounds,
	.malka-crm-approval__hint,
	.malka-crm-approval__feedback,
	.malka-crm-approval__note-line,
	.malka-crm-clienttask,
	.malka-crm-grace {
		justify-content: flex-start;
		text-align: left;
	}

	.malka-crm-approval__sign,
	.malka-crm-approval__note,
	.malka-crm-approval__comment {
		width: 100%;
	}

	.malka-crm-stage-dates {
		display: none;
	}

	.malka-crm-panel__body {
		padding: 0 .9rem 1.2rem;
	}
}

/* ── Iconos del menú de Mi Cuenta ─────────────────────────
   El tema puede pintar su propio icono como pseudo-elemento o como
   etiqueta real. Se eliminan todos y se deja uno solo, el nuestro. */
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos a::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos a i,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos a svg,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos a .dashicons,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones a::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones a i,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones a svg,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones a .dashicons,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas a::after,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas a i,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas a svg,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas a .dashicons {
	content: none !important;
	display: none !important;
	background: none !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos > a::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones > a::before,
.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas > a::before {
	font-family: dashicons !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	width: auto !important;
	height: auto !important;
	background: none !important;
	speak: never;
	-webkit-font-smoothing: antialiased;
	margin-right: .55rem;
	vertical-align: -3px;
	color: var(--malka-crm-accent);
	display: inline-block !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--proyectos > a::before {
	content: "\f185" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--cotizaciones > a::before {
	content: "\f495" !important;
}

.woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--facturas > a::before {
	content: "\f491" !important;
}

/* Documentos del proyecto */
.malka-crm-docs {
	margin-top: 2rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--malka-crm-line);
}

.malka-crm-docs h4 {
	margin: 0 0 .75rem;
	color: var(--malka-crm-heading);
	font-size: 1rem;
}

.malka-crm-doclist {
	list-style: none;
	margin: 0;
	padding: 0;
}

.malka-crm-doclist li {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .5rem 0;
	border-bottom: 1px solid var(--malka-crm-line);
	font-size: .88rem;
}

.malka-crm-doclist .dashicons {
	color: var(--malka-crm-accent);
}

.malka-crm-doclist .malka-crm-hint {
	margin-left: auto;
}


/* ── Cotizaciones (portal) ─────────────────────────────── */
.malka-crm-quotes {
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.malka-crm-quote {
	background: #fff;
	border: 1px solid var(--malka-crm-line);
	border-radius: 10px;
	padding: 16px 18px;
}

.malka-crm-quote__head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 14px;
	flex-wrap: wrap;
}

.malka-crm-quote__id h3 {
	margin: 0;
	font-size: 1rem;
	color: var(--malka-crm-heading);
	line-height: 1.3;
}

.malka-crm-quote__meta {
	display: block;
	margin-top: 2px;
	font-size: .76rem;
	color: #9A9A9A;
}

.malka-crm-quote__right {
	display: flex;
	align-items: center;
	gap: 10px;
	white-space: nowrap;
}

.malka-crm-quote__total {
	font-family: Georgia, serif;
	font-size: 1.15rem;
	color: #1a1a1a;
}

.malka-crm-quote .malka-crm-payments {
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid var(--malka-crm-line);
}

.malka-crm-quote .malka-crm-payments h4,
.malka-crm-quote .malka-crm-payments h5 {
	margin: 0 0 6px;
	font-size: .78rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #9A9A9A;
	font-weight: 600;
}

.malka-crm-quote .malka-crm-table th,
.malka-crm-quote .malka-crm-table td {
	padding: .45rem .4rem;
	font-size: .82rem;
}

.malka-crm-quote__cta {
	margin: 12px 0 0;
}

.malka-crm-quote__cta .malka-crm-btn {
	font-size: .78rem;
	padding: .35rem .8rem;
}

/* Aviso de plazo vencido con período de gracia */
.malka-crm-grace {
	margin: .4rem 0 0;
	padding: .5rem .7rem;
	background: #F6E9E2;
	border-left: 3px solid #C0603E;
	border-radius: 4px;
	font-size: .78rem;
	color: #97552E;
}

.malka-crm-approval__comment {
	margin: .4rem 0 0;
	padding: .6rem .8rem;
	background: var(--malka-crm-base);
	border-left: 3px solid var(--malka-crm-accent);
	border-radius: 4px;
	font-size: .8rem;
	font-style: normal;
	color: #6B6B6B;
}

.malka-crm-approval__comment cite {
	display: block;
	margin-top: .35rem;
	font-size: .7rem;
	color: #9A9A9A;
	font-style: normal;
}


/* Jerarquía en la tabla del portal */
.malka-crm-tasklist .is-level-2 td:first-child {
	padding-left: 1rem;
}

.malka-crm-tasklist .is-level-3 td:first-child {
	padding-left: 2rem;
	font-size: .82rem;
	color: #8A8A8A;
}

.malka-crm-tasklist .is-parent td:first-child {
	font-weight: 600;
	color: var(--malka-crm-heading);
}

/* ── Paneles desplegables del portal ───────────────────── */
.malka-crm-panel {
	background: #fff;
	border: 1px solid var(--malka-crm-line);
	border-radius: 10px;
	margin-bottom: 12px;
	overflow: hidden;
}

.malka-crm-panel > summary {
	list-style: none;
	cursor: pointer;
	padding: .85rem 1.1rem;
	font-size: .95rem;
	color: var(--malka-crm-heading);
	background: var(--malka-crm-base);
	display: flex;
	align-items: center;
	gap: .6rem;
	user-select: none;
}

.malka-crm-panel > summary::-webkit-details-marker {
	display: none;
}

.malka-crm-panel__count {
	margin-left: auto;
	font-size: .72rem;
	color: #9A9A9A;
}

.malka-crm-panel__body {
	padding: 1rem 1.1rem 1.2rem;
}

.malka-crm-panel .malka-crm-gantt-wrap {
	border: none;
	padding: 0;
	margin-bottom: 0;
}

.malka-crm-locked {
	font-size: .68rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: #9A9A9A;
}

.malka-crm-cell-empty {
	padding: 0 !important;
}

/* ── Tabla en móvil: tarjetas legibles ─────────────────── */
@media (max-width: 782px) {
	.malka-crm-table thead {
		display: none;
	}

	.malka-crm-table,
	.malka-crm-table tbody,
	.malka-crm-table tr,
	.malka-crm-table td {
		display: block;
		width: 100%;
	}

	.malka-crm-table tr {
		border: 1px solid var(--malka-crm-line);
		border-radius: 8px;
		padding: .6rem .8rem;
		margin-bottom: .6rem;
		background: #fff;
	}

	.malka-crm-table td {
		border: none;
		padding: .22rem 0;
		display: flex;
		justify-content: space-between;
		gap: .8rem;
		font-size: .84rem;
		text-align: right;
	}

	.malka-crm-table td::before {
		content: attr(data-title);
		font-weight: 600;
		color: #9A9A9A;
		font-size: .74rem;
		text-transform: uppercase;
		letter-spacing: .04em;
		text-align: left;
	}

	/* Sin data-title no se pinta etiqueta ni fila. */
	.malka-crm-table td:not([data-title]) {
		display: none;
	}

	.malka-crm-table td:first-child {
		display: block;
		text-align: left;
		font-weight: 600;
		color: var(--malka-crm-heading);
		padding-bottom: .4rem;
		margin-bottom: .3rem;
		border-bottom: 1px solid var(--malka-crm-line);
	}

	.malka-crm-table td:first-child::before {
		display: none;
	}

	.malka-crm-approval {
		align-items: flex-end;
		text-align: right;
	}
}

/* ── Detalle de tareas más aireado ─────────────────────── */
.malka-crm-tasklist th,
.malka-crm-tasklist td {
	padding: .7rem .6rem;
	vertical-align: top;
}

.malka-crm-row-stage td {
	background: var(--malka-crm-base);
	font-weight: 600;
	color: var(--malka-crm-heading);
}

.malka-crm-stage-toggle {
	background: none;
	border: 0;
	padding: 0 .5rem 0 0;
	cursor: pointer;
	color: var(--malka-crm-accent);
	font-size: .8rem;
	line-height: 1;
}

.malka-crm-stage-toggle span::before {
	content: "▾";
	display: inline-block;
	transition: transform .18s ease;
}

.malka-crm-row-stage.is-collapsed .malka-crm-stage-toggle span::before {
	transform: rotate(-90deg);
}

/* ── Bloque de aprobación ordenado ─────────────────────── */
.malka-crm-approval {
	min-width: 0;
	gap: .5rem;
}

.malka-crm-approval__sign {
	width: 100%;
	padding: .8rem;
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
	border-radius: 6px;
}

.malka-crm-approval__warning {
	margin: 0 0 .6rem;
	font-size: .76rem;
	line-height: 1.5;
	color: #97552E;
}

.malka-crm-approval__sign label {
	display: block;
	margin-bottom: .5rem;
}

.malka-crm-approval__sign label span {
	display: block;
	font-size: .7rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #9A9A9A;
	margin-bottom: .2rem;
}

.malka-crm-approval__sign input {
	width: 100%;
	padding: .4rem .5rem;
	border: 1px solid var(--malka-crm-line);
	border-radius: 4px;
	font-size: .85rem;
}

.malka-crm-approval__sign .malka-crm-signature {
	font-family: Georgia, serif;
	font-style: italic;
	font-size: 1rem;
}

.malka-crm-approval__signer {
	font-size: .72rem;
	color: #7FA88A;
}

/* ── Botón de pago ─────────────────────────────────────── */
.malka-crm-pay-btn {
	margin-left: .5rem;
	font-size: .72rem;
	padding: .25rem .7rem;
}

/* ── Barra de administración en el portal ──────────────── */
.malka-crm-adminbar {
	display: flex;
	align-items: center;
	gap: .4rem;
	flex-wrap: wrap;
	padding: .7rem .9rem;
	margin-bottom: 12px;
	background: #F3EFEA;
	border: 1px dashed var(--malka-crm-accent);
	border-radius: 8px;
}

.malka-crm-adminbar__tag {
	font-size: .68rem;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #9C8B76;
	margin-right: .3rem;
}

.malka-crm-adminbar .malka-crm-btn {
	font-size: .74rem;
	padding: .3rem .7rem;
}

/* ── Estado de la tarea del cliente, compacto ──────────── */
.malka-crm-clienttask {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .35rem;
}

.malka-crm-deadline {
	display: inline-block;
	padding: .16rem .5rem;
	border-radius: 999px;
	font-size: .68rem;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: #EFEDE9;
	color: #7A7A7A;
	white-space: nowrap;
}

.malka-crm-deadline--done    { background: #E4EDE4; color: #3F6B45; }
.malka-crm-deadline--soon    { background: #F7EFE0; color: #97772E; }
.malka-crm-deadline--late,
.malka-crm-deadline--overdue { background: #F6E9E2; color: #97552E; }

.malka-crm-clienttask .malka-crm-btn {
	padding: .26rem .8rem;
	font-size: .74rem;
	white-space: nowrap;
}

.malka-crm-tag {
	display: inline-block;
	padding: .16rem .5rem;
	border-radius: 999px;
	font-size: .66rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	background: var(--malka-crm-accent);
	color: #fff;
}

.malka-crm-approval__legal {
	margin: 0 0 .6rem;
	font-size: .7rem;
	color: #9A9A9A;
	line-height: 1.45;
}

/* ── Historial de movimientos ──────────────────────────── */
.malka-crm-timeline {
	list-style: none;
	margin: 0;
	padding: 0;
}

.malka-crm-timeline li {
	position: relative;
	padding: 0 0 1rem 1.1rem;
	border-left: 1px solid var(--malka-crm-line);
	font-size: .84rem;
}

.malka-crm-timeline li::before {
	content: "";
	position: absolute;
	left: -4.5px;
	top: .35rem;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--malka-crm-accent);
}

.malka-crm-timeline li.is-approved::before { background: #7FA88A; }
.malka-crm-timeline li.is-changes::before  { background: #C0603E; }

.malka-crm-timeline__date {
	display: block;
	font-size: .7rem;
	color: #9A9A9A;
	margin-bottom: .1rem;
}

.malka-crm-timeline__meta {
	display: block;
	font-size: .72rem;
	color: #9A9A9A;
	margin-top: .15rem;
}

.malka-crm-timeline blockquote {
	margin: .35rem 0 0;
	padding: .45rem .7rem;
	background: var(--malka-crm-base);
	border-left: 2px solid var(--malka-crm-line);
	font-size: .78rem;
	color: #6B6B6B;
}


/* ═══════════════════════════════════════════════════════
   Detalle de tareas — portal del cliente
   ═══════════════════════════════════════════════════════ */
.malka-crm-tasklist {
	width: 100%;
	border-collapse: collapse;
	font-size: .87rem;
	table-layout: fixed;
}

.malka-crm-tasklist thead th {
	padding: .55rem .7rem;
	font-size: .68rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #9A9A9A;
	text-align: left;
	border-bottom: 1px solid var(--malka-crm-line);
	background: none;
}

.malka-crm-tasklist td {
	padding: .6rem .7rem;
	border-bottom: 1px solid #F1EEE9;
	vertical-align: middle;
}

.malka-crm-tasklist .col-task     { width: 38%; }
.malka-crm-tasklist .col-owner    { width: 13%; }
.malka-crm-tasklist .col-dates    { width: 17%; white-space: nowrap; }
.malka-crm-tasklist .col-progress { width: 14%; }
.malka-crm-tasklist .col-action   { width: 18%; }

/* Fila de etapa */
.malka-crm-tasklist .malka-crm-row-stage td {
	background: var(--malka-crm-base);
	border-top: 1px solid var(--malka-crm-line);
	border-bottom: 1px solid var(--malka-crm-line);
	font-weight: 600;
	color: var(--malka-crm-heading);
}

.malka-crm-tasklist .malka-crm-row-stage .malka-crm-taskname {
	font-size: .92rem;
}

/* Numeración y jerarquía */
.malka-crm-num {
	display: inline-block;
	min-width: 2.2rem;
	color: #B0A79A;
	font-variant-numeric: tabular-nums;
	font-size: .78rem;
}

.malka-crm-tasklist .is-level-3 .col-task {
	padding-left: 1.9rem;
}

.malka-crm-tasklist .is-level-3 .malka-crm-taskname {
	font-size: .82rem;
	color: #8A8A8A;
}

.malka-crm-tasklist tr.is-done .malka-crm-taskname {
	color: #7FA88A;
}

/* Barra de avance */
.malka-crm-bar {
	display: block;
	height: 5px;
	background: #EDE9E3;
	border-radius: 999px;
	overflow: hidden;
	margin-bottom: 3px;
}

.malka-crm-bar > span {
	display: block;
	height: 100%;
	background: var(--malka-crm-accent);
	border-radius: 999px;
}

.malka-crm-pct {
	font-size: .72rem;
	color: #9A9A9A;
	font-variant-numeric: tabular-nums;
}

.malka-crm-muted {
	color: #A9A198;
	font-size: .8rem;
}

/* Columna de acción: todo alineado y sin saltos */
.malka-crm-actions {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .3rem;
}

.malka-crm-actions .malka-crm-clienttask,
.malka-crm-actions .malka-crm-approval {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: .3rem;
	width: 100%;
	min-width: 0;
}

.malka-crm-actions .malka-crm-btn {
	padding: .28rem .75rem;
	font-size: .74rem;
	white-space: nowrap;
}

.malka-crm-actions .malka-crm-approval__actions {
	display: flex;
	gap: .3rem;
	flex-wrap: wrap;
}

.malka-crm-actions .malka-crm-hint,
.malka-crm-actions .malka-crm-rounds,
.malka-crm-actions .malka-crm-approval__date,
.malka-crm-actions .malka-crm-approval__signer {
	font-size: .66rem;
	line-height: 1.3;
}

.malka-crm-actions .malka-crm-approval__feedback:empty {
	display: none;
}

/* El panel de firma se despliega a lo ancho de la fila */
.malka-crm-tasklist .malka-crm-approval__sign {
	position: relative;
	width: 260px;
	max-width: none;
	z-index: 2;
}

@media (max-width: 900px) {
	.malka-crm-tasklist .malka-crm-approval__sign {
		width: 100%;
	}
}

/* ═══════════════════════════════════════════════════════
   Detalle de tareas — lista por etapas
   ═══════════════════════════════════════════════════════ */
.malka-crm-tasks-list {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.malka-crm-stage {
	border: 1px solid var(--malka-crm-line);
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

.malka-crm-stage-head {
	display: flex;
	align-items: center;
	gap: .6rem;
	width: 100%;
	padding: .75rem .9rem;
	background: var(--malka-crm-base);
	border: 0;
	cursor: pointer;
	text-align: left;
	font-family: inherit;
}

.malka-crm-stage-name {
	flex: 1 1 auto;
	font-size: .95rem;
	font-weight: 500;
	color: var(--malka-crm-heading);
	line-height: 1.3;
}

.malka-crm-stage-meta {
	display: flex;
	align-items: center;
	gap: .55rem;
	flex-shrink: 0;
}

.malka-crm-stage-dates {
	font-size: .72rem;
	color: #9A9A9A;
	white-space: nowrap;
}

.malka-crm-stage-count {
	font-size: .7rem;
	color: #9A9A9A;
}

.malka-crm-stage-pct {
	min-width: 44px;
	text-align: right;
	font-family: Georgia, serif;
	font-size: .95rem;
	color: var(--malka-crm-accent);
}

.malka-crm-stage-body {
	display: none;
	padding: .25rem .9rem .8rem;
}

.malka-crm-stage.is-open .malka-crm-stage-body {
	display: block;
}

/* ── Ítems ─────────────────────────────────────────────── */
.malka-crm-item {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 1rem;
	padding: .7rem 0;
	border-bottom: 1px solid var(--malka-crm-line);
}

.malka-crm-item:last-child {
	border-bottom: 0;
}

.malka-crm-item.is-level-3 {
	padding-left: 1.1rem;
	border-left: 2px solid var(--malka-crm-line);
	margin-left: .2rem;
}

.malka-crm-item__main {
	flex: 1 1 auto;
	min-width: 0;
}

.malka-crm-item__name {
	margin: 0 0 .18rem;
	font-size: .88rem;
	font-weight: 500;
	color: var(--malka-crm-heading);
	line-height: 1.35;
	display: flex;
	align-items: center;
	gap: .45rem;
	flex-wrap: wrap;
}

.malka-crm-item.is-done .malka-crm-item__name {
	color: #9A9A9A;
}

.malka-crm-item__meta {
	margin: 0;
	font-size: .74rem;
	color: #9A9A9A;
	line-height: 1.4;
}

.malka-crm-item__side {
	flex: 0 0 auto;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .35rem;
	max-width: 230px;
}

.malka-crm-pct {
	font-family: Georgia, serif;
	font-size: .9rem;
	color: var(--malka-crm-heading);
}

.malka-crm-pct.is-done {
	color: #7FA88A;
}

/* Acciones alineadas a la derecha, sin desbordar */
.malka-crm-item__side .malka-crm-clienttask,
.malka-crm-item__side .malka-crm-approval {
	align-items: flex-end;
	text-align: right;
	width: 100%;
}

.malka-crm-item__side .malka-crm-approval__sign {
	text-align: left;
	min-width: 220px;
}

.malka-crm-item__side .malka-crm-approval__actions {
	justify-content: flex-end;
}

@media (max-width: 640px) {
	.malka-crm-item {
		flex-direction: column;
		gap: .5rem;
	}

	.malka-crm-item__side {
		flex-direction: row;
		align-items: center;
		flex-wrap: wrap;
		max-width: none;
		width: 100%;
	}

	.malka-crm-item__side .malka-crm-clienttask,
	.malka-crm-item__side .malka-crm-approval {
		align-items: flex-start;
		text-align: left;
	}

	.malka-crm-stage-dates {
		display: none;
	}
}


/* ── Ajustes finales de coherencia ─────────────────────── */
.malka-crm-quote {
	border-radius: 2px;
	padding: 1.25rem 1.4rem;
}

.malka-crm-quote__id h3 {
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .01em;
}

.malka-crm-quote__total {
	font-size: 1.1rem;
	font-family: inherit;
	letter-spacing: -.01em;
}

.malka-crm-quote__meta {
	letter-spacing: .04em;
}

.malka-crm-pay-btn {
	margin-left: .4rem;
	padding: .22rem .7rem;
	font-size: .62rem;
}

.malka-crm-docs,
.malka-crm-history {
	border-radius: 2px;
}

.malka-crm-doclist li {
	border-bottom: 1px solid var(--malka-crm-base);
	font-size: .84rem;
	padding: .6rem 0;
}

.malka-crm-timeline li {
	border-left: 1px solid var(--malka-crm-line);
	padding-bottom: 1.2rem;
}

.malka-crm-timeline__date {
	letter-spacing: .08em;
	text-transform: uppercase;
	font-size: .64rem;
}

.malka-crm-adminbar {
	border-radius: 2px;
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
}

.malka-crm-adminbar__tag {
	letter-spacing: .12em;
}

.malka-crm-final.is-approved {
	background: #F1F4F0;
	border-color: #D5E0D4;
}

/* ═══════════════════════════════════════════════════════
   Detalle de tareas en columnas
   ═══════════════════════════════════════════════════════ */
.malka-crm-tasklist {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
}

.malka-crm-tasklist .col-name  { width: auto; }
.malka-crm-tasklist .col-owner { width: 11%; }
.malka-crm-tasklist .col-date  { width: 10%; }
.malka-crm-tasklist .col-pct   { width: 8%; text-align: right; }
.malka-crm-tasklist .col-state { width: 15%; }
.malka-crm-tasklist .col-appr  { width: 22%; }

.malka-crm-tasklist thead th {
	padding: .55rem .5rem;
	border-bottom: 1px solid var(--malka-crm-line);
	font-size: .62rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
	font-weight: 500;
	white-space: nowrap;
}

.malka-crm-tasklist tbody td {
	padding: .65rem .5rem;
	border-bottom: 1px solid var(--malka-crm-base);
	font-size: .82rem;
	vertical-align: top;
	line-height: 1.45;
}

/* Fila de etapa: barra completa y plegable */
.malka-crm-row-stage td {
	padding: 0;
	border-bottom: 1px solid var(--malka-crm-line);
	background: var(--malka-crm-base);
}

.malka-crm-tasklist .malka-crm-stage-head {
	width: 100%;
	padding: .75rem .6rem;
	gap: .6rem;
}

.malka-crm-tasklist .malka-crm-stage-name {
	font-size: .85rem;
	font-weight: 500;
}

/* Filas ocultas mientras la etapa está cerrada */
.malka-crm-stage:not(.is-open) .malka-crm-row-task {
	display: none;
}

.malka-crm-row-task .col-name {
	color: var(--malka-crm-heading);
}

.malka-crm-row-task.is-level-3 .col-name {
	padding-left: 1.6rem;
	color: var(--malka-crm-body);
}

.malka-crm-row-task.is-done .col-name {
	color: var(--malka-crm-muted);
}

.malka-crm-row-task .col-owner,
.malka-crm-row-task .col-date {
	color: var(--malka-crm-muted);
	font-size: .76rem;
	white-space: nowrap;
}

.malka-crm-row-task .col-pct {
	text-align: right;
	font-variant-numeric: tabular-nums;
	color: var(--malka-crm-body);
}

.malka-crm-item__name {
	display: inline;
	margin: 0;
}

.malka-crm-row-task .malka-crm-tag {
	margin-left: .35rem;
	vertical-align: 1px;
}

/* Acciones dentro de las celdas: en línea, compactas */
.malka-crm-tasklist .malka-crm-approval,
.malka-crm-tasklist .malka-crm-clienttask {
	align-items: flex-start;
	justify-content: flex-start;
	text-align: left;
	max-width: none;
	gap: .35rem;
}

.malka-crm-tasklist .malka-crm-approval__actions {
	justify-content: flex-start;
}

.malka-crm-tasklist .malka-crm-approval__rounds,
.malka-crm-tasklist .malka-crm-approval__note-line,
.malka-crm-tasklist .malka-crm-approval__hint,
.malka-crm-tasklist .malka-crm-approval__feedback,
.malka-crm-tasklist .malka-crm-grace {
	text-align: left;
}

.malka-crm-tasklist .malka-crm-cta,
.malka-crm-tasklist .malka-crm-btn {
	padding: .28rem .7rem;
	font-size: .62rem;
}

.malka-crm-tasklist .malka-crm-approval__sign,
.malka-crm-tasklist .malka-crm-approval__note,
.malka-crm-tasklist .malka-crm-approval__comment {
	width: 100%;
}

.malka-crm-cell-empty {
	padding: 0 !important;
}

/* ── Móvil: la tabla pasa a fichas ─────────────────────── */
@media (max-width: 860px) {
	.malka-crm-tasklist,
	.malka-crm-tasklist tbody,
	.malka-crm-tasklist tr,
	.malka-crm-tasklist td {
		display: block;
		width: 100%;
	}

	.malka-crm-tasklist thead {
		display: none;
	}

	.malka-crm-row-stage td {
		padding: 0;
	}

	.malka-crm-row-task {
		padding: .5rem 0 .8rem;
		border-bottom: 1px solid var(--malka-crm-base);
	}

	.malka-crm-row-task td {
		border: 0;
		padding: .15rem .6rem;
		display: flex;
		justify-content: space-between;
		gap: 1rem;
		font-size: .8rem;
	}

	.malka-crm-row-task td::before {
		content: attr(data-title);
		font-size: .62rem;
		letter-spacing: .1em;
		text-transform: uppercase;
		color: var(--malka-crm-muted);
		flex: 0 0 auto;
	}

	.malka-crm-row-task td:not([data-title]) {
		display: none;
	}

	.malka-crm-row-task .col-name {
		display: block;
		font-size: .88rem;
		padding: .5rem .6rem .35rem;
	}

	.malka-crm-row-task .col-name::before {
		display: none;
	}

	.malka-crm-row-task.is-level-3 .col-name {
		padding-left: 1.4rem;
	}

	.malka-crm-tasklist .col-state,
	.malka-crm-tasklist .col-appr {
		flex-direction: column;
		align-items: flex-start;
		gap: .3rem;
	}
}


/* ═══════════════════════════════════════════════════════
   Ajuste al tema: tipografía, columnas y botones
   ═══════════════════════════════════════════════════════ */

/* ── Anchos: el nombre manda ───────────────────────────── */
.malka-crm-tasklist .col-name  { width: 38%; }
.malka-crm-tasklist .col-owner { width: 11%; }
.malka-crm-tasklist .col-date  { width: 13%; }
.malka-crm-tasklist .col-pct   { width: 8%; }
.malka-crm-tasklist .col-state { width: 14%; }
.malka-crm-tasklist .col-appr  { width: 16%; }

.malka-crm-tasklist .col-name {
	white-space: normal;
	word-break: normal;
	overflow-wrap: anywhere;
}

/* ── Fechas apiladas ───────────────────────────────────── */
.malka-crm-date {
	display: block;
	font-size: .8rem;
	line-height: 1.5;
	color: var(--malka-crm-body);
	white-space: nowrap;
}

.malka-crm-date em {
	display: inline-block;
	min-width: 4.2em;
	font-style: normal;
	font-size: .64rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
}

/* ── Tipografía como la web, un punto más pequeña ──────── */
.malka-crm-tasklist tbody td {
	font-size: .88rem;
	font-weight: 300;
	line-height: 1.55;
	padding: .75rem .6rem;
}

.malka-crm-tasklist thead th {
	font-size: .68rem;
	font-weight: 500;
	letter-spacing: .08em;
}

.malka-crm-row-task .col-name {
	font-size: .92rem;
	font-weight: 400;
}

.malka-crm-row-task .col-owner {
	font-size: .82rem;
}

.malka-crm-tasklist .malka-crm-stage-name {
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: 0;
}

.malka-crm-panel > summary {
	font-size: .84rem;
	font-weight: 500;
	letter-spacing: .08em;
}

.malka-crm-project-head h3 {
	font-size: 1.5rem;
	font-weight: 600;
}

/* ── Botones con el preajuste del tema ─────────────────── */
.malka-crm-cta,
.malka-crm-btn {
	padding: .55rem 1.4rem;
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .02em;
	text-transform: none;
	border-radius: 3px;
	font-family: inherit;
	line-height: 1.5;
}

.malka-crm-tasklist .malka-crm-cta,
.malka-crm-tasklist .malka-crm-btn,
.malka-crm-clienttask .malka-crm-btn {
	padding: .38rem .95rem;
	font-size: .76rem;
}

.malka-crm-chip,
.malka-crm-deadline,
.malka-crm-badge,
.malka-crm-pay,
.malka-crm-tag {
	font-size: .66rem;
	font-weight: 500;
	letter-spacing: .06em;
	border-radius: 3px;
}

.malka-crm-link {
	font-size: .8rem;
	font-weight: 400;
}

.malka-crm-approval__rounds,
.malka-crm-approval__note-line {
	font-size: .7rem;
	letter-spacing: .04em;
	text-transform: none;
}

.malka-crm-approval__sign input,
.malka-crm-approval__note textarea {
	font-size: .88rem;
	font-weight: 300;
	border-radius: 3px;
}

.malka-crm-chip.is-active,
.malka-crm-project-nav .malka-crm-chip {
	font-size: .8rem;
	letter-spacing: .02em;
	text-transform: none;
	padding: .4rem 1rem;
	border-radius: 3px;
}

/* ── Bloque de aprobación dentro de su columna ─────────── */
.malka-crm-tasklist .malka-crm-approval {
	gap: .4rem;
}

.malka-crm-tasklist .malka-crm-approval__actions {
	gap: .3rem;
}

@media (max-width: 860px) {
	.malka-crm-row-task .col-date {
		display: block;
	}

	.malka-crm-row-task .col-date::before {
		display: none;
	}

	.malka-crm-date {
		display: flex;
		justify-content: space-between;
		gap: 1rem;
	}
}

/* ═══════════════════════════════════════════════════════
   Correcciones de maquetación — v3.2.3
   ═══════════════════════════════════════════════════════ */

/* ── Fechas: etiqueta arriba, fecha abajo ──────────────── */
.malka-crm-date {
	display: block;
	margin-bottom: .45rem;
	white-space: nowrap;
}

.malka-crm-date:last-child {
	margin-bottom: 0;
}

.malka-crm-date em {
	display: block;
	min-width: 0;
	margin-bottom: .05rem;
	font-style: normal;
	font-size: .6rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
	line-height: 1.4;
}

.malka-crm-date b {
	display: block;
	font-size: .84rem;
	font-weight: 300;
	color: var(--malka-crm-body);
	line-height: 1.4;
	font-variant-numeric: tabular-nums;
}

/* ── Jerarquía tipográfica: nada en negrita ────────────── */
.malka-crm-tasklist tbody td,
.malka-crm-tasklist tbody td b,
.malka-crm-row-task .col-name,
.malka-crm-item__name {
	font-weight: 300 !important;
}

.malka-crm-row-task .col-name {
	color: var(--malka-crm-heading);
	font-size: .9rem;
	line-height: 1.5;
}

.malka-crm-row-task.is-level-3 .col-name {
	font-size: .86rem;
	color: var(--malka-crm-body);
}

/* ── Padding coherente en toda la tabla ────────────────── */
.malka-crm-tasklist thead th {
	padding: .7rem .85rem;
}

.malka-crm-tasklist thead th:first-child,
.malka-crm-row-task td:first-child {
	padding-left: 1.1rem;
}

.malka-crm-tasklist thead th:last-child,
.malka-crm-row-task td:last-child {
	padding-right: 1.1rem;
}

.malka-crm-row-task td {
	padding: .95rem .85rem;
	vertical-align: top;
}

.malka-crm-row-task .col-pct {
	padding-top: 1rem;
}

/* ── Etapa: un solo icono, con aire a ambos lados ──────── */
.malka-crm-tasklist .malka-crm-stage-head {
	padding: .95rem 1.1rem;
	gap: .7rem;
}

.malka-crm-stage-head::before,
.malka-crm-stage-head::after,
.malka-crm-stage-name::before,
.malka-crm-stage-name::after {
	content: none !important;
	display: none !important;
	background: none !important;
}

.malka-crm-stage-chev {
	display: inline-block;
	flex: 0 0 6px;
	margin-right: .1rem;
}

.malka-crm-stage-meta {
	gap: 1.25rem;
	padding-left: 1rem;
}

.malka-crm-stage-pct {
	min-width: 3.5ch;
	text-align: right;
}

/* ── Celda de acciones: alto natural, sin huecos ───────── */
.malka-crm-tasklist .malka-crm-approval,
.malka-crm-tasklist .malka-crm-clienttask {
	gap: .45rem;
}

.malka-crm-tasklist .malka-crm-clienttask {
	flex-direction: column;
	align-items: flex-start;
}

.malka-crm-tasklist .malka-crm-approval__actions {
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	max-width: 150px;
	gap: .35rem;
}

.malka-crm-tasklist .malka-crm-cta {
	text-align: center;
	width: 100%;
}

.malka-crm-tasklist .malka-crm-approval__rounds {
	font-size: .68rem;
	line-height: 1.4;
}

/* ── Filas más contenidas ──────────────────────────────── */
.malka-crm-row-task {
	transition: background .18s ease;
}

.malka-crm-row-task:hover {
	background: #FCFBFA;
}

.malka-crm-row-task .col-state .malka-crm-chip,
.malka-crm-row-task .col-state .malka-crm-deadline {
	margin-bottom: .35rem;
}

@media (max-width: 860px) {
	.malka-crm-row-task td {
		padding: .2rem 1rem;
	}

	.malka-crm-row-task .col-name {
		padding: .7rem 1rem .4rem;
	}

	.malka-crm-date {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		margin-bottom: .25rem;
	}

	.malka-crm-date em,
	.malka-crm-date b {
		display: inline-block;
	}
}

/* ═══════════════════════════════════════════════════════
   Botones tipo "Mi Cuenta" + diálogos modales — v3.2.4
   ═══════════════════════════════════════════════════════ */

/* ── Botones píldora, como el header de la web ─────────── */
.malka-crm-cta,
.malka-crm-btn {
	box-sizing: border-box;
	max-width: 100%;
	border-radius: 999px;
	padding: .48rem 1.1rem;
	font-size: .78rem;
	font-weight: 400;
	letter-spacing: .01em;
	white-space: nowrap;
	text-align: center;
}

.malka-crm-cta--ghost,
.malka-crm-btn--ghost {
	background: transparent !important;
	border: 1px solid var(--malka-crm-accent) !important;
	color: var(--malka-crm-accent-dark) !important;
}

.malka-crm-cta--ghost:hover,
.malka-crm-btn--ghost:hover {
	background: var(--malka-crm-accent) !important;
	border-color: var(--malka-crm-accent) !important;
	color: #fff !important;
}

/* Dentro de la tabla: apilados, sin desbordar la columna */
.malka-crm-tasklist .malka-crm-approval__actions {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	max-width: 100%;
	gap: .3rem;
}

.malka-crm-tasklist .malka-crm-cta,
.malka-crm-tasklist .malka-crm-btn {
	width: 100%;
	padding: .38rem .6rem;
	font-size: .72rem;
}

.malka-crm-tasklist .malka-crm-approval,
.malka-crm-tasklist .malka-crm-clienttask {
	width: 100%;
	max-width: 100%;
}

/* Los bloques de formulario viven en el modal, no en la celda */
.malka-crm-tasklist .malka-crm-approval__sign,
.malka-crm-tasklist .malka-crm-approval__note,
.malka-crm-tasklist .malka-crm-approval__comment {
	display: none;
}

.malka-crm-tasklist .malka-crm-approval__hint {
	font-size: .68rem;
	line-height: 1.45;
	text-align: left;
	max-width: 100%;
}

/* ── Barra de etapa sin desbordes ──────────────────────── */
.malka-crm-tasklist .malka-crm-stage-head {
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	box-sizing: border-box;
	padding: .95rem 1.4rem .95rem 1.1rem;
}

.malka-crm-stage-name {
	min-width: 0;
	overflow-wrap: anywhere;
	padding-right: 1rem;
}

.malka-crm-stage-meta {
	flex: 0 0 auto;
	white-space: nowrap;
	padding-left: 0;
	gap: 1rem;
}

.malka-crm-stage-pct {
	min-width: 3.5ch;
	padding-right: .2rem;
}

@media (max-width: 700px) {
	.malka-crm-stage-meta {
		gap: .6rem;
	}

	.malka-crm-stage-count {
		display: none;
	}
}

/* ── Diálogo modal ─────────────────────────────────────── */
body.malka-crm-modal-open {
	overflow: hidden;
}

.malka-crm-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	background: rgba(43, 43, 43, .45);
	backdrop-filter: blur(2px);
	animation: malka-crm-fade .18s ease;
}

@keyframes malka-crm-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.malka-crm-modal__box {
	width: 100%;
	max-width: 420px;
	max-height: 85vh;
	overflow-y: auto;
	background: #fff;
	border: 1px solid var(--malka-crm-line);
	border-radius: 4px;
	box-shadow: 0 18px 50px rgba(0, 0, 0, .16);
}

.malka-crm-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1.1rem 1.4rem;
	border-bottom: 1px solid var(--malka-crm-line);
	background: var(--malka-crm-base);
}

.malka-crm-modal__head h4 {
	margin: 0;
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-heading);
}

.malka-crm-modal__close {
	background: none;
	border: 0;
	padding: 0;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--malka-crm-muted);
	cursor: pointer;
	transition: color .18s ease;
}

.malka-crm-modal__close:hover {
	color: var(--malka-crm-heading);
}

.malka-crm-modal__body {
	padding: 1.4rem;
}

/* Los bloques recuperan su forma dentro del modal */
.malka-crm-modal .malka-crm-approval__sign,
.malka-crm-modal .malka-crm-approval__note,
.malka-crm-modal .malka-crm-approval__comment {
	display: block !important;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	background: none;
	border: 0;
	text-align: left;
}

.malka-crm-modal .malka-crm-approval__comment {
	padding: .9rem 1rem;
	background: var(--malka-crm-base);
	border-left: 2px solid var(--malka-crm-accent);
	font-size: .88rem;
	line-height: 1.6;
}

.malka-crm-modal .malka-crm-approval__actions {
	flex-direction: row;
	justify-content: flex-end;
	gap: .5rem;
	margin-top: 1.1rem;
	width: auto;
}

.malka-crm-modal .malka-crm-cta {
	width: auto;
	padding: .5rem 1.3rem;
	font-size: .8rem;
}

.malka-crm-modal .malka-crm-approval__sign input,
.malka-crm-modal .malka-crm-approval__note textarea {
	padding: .6rem .7rem;
	font-size: .92rem;
}

.malka-crm-modal .malka-crm-approval__warning {
	font-size: .82rem;
	line-height: 1.6;
	margin-bottom: 1rem;
}

@media (max-width: 480px) {
	.malka-crm-modal {
		padding: 0;
		align-items: flex-end;
	}

	.malka-crm-modal__box {
		max-width: none;
		max-height: 92vh;
		border-radius: 4px 4px 0 0;
	}
}

/* ═══════════════════════════════════════════════════════
   Consistencia de etiquetas, botones y fechas — v3.2.5
   ═══════════════════════════════════════════════════════ */

/* ── Botones en mayúsculas ─────────────────────────────── */
.malka-crm-cta,
.malka-crm-btn {
	text-transform: uppercase;
	letter-spacing: .07em;
	font-size: .72rem;
}

.malka-crm-tasklist .malka-crm-cta,
.malka-crm-tasklist .malka-crm-btn {
	font-size: .66rem;
	letter-spacing: .06em;
	padding: .45rem .7rem;
	white-space: normal;
	line-height: 1.35;
}

.malka-crm-modal .malka-crm-cta {
	font-size: .74rem;
	padding: .55rem 1.4rem;
}

/* ── Etiquetas de estado con la misma forma que un botón ─ */
.malka-crm-chip,
.malka-crm-deadline,
.malka-crm-badge,
.malka-crm-pay,
.malka-crm-tag {
	box-sizing: border-box;
	display: inline-block;
	max-width: 100%;
	border-radius: 999px;
	border: 1px solid var(--malka-crm-line);
	padding: .45rem .95rem;
	font-size: .66rem;
	font-weight: 400;
	letter-spacing: .07em;
	text-transform: uppercase;
	line-height: 1.35;
	white-space: normal;
	overflow-wrap: anywhere;
	text-align: center;
}

.malka-crm-tasklist .malka-crm-chip,
.malka-crm-tasklist .malka-crm-deadline,
.malka-crm-tasklist .malka-crm-tag {
	display: block;
	width: 100%;
	padding: .45rem .7rem;
	font-size: .62rem;
	letter-spacing: .06em;
}

.malka-crm-tasklist .col-owner .malka-crm-tag {
	display: inline-block;
	width: auto;
	max-width: 100%;
}

/* ── Columna de fechas: centrada y con separación ──────── */
.malka-crm-tasklist .col-date {
	text-align: center;
}

.malka-crm-date {
	display: block;
	text-align: center;
	margin: 0;
	padding: .35rem 0;
	white-space: normal;
}

.malka-crm-date + .malka-crm-date {
	border-top: 1px solid var(--malka-crm-line);
}

.malka-crm-date em {
	display: block;
	margin-bottom: .1rem;
	text-align: center;
}

.malka-crm-date b {
	display: block;
	text-align: center;
}

/* ── Avance centrado para acompañar a las fechas ───────── */
.malka-crm-tasklist .col-pct {
	text-align: center;
}

@media (max-width: 860px) {
	.malka-crm-tasklist .col-date,
	.malka-crm-tasklist .col-pct {
		text-align: left;
	}

	.malka-crm-date {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		text-align: left;
		padding: .2rem 0;
	}

	.malka-crm-date em,
	.malka-crm-date b {
		display: inline-block;
		text-align: left;
		margin: 0;
	}

	.malka-crm-tasklist .malka-crm-chip,
	.malka-crm-tasklist .malka-crm-deadline {
		display: inline-block;
		width: auto;
	}
}

/* ═══════════════════════════════════════════════════════
   Ajustes finos — v3.2.6
   ═══════════════════════════════════════════════════════ */

/* ── "Tu tarea" con el mismo estilo que "En curso" ─────── */
.malka-crm-tag {
	background: var(--malka-crm-base);
	border: 1px solid var(--malka-crm-line);
	color: var(--malka-crm-body);
}

/* ── Celdas centradas verticalmente ────────────────────── */
.malka-crm-row-task .col-owner,
.malka-crm-row-task .col-date,
.malka-crm-row-task .col-pct,
.malka-crm-row-task .col-state {
	vertical-align: middle;
}

.malka-crm-row-task .col-name {
	vertical-align: middle;
}

.malka-crm-row-task .col-appr {
	vertical-align: middle;
}

.malka-crm-row-task .col-pct {
	padding-top: .95rem;
}

/* Las dos fechas reparten el alto por igual */
.malka-crm-tasklist .col-date {
	padding-top: .55rem;
	padding-bottom: .55rem;
}

.malka-crm-date {
	padding: .4rem 0;
}

/* ── Contador de correcciones en dos líneas ────────────── */
.malka-crm-approval__rounds {
	display: block;
	width: 100%;
	text-align: center;
	line-height: 1.4;
}

.malka-crm-approval__rounds em {
	display: block;
	font-style: normal;
	font-size: .6rem;
	font-weight: 500;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--malka-crm-muted);
}

.malka-crm-approval__rounds b {
	display: block;
	font-size: .8rem;
	font-weight: 300;
	color: var(--malka-crm-body);
	font-variant-numeric: tabular-nums;
}

@media (max-width: 860px) {
	.malka-crm-approval__rounds {
		display: flex;
		justify-content: space-between;
		align-items: baseline;
		text-align: left;
		gap: 1rem;
	}

	.malka-crm-approval__rounds em,
	.malka-crm-approval__rounds b {
		display: inline-block;
	}
}

/* ═══════════════════════════════════════════════════════
   Equilibrio vertical y centrado — v3.2.7
   ═══════════════════════════════════════════════════════ */

/* ── Fechas: mismo aire arriba, en el medio y abajo ─────
   El bloque superior respira contra el borde de la celda y
   contra el filete; el inferior, al revés. Así cada mitad
   queda ópticamente centrada en su espacio. */
.malka-crm-tasklist .col-date {
	padding-top: .65rem;
	padding-bottom: .65rem;
}

.malka-crm-date {
	padding: 0;
	margin: 0;
}

.malka-crm-date:first-child {
	padding-bottom: .65rem;
}

.malka-crm-date + .malka-crm-date {
	padding-top: .65rem;
	border-top: 1px solid var(--malka-crm-line);
}

/* ── Responsable centrado ──────────────────────────────── */
.malka-crm-tasklist .col-owner,
.malka-crm-tasklist thead .col-owner {
	text-align: center;
}

.malka-crm-tasklist .col-owner .malka-crm-tag {
	display: inline-block;
	width: auto;
	margin: 0 auto;
}

/* ── Estado y aprobación con el mismo eje ──────────────── */
.malka-crm-tasklist .col-state,
.malka-crm-tasklist thead .col-state,
.malka-crm-tasklist .col-appr,
.malka-crm-tasklist thead .col-appr {
	text-align: center;
}

.malka-crm-tasklist .col-state .malka-crm-clienttask,
.malka-crm-tasklist .col-appr .malka-crm-approval {
	align-items: center;
}

.malka-crm-tasklist .col-appr .malka-crm-approval__hint {
	text-align: center;
}

@media (max-width: 860px) {
	.malka-crm-tasklist .col-owner,
	.malka-crm-tasklist .col-state,
	.malka-crm-tasklist .col-appr {
		text-align: left;
	}

	.malka-crm-date:first-child {
		padding-bottom: .3rem;
	}

	.malka-crm-date + .malka-crm-date {
		padding-top: .3rem;
	}
}

/* ═══════════════════════════════════════════════════════
   Fechas simétricas, alerta de plazo y ritmo — v3.2.8
   ═══════════════════════════════════════════════════════ */

:root {
	--malka-crm-alert: #C64536;
	--malka-crm-alert-soft: #FAEEEB;
}

/* ── Fechas: el espacio lo dan los bloques, no la celda ── */
.malka-crm-tasklist .col-date,
.malka-crm-row-task .col-date {
	padding-top: 0;
	padding-bottom: 0;
}

.malka-crm-date,
.malka-crm-date:first-child,
.malka-crm-date + .malka-crm-date {
	padding: .75rem 0;
	margin: 0;
}

.malka-crm-date + .malka-crm-date {
	border-top: 1px solid var(--malka-crm-line);
}

/* ── Plazo por vencer o vencido ────────────────────────── */
.malka-crm-date.is-soon b,
.malka-crm-date.is-late b {
	color: var(--malka-crm-alert);
	font-weight: 400;
	position: relative;
	display: inline-block;
	cursor: help;
	border-bottom: 1px dotted var(--malka-crm-alert);
}

.malka-crm-date.is-late b {
	font-weight: 500;
}

/* Globo informativo */
.malka-crm-tip {
	position: absolute;
	bottom: calc(100% + 8px);
	left: 50%;
	transform: translateX(-50%) translateY(4px);
	z-index: 20;
	padding: .35rem .7rem;
	background: var(--malka-crm-heading);
	color: #fff;
	border-radius: 3px;
	font-size: .68rem;
	font-weight: 400;
	letter-spacing: .04em;
	text-transform: none;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: opacity .16s ease, transform .16s ease;
	pointer-events: none;
}

.malka-crm-tip::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: var(--malka-crm-heading);
}

.malka-crm-date b:hover .malka-crm-tip,
.malka-crm-date b:focus .malka-crm-tip {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}

/* ── Columna de aprobación con ritmo constante ─────────── */
.malka-crm-tasklist .col-appr .malka-crm-approval {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
}

.malka-crm-tasklist .col-appr .malka-crm-approval > * {
	margin: 0;
}

.malka-crm-tasklist .col-appr .malka-crm-approval__actions {
	gap: .5rem;
	margin: 0;
}

.malka-crm-tasklist .col-appr .malka-crm-approval__rounds,
.malka-crm-tasklist .col-appr .malka-crm-approval__hint,
.malka-crm-tasklist .col-appr .malka-crm-approval__note-line,
.malka-crm-tasklist .col-appr .malka-crm-approval__feedback {
	margin: 0;
}

.malka-crm-tasklist .col-appr .malka-crm-approval__feedback:empty {
	display: none;
}

/* ── Estado: solo el chip que corresponde ──────────────── */
.malka-crm-tasklist .col-state .malka-crm-clienttask {
	gap: .5rem;
}

.malka-crm-tasklist .col-state .malka-crm-chip,
.malka-crm-tasklist .col-state .malka-crm-deadline {
	margin-bottom: 0;
}
