/* Wave 4 — Diseño pro, confianza, producto */

#rl-app.rl-started {
	font-feature-settings: 'kern' 1, 'liga' 1;
}

/* G: Toolbar */
.thm-message-list-top-toolbar.tn-toolbar-enhanced {
	gap: 4px 8px;
	padding: 6px 10px !important;
	background: linear-gradient(to bottom, var(--tn-surface, #fff), var(--tn-surface-subtle, #f8fafc)) !important;
}

.thm-message-list-top-toolbar.tn-toolbar-enhanced > .btn {
	border: 1px solid transparent;
}

.thm-message-list-top-toolbar.tn-toolbar-enhanced > .btn:hover {
	border-color: var(--tn-border, #e2e8f0);
	box-shadow: var(--tn-shadow-sm, 0 1px 3px rgba(15, 23, 42, 0.08));
}

.tn-row-actions button {
	color: var(--tn-text-secondary, #1e293b);
}

.tn-row-actions button:hover {
	background: var(--tn-primary, #2980b9) !important;
	color: #fff !important;
}

.tn-row-actions button svg {
	display: block;
}

/* G: Micro-interacciones */
#rl-left .btn.buttonCompose.btn-success:active {
	transform: scale(0.98);
}

.messageListItem.unseen {
	animation: tn-unread-in 0.35s ease;
}

@keyframes tn-unread-in {
	from {
		background-color: color-mix(in srgb, var(--tn-primary, #3498db) 18%, #fff);
	}
}

#rl-left .b-folders li a[data-unread]:not([data-unread="0"]):not([data-unread=""])::after {
	animation: tn-badge-pulse 2.5s ease infinite;
}

@keyframes tn-badge-pulse {
	50% {
		box-shadow: 0 0 0 4px rgba(52, 152, 219, 0.25);
	}
}

#V-PopupsCompose .button-save.tn-send-primary:active {
	transform: scale(0.97);
}

body.tn-focus-mode #rl-left,
body.tn-focus-mode .tn-list-extras,
body.tn-focus-mode .tn-search-extras,
body.tn-focus-mode .tn-unread-digest {
	display: none !important;
}

/* Solo ocultar lista si hay un mensaje real abierto */
body.tn-focus-mode.tn-has-open-message #V-MailMessageList {
	display: none !important;
}

body.tn-focus-mode.tn-has-open-message #rl-right {
	width: 100% !important;
	max-width: none !important;
}

.tn-focus-toggle {
	border: 1px solid var(--tn-border-strong, #94a3b8);
	background: #fff;
	color: var(--tn-text-muted, #475569);
	border-radius: var(--tn-radius-sm, 8px);
	padding: 6px 10px;
	font-size: 0.72rem;
	font-weight: 600;
	cursor: pointer;
}

/* H: Externo + reportar */
.tn-external-banner {
	margin-bottom: 10px;
	padding: 10px 12px;
	border-radius: var(--tn-radius-sm, 8px);
	background: var(--tn-external-bg, #fffbeb);
	border: 1px solid color-mix(in srgb, var(--tn-external, #b45309) 35%, transparent);
	color: #92400e;
	font-size: 0.82rem;
	line-height: 1.45;
}

.tn-external-banner strong {
	display: block;
	margin-bottom: 4px;
}

.tn-report-btn {
	border: 1px solid var(--tn-danger, #dc2626) !important;
	color: var(--tn-danger, #dc2626) !important;
	background: var(--tn-danger-bg, #fee2e2) !important;
	border-radius: 999px !important;
	padding: 6px 12px !important;
	font-size: 0.78rem !important;
	font-weight: 600 !important;
}

body.tn-block-images .messageView .b-message img {
	visibility: hidden !important;
	max-height: 0 !important;
	overflow: hidden !important;
}

.tn-show-images {
	margin-top: 8px;
	border: 1px dashed var(--tn-border-strong, #94a3b8);
	background: var(--tn-surface-subtle, #f1f5f9);
	border-radius: 8px;
	padding: 8px 12px;
	font-size: 0.8rem;
	font-weight: 600;
	color: var(--tn-primary, #2980b9);
	cursor: pointer;
	width: 100%;
}

.tn-toast-action {
	display: block;
	margin-top: 6px;
	border: none;
	background: rgba(255, 255, 255, 0.25);
	color: inherit;
	font-weight: 700;
	padding: 4px 8px;
	border-radius: 4px;
	cursor: pointer;
	text-decoration: underline;
}

.tn-status-bar {
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px 10px;
	font-size: 0.72rem;
	color: var(--tn-sidebar-muted, #e2e8f0);
	border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.tn-status-dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--tn-success, #16a34a);
	flex-shrink: 0;
}

.tn-status-dot.is-pulse {
	animation: tn-badge-pulse 0.6s ease;
}

.tn-2fa-hint {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding: 8px 12px;
	background: var(--tn-info-bg, #e0f2fe);
	border-bottom: 1px solid #7dd3fc;
	color: #0c4a6e;
	font-size: 0.82rem;
}

.tn-2fa-setup {
	border: none;
	background: var(--tn-info, #0284c7);
	color: #fff;
	padding: 6px 12px;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
}

.tn-2fa-dismiss {
	border: none;
	background: transparent;
	font-size: 1.1rem;
	cursor: pointer;
	color: #0c4a6e;
	margin-left: auto;
}

/* I: Producto */
.tn-welcome-hub {
	margin: 8px 10px;
	padding: 10px;
	border-radius: var(--tn-radius-sm, 8px);
	background: rgba(255, 255, 255, 0.1);
	border: 1px solid rgba(255, 255, 255, 0.18);
	font-size: 0.82rem;
	color: #fff;
}

.tn-hub-cards {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 6px;
	margin: 8px 0;
}

.tn-hub-cards button,
.tn-hub-cards a,
.tn-hub-card-btn {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	text-align: center;
	padding: 8px 4px;
	border-radius: 8px;
	border: 1px solid rgba(255, 255, 255, 0.35) !important;
	background: rgba(41, 128, 185, 0.45) !important;
	background-color: rgba(41, 128, 185, 0.45) !important;
	color: #ffffff !important;
	font-size: 0.68rem;
	font-weight: 600;
	text-decoration: none;
	cursor: pointer;
	line-height: 1.15;
	box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
}

.tn-hub-cards button:hover,
.tn-hub-cards a:hover,
.tn-hub-card-btn:hover {
	background: rgba(41, 128, 185, 0.65) !important;
	border-color: rgba(255, 255, 255, 0.55) !important;
}

.tn-hub-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	background: #ffffff !important;
	color: var(--tn-primary, #2980b9) !important;
}

.tn-hub-icon svg {
	display: block;
	width: 16px;
	height: 16px;
}

.tn-hub-icon path {
	fill: #2980b9 !important;
}

.tn-hub-label {
	display: block;
	color: #f8fafc !important;
	font-size: 0.65rem;
	font-weight: 700;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.tn-hub-dismiss {
	border: none;
	background: transparent;
	color: rgba(255, 255, 255, 0.75);
	font-size: 0.72rem;
	cursor: pointer;
	text-decoration: underline;
}

.tn-mini-stats {
	display: flex;
	gap: 12px;
	margin: 4px 10px 8px;
	padding: 8px 10px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.tn-mini-stats > div {
	flex: 1;
	text-align: center;
}

.tn-stat-n {
	display: block;
	font-size: 1.1rem;
	font-weight: 700;
	color: #fff;
}

.tn-stat-l {
	font-size: 0.65rem;
	color: var(--tn-sidebar-muted, #e2e8f0);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}

.tn-sig-helper {
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	border-radius: 6px;
	padding: 4px 10px;
	font-size: 0.75rem;
	font-weight: 600;
	cursor: pointer;
	margin-left: 8px;
}

.tn-pwa-install {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	padding: 8px 12px;
	background: var(--tn-info-bg, #e0f2fe);
	border-bottom: 1px solid #7dd3fc;
	font-size: 0.82rem;
	color: #0c4a6e;
}

.tn-pwa-install-btn {
	border: none;
	background: var(--tn-primary, #2980b9);
	color: #fff;
	padding: 6px 12px;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
}

.tn-pwa-dismiss {
	border: none;
	background: transparent;
	font-size: 1.2rem;
	cursor: pointer;
	margin-left: auto;
}

.tn-unread-digest {
	margin: 0 10px 8px;
	padding: 8px 10px;
	background: var(--tn-unread-bg-soft, #f0f9ff);
	border: 1px solid #bae6fd;
	border-radius: 8px;
	font-size: 0.82rem;
}

.tn-unread-digest summary {
	cursor: pointer;
	font-weight: 600;
	color: var(--tn-unread-text, #0c4a6e);
}

.tn-unread-digest ul {
	margin: 8px 0 0;
	padding-left: 18px;
}

.tn-unread-digest li {
	cursor: pointer;
	padding: 4px 0;
	color: var(--tn-text-secondary, #1e293b);
}

.tn-unread-digest li:hover {
	color: var(--tn-primary, #2980b9);
}

.tn-filter-chip[data-tn-filter="important"].is-active {
	background: var(--tn-warning-bg, #fef3c7);
	border-color: var(--tn-warning, #d97706);
	color: #92400e;
}

.tn-vip-toggle {
	position: absolute;
	left: 4px;
	top: 50%;
	transform: translateY(-50%);
	border: none;
	background: transparent;
	opacity: 0;
	font-size: 0.85rem;
	cursor: pointer;
	z-index: 2;
}

.messageListItem:hover .tn-vip-toggle,
.messageListItem.tn-vip .tn-vip-toggle {
	opacity: 1;
}

.tn-vip-toggle.is-vip,
.messageListItem.tn-vip {
	box-shadow: inset 3px 0 0 var(--tn-warning, #d97706);
}

.messageListItem.tn-vip .tn-vip-toggle {
	color: var(--tn-warning, #d97706);
}

/* Unread softer for long sessions */
.messageListItem.unseen {
	background: var(--tn-unread-bg-soft, #f0f9ff) !important;
}

body.tn-theme-dark .tn-welcome-hub,
body.tn-theme-dark .tn-mini-stats {
	background: rgba(0, 0, 0, 0.2);
}

body.tn-theme-dark .tn-external-banner {
	background: #422006;
	color: #fde68a;
	border-color: #92400e;
}

@media (prefers-reduced-motion: reduce) {
	.messageListItem.unseen,
	#rl-left .b-folders li a[data-unread]:not([data-unread="0"])::after,
	.tn-status-dot.is-pulse {
		animation: none !important;
	}
}

@media print {
	.tn-status-bar,
	.tn-welcome-hub,
	.tn-mini-stats,
	.tn-pwa-install,
	.tn-2fa-hint,
	.tn-unread-digest,
	.tn-external-banner,
	.tn-vip-toggle {
		display: none !important;
	}
}
