/*!
 * NexLink UI — camada visual moderna do Webmail (RainLoop 1.17)
 * Carregada depois de app.min.css e do tema. Não altera regras de negócio:
 * apenas apresentação, layout responsivo, foco/teclado e estados visuais.
 *
 * Organização:
 *  1. Tokens (claro/escuro)        7. Lista de mensagens
 *  2. Base e tipografia            8. Leitura da mensagem
 *  3. Componentes (botões, campos) 9. Compositor e popups
 *  4. Login (usuário e admin)     10. Configurações e Administração
 *  5. Estrutura (sidebar/header)  11. Responsivo / mobile
 *  6. Pastas                      12. Toasts e utilidades
 */

/* =========================================================
   1. TOKENS
   ========================================================= */
:root,
html[data-nx-theme="dark"] {
	--nx-bg: #282828;
	--nx-surface: #1e1e1e;
	--nx-surface-2: #232323;
	--nx-surface-3: #2b2b2b;
	--nx-hover: rgba(255, 255, 255, 0.05);
	--nx-active: rgba(255, 255, 255, 0.08);
	--nx-border: rgba(255, 255, 255, 0.07);
	--nx-border-strong: rgba(255, 255, 255, 0.14);
	--nx-text: #f2f2f2;
	--nx-text-2: #c4c4c4;
	--nx-muted: #9a9a9a;
	--nx-primary: #5955d1;
	--nx-primary-hover: #6b67df;
	--nx-primary-press: #4a46bd;
	--nx-primary-soft: rgba(89, 85, 209, 0.18);
	--nx-primary-text: #a9a7ec;
	--nx-on-primary: #ffffff;
	--nx-success: #22c55e;
	--nx-success-soft: rgba(34, 197, 94, 0.14);
	--nx-success-text: #4ade80;
	--nx-danger: #ef4444;
	--nx-danger-soft: rgba(239, 68, 68, 0.14);
	--nx-danger-text: #f87171;
	--nx-warning: #f59e0b;
	--nx-warning-soft: rgba(245, 158, 11, 0.14);
	--nx-warning-text: #fbbf24;
	--nx-info-soft: rgba(59, 130, 246, 0.14);
	--nx-info-text: #60a5fa;
	--nx-star: #f5b301;
	--nx-unread: #5955d1;
	--nx-overlay: rgba(0, 0, 0, 0.55);
	--nx-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
	--nx-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.25);
	--nx-focus: 0 0 0 3px rgba(124, 120, 236, 0.55);
	--nx-scroll: rgba(255, 255, 255, 0.16);
	--nx-msg-body-bg: #1e1e1e;
	color-scheme: dark;
}

html[data-nx-theme="light"] {
	--nx-bg: #f3f4f8;
	--nx-surface: #ffffff;
	--nx-surface-2: #f6f7fb;
	--nx-surface-3: #eef0f6;
	--nx-hover: rgba(17, 24, 39, 0.045);
	--nx-active: rgba(17, 24, 39, 0.08);
	--nx-border: #e6e8ef;
	--nx-border-strong: #d3d6e0;
	--nx-text: #161827;
	--nx-text-2: #3d4153;
	--nx-muted: #6b7083;
	--nx-primary: #5955d1;
	--nx-primary-hover: #4a46bd;
	--nx-primary-press: #3f3ba8;
	--nx-primary-soft: rgba(89, 85, 209, 0.1);
	--nx-primary-text: #4a46bd;
	--nx-on-primary: #ffffff;
	--nx-success: #16a34a;
	--nx-success-soft: rgba(22, 163, 74, 0.1);
	--nx-success-text: #15803d;
	--nx-danger: #dc2626;
	--nx-danger-soft: rgba(220, 38, 38, 0.08);
	--nx-danger-text: #b91c1c;
	--nx-warning: #d97706;
	--nx-warning-soft: rgba(217, 119, 6, 0.1);
	--nx-warning-text: #b45309;
	--nx-info-soft: rgba(37, 99, 235, 0.08);
	--nx-info-text: #1d4ed8;
	--nx-star: #e5a400;
	--nx-unread: #5955d1;
	--nx-overlay: rgba(17, 24, 39, 0.45);
	--nx-shadow: 0 12px 32px rgba(17, 24, 39, 0.12);
	--nx-shadow-sm: 0 1px 3px rgba(17, 24, 39, 0.08);
	--nx-focus: 0 0 0 3px rgba(89, 85, 209, 0.35);
	--nx-scroll: rgba(17, 24, 39, 0.2);
	--nx-msg-body-bg: #ffffff;
	color-scheme: light;
}

:root {
	--nx-font: "Instrument Sans", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--nx-radius-sm: 6px;
	--nx-radius: 10px;
	--nx-radius-lg: 16px;
	--nx-header-h: 64px;
	--nx-gap: 16px;
	--nx-sidebar-w: 248px;
	--nx-list-w: 420px;
	--nx-ease: cubic-bezier(.2, .7, .2, 1);
}

/* =========================================================
   2. BASE
   ========================================================= */
html.nx,
html.nx body {
	background: var(--nx-bg) !important;
	color: var(--nx-text-2);
	font-family: var(--nx-font);
	font-size: 14px;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

html.nx body,
html.nx input,
html.nx button,
html.nx select,
html.nx textarea,
html.nx .btn,
html.nx .dropdown-menu,
html.nx .tooltip,
html.nx .popover {
	font-family: var(--nx-font);
}

html.nx #rl-bg,
html.nx .thm-body {
	background: var(--nx-bg) !important;
	background-image: none !important;
	color: var(--nx-text-2) !important;
}

html.nx a {
	color: var(--nx-primary-text);
}

html.nx a:hover {
	color: var(--nx-primary-hover);
}

html.nx ::selection {
	background: var(--nx-primary-soft);
	color: var(--nx-text);
}

/* Foco visível para navegação por teclado (WCAG 2.4.7) */
html.nx *:focus {
	outline: none;
}

html.nx a:focus-visible,
html.nx button:focus-visible,
html.nx .btn:focus-visible,
html.nx [tabindex]:focus-visible,
html.nx .e-checkbox:focus-visible,
html.nx .e-link:focus-visible,
html.nx .e-item:focus-visible {
	outline: none !important;
	box-shadow: var(--nx-focus) !important;
	border-radius: var(--nx-radius-sm);
}

html.nx .messageItem .content.focused,
html.nx .messageItem .content:focus {
	box-shadow: none !important;
}

/* Barras de rolagem discretas */
html.nx * {
	scrollbar-width: thin;
	scrollbar-color: var(--nx-scroll) transparent;
}

html.nx ::-webkit-scrollbar {
	width: 8px;
	height: 8px;
}

html.nx ::-webkit-scrollbar-thumb {
	background: var(--nx-scroll);
	border-radius: 8px;
}

html.nx ::-webkit-scrollbar-track {
	background: transparent;
}

html.nx .nano > .nano-pane {
	background: transparent !important;
	width: 6px !important;
	right: 2px !important;
}

html.nx .nano > .nano-pane > .nano-slider {
	background: var(--nx-scroll) !important;
	border-radius: 6px !important;
	margin: 0 !important;
}

html.nx .nano.scroller-shadow-top:before,
html.nx .nano.scroller-shadow-bottom:after {
	display: none !important;
}

html.nx hr {
	border-color: var(--nx-border);
}

html.nx .muted,
html.nx .text-muted {
	color: var(--nx-muted) !important;
}

html.nx h1,
html.nx h2,
html.nx h3,
html.nx h4,
html.nx h5 {
	color: var(--nx-text);
	font-family: var(--nx-font);
	text-shadow: none;
}

/* Carregamento inicial */
html.nx #rl-loading,
html.nx .thm-loading {
	color: var(--nx-text-2) !important;
	text-shadow: none !important;
	font-size: 15px !important;
	font-weight: 500;
}

html.nx .thm-loading .e-spinner .e-bounce {
	background-color: var(--nx-primary) !important;
}

html.nx .progressjs-progress,
html.nx .progressjs-inner {
	background-color: var(--nx-primary) !important;
}

/* Linhas de carregamento */
html.nx .e-strip-animation {
	background-color: var(--nx-primary-soft) !important;
	background-image: linear-gradient(90deg, transparent, var(--nx-primary), transparent) !important;
	background-size: 40% 100% !important;
	background-repeat: no-repeat !important;
	animation: nx-strip 1.1s linear infinite !important;
	height: 3px !important;
}

@keyframes nx-strip {
	from { background-position: -40% 0; }
	to { background-position: 140% 0; }
}

/* =========================================================
   3. COMPONENTES
   ========================================================= */

/* ---- Botões ---- */
html.nx .btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 38px;
	min-width: 38px;
	padding: 0 14px;
	box-sizing: border-box;
	background: var(--nx-surface-2) !important;
	background-image: none !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: var(--nx-radius-sm) !important;
	box-shadow: none !important;
	color: var(--nx-text-2) !important;
	text-shadow: none !important;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	vertical-align: middle;
	transition: background-color .15s var(--nx-ease), border-color .15s var(--nx-ease), color .15s var(--nx-ease), box-shadow .15s;
	filter: none !important;
}

html.nx .btn:hover,
html.nx .btn.active,
html.nx .btn:active,
html.nx .open > .btn.dropdown-toggle {
	background: var(--nx-surface-3) !important;
	border-color: var(--nx-border-strong) !important;
	color: var(--nx-text) !important;
}

html.nx .btn [class^="icon-"],
html.nx .btn [class*=" icon-"] {
	color: inherit !important;
	text-shadow: none !important;
	margin: 0;
	font-size: 16px;
	line-height: 16px;
}

html.nx .btn .caret {
	border-top-color: currentColor !important;
	opacity: .8;
	margin: 0;
}

html.nx .btn.disabled,
html.nx .btn[disabled],
html.nx .btn.btn-dark-disabled-border.disabled {
	opacity: .45 !important;
	cursor: not-allowed;
	background: var(--nx-surface-2) !important;
	color: var(--nx-muted) !important;
}

html.nx .btn-primary,
html.nx .btn-success,
html.nx .btn.buttonLogin,
html.nx .btn.btn-nx-primary {
	background: var(--nx-primary) !important;
	border-color: var(--nx-primary) !important;
	color: var(--nx-on-primary) !important;
}

html.nx .btn-primary:hover,
html.nx .btn-success:hover,
html.nx .btn.buttonLogin:hover,
html.nx .btn.btn-nx-primary:hover {
	background: var(--nx-primary-hover) !important;
	border-color: var(--nx-primary-hover) !important;
	color: var(--nx-on-primary) !important;
}

html.nx .btn-primary:active,
html.nx .btn-success:active,
html.nx .btn.buttonLogin:active {
	background: var(--nx-primary-press) !important;
}

html.nx .btn-danger {
	background: var(--nx-danger) !important;
	border-color: var(--nx-danger) !important;
	color: #fff !important;
}

html.nx .btn-danger:hover {
	filter: brightness(1.08) !important;
	color: #fff !important;
}

html.nx .btn-warning {
	background: var(--nx-warning) !important;
	border-color: var(--nx-warning) !important;
	color: #1b1300 !important;
}

html.nx .btn-large {
	height: 44px;
	padding: 0 20px;
	font-size: 15px;
}

html.nx .btn-small,
html.nx .btn-mini {
	height: 30px;
	min-width: 30px;
	padding: 0 10px;
	font-size: 13px;
}

html.nx .btn-block {
	display: flex;
	width: 100%;
}

html.nx .btn-group {
	display: inline-flex;
	vertical-align: middle;
	font-size: 0;
}

html.nx .btn-group > .btn {
	border-radius: 0 !important;
	margin-left: -1px;
	font-size: 14px;
}

html.nx .btn-group > .btn:first-child,
html.nx .btn-group > .btn.first,
html.nx .btn-group > .btn.single {
	border-top-left-radius: var(--nx-radius-sm) !important;
	border-bottom-left-radius: var(--nx-radius-sm) !important;
	margin-left: 0;
}

html.nx .btn-group > .btn:last-child,
html.nx .btn-group > .btn.last,
html.nx .btn-group > .btn.single,
html.nx .btn-group > .dropdown-toggle {
	border-top-right-radius: var(--nx-radius-sm) !important;
	border-bottom-right-radius: var(--nx-radius-sm) !important;
}

html.nx .btn-toolbar {
	margin: 0;
	font-size: 0;
}

html.nx .btn-toolbar > .btn-group + .btn-group {
	margin-left: 0;
}

/* Botão "fantasma" (ícone) */
html.nx .nx-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--nx-text-2);
	cursor: pointer;
	transition: background-color .15s, color .15s;
}

html.nx .nx-icon-btn:hover {
	background: var(--nx-hover);
	color: var(--nx-text);
}

/* ---- Ícones SVG (máscaras) — traços no estilo Lucide (ISC) ---- */
.nx-i {
	display: inline-block;
	width: 18px;
	height: 18px;
	flex: 0 0 auto;
	background-color: currentColor;
	-webkit-mask: var(--i) center / contain no-repeat;
	mask: var(--i) center / contain no-repeat;
	vertical-align: middle;
}

.nx-i-sun { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E"); }
.nx-i-moon { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E"); }
.nx-i-menu { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E"); }
.nx-i-eye { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.nx-i-eye-off { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.88 9.88a3 3 0 1 0 4.24 4.24'/%3E%3Cpath d='M10.73 5.08A10.4 10.4 0 0 1 12 5c6.5 0 10 7 10 7a13.2 13.2 0 0 1-1.67 2.68'/%3E%3Cpath d='M6.61 6.61A13.5 13.5 0 0 0 2 12s3.5 7 10 7a9.7 9.7 0 0 0 5.39-1.61'/%3E%3Cpath d='M2 2l20 20'/%3E%3C/svg%3E"); }
.nx-i-mail { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E"); }
.nx-i-lock { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E"); }
.nx-i-user { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E"); }
.nx-i-inbox { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z'/%3E%3C/svg%3E"); }
.nx-i-send { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E"); }
.nx-i-file { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E"); }
.nx-i-alert { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E"); }
.nx-i-trash { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E"); }
.nx-i-archive { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='5' rx='1'/%3E%3Cpath d='M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4'/%3E%3C/svg%3E"); }
.nx-i-folder { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E"); }
.nx-i-check { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); }
.nx-i-x { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E"); }
.nx-i-info { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E"); }
.nx-i-search { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E"); }
.nx-i-reply { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 17 4 12l5-5'/%3E%3Cpath d='M20 18v-2a4 4 0 0 0-4-4H4'/%3E%3C/svg%3E"); }
.nx-i-reply-all { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17 2 12l5-5'/%3E%3Cpath d='m12 17-5-5 5-5'/%3E%3Cpath d='M22 18v-2a4 4 0 0 0-4-4H7'/%3E%3C/svg%3E"); }
.nx-i-forward { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 17 5-5-5-5'/%3E%3Cpath d='M4 18v-2a4 4 0 0 1 4-4h12'/%3E%3C/svg%3E"); }
.nx-i-logout { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9'/%3E%3C/svg%3E"); }
.nx-i-shield { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3C/svg%3E"); }
.nx-i-plus { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E"); }
.nx-i-pencil { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 3a2.85 2.85 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z'/%3E%3C/svg%3E"); }
.nx-i-key { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3'/%3E%3C/svg%3E"); }
.nx-i-power { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2v10'/%3E%3Cpath d='M18.4 6.6a9 9 0 1 1-12.77.04'/%3E%3C/svg%3E"); }
.nx-i-refresh { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 0 1 15-6.7L21 8M21 3v5h-5M21 12a9 9 0 0 1-15 6.7L3 16M8 16H3v5'/%3E%3C/svg%3E"); }
.nx-i-star { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 3.09 6.26L22 9.27l-5 4.87 1.18 6.88L12 17.77l-6.18 3.25L7 14.14 2 9.27l6.91-1.01Z'/%3E%3C/svg%3E"); }
.nx-i-spam { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.86 2h8.28L22 7.86v8.28L16.14 22H7.86L2 16.14V7.86Z'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E"); }
.nx-i-draft { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E"); }
.nx-i-settings { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 1 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 1 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 1 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 1 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1Z'/%3E%3C/svg%3E"); }
.nx-i-users { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E"); }
.nx-i-paperclip { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E"); }
.nx-i-chevron-left { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m15 18-6-6 6-6'/%3E%3C/svg%3E"); }
.nx-i-home { --i: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2Z'/%3E%3Cpath d='M9 22V12h6v10'/%3E%3C/svg%3E"); }

/* ---- Campos ---- */
html.nx input[type="text"],
html.nx input[type="email"],
html.nx input[type="password"],
html.nx input[type="search"],
html.nx input[type="number"],
html.nx input[type="url"],
html.nx input[type="tel"],
html.nx select,
html.nx textarea,
html.nx .uneditable-input {
	height: 40px;
	padding: 0 12px;
	box-sizing: border-box;
	background: var(--nx-surface-2) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: var(--nx-radius-sm) !important;
	box-shadow: none !important;
	color: var(--nx-text) !important;
	font-size: 14px;
	line-height: 1.4;
	transition: border-color .15s, box-shadow .15s, background-color .15s;
}

html.nx textarea {
	height: auto;
	padding: 10px 12px;
}

html.nx select {
	padding-right: 30px;
}

html.nx input::placeholder,
html.nx textarea::placeholder {
	color: var(--nx-muted) !important;
	opacity: 1;
}

html.nx input:hover,
html.nx select:hover,
html.nx textarea:hover {
	border-color: var(--nx-border-strong) !important;
}

html.nx input:focus,
html.nx select:focus,
html.nx textarea:focus {
	border-color: var(--nx-primary) !important;
	box-shadow: var(--nx-focus) !important;
	outline: none !important;
}

html.nx input[disabled],
html.nx select[disabled],
html.nx textarea[disabled],
html.nx input[readonly] {
	opacity: .6;
	cursor: not-allowed;
}

html.nx input[type="checkbox"],
html.nx input[type="radio"] {
	accent-color: var(--nx-primary);
}

html.nx .control-group.error input,
html.nx .control-group.error select,
html.nx .control-group.error textarea,
html.nx .controls.error input,
html.nx input.nx-invalid {
	border-color: var(--nx-danger) !important;
}

html.nx .control-group.error input:focus,
html.nx .controls.error input:focus,
html.nx input.nx-invalid:focus {
	box-shadow: 0 0 0 3px var(--nx-danger-soft) !important;
}

html.nx .control-group.error .control-label,
html.nx .control-group.error .help-inline,
html.nx .control-group.error .help-block {
	color: var(--nx-danger-text) !important;
}

html.nx .help-block,
html.nx .help-inline {
	color: var(--nx-muted);
	font-size: 12.5px;
}

html.nx .input-append,
html.nx .input-prepend {
	display: inline-flex;
	align-items: stretch;
	margin-bottom: 0;
	white-space: nowrap;
}

html.nx .input-append .add-on,
html.nx .input-prepend .add-on {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	min-width: 40px;
	box-sizing: border-box;
	background: var(--nx-surface-3) !important;
	border: 1px solid var(--nx-border) !important;
	color: var(--nx-muted) !important;
	text-shadow: none !important;
}

/* Checkbox do RainLoop (componente) */
html.nx .e-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	color: var(--nx-text-2);
	padding: 2px 0;
	border-radius: var(--nx-radius-sm);
	line-height: 1.3;
}

html.nx .e-checkbox.disabled {
	opacity: .5;
	cursor: not-allowed;
}

html.nx .e-checkbox-icon,
html.nx i.icon-checkbox-checked,
html.nx i.icon-checkbox-unchecked,
html.nx i.icon-checkbox-partial {
	color: var(--nx-muted);
}

html.nx .e-checkbox .icon-checkbox-checked,
html.nx i.icon-checkbox-checked,
html.nx i.icon-checkbox-partial {
	color: var(--nx-primary) !important;
}

/* ---- Menus suspensos ---- */
html.nx .dropdown-menu,
html.nx .g-ui-menu {
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border-strong) !important;
	border-radius: var(--nx-radius) !important;
	box-shadow: var(--nx-shadow) !important;
	padding: 6px !important;
	min-width: 220px;
	margin-top: 6px;
}

html.nx .dropdown-menu .divider,
html.nx .g-ui-menu .divider {
	background: var(--nx-border) !important;
	border: 0 !important;
	height: 1px;
	margin: 6px 4px !important;
}

html.nx .g-ui-menu .e-item > .e-link,
html.nx .dropdown-menu li > a {
	display: flex !important;
	align-items: center;
	gap: 4px;
	padding: 9px 12px !important;
	border-radius: var(--nx-radius-sm) !important;
	font-size: 14px;
	line-height: 1.3;
	color: var(--nx-text-2) !important;
	background: transparent !important;
	white-space: nowrap;
	text-shadow: none !important;
}

html.nx .g-ui-menu .e-item > .e-link > i,
html.nx .dropdown-menu li > a > i {
	color: var(--nx-muted) !important;
	width: 18px;
	text-align: center;
}

html.nx .g-ui-menu .e-item > .e-link:hover,
html.nx .g-ui-menu .e-item > .e-link:focus,
html.nx .dropdown-menu li > a:hover,
html.nx .dropdown-menu li > a:focus {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

html.nx .g-ui-menu .e-item > .e-link:hover > i,
html.nx .g-ui-menu .e-item > .e-link:focus > i {
	color: var(--nx-primary-text) !important;
}

html.nx .g-ui-menu .e-item.disabled > .e-link,
html.nx .g-ui-menu .e-item.disabled > .e-link:hover {
	color: var(--nx-muted) !important;
	background: transparent !important;
	opacity: .55;
	cursor: not-allowed;
}

html.nx .g-ui-menu .e-item.selected > .e-link {
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
}

/* ---- Alertas ---- */
html.nx .alert {
	display: block;
	position: relative;
	padding: 12px 40px 12px 14px;
	border-radius: var(--nx-radius-sm) !important;
	border: 1px solid transparent !important;
	background: var(--nx-warning-soft) !important;
	color: var(--nx-warning-text) !important;
	text-shadow: none !important;
	font-size: 13.5px;
	line-height: 1.45;
	text-align: left;
}

html.nx .alert-error,
html.nx .alert-danger,
html.nx .alert.alertError {
	background: var(--nx-danger-soft) !important;
	border-color: rgba(239, 68, 68, .28) !important;
	color: var(--nx-danger-text) !important;
}

html.nx .alert-success {
	background: var(--nx-success-soft) !important;
	border-color: rgba(34, 197, 94, .28) !important;
	color: var(--nx-success-text) !important;
}

html.nx .alert-info {
	background: var(--nx-info-soft) !important;
	border-color: rgba(59, 130, 246, .28) !important;
	color: var(--nx-info-text) !important;
}

html.nx .alert .close {
	position: absolute;
	top: 8px;
	right: 10px;
	opacity: .7;
	color: inherit !important;
}

html.nx .close {
	color: var(--nx-muted) !important;
	text-shadow: none !important;
	opacity: .8;
	font-weight: 400;
	font-size: 22px;
	line-height: 1;
}

html.nx .close:hover {
	color: var(--nx-text) !important;
	opacity: 1;
}

/* ---- Badges ---- */
html.nx .badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	box-sizing: border-box;
	border-radius: 999px;
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
	text-shadow: none !important;
	font-size: 12px;
	font-weight: 600;
	line-height: 1;
}

.nx-status {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 24px;
	padding: 0 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
}

.nx-status:before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
}

.nx-status-on { background: var(--nx-success-soft); color: var(--nx-success-text); }
.nx-status-off { background: var(--nx-danger-soft); color: var(--nx-danger-text); }
.nx-status-warn { background: var(--nx-warning-soft); color: var(--nx-warning-text); }

/* ---- Tabelas ---- */
html.nx .table {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: transparent;
	color: var(--nx-text-2);
}

html.nx .table th,
html.nx .table td {
	border-top: 1px solid var(--nx-border) !important;
	padding: 12px 14px;
	vertical-align: middle;
	line-height: 1.4;
}

html.nx .table thead th {
	border-top: 0 !important;
	color: var(--nx-muted);
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	background: var(--nx-surface-2);
}

html.nx .table-hover tbody tr:hover td,
html.nx .table-hover tbody tr:hover th {
	background: var(--nx-hover) !important;
}

/* ---- Tooltips ---- */
html.nx .tooltip.in {
	opacity: 1;
}

html.nx .tooltip-inner {
	background: #111 !important;
	color: #f5f5f5 !important;
	border-radius: var(--nx-radius-sm) !important;
	padding: 6px 10px !important;
	font-size: 12.5px;
	box-shadow: var(--nx-shadow-sm);
	max-width: 280px;
}

html.nx .tooltip.top .tooltip-arrow { border-top-color: #111 !important; }
html.nx .tooltip.bottom .tooltip-arrow { border-bottom-color: #111 !important; }
html.nx .tooltip.left .tooltip-arrow { border-left-color: #111 !important; }
html.nx .tooltip.right .tooltip-arrow { border-right-color: #111 !important; }

/* ---- Abas (bootstrap nav-tabs) ---- */
html.nx .nav-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	border-bottom: 1px solid var(--nx-border) !important;
	margin-bottom: 20px;
}

html.nx .nav-tabs > li {
	float: none;
	margin-bottom: -1px;
}

html.nx .nav-tabs > li > a {
	display: block;
	padding: 10px 14px;
	margin: 0;
	border: 0 !important;
	border-bottom: 2px solid transparent !important;
	border-radius: 0 !important;
	background: transparent !important;
	color: var(--nx-muted) !important;
	font-weight: 500;
}

html.nx .nav-tabs > li > a:hover {
	color: var(--nx-text) !important;
}

html.nx .nav-tabs > .active > a,
html.nx .nav-tabs > .active > a:hover {
	color: var(--nx-primary-text) !important;
	border-bottom-color: var(--nx-primary) !important;
}

/* ---- Formulários horizontais (Configurações/Admin) ---- */
html.nx .legend {
	display: block;
	width: auto !important;
	max-width: 760px;
	margin: 8px 0 18px;
	padding: 0 0 10px;
	border-bottom: 1px solid var(--nx-border) !important;
	color: var(--nx-text) !important;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	text-shadow: none !important;
}

html.nx .form-horizontal .control-group {
	margin-bottom: 16px;
}

html.nx .form-horizontal .control-label {
	color: var(--nx-text-2);
	font-weight: 500;
	padding-top: 10px;
}

html.nx label {
	color: var(--nx-text-2);
}

html.nx blockquote {
	border-left: 3px solid var(--nx-primary) !important;
	background: var(--nx-primary-soft);
	margin: 0 0 18px;
	padding: 10px 14px;
	border-radius: 0 var(--nx-radius-sm) var(--nx-radius-sm) 0;
}

html.nx blockquote p {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--nx-text-2) !important;
}

html.nx code {
	background: var(--nx-surface-3);
	border: 1px solid var(--nx-border);
	color: var(--nx-text);
	border-radius: 4px;
}

html.nx .well {
	background: var(--nx-surface-2);
	border: 1px solid var(--nx-border);
	box-shadow: none;
	border-radius: var(--nx-radius);
}

/* ---- Modais / popups ---- */
html.nx .popups {
	background: var(--nx-overlay) !important;
	-webkit-backdrop-filter: blur(2px);
	backdrop-filter: blur(2px);
}

html.nx .modal-backdrop,
html.nx .modal-backdrop.fade.in {
	background: transparent !important;
	opacity: 1 !important;
}

html.nx .popups .modal,
html.nx .modal {
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border-strong) !important;
	border-radius: var(--nx-radius-lg) !important;
	box-shadow: var(--nx-shadow) !important;
	color: var(--nx-text-2);
	overflow: hidden;
	max-width: calc(100vw - 32px);
}

html.nx .popups .modal .modal-body,
html.nx .modal-body {
	background: var(--nx-surface) !important;
	color: var(--nx-text-2);
}

html.nx .modal-header {
	background: var(--nx-surface) !important;
	border-bottom: 1px solid var(--nx-border) !important;
	padding: 16px 20px !important;
}

html.nx .modal-header h3 {
	font-size: 17px;
	font-weight: 600;
	color: var(--nx-text);
	margin: 0;
	line-height: 1.4;
}

html.nx .modal-footer {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	background: var(--nx-surface-2) !important;
	border-top: 1px solid var(--nx-border) !important;
	box-shadow: none !important;
	padding: 14px 20px !important;
	border-radius: 0 !important;
}

html.nx .modal-footer:before,
html.nx .modal-footer:after {
	display: none;
}

html.nx .modal-footer .btn + .btn {
	margin-left: 0;
}

/* Diálogo de confirmação */
html.nx .b-ask-content.modal {
	width: 440px;
}

html.nx .b-ask-content .modal-body {
	padding: 24px 24px 20px !important;
	font-size: 15px;
	line-height: 1.5;
	color: var(--nx-text);
	text-align: left;
}

html.nx .b-ask-content .modal-body br {
	display: none;
}

html.nx .b-ask-content .buttonYes {
	background: var(--nx-primary) !important;
	border-color: var(--nx-primary) !important;
	color: #fff !important;
}

/* =========================================================
   4. LOGIN (usuário e administração)
   ========================================================= */
html.nx.rl-user-no-auth #rl-center,
html.nx .nx-login-page #rl-center {
	min-width: 0;
	min-height: 0;
}

html.nx .b-login-content {
	position: absolute;
	inset: 0;
	overflow: auto;
	display: block;
	text-align: left;
}

html.nx .nx-auth {
	min-height: 100%;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: center;
	gap: 24px;
	padding: 32px clamp(16px, 4vw, 64px);
	box-sizing: border-box;
	max-width: 1280px;
	margin: 0 auto;
}

html.nx .nx-auth-art {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}

html.nx .nx-auth-art svg {
	width: 100%;
	max-width: 520px;
	height: auto;
}

html.nx .nx-auth-art .a-surface { fill: var(--nx-surface); stroke: var(--nx-border-strong); }
html.nx .nx-auth-art .a-surface-2 { fill: var(--nx-surface-3); }
html.nx .nx-auth-art .a-primary { fill: var(--nx-primary); }
html.nx .nx-auth-art .a-primary-soft { fill: var(--nx-primary-soft); }
html.nx .nx-auth-art .a-line { stroke: var(--nx-border-strong); fill: none; }
html.nx .nx-auth-art .a-text { fill: var(--nx-muted); opacity: .45; }
html.nx .nx-auth-art .a-accent { fill: var(--nx-primary-text); }
html.nx .nx-auth-art .a-ok { fill: var(--nx-success); }

html.nx .nx-auth-card {
	width: 100%;
	max-width: 450px;
	margin: 0 auto;
	box-sizing: border-box;
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: 18px !important;
	box-shadow: var(--nx-shadow-sm);
	padding: 40px;
	position: relative;
}

html.nx .nx-auth-card.afterLoginHide,
html.nx .loginFormWrapper.afterLoginHide {
	opacity: 0;
	transform: translateY(8px);
	transition: opacity .3s, transform .3s;
}

html.nx .nx-auth-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	margin-bottom: 20px;
	color: var(--nx-text);
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -.01em;
}

html.nx .nx-auth-logo img {
	max-height: 48px;
	max-width: 220px;
}

.nx-logo-mark {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: var(--nx-primary);
	color: #fff;
	flex: 0 0 auto;
}

.nx-logo-mark .nx-i {
	width: 20px;
	height: 20px;
}

html.nx .nx-auth-head {
	text-align: center;
	margin-bottom: 28px;
}

html.nx .nx-auth-head h1 {
	margin: 0 0 6px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--nx-text);
}

html.nx .nx-auth-head p {
	margin: 0;
	color: var(--nx-muted);
	font-size: 14px;
	line-height: 1.5;
}

html.nx .nx-field {
	margin-bottom: 20px;
	text-align: left;
}

html.nx .nx-label {
	display: block;
	margin-bottom: 8px;
	color: var(--nx-text-2);
	font-size: 14px;
	font-weight: 500;
}

html.nx .nx-input-wrap {
	position: relative;
	display: block;
}

html.nx .nx-input-wrap > .nx-i {
	position: absolute;
	left: 13px;
	top: 50%;
	margin-top: -9px;
	color: var(--nx-muted);
	pointer-events: none;
}

html.nx .nx-input-wrap input {
	width: 100% !important;
	height: 46px !important;
	padding-left: 42px !important;
	margin: 0 !important;
	font-size: 15px !important;
}

html.nx .nx-input-wrap.has-toggle input {
	padding-right: 48px !important;
}

html.nx .nx-toggle-pass {
	position: absolute;
	right: 4px;
	top: 50%;
	margin-top: -19px;
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: var(--nx-radius-sm);
	background: transparent;
	color: var(--nx-muted);
	cursor: pointer;
}

html.nx .nx-toggle-pass:hover {
	color: var(--nx-text);
	background: var(--nx-hover);
}

html.nx .nx-toggle-pass .nx-i-eye-off,
html.nx .nx-toggle-pass[aria-pressed="true"] .nx-i-eye {
	display: none;
}

html.nx .nx-toggle-pass[aria-pressed="true"] .nx-i-eye-off {
	display: inline-block;
}

html.nx .nx-field-error {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 7px;
	color: var(--nx-danger-text);
	font-size: 13px;
	line-height: 1.35;
}

html.nx .nx-field-error .nx-i {
	width: 15px;
	height: 15px;
}

html.nx .controls.error .nx-input-wrap input,
html.nx .nx-field.error .nx-input-wrap input {
	border-color: var(--nx-danger) !important;
}

html.nx .nx-field.error .nx-input-wrap > .nx-i {
	color: var(--nx-danger-text);
}

html.nx .nx-auth-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 22px;
	font-size: 14px;
}

html.nx .nx-auth-row a {
	color: var(--nx-primary-text);
	font-weight: 500;
}

html.nx .nx-auth .buttonLogin {
	height: 46px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	border-radius: 8px !important;
	text-transform: none !important;
	position: relative;
}

html.nx .nx-auth .buttonLogin .nx-spinner {
	display: none;
}

html.nx .nx-auth .submitting .buttonLogin .nx-spinner,
html.nx .nx-auth .buttonLogin.is-loading .nx-spinner {
	display: inline-block;
}

html.nx .nx-auth .submitting .buttonLogin .nx-btn-label-idle {
	display: none;
}

html.nx .nx-auth .buttonLogin .nx-btn-label-busy {
	display: none;
}

html.nx .nx-auth .submitting .buttonLogin .nx-btn-label-busy {
	display: inline;
}

html.nx .nx-auth .submitting .buttonLogin {
	cursor: progress;
	opacity: .9;
}

/* O RainLoop desenha um spinner sobre o formulário inteiro — usamos o do botão */
html.nx .nx-auth .submitting-pane.submitting:before,
html.nx .nx-auth .submitting-pane.submitting:after {
	display: none !important;
}

html.nx .nx-spinner {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .35);
	border-top-color: #fff;
	animation: nx-spin .7s linear infinite;
	box-sizing: border-box;
}

html.nx .nx-spinner.dark {
	border-color: var(--nx-border-strong);
	border-top-color: var(--nx-primary);
}

@keyframes nx-spin {
	to { transform: rotate(360deg); }
}

html.nx .nx-auth .alert {
	margin: 0 0 20px;
}

html.nx .nx-auth-foot {
	display: flex;
	align-items: center;
	justify-content: center;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 22px;
	padding-top: 18px;
	border-top: 1px solid var(--nx-border);
	font-size: 13px;
	color: var(--nx-muted);
}

html.nx .nx-auth-foot a,
html.nx .nx-auth-foot .flag-name,
html.nx .nx-auth-foot button.nx-link {
	color: var(--nx-muted) !important;
	border: 0 !important;
	background: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 6px;
	font-size: 13px;
	text-decoration: none;
	border-radius: var(--nx-radius-sm);
}

html.nx .nx-auth-foot a:hover,
html.nx .nx-auth-foot .flag-name:hover,
html.nx .nx-auth-foot button.nx-link:hover {
	color: var(--nx-text) !important;
}

html.nx .nx-auth .social-buttons {
	display: flex;
	justify-content: center;
	gap: 8px;
	float: none !important;
}

html.nx .nx-auth .social-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--nx-border-strong);
	color: var(--nx-text-2) !important;
	font-size: 18px;
	text-decoration: none;
}

html.nx .nx-theme-fab {
	position: absolute;
	top: 16px;
	right: 16px;
	z-index: 5;
}

html.nx .nx-auth .loginWelcomeForm {
	display: none;
}

html.nx .nx-auth .welcome-on {
	display: block;
}

html.nx .nx-auth .welcome-off {
	display: none;
}

html.nx .nx-auth .additionalCodeSignMeLabel {
	margin: -6px 0 18px;
}

/* =========================================================
   5. ESTRUTURA (sidebar + cabeçalho + painéis)
   ========================================================= */
html.nx #rl-center {
	min-width: 320px;
	min-height: 400px;
}

html.nx #rl-left {
	background: var(--nx-surface);
	border-right: 1px solid var(--nx-border);
	width: var(--nx-sidebar-w);
	z-index: 3;
}

html.nx #rl-right {
	left: var(--nx-sidebar-w);
}

html.nx.ssm-state-desktop {
	--nx-sidebar-w: 232px;
	--nx-list-w: 380px;
}

html.nx.ssm-state-desktop-large {
	--nx-sidebar-w: 248px;
	--nx-list-w: 440px;
}

html.nx.ssm-state-tablet {
	--nx-sidebar-w: 212px;
	--nx-list-w: 320px;
	--nx-gap: 12px;
}

html.nx.ssm-state-desktop-large #rl-left,
html.nx.ssm-state-desktop #rl-left,
html.nx.ssm-state-tablet #rl-left,
html.nx.ssm-state-mobile #rl-left {
	width: var(--nx-sidebar-w);
}

html.nx.ssm-state-desktop-large #rl-right,
html.nx.ssm-state-desktop #rl-right,
html.nx.ssm-state-tablet #rl-right,
html.nx.ssm-state-mobile #rl-right {
	left: var(--nx-sidebar-w);
}

html.nx.rl-left-panel-disabled #rl-left,
html.nx.rl-left-panel-short #rl-left {
	width: 72px !important;
}

html.nx.rl-left-panel-disabled #rl-right,
html.nx.rl-left-panel-short #rl-right {
	left: 72px !important;
}

html.nx .ui-resizable-helper-w {
	border-right: 3px solid var(--nx-primary) !important;
}

html.nx .ui-resizable-handle:hover {
	background: var(--nx-primary-soft) !important;
}

html.nx.csstransitions.rl-started-delay #rl-left,
html.nx.csstransitions.rl-started-delay #rl-right {
	transition: width .2s var(--nx-ease), left .2s var(--nx-ease) !important;
}

/* Marca no topo da sidebar */
html.nx .nx-brand {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: var(--nx-header-h);
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 0 20px;
	box-sizing: border-box;
	border-bottom: 1px solid var(--nx-border);
	color: var(--nx-text);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -.01em;
	white-space: nowrap;
	overflow: hidden;
	z-index: 102;
}

html.nx .nx-brand img {
	max-height: 34px;
	max-width: 160px;
}

html.nx .nx-brand .nx-brand-name {
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx.rl-left-panel-disabled .nx-brand,
html.nx.rl-left-panel-short .nx-brand {
	padding: 0;
	justify-content: center;
}

html.nx.rl-left-panel-disabled .nx-brand .nx-brand-name,
html.nx.rl-left-panel-disabled .nx-brand img,
html.nx.rl-left-panel-short .nx-brand .nx-brand-name {
	display: none;
}

/* Cabeçalho (barra superior) — SystemDropDown */
html.nx .b-system-drop-down .b-toolbar {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: var(--nx-header-h);
	padding: 0 var(--nx-gap) 0 calc(var(--nx-gap) + 4px);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	background: var(--nx-bg);
	border-bottom: 1px solid var(--nx-border);
	z-index: 103;
}

html.nx .b-system-drop-down .b-toolbar > .btn-toolbar {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	font-size: 14px;
}

html.nx .b-system-drop-down .pull-right {
	float: none !important;
}

html.nx .nx-header-left {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-right: auto;
	min-width: 0;
}

html.nx .nx-page-title {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--nx-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx .nx-crumb {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--nx-muted);
	font-size: 13px;
	white-space: nowrap;
}

html.nx .nx-crumb .nx-i {
	width: 15px;
	height: 15px;
}

html.nx .nx-crumb .nx-sep {
	opacity: .6;
}

html.nx .nx-theme-toggle {
	display: inline-flex;
	align-items: center;
	gap: 2px;
	padding: 3px;
	border-radius: 999px;
	background: var(--nx-surface);
	border: 1px solid var(--nx-border);
	margin-right: 4px;
}

html.nx .nx-theme-toggle button {
	width: 32px;
	height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--nx-muted);
	cursor: pointer;
}

html.nx .nx-theme-toggle button .nx-i {
	width: 16px;
	height: 16px;
}

html.nx .nx-theme-toggle button[aria-pressed="true"] {
	background: var(--nx-primary-soft);
	color: var(--nx-primary-text);
}

html.nx .b-system-drop-down .accountPlace {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	max-width: 260px;
	padding: 0 4px 0 8px;
	color: var(--nx-text);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	text-shadow: none !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	background: transparent !important;
	margin: 0 !important;
	height: auto !important;
}

html.nx .b-system-drop-down .btn.system-dropdown {
	width: 42px;
	height: 42px;
	min-width: 42px;
	padding: 0;
	border-radius: 50% !important;
	background: var(--nx-primary-soft) !important;
	border: 2px solid var(--nx-border-strong) !important;
	color: var(--nx-primary-text) !important;
}

html.nx .b-system-drop-down .btn.system-dropdown .caret {
	display: none;
}

html.nx .b-system-drop-down .btn.system-dropdown .nx-avatar-text {
	font-size: 15px;
	font-weight: 700;
	line-height: 1;
}

html.nx .b-system-drop-down .btn.system-dropdown i {
	font-size: 16px;
}

html.nx .b-system-drop-down .dropdown-menu {
	right: 0;
	left: auto;
	min-width: 260px;
}

html.nx .b-system-drop-down .account-item .icon-ok {
	visibility: hidden;
	color: var(--nx-primary) !important;
}

html.nx .b-system-drop-down .account-item.current .icon-ok {
	visibility: visible;
}

html.nx .b-system-drop-down .email-title {
	max-width: 200px;
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx .b-system-drop-down .logoPlace {
	display: none;
}

html.nx .b-system-drop-down .audioPlace {
	margin: 0 6px;
	color: var(--nx-primary-text);
}

/* Painéis abaixo do cabeçalho */
html.nx #rl-sub-left {
	top: var(--nx-header-h);
	width: var(--nx-list-w);
}

html.nx #rl-sub-right {
	top: var(--nx-header-h);
	left: var(--nx-list-w);
}

html.nx.ssm-state-desktop-large #rl-sub-left,
html.nx.ssm-state-desktop #rl-sub-left,
html.nx.ssm-state-tablet #rl-sub-left,
html.nx.ssm-state-mobile #rl-sub-left {
	width: var(--nx-list-w);
}

html.nx.ssm-state-desktop-large #rl-sub-right,
html.nx.ssm-state-desktop #rl-sub-right,
html.nx.ssm-state-tablet #rl-sub-right,
html.nx.ssm-state-mobile #rl-sub-right {
	left: var(--nx-list-w);
}

/* =========================================================
   6. PASTAS (sidebar)
   ========================================================= */
html.nx .b-folders .b-toolbar {
	top: var(--nx-header-h);
	left: 0;
	right: 0;
	height: auto;
	padding: 18px 16px 8px;
	box-sizing: border-box;
	display: flex;
	gap: 8px;
}

html.nx .b-folders .btn.buttonCompose {
	flex: 1 1 auto;
	height: 44px;
	font-size: 15px;
	font-weight: 600;
	background: var(--nx-primary) !important;
	border-color: var(--nx-primary) !important;
	color: #fff !important;
	border-radius: 8px !important;
	float: none !important;
	width: auto !important;
}

html.nx .b-folders .btn.buttonCompose:hover {
	background: var(--nx-primary-hover) !important;
}

html.nx .b-folders .btn.buttonCompose.btn-warning {
	background: var(--nx-warning) !important;
	border-color: var(--nx-warning) !important;
	color: #1b1300 !important;
}

html.nx .b-folders .btn.buttonContacts {
	flex: 0 0 44px;
	height: 44px;
	border-radius: 8px !important;
	float: none !important;
	margin: 0 !important;
}

html.nx .buttonComposeText {
	display: inline !important;
}

html.nx .b-folders .b-content {
	top: calc(var(--nx-header-h) + 72px);
	bottom: 60px;
	padding: 4px 0;
}

html.nx .b-folders .b-content .content-wrapper {
	padding: 0 12px;
}

html.nx .nx-nav-label {
	display: block;
	padding: 14px 10px 6px;
	color: var(--nx-primary-text);
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
}

html.nx .b-folders .b-content .e-item .e-link {
	display: flex !important;
	align-items: center;
	gap: 10px;
	height: 40px;
	line-height: 40px;
	padding: 0 10px 0 12px !important;
	margin: 1px 0;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 500;
	background: transparent !important;
	color: var(--nx-text-2) !important;
	text-shadow: none !important;
	cursor: pointer;
	transition: background-color .12s, color .12s;
}

html.nx .b-folders .b-content .e-item .e-link:not(.selectable) {
	color: var(--nx-muted) !important;
	cursor: default;
}

html.nx .b-folders .b-content .e-item .e-link.selectable:hover {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

html.nx .b-folders .b-content .e-item .e-link.selected,
html.nx .b-folders .b-content .e-item .e-link.selectable.selected {
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
}

html.nx .b-folders .b-content .e-item .e-link.focused {
	box-shadow: inset 0 0 0 1px var(--nx-primary) !important;
}

html.nx .b-folders .b-content .e-item .e-link.droppableHover {
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
	box-shadow: inset 0 0 0 1px var(--nx-primary) !important;
}

html.nx .b-folders .b-content .e-item .e-link .name {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

html.nx .b-folders .b-content .e-item .e-link .badge.count {
	order: 9;
	float: none !important;
	display: none;
	margin: 0;
}

html.nx .b-folders .b-content .e-item .e-link.print-count .badge.count {
	display: inline-flex;
}

html.nx .b-folders .b-content .e-item .e-link .focused-poiner {
	display: none;
}

html.nx .b-folders .b-content .e-item .e-link > .nx-i {
	width: 19px;
	height: 19px;
	opacity: .9;
}

html.nx .b-folders .b-content .e-item .e-link > i[class^="icon-"] {
	width: 14px;
	text-align: center;
	color: var(--nx-muted);
	font-size: 12px;
}

html.nx .b-folders .b-sub-folders {
	padding-left: 14px;
}

html.nx .b-folders .b-sub-folders.collapsed {
	display: none;
}

html.nx .b-folders .b-list-delimiter {
	margin: 10px 8px;
	border: 0;
	border-top: 1px solid var(--nx-border);
}

html.nx .b-folders .b-content .e-item .e-link .inbox-star-icon {
	color: var(--nx-star);
}

html.nx .b-folders .b-footer {
	bottom: 0;
	height: 60px;
	padding: 0 16px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 8px;
	border-top: 1px solid var(--nx-border);
	background: var(--nx-surface);
}

html.nx .b-folders .b-footer .btn {
	height: 36px;
	min-width: 36px;
	padding: 0 10px;
	background: transparent !important;
}

html.nx .b-folders .b-footer .btn:hover {
	background: var(--nx-hover) !important;
}

html.nx .b-folders .move-action-content-wrapper {
	opacity: 0.04;
}

/* Sidebar recolhida */
html.nx.rl-left-panel-disabled .b-folders .b-toolbar,
html.nx.rl-left-panel-short .b-folders .b-toolbar {
	padding: 14px 14px 8px;
	flex-direction: column;
}

html.nx.rl-left-panel-disabled .b-folders .btn.buttonCompose,
html.nx.rl-left-panel-short .b-folders .btn.buttonCompose {
	width: 44px !important;
	flex: 0 0 44px;
	padding: 0;
}

html.nx.rl-left-panel-disabled .buttonComposeText {
	display: none !important;
}

html.nx.rl-left-panel-disabled .b-folders .btn.buttonContacts {
	width: 44px;
}

html.nx.rl-left-panel-disabled #rl-left .b-content.show-on-panel-disabled {
	cursor: pointer;
}

html.nx.rl-left-panel-disabled .b-folders .b-content.opacity-on-panel-disabled {
	opacity: 1 !important;
	top: calc(var(--nx-header-h) + 124px);
}

html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link {
	justify-content: center;
	padding: 0 !important;
}

html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link .name,
html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link .badge,
html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link .inbox-star-icon,
html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link > i[class^="icon-"],
html.nx.rl-left-panel-disabled .b-folders .b-folders-user,
html.nx.rl-left-panel-disabled .b-folders .b-list-delimiter,
html.nx.rl-left-panel-disabled .nx-nav-label {
	display: none !important;
}

html.nx.rl-left-panel-disabled .b-folders .b-content .e-item .e-link.print-count:after {
	content: "";
	position: absolute;
	top: 9px;
	right: 12px;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nx-primary);
}

html.nx.rl-left-panel-disabled #rl-left .b-content.show-on-panel-disabled {
	display: none;
}

html.nx.rl-left-panel-disabled .b-folders .b-footer {
	justify-content: center;
	padding: 0;
}

/* =========================================================
   7. LISTA DE MENSAGENS
   ========================================================= */
html.nx .messageList {
	position: absolute;
	top: var(--nx-gap);
	bottom: var(--nx-gap);
	left: var(--nx-gap);
	right: calc(var(--nx-gap) / 2);
	background: var(--nx-surface);
	border: 1px solid var(--nx-border);
	border-radius: 14px;
	overflow: hidden;
}

html.nx .messageList .nx-list-search {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 64px;
	padding: 12px 14px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 8px;
	border-bottom: 1px solid var(--nx-border);
	background: transparent !important;
	background-image: none !important;
	z-index: 103;
}

html.nx .messageList .nx-search-box {
	position: relative;
	flex: 1 1 auto;
	min-width: 0;
	display: flex;
	align-items: center;
}

html.nx .messageList .nx-search-box > .nx-i {
	position: absolute;
	left: 12px;
	top: 50%;
	margin-top: -9px;
	color: var(--nx-muted);
	pointer-events: none;
	z-index: 1;
}

html.nx .messageList .inputSearch,
html.nx.ssm-state-tablet #rl-sub-left .messageList .inputSearch,
html.nx.ssm-state-mobile #rl-sub-left .messageList .inputSearch,
html.nx.rl-no-preview-pane #rl-sub-left .messageList .inputSearch,
html.nx.rl-bottom-preview-pane #rl-sub-left .messageList .inputSearch,
html.nx.rl-mobile #rl-sub-left .messageList .inputSearch {
	width: 100% !important;
	height: 40px;
	padding-left: 38px !important;
	padding-right: 34px !important;
	margin: 0;
	border-radius: 8px !important;
	box-sizing: border-box !important;
}

html.nx .messageList .nx-search-box .close {
	position: absolute;
	right: 10px;
	top: 50%;
	margin-top: -12px;
	z-index: 2;
	font-size: 20px;
	line-height: 24px;
}

html.nx .messageList .btn.buttonMoreSearch {
	height: 40px;
	min-width: 40px;
	padding: 0 12px;
	border-radius: 8px !important;
}

html.nx .messageList .toolbar {
	position: absolute;
	top: 64px;
	left: 0;
	right: 0;
	height: 52px;
	padding: 0 14px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--nx-border);
	z-index: 102;
	overflow: visible;
}

html.nx .messageList .toolbar .btn-toolbar {
	display: flex;
	align-items: center;
	gap: 4px;
	width: 100%;
	font-size: 14px;
}


html.nx .messageList .toolbar .btn-group:empty,
html.nx .messageList .toolbar .btn-toolbar > .btn-group:not(:has(*)) {
	display: none;
}

html.nx .messageList .toolbar .btn {
	height: 34px;
	min-width: 34px;
	padding: 0 9px;
	background: transparent !important;
	border-color: transparent !important;
}

html.nx .messageList .toolbar .btn:hover {
	background: var(--nx-hover) !important;
	border-color: var(--nx-border) !important;
}

html.nx .messageList .toolbar .btn.buttonCompose {
	background: var(--nx-primary) !important;
	color: #fff !important;
}

html.nx .messageList .toolbar .buttonMore {
	margin-left: auto;
}

html.nx .messageList .toolbar .btn-toolbar > .btn-group.dropdown:last-child {
	margin-left: auto;
}

html.nx .messageList .checkboxCkeckAll {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	font-size: 15px;
	cursor: pointer;
	border-radius: var(--nx-radius-sm);
	color: var(--nx-muted);
	margin: 0 2px 0 -4px !important;
}

html.nx .messageList .checkboxCkeckAll:hover {
	background: var(--nx-hover);
}

html.nx .messageList .nx-sel-count {
	display: none;
	font-size: 13px;
	color: var(--nx-primary-text);
	font-weight: 600;
	padding: 0 6px;
	white-space: nowrap;
}

html.nx .messageList .nx-sel-count.on {
	display: inline-block;
}

html.nx .messageList .b-message-list-wrapper {
	position: absolute;
	top: 116px;
	bottom: 0;
	left: 0;
	right: 0;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
}

html.nx .messageList.message-focused .b-message-list-wrapper {
	background: transparent !important;
}

html.nx .messageList.message-focused .b-content {
	opacity: 1;
}

html.nx .messageList .line-loading {
	top: 0;
}

html.nx .messageList .mainDelimiter {
	display: none;
}

html.nx .messageList .b-content {
	top: 0;
	bottom: 52px;
	background: transparent !important;
}

html.nx .messageList .b-footer {
	height: 52px;
	padding: 0 14px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	border-top: 1px solid var(--nx-border);
	background: transparent !important;
	background-image: none !important;
	border-radius: 0;
}

html.nx .messageList .b-footer .pull-right {
	float: none !important;
	margin-left: auto;
}

html.nx .messageList .b-footer .e-quota {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--nx-muted);
	border: 0 !important;
}

html.nx .messageList .b-footer .e-quota:before {
	content: "";
	width: 54px;
	height: 6px;
	border-radius: 6px;
	background: linear-gradient(90deg, var(--nx-primary) 0 var(--nx-quota, 0%), var(--nx-surface-3) var(--nx-quota, 0%));
}

/* Paginação */
html.nx .e-pagenator {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: nowrap;
}

html.nx .e-pagenator .e-page {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 32px;
	height: 32px;
	padding: 0 8px;
	box-sizing: border-box;
	border-radius: var(--nx-radius-sm);
	border: 1px solid var(--nx-border);
	color: var(--nx-text-2) !important;
	font-size: 13px;
	font-weight: 500;
	text-decoration: none !important;
	background: transparent;
	cursor: pointer;
	float: none;
	margin: 0;
}

html.nx .e-pagenator .e-page:hover {
	background: var(--nx-hover);
	color: var(--nx-text) !important;
}

html.nx .e-pagenator .e-page.current {
	background: var(--nx-primary) !important;
	border-color: var(--nx-primary);
	color: #fff !important;
}

html.nx .e-pagenator .e-page.custom {
	border-color: transparent;
}

/* Estados da lista */
html.nx .messageList .b-content .listEmptyList,
html.nx .messageList .b-content .listEmptyListLoading,
html.nx .messageList .b-content .listDragOver.viewAppendArea,
html.nx .messageList .b-content .listError,
html.nx .messageList .b-content .listEmptySearchList {
	padding: 56px 24px;
	color: var(--nx-muted);
	font-size: 15px;
	line-height: 1.5;
}

html.nx .messageList .b-content .listEmptyList:before,
html.nx .messageList .b-content .listEmptySearchList:before,
html.nx .messageList .b-content .listError:before {
	content: "";
	display: block;
	width: 56px;
	height: 56px;
	margin: 0 auto 14px;
	border-radius: 16px;
	background-color: var(--nx-primary-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237c78ec' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z'/%3E%3C/svg%3E");
	background-size: 26px;
	background-position: center;
	background-repeat: no-repeat;
}

html.nx .messageList .b-content .listEmptySearchList:before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237c78ec' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");
}

html.nx .messageList .b-content .listError {
	color: var(--nx-danger-text);
}

html.nx .messageList .b-content .listError:before {
	background-color: var(--nx-danger-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z'/%3E%3Cpath d='M12 9v4M12 17h.01'/%3E%3C/svg%3E");
}

html.nx .messageList .b-content .listDragOver.dragOverEnter {
	background: var(--nx-primary-soft);
	color: var(--nx-primary-text);
}

html.nx .messageList .b-content .listSearchDesc {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	font-size: 13px;
	color: var(--nx-primary-text);
	background: var(--nx-primary-soft);
	border-bottom: 1px solid var(--nx-border);
}

html.nx .messageList .b-content .listThreadUidDesc {
	background: var(--nx-surface-3);
	border-bottom: 1px solid var(--nx-border);
	color: var(--nx-text);
	text-shadow: none;
	font-size: 13px;
	padding: 10px 16px;
	text-align: left;
}

html.nx .messageList .b-content .listClear {
	padding: 10px 16px;
	color: var(--nx-text-2);
	background: var(--nx-warning-soft);
}

/* Itens */
html.nx .messageList .b-content .messageListItem {
	height: auto;
	min-height: 76px;
	max-height: 120px;
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid var(--nx-border) !important;
	font-size: 14px !important;
	line-height: 1.4;
	color: var(--nx-text-2);
	transition: background-color .12s, max-height .25s;
	position: relative;
}

html.nx .messageList .b-content .messageListItem.e-single-line {
	min-height: 48px;
	height: 48px;
}

html.nx .messageList .b-content .messageListItem .delimiter,
html.nx .messageList .b-content .delimiter {
	display: none;
}

html.nx .messageList .b-content .messageListItem .sidebarParent {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	height: auto;
	float: none;
	background: transparent !important;
	font-size: 0;
}

html.nx .messageList .b-content .messageListItem:hover {
	background: var(--nx-hover) !important;
}

html.nx .messageList .b-content .messageListItem.focused {
	background: var(--nx-hover) !important;
}

html.nx .messageList .b-content .messageListItem.focused .sidebarParent {
	background: var(--nx-border-strong) !important;
}

html.nx .messageList .b-content .messageListItem.checked {
	background: var(--nx-primary-soft) !important;
}

html.nx .messageList .b-content .messageListItem.selected {
	background: var(--nx-primary-soft) !important;
}

html.nx .messageList .b-content .messageListItem.selected .sidebarParent,
html.nx .messageList .b-content .messageListItem.checked .sidebarParent {
	background: var(--nx-primary) !important;
}

html.nx .messageList .b-content .messageListItem.unseen .sidebarParent {
	background: var(--nx-unread) !important;
}

html.nx .messageList .b-content .messageListItem.hasUnseenSubMessage {
	background: transparent;
}

html.nx .messageList .b-content .messageListItem.new,
html.nx .messageList .b-content .messageListItem.deleted {
	max-height: 0 !important;
	min-height: 0 !important;
	border-bottom-width: 0 !important;
}

html.nx .messageList .b-content .messageListItem .wrapper {
	display: grid;
	grid-template-columns: auto auto minmax(0, 1fr) auto;
	grid-template-areas:
		"check avatar sender date"
		"check avatar subject icons";
	column-gap: 12px;
	row-gap: 2px;
	align-items: center;
	padding: 14px 16px 14px 14px;
}

html.nx .messageList .b-content .messageListItem .checkedParent {
	grid-area: check;
	float: none;
	margin: 0;
	padding: 0;
	font-size: 15px;
	color: var(--nx-muted);
	align-self: center;
}

html.nx .messageList .b-content .messageListItem .nx-avatar {
	grid-area: avatar;
}

html.nx .messageList .b-content .messageListItem .senderParent {
	grid-area: sender;
	display: flex;
	align-items: center;
	gap: 4px;
	min-width: 0;
	color: var(--nx-text);
	font-weight: 500;
	font-size: 14.5px;
}

html.nx .messageList .b-content .messageListItem .sender {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

html.nx .messageList .b-content .messageListItem .dateParent {
	grid-area: date;
	float: none;
	margin: 0;
	color: var(--nx-muted);
	font-size: 12.5px !important;
	white-space: nowrap;
	justify-self: end;
}

html.nx .messageList .b-content .messageListItem .subjectParent {
	grid-area: subject;
	min-width: 0;
	color: var(--nx-text-2);
	font-size: 13.5px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx .messageList .b-content .messageListItem .subject-prefix {
	color: var(--nx-muted);
}

html.nx .messageList .b-content .messageListItem .nx-item-icons {
	grid-area: icons;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
}

html.nx .messageList .b-content .messageListItem .flagParent,
html.nx .messageList .b-content .messageListItem .attachmentParent,
html.nx .messageList .b-content .messageListItem .threadsParent {
	float: none;
	margin: 0;
	padding: 0;
	display: inline-flex;
	align-items: center;
}

html.nx .messageList .b-content .messageListItem .flagParent {
	color: var(--nx-muted);
	font-size: 15px;
}

html.nx .messageList .b-content .messageListItem .flagOn,
html.nx .messageList .b-content .messageListItem .flagOnHalf {
	color: var(--nx-star) !important;
}

html.nx .messageList .b-content .messageListItem .flagOff {
	opacity: 0;
	transition: opacity .12s;
}

html.nx .messageList .b-content .messageListItem:hover .flagOff,
html.nx .messageList .b-content .messageListItem.focused .flagOff {
	opacity: .7;
}

html.nx .messageList .b-content .messageListItem.withAttachments .attachment {
	color: var(--nx-muted);
	text-shadow: none;
}

html.nx .messageList .b-content .messageListItem .threads-len .threads-len-data {
	background: var(--nx-surface-3);
	border: 1px solid var(--nx-border);
	color: var(--nx-text-2);
	text-shadow: none;
	border-radius: 999px;
	padding: 1px 6px 1px 8px;
	font-size: 12px;
}

html.nx .messageList .b-content .messageListItem.unseen .sender,
html.nx .messageList .b-content .messageListItem.unseen .subject,
html.nx .messageList .b-content .messageListItem.unseen .subject-suffix {
	font-weight: 700;
	color: var(--nx-text);
}

html.nx .messageList .b-content .messageListItem.unseen .dateParent {
	color: var(--nx-primary-text);
	font-weight: 600;
}

html.nx .messageList .b-content .messageListItem .replyFlag,
html.nx .messageList .b-content .messageListItem .forwardFlag {
	color: var(--nx-muted);
	font-size: 12px;
}

html.nx .messageList .b-content .messageListItem .importantMark {
	color: var(--nx-danger) !important;
}

html.nx .messageList .b-content .messageListItem.e-single-line .wrapper {
	grid-template-columns: auto auto minmax(120px, 220px) minmax(0, 1fr) auto auto;
	grid-template-areas: "check avatar sender subject icons date";
	padding: 0 16px 0 14px;
	height: 48px;
}

html.nx .messageList .b-content .messageListItem.e-single-line .nx-avatar {
	width: 26px;
	height: 26px;
	font-size: 11px;
}

html.nx .messageList .b-content .messageListItem.e-single-line .senderParent {
	width: auto;
	float: none;
}

/* Avatares com iniciais */
html.nx .nx-avatar {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	font-size: 14px;
	font-weight: 700;
	line-height: 1;
	color: #fff;
	background: #5955d1;
	flex: 0 0 auto;
	text-transform: uppercase;
	user-select: none;
}

html.nx .nx-avatar[data-nx-c="1"] { background: #0e9f6e; }
html.nx .nx-avatar[data-nx-c="2"] { background: #d9480f; }
html.nx .nx-avatar[data-nx-c="3"] { background: #1c7ed6; }
html.nx .nx-avatar[data-nx-c="4"] { background: #c2255c; }
html.nx .nx-avatar[data-nx-c="5"] { background: #7048e8; }
html.nx .nx-avatar[data-nx-c="6"] { background: #0b7285; }
html.nx .nx-avatar[data-nx-c="7"] { background: #a26b00; }

html.nx .messageList.hideMessageListCheckbox .messageListItem .wrapper {
	grid-template-columns: 0 auto minmax(0, 1fr) auto;
	column-gap: 12px;
}

html.nx .messageList.hideMessageListCheckbox .messageListItem .checkedParent {
	display: none !important;
}

html.nx .messageList.hideMessageListCheckbox .messageListItem .wrapper > .nx-avatar {
	margin-left: -12px;
}

/* Item arrastado */
html.nx .draggablePlace {
	background: var(--nx-primary) !important;
	color: #fff;
	border-radius: 999px;
	padding: 6px 14px;
	height: auto;
	font-weight: 600;
	box-shadow: var(--nx-shadow-sm);
}

/* =========================================================
   8. LEITURA DA MENSAGEM
   ========================================================= */
html.nx .messageView .b-content,
html.nx .messageView .b-message-view-wrapper {
	position: absolute;
	top: var(--nx-gap) !important;
	bottom: var(--nx-gap) !important;
	left: calc(var(--nx-gap) / 2) !important;
	right: var(--nx-gap) !important;
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
	overflow: hidden;
}

html.nx .messageView .b-message-view-desc {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 100%;
	padding: 24px;
	box-sizing: border-box;
	color: var(--nx-muted);
	font-size: 15px;
	text-align: center;
	text-shadow: none;
}

html.nx .messageView .b-message-view-desc:before {
	content: "";
	width: 72px;
	height: 72px;
	margin-bottom: 16px;
	border-radius: 20px;
	background-color: var(--nx-primary-soft);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237c78ec' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E");
	background-size: 32px;
	background-position: center;
	background-repeat: no-repeat;
}

html.nx .messageView .b-message-view-desc.error {
	color: var(--nx-danger-text);
}

html.nx .messageView .b-message-view-checked-helper {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 100%;
	color: var(--nx-primary-text);
	font-size: 40px;
	font-weight: 600;
	text-shadow: none;
	opacity: .85;
}

html.nx .messageView .b-message-view-checked-helper:after {
	content: attr(data-nx-label);
	font-size: 15px;
	font-weight: 500;
	color: var(--nx-muted);
}

html.nx .messageView .b-message-view-backdrop {
	background: var(--nx-overlay);
}

html.nx .messageView .b-message-view-backdrop .backdrop-message {
	background: var(--nx-surface);
	color: var(--nx-text);
	text-shadow: none;
	border-radius: var(--nx-radius);
	font-size: 15px;
	border: 1px solid var(--nx-border);
}

/* Barra de ações da mensagem */
html.nx .messageView .message-fixed-button-toolbar {
	position: relative;
	top: 0 !important;
	height: 56px;
	padding: 0 16px;
	box-sizing: border-box;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 6px;
	margin: 0;
	border-bottom: 1px solid var(--nx-border);
}

html.nx .messageView .message-fixed-button-toolbar:before,
html.nx .messageView .message-fixed-button-toolbar:after {
	display: none !important;
}

/* A posição do corpo é calculada pelo RainLoop a partir da altura do cabeçalho;
   compensamos a barra de ações (56px) com margem. */
html.nx .messageView .b-content .messageItem {
	margin-top: 56px;
}

html.nx .messageView .message-fixed-button-toolbar nobr {
	display: flex;
	align-items: center;
	gap: 6px;
}

html.nx .messageView .message-fixed-button-toolbar .btn-group {
	float: none !important;
	margin: 0 !important;
}

html.nx .nx-msg-actions {
	display: flex;
	align-items: center;
	gap: 6px;
}

html.nx .nx-msg-actions .btn,
html.nx .messageView .message-fixed-button-toolbar .btn {
	height: 36px;
	min-width: 36px;
	padding: 0 12px;
	margin: 0 !important;
	border-radius: 8px !important;
	background: var(--nx-surface-2) !important;
}

html.nx .nx-msg-actions .btn:hover,
html.nx .messageView .message-fixed-button-toolbar .btn:hover {
	background: var(--nx-surface-3) !important;
}

html.nx .nx-msg-actions .btn .nx-i {
	width: 16px;
	height: 16px;
}

html.nx .nx-msg-actions .nx-btn-text {
	font-size: 13.5px;
}

/* Cabeçalho da mensagem */
html.nx .messageView .b-content .messageItemHeader {
	background: transparent !important;
	border-bottom: 1px solid var(--nx-border) !important;
	padding: 10px 22px 9px !important;
	color: var(--nx-text-2);
	text-shadow: none;
	position: relative;
}

html.nx .messageView .b-content .messageItemHeader .subjectParent {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 12px;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	color: var(--nx-text);
	white-space: normal;
	overflow: visible;
}

html.nx .messageView .b-content .messageItemHeader .subjectParent .subject {
	white-space: normal;
	word-break: break-word;
	min-width: 0;
}

html.nx .messageView .b-content .messageItemHeader .subjectParent .close {
	order: 9;
	margin-left: auto !important;
	display: none;
}

html.nx .messageView .b-content .messageItemHeader .infoParent,
html.nx .messageView .b-content .messageItemHeader .flagParent {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 6px;
	color: var(--nx-muted);
	cursor: pointer;
	font-size: 15px;
	float: none;
	margin: 0;
	flex: 0 0 auto;
}

html.nx .messageView .b-content .messageItemHeader .infoParent:hover,
html.nx .messageView .b-content .messageItemHeader .flagParent:hover {
	background: var(--nx-hover);
	color: var(--nx-text);
}

html.nx .messageView .b-content .messageItemHeader .flagParent .flagOn {
	color: var(--nx-star) !important;
}

html.nx .messageView .b-content .messageItemHeader .nx-from-row {
	display: flex;
	align-items: flex-start;
	gap: 12px;
}

html.nx .messageView .b-content .messageItemHeader .fromPic {
	width: 42px;
	height: 42px;
	border-radius: 50%;
	margin: 0;
	float: none;
	border: 0;
	box-shadow: none;
}

html.nx .messageView .b-content .messageItemHeader .nx-avatar {
	width: 42px;
	height: 42px;
	font-size: 15px;
}

html.nx .messageView .b-content .messageItemHeader .informationShort {
	color: var(--nx-text-2);
	font-size: 13.5px;
	line-height: 1.55;
	white-space: normal;
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx .messageView .b-content .messageItemHeader .informationShort .from {
	color: var(--nx-text);
	font-weight: 600;
	font-size: 14.5px;
}

html.nx .messageView .b-content .messageItemHeader .informationShort .date {
	color: var(--nx-muted);
}

html.nx .messageView .b-content .messageItemHeader .uiLabel,
html.nx .messageView .b-content .messageItemHeader .labelTo {
	color: var(--nx-muted);
}

html.nx .messageView .b-content .messageItemHeader .informationFull {
	margin-top: 12px;
	padding: 12px 14px;
	border-radius: var(--nx-radius);
	background: var(--nx-surface-2);
	border: 1px solid var(--nx-border);
	color: var(--nx-text-2);
}

html.nx .messageView .b-content .messageItemHeader .informationFull td {
	padding: 3px 12px 3px 0;
	vertical-align: top;
	font-size: 13px;
}

/* Corpo da mensagem */
html.nx .messageView .b-content .messageItem {
	background: transparent !important;
	border: 0 !important;
}

html.nx .messageView .b-content .messageItem .content {
	background: var(--nx-msg-body-bg);
}

html.nx .messageView .b-content .messageItem .content-wrapper,
html.nx .messageView .b-content .messageItem .content-content {
	background: transparent !important;
}

html.nx .messageView .b-content .messageItem .bodyText {
	color: var(--nx-text-2);
	font-size: 14.5px;
	line-height: 1.6;
	padding: 18px 22px !important;
}

html.nx .messageView .b-content .messageItem .bodyText a {
	color: var(--nx-primary-text);
}

html.nx .messageView .b-content .messageItem .bodyText blockquote {
	background: transparent;
	border-left: 3px solid var(--nx-border-strong) !important;
	color: var(--nx-muted);
}

html.nx .messageView .b-content .messageItem .loading {
	color: var(--nx-muted);
	padding-top: 60px;
	text-align: center;
	font-size: 15px;
}

html.nx .messageView .b-content .messageItem .buttonUp,
html.nx .messageView .b-content .messageItem .buttonFull,
html.nx .messageView .b-content .messageItem .buttonUnFull {
	background: var(--nx-surface-3) !important;
	color: var(--nx-text-2) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: 8px !important;
	box-shadow: none !important;
}

html.nx .messageView .b-content .bodySubHeader .showImages,
html.nx .messageView .b-content .bodySubHeader .readReceipt {
	margin: 12px 22px 0;
	padding: 10px 14px;
	border-radius: var(--nx-radius-sm);
	background: var(--nx-info-soft) !important;
	border: 1px solid rgba(59, 130, 246, .22) !important;
	color: var(--nx-info-text) !important;
	font-size: 13.5px;
	cursor: pointer;
	text-shadow: none;
}

html.nx .messageView .b-content .bodySubHeader .readReceipt {
	background: var(--nx-warning-soft) !important;
	border-color: rgba(245, 158, 11, .25) !important;
	color: var(--nx-warning-text) !important;
}

/* Anexos */
html.nx .messageView .b-content .attachmentsPlace {
	padding: 14px 22px 4px;
	border-bottom: 1px solid var(--nx-border);
	background: transparent;
	position: relative;
}

html.nx .messageView .b-content .attachmentsPlace .attachmentList {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 0 10px;
	padding: 0;
}

html.nx .messageView .b-content .attachmentsPlace .attachmentItem {
	display: flex !important;
	align-items: center;
	gap: 10px;
	float: none;
	width: 240px;
	max-width: 100%;
	height: auto;
	margin: 0;
	padding: 8px 10px;
	box-sizing: border-box;
	border-radius: var(--nx-radius);
	border: 1px solid var(--nx-border) !important;
	background: var(--nx-surface-2) !important;
	box-shadow: none !important;
	color: var(--nx-text-2);
	list-style: none;
}

html.nx .messageView .b-content .attachmentsPlace .attachmentItem:hover {
	border-color: var(--nx-primary) !important;
}

html.nx .attachmentItem .attachmentIconParent {
	width: 44px !important;
	height: 44px !important;
	border-radius: 8px;
	background: var(--nx-primary-soft) !important;
	border: 0 !important;
	overflow: hidden;
	flex: 0 0 auto;
	float: none !important;
	position: relative;
}

html.nx .attachmentItem .attachmentIconParent .iconMain,
html.nx .attachmentItem .attachmentIconParent .iconPreview {
	width: 44px !important;
	height: 44px !important;
	line-height: 44px !important;
}

html.nx .attachmentItem .attachmentIcon {
	color: var(--nx-primary-text) !important;
	font-size: 20px !important;
	line-height: 44px !important;
	text-shadow: none !important;
}

html.nx .attachmentItem .attachmentIconText {
	color: var(--nx-primary-text) !important;
}

html.nx .attachmentItem .attachmentNameParent {
	flex: 1 1 auto;
	min-width: 0;
	padding: 0 !important;
	margin: 0 !important;
}

html.nx .attachmentItem .attachmentName {
	color: var(--nx-text);
	font-weight: 500;
	font-size: 13.5px;
}

html.nx .attachmentItem .attachmentSize {
	color: var(--nx-muted);
	font-size: 12px;
}

html.nx .messageView .attachmentsPlace .controls-handle {
	position: absolute;
	right: 16px;
	top: 14px;
	color: var(--nx-muted);
	cursor: pointer;
}

html.nx .messageView .attachmentsControls {
	margin: 0 22px;
	padding: 10px 14px;
	border-radius: var(--nx-radius-sm);
	background: var(--nx-surface-2);
	border: 1px solid var(--nx-border);
	color: var(--nx-text-2);
}

/* Barra superior quando não há painel de visualização (modo sem preview) */
html.nx .messageView .toolbar.top-toolbar {
	position: absolute;
	top: var(--nx-gap);
	left: var(--nx-gap);
	right: var(--nx-gap);
	height: 52px;
	padding: 0 12px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	background: var(--nx-surface);
	border: 1px solid var(--nx-border);
	border-radius: 14px;
	z-index: 4;
}

html.nx .messageView .toolbar.top-toolbar .btn-toolbar {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
}

html.nx .messageView .toolbar.top-toolbar .btn {
	height: 36px;
	min-width: 36px;
	padding: 0 10px;
}

html.nx.rl-no-preview-pane .messageView .b-content {
	top: calc(var(--nx-gap) + 64px) !important;
	left: var(--nx-gap) !important;
}

html.nx.rl-no-preview-pane .messageList {
	right: var(--nx-gap);
}

html.nx.rl-no-preview-pane #rl-sub-left {
	right: 0 !important;
}

/* Modo tela cheia da mensagem */
html.nx.rl-message-fullscreen .messageView .b-content {
	top: var(--nx-gap) !important;
	left: var(--nx-gap) !important;
}

html.nx.rl-message-fullscreen #rl-sub-right {
	top: 0;
}

/* Visualização inferior */
html.nx.rl-bottom-preview-pane #rl-sub-left {
	right: 0 !important;
}

html.nx.rl-bottom-preview-pane .messageList {
	right: var(--nx-gap);
	bottom: auto;
	height: auto;
}

html.nx.rl-bottom-preview-pane .messageView .b-content {
	left: var(--nx-gap) !important;
}

/* =========================================================
   9. COMPOSITOR E POPUPS
   ========================================================= */
html.nx .b-compose.modal {
	width: min(1000px, calc(100vw - 32px)) !important;
	margin: 3vh auto !important;
}

html.nx .b-compose .modal-header.b-header-toolbar {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 16px !important;
	height: auto;
	background: var(--nx-surface) !important;
	position: relative;
}

html.nx .b-compose .button-send {
	background: var(--nx-primary) !important;
	border-color: var(--nx-primary) !important;
	color: #fff !important;
	height: 40px;
	padding: 0 18px;
	font-weight: 600;
}

html.nx .b-compose .button-send:hover {
	background: var(--nx-primary-hover) !important;
}

html.nx .b-compose .button-send.btn-danger {
	background: var(--nx-danger) !important;
	border-color: var(--nx-danger) !important;
}

html.nx .b-compose .button-send.btn-warning {
	background: var(--nx-warning) !important;
	border-color: var(--nx-warning) !important;
	color: #1b1300 !important;
}

html.nx .b-compose .button-save {
	height: 40px;
}

html.nx .b-compose .button-delete {
	order: 5;
	height: 40px;
	margin-left: 4px;
}

html.nx .b-compose .saved-text {
	order: 6;
	color: var(--nx-muted);
	font-size: 12.5px;
	margin-left: 8px;
}

html.nx .b-compose .close-custom,
html.nx .b-compose .minimize-custom {
	position: static !important;
	order: 20;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 8px;
	color: var(--nx-muted) !important;
	text-decoration: none !important;
	font-size: 22px;
	opacity: 1 !important;
	cursor: pointer;
	margin: 0 !important;
}

html.nx .b-compose .minimize-custom {
	margin-left: auto !important;
}

html.nx .b-compose .minimize-custom:before {
	content: "";
	width: 14px;
	height: 2px;
	border-radius: 2px;
	background: currentColor;
}

html.nx .b-compose .close-custom:hover,
html.nx .b-compose .minimize-custom:hover {
	background: var(--nx-hover);
	color: var(--nx-text) !important;
}

html.nx .b-compose .modal-body {
	padding: 0 !important;
}

html.nx .b-compose .b-header {
	padding: 10px 16px !important;
	background: var(--nx-surface) !important;
	border-bottom: 1px solid var(--nx-border) !important;
}

html.nx .b-compose .b-header .e-label {
	color: var(--nx-muted);
	font-weight: 500;
	padding-right: 10px;
	width: 92px;
}

html.nx .b-compose .b-header .e-label .control-label {
	color: var(--nx-muted) !important;
	text-align: right;
}

html.nx .b-compose .b-header .e-row {
	height: auto;
}

html.nx .b-compose .b-header .e-cell {
	padding: 5px 0;
}

html.nx .b-compose .b-header .e-identity {
	color: var(--nx-text) !important;
	font-weight: 500;
	line-height: 36px;
}

html.nx .b-compose .b-header .g-ui-link {
	color: var(--nx-primary-text) !important;
	font-size: 13px;
	font-weight: 500;
	border-bottom: 0 !important;
	margin-left: 6px;
}

html.nx .b-compose .error-to,
html.nx .b-compose .error-to span {
	color: var(--nx-danger-text) !important;
}

/* Campo de destinatários (tags) */
html.nx .inputosaurus-container {
	min-height: 40px;
	padding: 4px 6px !important;
	box-sizing: border-box;
	background: var(--nx-surface-2) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: var(--nx-radius-sm) !important;
	box-shadow: none !important;
	color: var(--nx-text);
	width: 100% !important;
	cursor: text;
}

html.nx .inputosaurus-container.inputosaurus-focused {
	border-color: var(--nx-primary) !important;
	box-shadow: var(--nx-focus) !important;
}

html.nx .inputosaurus-container li {
	background: var(--nx-primary-soft) !important;
	border: 1px solid transparent !important;
	color: var(--nx-primary-text) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	text-shadow: none !important;
	padding: 3px 8px 3px 10px !important;
	margin: 2px !important;
	font-size: 13px;
	line-height: 18px;
}

html.nx .inputosaurus-container li.inputosaurus-input {
	background: transparent !important;
	padding: 0 !important;
	color: var(--nx-text) !important;
}

html.nx .inputosaurus-container li.inputosaurus-input input {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	height: 28px;
	padding: 0 4px;
	color: var(--nx-text) !important;
}

html.nx .inputosaurus-container li a {
	color: inherit !important;
	opacity: .7;
}

html.nx .ui-autocomplete {
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border-strong) !important;
	border-radius: var(--nx-radius) !important;
	box-shadow: var(--nx-shadow) !important;
	padding: 6px !important;
}

html.nx .ui-autocomplete .ui-menu-item a {
	color: var(--nx-text-2) !important;
	border-radius: var(--nx-radius-sm) !important;
	padding: 8px 10px !important;
	border: 0 !important;
	background: transparent !important;
}

html.nx .ui-autocomplete .ui-menu-item a.ui-state-focus,
html.nx .ui-autocomplete .ui-menu-item a:hover {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

/* Área de anexos do compositor */
html.nx .b-compose .b-attachment-button,
html.nx .b-compose .b-attachment-place {
	border-color: var(--nx-border-strong) !important;
	background: var(--nx-surface-2) !important;
	color: var(--nx-muted) !important;
	border-radius: var(--nx-radius) !important;
}

html.nx .b-compose .b-attachment-place.dragAndDropOver {
	background: var(--nx-primary-soft) !important;
	border-color: var(--nx-primary) !important;
	color: var(--nx-primary-text) !important;
}

html.nx .b-compose .attachmentList .attachmentItem {
	background: var(--nx-surface-2) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: var(--nx-radius) !important;
	box-shadow: none !important;
	color: var(--nx-text-2);
}

html.nx .b-compose .attachmentList .attachmentItem.error {
	border-color: var(--nx-danger) !important;
	background: var(--nx-danger-soft) !important;
}

html.nx .b-compose .attachmentList .attachmentItem .uploading,
html.nx .b-compose .attachmentList .attachmentItem .attachmentNameParent {
	color: var(--nx-text-2);
}

html.nx .b-compose .attachmentList .attachmentItem .progress,
html.nx .b-compose .attachmentList .attachmentItem .bar {
	background: var(--nx-primary) !important;
}

/* Editor (CKEditor / textarea) */
html.nx .textAreaParent,
html.nx .b-compose .textAreaParent,
html.nx .b-compose .e-editor,
html.nx .b-compose .editorTextArea {
	background: var(--nx-surface) !important;
	color: var(--nx-text) !important;
	border: 0 !important;
}

html.nx .b-compose .editorTextArea,
html.nx .b-compose textarea.editorTextArea {
	padding: 14px 16px !important;
	font-size: 14.5px;
	line-height: 1.6;
	height: 100%;
}

html.nx .cke_chrome {
	border: 0 !important;
	box-shadow: none !important;
}

html.nx .cke_top {
	background: var(--nx-surface-2) !important;
	border-bottom: 1px solid var(--nx-border) !important;
	box-shadow: none !important;
}

html.nx .cke_bottom {
	background: var(--nx-surface-2) !important;
	border-top: 1px solid var(--nx-border) !important;
}

html.nx[data-nx-theme="dark"] .cke_toolgroup,
html.nx[data-nx-theme="dark"] .cke_combo_button {
	background: #2c2c2c !important;
	border-color: rgba(255, 255, 255, .08) !important;
	box-shadow: none !important;
}

html.nx[data-nx-theme="dark"] a.cke_button_off:hover,
html.nx[data-nx-theme="dark"] a.cke_button_on {
	background: #3a3a3a !important;
}

html.nx[data-nx-theme="dark"] .cke_button_icon,
html.nx[data-nx-theme="dark"] .cke_button_arrow {
	filter: invert(.85);
}

html.nx[data-nx-theme="dark"] .cke_combo_text {
	color: #ddd !important;
	text-shadow: none !important;
}

/* Contatos */
html.nx .b-contacts-content.modal {
	width: min(1000px, calc(100vw - 32px)) !important;
}

html.nx .b-contacts-content .b-list-toolbar,
html.nx .b-contacts-content .b-list-footer-toolbar,
html.nx .b-contacts-content .b-view-content-toolbar {
	background: var(--nx-surface-2) !important;
	border-color: var(--nx-border) !important;
	box-shadow: none !important;
}

html.nx .b-contacts-content .b-list-content,
html.nx .b-contacts-content .b-view-content {
	background: var(--nx-surface) !important;
	border-color: var(--nx-border) !important;
}

html.nx .b-contacts-content .e-contact-item {
	border-bottom: 1px solid var(--nx-border) !important;
	background: transparent !important;
	color: var(--nx-text-2);
}

html.nx .b-contacts-content .e-contact-item.focused,
html.nx .b-contacts-content .e-contact-item:hover {
	background: var(--nx-hover) !important;
}

html.nx .b-contacts-content .e-contact-item.selected,
html.nx .b-contacts-content .e-contact-item.checked {
	background: var(--nx-primary-soft) !important;
}

html.nx .b-contacts-content .e-contact-item .sidebarParent {
	background: transparent !important;
}

html.nx .b-contacts-content .e-contact-item.selected .sidebarParent {
	background: var(--nx-primary) !important;
}

html.nx .b-contacts-content .e-contact-item .displayName,
html.nx .b-contacts-content .e-contact-item .displayEmail {
	color: var(--nx-text-2) !important;
}

html.nx .b-contacts-content .contactValueInput {
	background: transparent !important;
	border: 1px solid transparent !important;
}

html.nx .b-contacts-content .contactValueInput:hover,
html.nx .b-contacts-content .contactValueInput:focus {
	background: var(--nx-surface-2) !important;
	border-color: var(--nx-border) !important;
}

/* Popups genéricos (pastas, identidade, filtros, busca avançada...) */
html.nx .popups .modal .modal-header .close,
html.nx .popups .modal .close.pull-right {
	margin-top: 2px;
}

html.nx .popups .modal .modal-body {
	padding: 20px 22px !important;
}

html.nx .popups .modal .modal-body .control-label {
	color: var(--nx-text-2);
}

html.nx .b-languages-content .lang-item,
html.nx .b-languages-content .lang-item:hover {
	border-radius: var(--nx-radius-sm) !important;
	background: transparent !important;
	color: var(--nx-text-2) !important;
	text-shadow: none !important;
}

html.nx .b-languages-content .lang-item:hover {
	background: var(--nx-hover) !important;
}

html.nx .b-languages-content .lang-item.selected {
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
}

/* Visualização de imagem (PhotoSwipe) segue escura sempre */

/* =========================================================
   10. CONFIGURAÇÕES E ADMINISTRAÇÃO
   ========================================================= */
html.nx .b-settins-left,
html.nx .b-admin-left {
	position: absolute;
	inset: 0;
}

html.nx .b-settins-left .b-content,
html.nx .b-admin-left .b-content {
	top: calc(var(--nx-header-h) + 12px);
	bottom: 64px;
	padding: 0 12px;
	overflow-y: auto;
}

html.nx .b-admin-left .b-toolbar {
	display: none;
}

html.nx .b-settins-left .b-footer,
html.nx .b-admin-left .nx-side-foot {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	height: 60px;
	padding: 0 16px;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	border-top: 1px solid var(--nx-border);
}

html.nx .b-settings-menu .e-link,
html.nx .b-admin-menu .e-link {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 42px;
	line-height: 42px;
	padding: 0 12px;
	margin: 2px 0;
	box-sizing: border-box;
	border-radius: 8px;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--nx-text-2) !important;
	background: transparent !important;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-shadow: none !important;
}

html.nx .b-settings-menu .e-item.selectable:hover .e-link,
html.nx .b-admin-menu .e-item.selectable:hover .e-link {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

html.nx .b-settings-menu .e-item.selectable.selected .e-link,
html.nx .b-admin-menu .e-item.selectable.selected .e-link {
	background: var(--nx-primary-soft) !important;
	color: var(--nx-primary-text) !important;
}

html.nx .b-settings-menu .e-item.disabled .e-link,
html.nx .b-admin-menu .e-item.disabled .e-link {
	opacity: .5;
}

html.nx .b-settings-menu .e-link:before,
html.nx .b-admin-menu .e-link:before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--nx-border-strong);
	flex: 0 0 auto;
}

html.nx .b-settings-menu .e-item.selected .e-link:before,
html.nx .b-admin-menu .e-item.selected .e-link:before {
	background: var(--nx-primary);
}

html.nx.rl-left-panel-disabled .b-settings-menu .e-link,
html.nx.rl-left-panel-disabled .b-admin-menu .e-link {
	font-size: 0;
	justify-content: center;
	padding: 0;
}

html.nx .b-settins-right .b-toolbar {
	top: var(--nx-header-h);
	height: 64px;
	padding: 0 var(--nx-gap);
	box-sizing: border-box;
	display: flex;
	align-items: center;
}

html.nx .b-settins-right .b-toolbar .btn-toolbar {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 !important;
	font-size: 14px;
}

html.nx .b-settins-right .b-content,
html.nx .b-admin-right .b-content {
	top: calc(var(--nx-header-h) + 64px);
	bottom: var(--nx-gap);
	left: var(--nx-gap);
	right: var(--nx-gap);
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border) !important;
	border-radius: 14px !important;
	box-shadow: none !important;
}

html.nx .b-admin-right .b-content {
	top: calc(var(--nx-header-h) + var(--nx-gap));
}

html.nx .b-settins-right .b-settings-content,
html.nx .b-admin-right .b-settings-content {
	padding: 24px 28px 32px;
	color: var(--nx-text-2);
}

html.nx .b-settings-content .legend,
html.nx .b-admin-right .b-settings-content .legend,
html.nx .b-settins-right .b-settings-content .legend {
	width: auto !important;
	max-width: 820px;
}

html.nx .b-admin-right .b-settings-content .nav-tabs {
	width: auto !important;
	max-width: 820px;
}

html.nx .b-settings-content .row {
	margin-left: 0;
}

html.nx .b-settings-content .g-ui-link,
html.nx .g-ui-link {
	color: var(--nx-primary-text) !important;
	border-bottom-color: transparent !important;
}

html.nx .b-settings-content .list-table,
html.nx .b-settings-content table.table {
	max-width: 820px;
	border: 1px solid var(--nx-border) !important;
	border-radius: var(--nx-radius);
	overflow: hidden;
}

html.nx .b-settings-content .list-table td,
html.nx .b-settings-content table.table td {
	border-top: 1px solid var(--nx-border) !important;
	padding: 12px 14px;
}

html.nx .b-settings-content .list-table tr:first-child td,
html.nx .b-settings-content table.table tr:first-child td {
	border-top: 0 !important;
}

html.nx .b-settings-content .list-table tr:hover td {
	background: var(--nx-hover);
}

html.nx .button-delete-transitions {
	transition: all .2s;
}

/* Cabeçalho da administração */
html.nx .b-admin-right .b-toolbar {
	top: 0;
	left: 0;
	right: 0;
	height: var(--nx-header-h);
	padding: 0 var(--nx-gap) 0 calc(var(--nx-gap) + 4px);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	color: var(--nx-text);
	text-shadow: none;
	background: var(--nx-bg);
	border-bottom: 1px solid var(--nx-border);
}

html.nx .b-admin-right .b-toolbar .btn-toolbar {
	display: flex;
	align-items: center;
	gap: 8px;
	width: 100%;
	font-size: 14px;
}

html.nx .b-admin-right .b-toolbar .nx-admin-title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-right: auto;
	min-width: 0;
}

html.nx .b-admin-right .b-toolbar .nx-admin-title h1 {
	margin: 0;
	font-size: 17px;
	font-weight: 600;
	color: var(--nx-text);
	white-space: nowrap;
}

html.nx .b-admin-right .b-toolbar .nx-admin-domain {
	color: var(--nx-muted);
	font-size: 13px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

/* Domínios (admin) */
html.nx .b-admin-domains-list-table .e-item td {
	padding: 12px 14px;
}

html.nx .b-admin-domains-list-table .domain-name {
	color: var(--nx-text);
	font-weight: 500;
}

html.nx .b-admin-domains-list-table .e-item.disabled .domain-name {
	color: var(--nx-muted);
	text-decoration: line-through;
}

html.nx .b-admin-domains-list-table .domain-alias {
	color: var(--nx-muted);
	font-size: 12px;
	margin-left: 6px;
}

html.nx .b-admin-domains-list-table .delete-domain,
html.nx .b-admin-domains-list-table .disabled-domain {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 6px;
	color: var(--nx-muted);
	cursor: pointer;
	opacity: 1;
}

html.nx .b-admin-domains-list-table .delete-domain:hover {
	background: var(--nx-danger-soft);
	color: var(--nx-danger-text);
}

html.nx .b-admin-domains-list-table .disabled-domain:hover {
	background: var(--nx-hover);
	color: var(--nx-text);
}

html.nx .b-admin-domains-list-table .e-action {
	cursor: pointer;
}

/* Popup de domínio */
html.nx .b-domain-content.modal {
	width: min(820px, calc(100vw - 32px)) !important;
}

/* Plugins / pacotes */
html.nx .b-admin-plugins-list-table .e-item td,
html.nx .b-admin-packages-list-table .e-item td {
	padding: 12px 14px;
}

/* =========================================================
   11. RESPONSIVO
   ========================================================= */

/* Tablet: menos respiro */
html.nx.ssm-state-tablet .nx-msg-actions .nx-btn-text,
html.nx.ssm-state-desktop .nx-msg-actions .nx-btn-text {
	display: none;
}

/* Janela estreita no modo desktop (< 768px): lista OU leitura */
html.nx.ssm-state-mobile:not(.rl-mobile) {
	--nx-gap: 8px;
	--nx-header-h: 56px;
}

html.nx.ssm-state-mobile:not(.rl-mobile) #rl-sub-left {
	width: auto !important;
	right: 0 !important;
}

html.nx.ssm-state-mobile:not(.rl-mobile) #rl-sub-right {
	left: 0 !important;
	display: none;
}

html.nx.ssm-state-mobile:not(.rl-mobile):has(.messageView.message-selected) #rl-sub-left {
	display: none;
}

html.nx.ssm-state-mobile:not(.rl-mobile):has(.messageView.message-selected) #rl-sub-right {
	display: block;
}

html.nx.ssm-state-mobile:not(.rl-mobile) .messageView .b-content .messageItemHeader .subjectParent {
	font-size: 17px;
}

html.nx.ssm-state-mobile .nx-msg-actions .nx-btn-text,
html.nx.ssm-state-mobile .b-system-drop-down .accountPlace,
html.nx.ssm-state-mobile .nx-crumb {
	display: none !important;
}

html.nx .nx-back-to-list {
	display: none;
}

html.nx.ssm-state-mobile .nx-back-to-list,
html.nx.rl-mobile .nx-back-to-list {
	display: inline-flex;
}

/* Versão mobile (smartphones): menu lateral sobreposto */
html.nx.rl-mobile {
	--nx-gap: 8px;
	--nx-header-h: 56px;
	--nx-sidebar-w: min(84vw, 300px);
}

html.nx.rl-mobile #rl-left {
	width: var(--nx-sidebar-w) !important;
	box-shadow: var(--nx-shadow);
	transition: transform .22s var(--nx-ease) !important;
	z-index: 10;
}

html.nx.rl-mobile.rl-left-panel-disabled #rl-left {
	transform: translateX(-105%);
	width: var(--nx-sidebar-w) !important;
}

html.nx.rl-mobile.rl-left-panel-enabled #rl-left {
	transform: translateX(0);
}

html.nx.rl-mobile #rl-right,
html.nx.rl-mobile.rl-left-panel-disabled #rl-right,
html.nx.rl-mobile.rl-left-panel-enabled #rl-right {
	left: 0 !important;
	right: 0 !important;
}

html.nx.rl-mobile.rl-left-panel-enabled #rl-right:before {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--nx-overlay);
	z-index: 200;
}

html.nx.rl-mobile .b-folders .b-toolbar.hide-on-mobile,
html.nx.rl-mobile .b-folders .b-footer.hide-on-mobile {
	display: flex !important;
}

html.nx.rl-mobile.rl-left-panel-disabled .nx-brand .nx-brand-name,
html.nx.rl-mobile.rl-left-panel-disabled .buttonComposeText {
	display: initial !important;
}

html.nx.rl-mobile #rl-sub-left,
html.nx.rl-mobile #rl-sub-right {
	width: auto !important;
	left: 0 !important;
	right: 0 !important;
}

html.nx.rl-mobile .messageList,
html.nx.rl-mobile .messageView .b-content {
	border-radius: 12px !important;
}

html.nx.rl-mobile .messageList .toolbar .btn-toolbar {
	gap: 2px;
}

html.nx.rl-mobile .messageView .b-content .messageItemHeader .subjectParent {
	font-size: 17px;
}

html.nx.rl-mobile .messageView .b-content .messageItemHeader {
	padding: 14px 14px 12px !important;
}

html.nx.rl-mobile .messageView .b-content .messageItem .bodyText {
	padding: 14px !important;
}

html.nx.rl-mobile .messageView .toolbar.top-toolbar {
	left: var(--nx-gap);
	right: var(--nx-gap);
	overflow-x: auto;
}

html.nx.rl-mobile .b-compose.modal,
html.nx.rl-mobile .b-contacts-content.modal,
html.nx.rl-mobile .popups .modal {
	width: 100% !important;
	max-width: 100vw;
	margin: 0 !important;
	border-radius: 0 !important;
	min-height: 100%;
}

html.nx.rl-mobile .b-compose .b-header .e-label {
	width: 64px;
}

html.nx.rl-mobile .b-settins-right .b-content,
html.nx.rl-mobile .b-admin-right .b-content {
	left: var(--nx-gap);
	right: var(--nx-gap);
}

html.nx.rl-mobile .b-settins-right .b-settings-content,
html.nx.rl-mobile .b-admin-right .b-settings-content {
	padding: 16px;
}

html.nx.rl-mobile .form-horizontal .control-group .control-label {
	float: none;
	width: auto;
	text-align: left;
	padding-top: 0;
	margin-bottom: 6px;
}

html.nx.rl-mobile .form-horizontal .control-group .controls {
	margin-left: 0;
}

html.nx.rl-mobile .form-horizontal input[type="text"],
html.nx.rl-mobile .form-horizontal input[type="password"],
html.nx.rl-mobile .form-horizontal input[type="email"],
html.nx.rl-mobile .form-horizontal select,
html.nx.rl-mobile .form-horizontal textarea {
	width: 100% !important;
	max-width: 100%;
}

/* Formulários das configurações em telas estreitas (desktop) */
@media (max-width: 899px) {
	html.nx .form-horizontal .control-group .control-label {
		float: none;
		width: auto;
		text-align: left;
		padding-top: 0;
		margin-bottom: 6px;
	}

	html.nx .form-horizontal .control-group .controls {
		margin-left: 0;
	}

	html.nx .b-settings-content input[type="text"],
	html.nx .b-settings-content input[type="password"],
	html.nx .b-settings-content input[type="email"],
	html.nx .b-settings-content select,
	html.nx .b-settings-content textarea {
		max-width: 100%;
	}
}

/* Login responsivo */
@media (max-width: 991px) {
	html.nx .nx-auth {
		grid-template-columns: minmax(0, 1fr);
		padding: 24px 16px;
	}

	html.nx .nx-auth-art {
		display: none;
	}
}

@media (max-width: 480px) {
	html.nx .nx-auth-card {
		padding: 28px 20px;
		border-radius: 14px !important;
	}

	html.nx .nx-auth-head h1 {
		font-size: 18px;
	}
}

/* Movimento reduzido */
@media (prefers-reduced-motion: reduce) {
	html.nx *,
	html.nx *:before,
	html.nx *:after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

/* =========================================================
   12. TOASTS E UTILIDADES
   ========================================================= */
.nx-toasts {
	position: fixed;
	right: 16px;
	bottom: 16px;
	z-index: 20000;
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 10px;
	pointer-events: none;
	max-width: calc(100vw - 32px);
}

.nx-toast {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	min-width: 260px;
	max-width: 420px;
	padding: 12px 12px 12px 14px;
	box-sizing: border-box;
	border-radius: 12px;
	background: var(--nx-surface);
	color: var(--nx-text);
	border: 1px solid var(--nx-border-strong);
	box-shadow: var(--nx-shadow);
	font-family: var(--nx-font);
	font-size: 14px;
	line-height: 1.45;
	pointer-events: auto;
	animation: nx-toast-in .22s var(--nx-ease);
}

.nx-toast.leaving {
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .2s, transform .2s;
}

.nx-toast .nx-toast-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	flex: 0 0 auto;
}

.nx-toast .nx-toast-ico .nx-i {
	width: 14px;
	height: 14px;
}

.nx-toast.success .nx-toast-ico { background: var(--nx-success-soft); color: var(--nx-success-text); }
.nx-toast.error .nx-toast-ico { background: var(--nx-danger-soft); color: var(--nx-danger-text); }
.nx-toast.info .nx-toast-ico { background: var(--nx-info-soft); color: var(--nx-info-text); }
.nx-toast.warning .nx-toast-ico { background: var(--nx-warning-soft); color: var(--nx-warning-text); }

.nx-toast .nx-toast-msg {
	flex: 1 1 auto;
	padding-top: 2px;
	word-break: break-word;
}

.nx-toast .nx-toast-close {
	border: 0;
	background: transparent;
	color: var(--nx-muted);
	cursor: pointer;
	width: 26px;
	height: 26px;
	border-radius: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
}

.nx-toast .nx-toast-close:hover {
	background: var(--nx-hover);
	color: var(--nx-text);
}

@keyframes nx-toast-in {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: none; }
}

.nx-sr-only {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

html.nx [hidden] {
	display: none !important;
}

/* Ícones das pastas de sistema (tipo vindo do FolderModel.type) */
html.nx .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="10"] .nx-folder-ico, html.nx .is-inbox .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-6l-2 3h-4l-2-3H2'/%3E%3Cpath d='M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="11"] .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m22 2-7 20-4-9-9-4Z'/%3E%3Cpath d='M22 2 11 13'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="12"] .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="13"] .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="14"] .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.86 2h8.28L22 7.86v8.28L16.14 22H7.86L2 16.14V7.86Z'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7.86 2h8.28L22 7.86v8.28L16.14 22H7.86L2 16.14V7.86Z'/%3E%3Cpath d='M12 8v4M12 16h.01'/%3E%3C/svg%3E"); }
html.nx [data-nx-type="15"] .nx-folder-ico { -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='5' rx='1'/%3E%3Cpath d='M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4'/%3E%3C/svg%3E"); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='3' width='20' height='5' rx='1'/%3E%3Cpath d='M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8M10 12h4'/%3E%3C/svg%3E"); }
html.nx .nx-folder-ico { -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; }

/* Medidor de força da senha */
.nx-strength { margin-top: 8px; }
.nx-strength-bar { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; max-width: 320px; }
.nx-strength-bar span { height: 5px; border-radius: 4px; background: var(--nx-surface-3); transition: background-color .2s; }
.nx-strength[data-score="1"] .nx-strength-bar span:nth-child(-n+1) { background: var(--nx-danger); }
.nx-strength[data-score="2"] .nx-strength-bar span:nth-child(-n+2) { background: var(--nx-warning); }
.nx-strength[data-score="3"] .nx-strength-bar span:nth-child(-n+3) { background: #84cc16; }
.nx-strength[data-score="4"] .nx-strength-bar span { background: var(--nx-success); }
.nx-strength-label { margin-top: 5px; font-size: 12.5px; color: var(--nx-muted); min-height: 16px; }

/* Formulários em cartão (alteração de senha do usuário e módulos novos) */
html.nx .nx-form-card { max-width: 560px; }
html.nx .nx-form-card .nx-field { margin-bottom: 18px; }
html.nx .nx-form-card .nx-input-wrap input { padding-left: 14px !important; height: 42px !important; font-size: 14px !important; }
html.nx .nx-form-card .nx-hint { margin: -6px 0 18px; color: var(--nx-muted); font-size: 13px; line-height: 1.5; }
html.nx .nx-form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 8px; }
html.nx .messageView .message-fixed-button-toolbar .dropdown-menu { right: 0; left: auto; }

html.nx .b-folders .b-content .e-item .e-link.hidden { display: none !important; }
html.nx .messageList .buttonMoreSearch .hide-on-mobile { display: none; }

html.nx .attachmentItem .attachmentNameParent,
html.nx .attachmentItem .attachmentNameParent > div { background: transparent !important; }
html.nx .messageView .messageItemHeader .informationShort a,
html.nx .messageView .messageItemHeader .informationShort .from { text-decoration: none; }
html.nx .b-folders .btn.buttonCompose { max-width: none !important; }
html.nx .messageList .b-content .content { overflow-x: hidden !important; }
html.nx .messageList .b-content .content-wrapper, html.nx .messageList .b-content .messageListItem { overflow: clip; }
html.nx .b-folders .content-wrapper:not(:has(.b-folders-user .e-item:not([style*="none"]) > .e-link:not(.hidden))) .nx-user-label,
html.nx .b-folders .content-wrapper:not(:has(.b-folders-user .e-item:not([style*="none"]) > .e-link:not(.hidden))) .b-list-delimiter { display: none !important; }

/* =========================================================
   13. ADMINISTRAÇÃO › CONTAS DE E-MAIL (plugin cpanel-email-admin)
   ========================================================= */
html.nx .nxc { max-width: 1100px; }
html.nx .nxc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
html.nx .nxc-title { margin: 0 0 4px; font-size: 20px; font-weight: 600; color: var(--nx-text); }
html.nx .nxc-sub { margin: 0; color: var(--nx-muted); font-size: 14px; }
html.nx .nxc-head-actions { display: flex; gap: 8px; flex-wrap: wrap; }
html.nx .nxc-h3 { font-size: 15px; font-weight: 600; margin: 4px 0 6px; color: var(--nx-text); }
html.nx .nxc-h4 { font-size: 14px; font-weight: 600; margin: 18px 0 8px; color: var(--nx-text); }
html.nx .nxc-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
html.nx .nxc-stat { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border-radius: 12px; background: var(--nx-surface-2); border: 1px solid var(--nx-border); color: var(--nx-muted); font-size: 13px; }
html.nx .nxc-stat-n { font-size: 22px; font-weight: 700; color: var(--nx-text); line-height: 1.2; }
html.nx .nxc-stat-n.ok { color: var(--nx-success-text); }
html.nx .nxc-stat-n.off { color: var(--nx-danger-text); }
html.nx .nxc-filters { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
html.nx .nxc-search { flex: 1 1 260px; }
html.nx .nxc .nxc-search input { width: 100% !important; padding-left: 40px !important; }
html.nx .nxc-filters select { width: auto; min-width: 180px; }
html.nx .nxc-card { background: var(--nx-surface); border: 1px solid var(--nx-border); border-radius: 12px; overflow: hidden; }
html.nx .nxc-form { padding: 22px 24px; overflow: visible; }
html.nx .nxc-table { margin: 0; }
html.nx .nxc-table tr.nxc-off .nxc-acc-email { color: var(--nx-muted) !important; }
html.nx .nxc-acc { display: flex; align-items: center; gap: 12px; min-width: 0; }
html.nx .nxc-acc-text { display: flex; flex-direction: column; min-width: 0; }
html.nx .nxc-acc-email { color: var(--nx-text) !important; font-weight: 600; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.nx .nxc-acc-email:hover { color: var(--nx-primary-text) !important; text-decoration: underline; }
html.nx .nxc-acc-domain { color: var(--nx-muted); font-size: 12.5px; }
html.nx .nxc-usage { display: flex; flex-direction: column; gap: 5px; min-width: 150px; }
html.nx .nxc-bar { height: 6px; border-radius: 6px; background: var(--nx-surface-3); overflow: hidden; }
html.nx .nxc-bar span { display: block; height: 100%; background: var(--nx-primary); border-radius: 6px; }
html.nx .nxc-bar span.warn { background: var(--nx-warning); }
html.nx .nxc-bar span.full { background: var(--nx-danger); }
html.nx .nxc-usage-text { font-size: 12.5px; color: var(--nx-muted); white-space: nowrap; }
html.nx .nxc-col-actions { text-align: right; width: 1%; white-space: nowrap; }
html.nx .nxc-row-actions { display: inline-flex; gap: 6px; }
html.nx .nxc-row-actions .btn .nx-i { width: 16px; height: 16px; }
html.nx .nxc-row-actions .nxc-danger:hover { background: var(--nx-danger-soft) !important; color: var(--nx-danger-text) !important; border-color: transparent !important; }
html.nx .nxc-state { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 48px 20px; color: var(--nx-muted); text-align: left; }
html.nx .nxc-state.error { color: var(--nx-danger-text); align-items: flex-start; }
html.nx .nxc-state > .nx-i { width: 22px; height: 22px; }
html.nx .nxc-state .btn { margin-top: 10px; }
html.nx .nxc-detail { font-size: 12.5px; color: var(--nx-muted); margin-top: 4px; word-break: break-word; }
html.nx .nxc-empty { text-align: center; padding: 48px 20px; border: 1px dashed var(--nx-border-strong); border-radius: 14px; }
html.nx .nxc-empty h3 { font-size: 17px; margin: 12px 0 6px; }
html.nx .nxc-empty p { color: var(--nx-muted); margin: 0 auto 16px; max-width: 460px; }
html.nx .nxc-empty-ico, html.nx .nxc-confirm-ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 14px; background: var(--nx-primary-soft); color: var(--nx-primary-text); flex: 0 0 auto; }
html.nx .nxc-empty-ico .nx-i, html.nx .nxc-confirm-ico .nx-i { width: 24px; height: 24px; }
html.nx .nxc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; margin: 14px 0 6px; }
html.nx .nxc-form .nx-input-wrap input, html.nx .nxc-modal .nx-input-wrap input { padding-left: 12px !important; height: 42px !important; font-size: 14px !important; }
html.nx .nxc-check { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 12px; cursor: pointer; line-height: 1.45; color: var(--nx-text-2); }
html.nx .nxc-check input { margin: 3px 0 0; width: 16px; height: 16px; flex: 0 0 auto; }
html.nx .nxc-note { margin-top: 8px; }
html.nx .nxc-help { margin-top: 22px; padding: 14px 16px; border-radius: 10px; background: var(--nx-surface-2); border: 1px solid var(--nx-border); font-size: 13.5px; }
html.nx .nxc-help ol { margin: 8px 0 0 18px; padding: 0; color: var(--nx-text-2); line-height: 1.6; }
html.nx .nxc .alert { margin: 14px 0 0; }
html.nx .nxc-overlay { position: fixed; inset: 0; z-index: 1200; background: var(--nx-overlay); display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px 16px; overflow-y: auto; -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); }
html.nx .nxc-modal { width: 100%; max-width: 620px; background: var(--nx-surface); border: 1px solid var(--nx-border-strong); border-radius: 16px; box-shadow: var(--nx-shadow); animation: nx-toast-in .2s var(--nx-ease); }
html.nx .nxc-modal-sm { max-width: 480px; }
html.nx .nxc-modal-head { display: flex; align-items: center; gap: 10px; padding: 16px 16px 14px 22px; border-bottom: 1px solid var(--nx-border); }
html.nx .nxc-modal-head h3 { margin: 0; font-size: 17px; font-weight: 600; color: var(--nx-text); }
html.nx .nxc-modal-head .nx-icon-btn { margin-left: auto; }
html.nx .nxc-modal-email { color: var(--nx-muted); font-size: 13.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
html.nx .nxc-modal-tabs { padding: 0 22px; margin: 0 !important; }
html.nx .nxc-modal-body { padding: 20px 22px; }
html.nx .nxc-modal-foot { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; padding: 14px 22px; border-top: 1px solid var(--nx-border); background: var(--nx-surface-2); border-radius: 0 0 16px 16px; }
html.nx .nxc-email-row { display: flex; align-items: center; gap: 8px; }
html.nx .nxc-email-row .nx-input-wrap { flex: 1 1 auto; }
html.nx .nxc-email-row select { flex: 0 1 48%; height: 42px; }
html.nx .nxc-at { color: var(--nx-muted); font-weight: 600; }
html.nx .nxc-quota { display: flex; align-items: center; gap: 8px; max-width: 220px; }
html.nx .nxc-quota span { color: var(--nx-muted); }
html.nx .nxc-rules { list-style: none; margin: -8px 0 16px; padding: 0; display: grid; gap: 5px; font-size: 13px; color: var(--nx-muted); }
html.nx .nxc-rules li { display: flex; align-items: center; gap: 7px; }
html.nx .nxc-rules li .nx-i { width: 14px; height: 14px; color: var(--nx-danger-text); }
html.nx .nxc-rules li.ok, html.nx .nxc-rules li.ok .nx-i { color: var(--nx-success-text); }
html.nx .nxc-confirm { display: flex; gap: 14px; align-items: flex-start; }
html.nx .nxc-confirm p { margin: 4px 0 0; color: var(--nx-text-2); line-height: 1.55; }
html.nx .nxc-confirm.danger .nxc-confirm-ico { background: var(--nx-danger-soft); color: var(--nx-danger-text); }
html.nx .nxc-summary { margin: 8px 0 0 18px; padding: 0; color: var(--nx-text-2); line-height: 1.7; }
html.nx .nxc-info { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 0; font-size: 14px; }
html.nx .nxc-info dt { color: var(--nx-muted); font-weight: 500; }
html.nx .nxc-info dd { margin: 0; color: var(--nx-text); word-break: break-all; }
html.nx .nxc-switch { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; color: var(--nx-text-2); position: relative; }
html.nx .nxc-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
html.nx .nxc-switch-ui { position: relative; width: 42px; height: 24px; border-radius: 999px; background: var(--nx-surface-3); border: 1px solid var(--nx-border-strong); flex: 0 0 auto; transition: background-color .15s; }
html.nx .nxc-switch-ui:after { content: ""; position: absolute; top: 2px; left: 2px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: var(--nx-shadow-sm); transition: transform .15s var(--nx-ease); }
html.nx .nxc-switch input:checked + .nxc-switch-ui { background: var(--nx-success); border-color: var(--nx-success); }
html.nx .nxc-switch input:checked + .nxc-switch-ui:after { transform: translateX(18px); }
html.nx .nxc-switch input:focus-visible + .nxc-switch-ui { box-shadow: var(--nx-focus); }
@media (max-width: 899px) {
	html.nx .nxc-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	html.nx .nxc-grid { grid-template-columns: minmax(0, 1fr); }
	html.nx .nxc-col-usage { display: none; }
}
@media (max-width: 560px) {
	html.nx .nxc-table thead { display: none; }
	html.nx .nxc-table tr { display: grid; grid-template-columns: 1fr auto; gap: 6px; padding: 12px; border-top: 1px solid var(--nx-border); }
	html.nx .nxc-table td { border: 0 !important; padding: 0 !important; }
	html.nx .nxc-table td.nxc-col-actions { grid-column: 1 / -1; text-align: left; }
	html.nx .nxc-email-row { flex-wrap: wrap; }
	html.nx .nxc-email-row select { flex: 1 1 100%; }
	html.nx .nxc-overlay { padding: 0; }
	html.nx .nxc-modal { border-radius: 0; min-height: 100%; }
}

/* Telas de login ocupam a janela inteira */
html.nx:has(.b-login-content) #rl-left { display: none !important; }
html.nx:has(.b-login-content) #rl-right { left: 0 !important; }
html.nx .b-login-content .loginForm, html.nx .b-login-content .wrapper, html.nx .b-login-content .wrapper-parent, html.nx .b-login-content .loginFormWrapper .wrapper { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; width: auto !important; max-width: none !important; border-radius: 0 !important; }
html.nx .b-login-content { overflow-x: hidden; overflow-y: auto; }
html.nx .b-login-content .loginFormWrapper { position: static !important; width: 100% !important; max-width: 450px !important; margin: 0 auto !important; top: auto !important; left: auto !important; }
html.nx .b-login-content .nx-auth-card.loginFormWrapper { padding: 40px !important; }
@media (max-width: 480px) { html.nx .b-login-content .nx-auth-card.loginFormWrapper { padding: 28px 20px !important; } }
html.nx .b-login-content .loginAfter { display: none !important; }
html.nx .nxc-card:not(.nxc-form) { overflow-x: auto; }
html.nx .nxc-usage { min-width: 120px; }
@media (max-width: 1250px) { html.nx .nxc-usage-text { white-space: normal; } }
html.nx #rl-right:has(.nxc-overlay:not([style*="none"])) { z-index: 1300; }
html.nx .b-compose .close-custom { order: 21; }
html.nx .b-compose .b-header .e-cell { vertical-align: middle; }
html.nx .b-compose .b-header .e-label .control-label { padding: 0 !important; margin: 0 !important; line-height: 40px; }
html.nx .b-admin-right .b-content .content, html.nx .b-settins-right .b-content .content { overflow-x: hidden !important; }
html.nx .b-compose .attachmentAreaParent { background: var(--nx-surface) !important; padding: 12px 16px; }
html.nx .b-compose .attachmentAreaParent .no-attachments-desc { color: var(--nx-muted); }
html.nx .b-compose .attachmentList .attachmentItem { width: 220px; }
/* Evita rolagem horizontal ao focar itens (o deslocamento cancelava cliques) */
html.nx .nano > .content, html.nx .b-folders .b-content .content, html.nx .b-settins-left .b-content, html.nx .b-admin-left .b-content { overflow-x: hidden !important; }
html.nx .nano { overflow: clip !important; }
html.nx.ssm-state-mobile .nx-back-to-list, html.nx.rl-mobile .nx-back-to-list { display: none; }
html.nx.ssm-state-mobile:has(.messageView.message-selected) .nx-back-to-list, html.nx.rl-mobile:has(.messageView.message-selected) .nx-back-to-list { display: inline-flex; }

/* Textos truncados não devem rolar ao receber foco/seleção */
html.nx .messageList .messageListItem .subjectParent,
html.nx .messageList .messageListItem .senderParent,
html.nx .messageList .messageListItem .sender,
html.nx .b-folders .e-link .name { overflow: clip; }

/* Tablet (768–999px) com painel lateral: lista OU leitura, ocupando toda a largura útil */
html.nx.ssm-state-tablet.rl-side-preview-pane #rl-sub-left { width: auto !important; right: 0 !important; }
html.nx.ssm-state-tablet.rl-side-preview-pane #rl-sub-right { left: 0 !important; display: none; }
html.nx.ssm-state-tablet.rl-side-preview-pane:has(.messageView.message-selected) #rl-sub-left { display: none; }
html.nx.ssm-state-tablet.rl-side-preview-pane:has(.messageView.message-selected) #rl-sub-right { display: block; }
html.nx.ssm-state-tablet.rl-side-preview-pane .messageList { right: var(--nx-gap); }
html.nx.ssm-state-tablet.rl-side-preview-pane .messageView .b-content { left: var(--nx-gap) !important; }
html.nx.ssm-state-tablet:has(.messageView.message-selected) .nx-back-to-list { display: inline-flex; }
html.nx .b-compose .cke_contents, html.nx .b-compose .cke_wysiwyg_div { background: var(--nx-surface) !important; color: var(--nx-text) !important; }
html.nx .b-compose .cke_wysiwyg_div { padding: 14px 16px !important; font-size: 14.5px; line-height: 1.6; }
html.nx[data-nx-theme="dark"] .b-compose .cke_wysiwyg_div a { color: var(--nx-primary-text); }
html.nx .b-compose .b-header-toolbar .minimize-custom { border: 0 !important; float: none; height: 36px; width: 36px; }
html.nx input.span1, html.nx .input-mini { min-width: 76px; padding-left: 10px; padding-right: 8px; }
html.nx .b-domain-content .modal-footer .btn:last-child { background: var(--nx-primary) !important; border-color: var(--nx-primary) !important; color: #fff !important; }
html.nx .attachmentItem .attachmentNameParent { border: 0 !important; box-shadow: none !important; }

/* =========================================================
   COMPOSITOR (v2): título, campos em linhas, abas Mensagem/Anexos,
   editor no tema e barra de ações embaixo
   ========================================================= */
html.nx .b-compose.modal {
	width: min(1040px, calc(100vw - 32px)) !important;
	margin: 16px auto !important;
	border-radius: 14px !important;
	overflow: hidden;
	background: var(--nx-surface) !important;
	border: 1px solid var(--nx-border-strong) !important;
	box-shadow: var(--nx-shadow) !important;
}

html.nx .b-compose .modal-header.b-header-toolbar {
	height: 52px;
	padding: 0 12px 0 20px !important;
	gap: 6px;
	border-bottom: 1px solid var(--nx-border) !important;
	box-sizing: border-box;
}

html.nx .b-compose .nx-compose-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--nx-text);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

html.nx .b-compose .modal-header .saved-text {
	order: 0;
	margin: 0 0 0 10px;
	font-size: 12.5px;
	color: var(--nx-muted);
}

html.nx .b-compose .modal-header .minimize-custom {
	margin-left: auto !important;
	order: 20;
}

html.nx .b-compose .modal-header .close-custom {
	order: 21;
}

/* Campos */
html.nx .b-compose .b-header {
	padding: 0 20px !important;
	border-bottom: 0 !important;
	background: var(--nx-surface) !important;
}

html.nx .b-compose .nx-cf-row {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 46px;
	border-bottom: 1px solid var(--nx-border);
	transition: border-color .15s ease;
}

html.nx .b-compose .nx-cf-row:focus-within {
	border-bottom-color: var(--nx-primary);
}

html.nx .b-compose .nx-cf-label {
	flex: 0 0 auto;
	min-width: 64px;
	font-size: 13.5px;
	font-weight: 500;
	color: var(--nx-muted);
}

html.nx .b-compose .nx-cf-label.error-to,
html.nx .b-compose .nx-cf-label.error-to span {
	color: var(--nx-danger-text) !important;
}

html.nx .b-compose .nx-cf-value {
	flex: 1 1 auto;
	min-width: 0;
}

html.nx .b-compose .nx-cf-extra {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	gap: 2px;
}

html.nx .b-compose .nx-cf-identity {
	position: relative;
}

html.nx .b-compose .b-header .e-identity {
	display: inline-block;
	max-width: 100%;
	color: var(--nx-text) !important;
	font-weight: 500;
	font-size: 14px;
	line-height: 32px;
	padding: 0 8px;
	margin-left: -8px;
	border-radius: 6px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-decoration: none !important;
	border: 0 !important;
	vertical-align: middle;
}

html.nx .b-compose .b-header .e-identity.multiply:after {
	content: "";
	display: inline-block;
	margin-left: 8px;
	vertical-align: middle;
	border: 4px solid transparent;
	border-top-color: var(--nx-muted);
	border-bottom: 0;
}

html.nx .b-compose .b-header .e-identity.multiply:hover {
	background: var(--nx-hover);
}

html.nx .b-compose .nx-cf-toggle {
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 500;
	color: var(--nx-muted) !important;
	text-decoration: none !important;
}

html.nx .b-compose .nx-cf-toggle:hover {
	background: var(--nx-hover);
	color: var(--nx-text) !important;
}

html.nx .b-compose .nx-icon-btn,
html.nx .b-compose .btn.nx-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0 !important;
	border-radius: 8px !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--nx-muted) !important;
	box-shadow: none !important;
	text-decoration: none !important;
}

html.nx .b-compose .nx-icon-btn:hover,
html.nx .b-compose .btn.nx-icon-btn:hover,
html.nx .b-compose .open > .btn.nx-icon-btn {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

/* Destinatários: sem caixa, a linha já delimita o campo */
html.nx .b-compose .nx-cf-row .inputosaurus-container {
	min-height: 44px;
	padding: 4px 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}

html.nx .b-compose .nx-cf-row .inputosaurus-container.inputosaurus-focused {
	box-shadow: none !important;
}

html.nx .b-compose .nx-cf-row .inputosaurus-container li.inputosaurus-input input {
	font-size: 14px;
	min-width: 160px;
}

html.nx .b-compose .nx-cf-subject input {
	width: 100%;
	height: 44px;
	margin: 0;
	padding: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--nx-text) !important;
	font-size: 15px;
	font-weight: 500;
	box-sizing: border-box;
}

/* Abas Mensagem / Anexos + anexar */
html.nx .b-compose .nx-compose-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 20px;
	border-bottom: 1px solid var(--nx-border);
	background: var(--nx-surface);
}

html.nx .b-compose .nx-seg {
	display: inline-flex;
	padding: 3px;
	gap: 2px;
	border-radius: 10px;
	background: var(--nx-surface-2);
	border: 1px solid var(--nx-border);
}

html.nx .b-compose .nx-seg-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 30px;
	padding: 0 12px;
	border: 0;
	border-radius: 7px;
	background: transparent;
	color: var(--nx-muted);
	font: inherit;
	font-size: 13px;
	font-weight: 500;
	cursor: pointer;
}

html.nx .b-compose .nx-seg-btn .nx-i {
	width: 16px;
	height: 16px;
}

html.nx .b-compose .nx-seg-btn:hover {
	color: var(--nx-text);
}

html.nx .b-compose .nx-seg-btn.active {
	background: var(--nx-surface);
	color: var(--nx-text);
	box-shadow: var(--nx-shadow-sm);
}

html.nx[data-nx-theme="dark"] .b-compose .nx-seg-btn.active {
	background: var(--nx-surface-3);
}

html.nx .b-compose .nx-seg-btn.error {
	color: var(--nx-danger-text);
}

html.nx .b-compose .nx-count {
	min-width: 18px;
	padding: 0 6px;
	border-radius: 999px;
	background: var(--nx-primary);
	color: var(--nx-on-primary);
	font-size: 11px;
	line-height: 18px;
	text-align: center;
	box-sizing: border-box;
}

html.nx .nx-spin {
	animation: nx-spin 1s linear infinite;
}

@keyframes nx-spin {
	to { transform: rotate(360deg); }
}

html.nx .b-compose .nx-compose-attach {
	display: flex;
	align-items: center;
	gap: 6px;
}

html.nx .b-compose .btn.nx-attach-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	height: 34px;
	padding: 0 12px !important;
	border-radius: 8px !important;
	border: 1px solid var(--nx-border-strong) !important;
	background: transparent !important;
	color: var(--nx-text-2) !important;
	font-size: 13px;
	font-weight: 500;
	box-shadow: none !important;
	position: relative;
	overflow: hidden;
}

html.nx .b-compose .btn.nx-attach-btn:hover {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

html.nx .b-compose .btn.nx-attach-btn .nx-i {
	width: 16px;
	height: 16px;
}

/* Área de anexos */
html.nx .b-compose .attachmentAreaParent {
	padding: 0 !important;
}

html.nx .b-compose .attachmentAreaParent .content-wrapper {
	padding: 16px 20px;
}

html.nx .b-compose .b-attachment-place {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	height: auto !important;
	min-height: 120px;
	margin: 0 0 16px !important;
	padding: 20px !important;
	border: 2px dashed var(--nx-border-strong) !important;
	border-radius: 12px !important;
	background: var(--nx-surface-2) !important;
	color: var(--nx-muted) !important;
	font-size: 14px;
	line-height: 1.4 !important;
	box-sizing: border-box;
}

html.nx .b-compose .b-attachment-place[style*="none"] {
	display: none !important;
}

html.nx .b-compose .b-attachment-place .nx-i {
	width: 24px;
	height: 24px;
}

html.nx .b-compose .attachmentList {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
	padding: 0 !important;
}

html.nx .b-compose .attachmentList .attachmentItem {
	margin: 0 !important;
	float: none !important;
}

html.nx .b-compose .attachmentAreaParent .no-attachments-desc {
	text-align: center;
	padding: 8px 0;
}

/* Editor */
html.nx .b-compose .textAreaParent {
	background: var(--nx-surface) !important;
}

html.nx .b-compose .cke_chrome,
html.nx .b-compose .cke_inner {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

html.nx .b-compose .cke_top {
	padding: 6px 16px 2px !important;
	background: var(--nx-surface) !important;
	border-bottom: 1px solid var(--nx-border) !important;
	box-shadow: none !important;
}

html.nx .b-compose .cke_toolbar {
	margin: 0 6px 4px 0 !important;
}

html.nx .b-compose .cke_toolgroup,
html.nx[data-nx-theme="dark"] .b-compose .cke_toolgroup {
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}

html.nx .b-compose .cke_toolbar_separator {
	margin: 7px 6px 0 2px !important;
	height: 18px !important;
	background: var(--nx-border-strong) !important;
}

html.nx .b-compose a.cke_button {
	border-radius: 6px !important;
	border: 0 !important;
	padding: 5px 6px !important;
	background: transparent !important;
}

html.nx .b-compose a.cke_button_off:hover,
html.nx .b-compose a.cke_button_off:focus,
html.nx[data-nx-theme="dark"] .b-compose a.cke_button_off:hover {
	background: var(--nx-hover) !important;
}

html.nx .b-compose a.cke_button_on,
html.nx[data-nx-theme="dark"] .b-compose a.cke_button_on {
	background: var(--nx-primary-soft) !important;
}

html.nx .b-compose a.cke_button_disabled .cke_button_icon {
	opacity: .35 !important;
}

html.nx .b-compose .cke_combo {
	margin-right: 4px !important;
}

html.nx .b-compose .cke_combo:after {
	display: none !important;
}

html.nx .b-compose a.cke_combo_button,
html.nx[data-nx-theme="dark"] .b-compose .cke_combo_button {
	margin: 0 !important;
	height: 28px;
	border: 1px solid var(--nx-border-strong) !important;
	border-radius: 6px !important;
	background: transparent !important;
	box-shadow: none !important;
	box-sizing: border-box;
}

html.nx .b-compose a.cke_combo_button:hover,
html.nx .b-compose .cke_combo_on a.cke_combo_button {
	background: var(--nx-hover) !important;
}

html.nx .b-compose .cke_combo_text,
html.nx[data-nx-theme="dark"] .b-compose .cke_combo_text {
	color: var(--nx-text-2) !important;
	text-shadow: none !important;
	font-size: 12.5px !important;
	line-height: 26px !important;
	padding-left: 8px !important;
	width: 64px;
}

html.nx .b-compose .cke_combo_open {
	margin-top: 0 !important;
	height: 26px !important;
}

html.nx .b-compose .cke_combo_arrow {
	margin-top: 11px !important;
	border-top-color: var(--nx-muted) !important;
}

html.nx[data-nx-theme="dark"] .cke_button_icon {
	filter: invert(.88) !important;
}

html.nx[data-nx-theme="dark"] .cke_button_arrow {
	filter: none !important;
	border-top-color: var(--nx-muted) !important;
}

html.nx .b-compose .cke_contents {
	background: var(--nx-surface) !important;
}

html.nx .b-compose .cke_wysiwyg_div {
	padding: 16px 20px !important;
	background: var(--nx-surface) !important;
	color: var(--nx-text) !important;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 14px;
	line-height: 1.6;
	outline: none !important;
	box-sizing: border-box;
	overflow-wrap: anywhere;
}

html.nx .b-compose .cke_wysiwyg_div blockquote {
	margin: 8px 0 !important;
	padding: 2px 0 2px 12px !important;
	border-left: 3px solid var(--nx-border-strong) !important;
	color: var(--nx-text-2);
}

html.nx .b-compose .cke_wysiwyg_div img {
	max-width: 100%;
	height: auto;
}

html.nx .b-compose .cke_wysiwyg_div a {
	color: var(--nx-primary-text);
}

html.nx .b-compose textarea.editorTextArea,
html.nx .b-compose .cke_source,
html.nx .b-compose .cke_contents textarea {
	padding: 16px 20px !important;
	background: var(--nx-surface) !important;
	color: var(--nx-text) !important;
	border: 0 !important;
	font-size: 14px;
	line-height: 1.6;
	box-sizing: border-box;
	resize: none;
}

/* Painéis do editor (fonte, tamanho, cores, tabela) */
html.nx .cke_panel {
	border: 1px solid var(--nx-border-strong) !important;
	border-radius: 10px !important;
	background: var(--nx-surface) !important;
	box-shadow: var(--nx-shadow) !important;
	overflow: hidden;
}

/* Barra de ações (embaixo, como nos principais clientes) */
html.nx .b-compose .modal-footer.nx-compose-foot {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 12px 20px !important;
	border-top: 1px solid var(--nx-border) !important;
	border-radius: 0 !important;
	background: var(--nx-surface) !important;
	box-shadow: none !important;
	text-align: left;
}

html.nx .b-compose .nx-compose-foot .button-send {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 22px !important;
	border-radius: 9px !important;
	font-size: 14px;
	margin: 0 !important;
}

html.nx .b-compose .nx-compose-foot .button-save {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	height: 40px;
	padding: 0 14px !important;
	border-radius: 9px !important;
	margin: 0 !important;
	background: transparent !important;
	border: 1px solid var(--nx-border-strong) !important;
	color: var(--nx-text-2) !important;
	box-shadow: none !important;
}

html.nx .b-compose .nx-compose-foot .button-save:hover {
	background: var(--nx-hover) !important;
	color: var(--nx-text) !important;
}

html.nx .b-compose .nx-compose-foot .button-save.btn-danger {
	border-color: var(--nx-danger) !important;
	color: var(--nx-danger-text) !important;
}

html.nx .b-compose .nx-compose-foot .button-save[style*="none"] {
	display: none !important;
}

html.nx .b-compose .nx-spacer {
	flex: 1 1 auto;
}

html.nx .b-compose .nx-compose-foot .btn-group {
	margin: 0 !important;
}

html.nx .b-compose .nx-compose-foot .button-delete {
	order: 0;
	margin: 0 !important;
}

html.nx .b-compose .nx-compose-foot .button-delete:hover {
	color: var(--nx-danger-text) !important;
	background: var(--nx-danger-soft) !important;
}

html.nx .b-compose .nx-compose-foot .button-delete.command-not-enabled {
	display: none !important;
}

html.nx .b-compose .nx-compose-options .dropdown-menu {
	top: auto;
	bottom: calc(100% + 6px);
	right: 0;
	left: auto;
	min-width: 260px;
}

html.nx .b-compose .nx-compose-options .dropdown-menu .e-link {
	display: flex;
	align-items: center;
	gap: 10px;
}

/* Celular */
html.nx.rl-mobile .b-compose .b-header,
html.nx.rl-mobile .b-compose .nx-compose-bar,
html.nx.rl-mobile .b-compose .nx-compose-foot {
	padding-left: 12px !important;
	padding-right: 12px !important;
}

html.nx.rl-mobile .b-compose .nx-cf-label {
	min-width: 52px;
}

html.nx.rl-mobile .b-compose .nx-seg-btn {
	padding: 0 10px;
}

/* O editor ocupa a área toda: sem anel de foco (a linha dos campos já indica o foco) */
html.nx .b-compose .cke_wysiwyg_div, html.nx .b-compose .cke_wysiwyg_div:focus, html.nx .b-compose textarea.cke_plain:focus { box-shadow: none !important; outline: none !important; }
html.nx .b-compose .inputosaurus-container li:not(.inputosaurus-input) { display: inline-flex; align-items: center; gap: 6px; }
html.nx .b-compose .inputosaurus-container li:not(.inputosaurus-input) a { text-decoration: none !important; font-size: 11px; }
html.nx .b-compose .inputosaurus-container li:not(.inputosaurus-input) a.ficon { order: 2; float: none !important; margin: 0 !important; padding: 0 2px !important; opacity: .6; }
html.nx .b-compose .inputosaurus-container li:not(.inputosaurus-input) a.ficon:hover { opacity: 1; }

/* =========================================================
   MENUS LATERAIS COM ÍCONES (administração e configurações)
   ========================================================= */
:root {
	--nx-ico-sliders: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M2 14h4M10 8h4M18 16h4'/%3E%3C/svg%3E");
	--nx-ico-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10Z'/%3E%3C/svg%3E");
	--nx-ico-login: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4M10 17l5-5-5-5M15 12H3'/%3E%3C/svg%3E");
	--nx-ico-palette: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='13.5' cy='6.5' r='1.5'/%3E%3Ccircle cx='17.5' cy='10.5' r='1.5'/%3E%3Ccircle cx='8.5' cy='7.5' r='1.5'/%3E%3Ccircle cx='6.5' cy='12.5' r='1.5'/%3E%3Cpath d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.93 0 1.65-.75 1.65-1.69 0-.44-.18-.84-.44-1.13-.29-.29-.44-.65-.44-1.13a1.64 1.64 0 0 1 1.67-1.67h2c3.05 0 5.55-2.5 5.55-5.55C21.97 6.01 17.46 2 12 2Z'/%3E%3C/svg%3E");
	--nx-ico-book: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5v-15A2.5 2.5 0 0 1 6.5 2H20v20H6.5a2.5 2.5 0 0 1 0-5H20'/%3E%3Ccircle cx='12' cy='8' r='2'/%3E%3Cpath d='M15 13a3 3 0 1 0-6 0'/%3E%3C/svg%3E");
	--nx-ico-shield: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--nx-ico-plug: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22v-5M9 8V2M15 8V2M18 8v5a6 6 0 0 1-12 0V8Z'/%3E%3C/svg%3E");
	--nx-ico-grid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E");
	--nx-ico-package: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16.5 9.4 7.55 4.24M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z'/%3E%3Cpath d='M3.27 6.96 12 12.01l8.73-5.05M12 22.08V12'/%3E%3C/svg%3E");
	--nx-ico-info: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4M12 8h.01'/%3E%3C/svg%3E");
	--nx-ico-at: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-4 8'/%3E%3C/svg%3E");
	--nx-ico-users: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E");
	--nx-ico-filter: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 3H2l8 9.46V19l4 2v-8.54Z'/%3E%3C/svg%3E");
	--nx-ico-key: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7.5' cy='15.5' r='5.5'/%3E%3Cpath d='m21 2-9.6 9.6M15.5 7.5l3 3L22 7l-3-3'/%3E%3C/svg%3E");
	--nx-ico-file: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8Z'/%3E%3Cpath d='M14 2v6h6M16 13H8M16 17H8'/%3E%3C/svg%3E");
	--nx-ico-folder: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z'/%3E%3C/svg%3E");
	--nx-ico-lock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");
	--nx-ico-dot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E");
}

html.nx .b-admin-menu {
	display: flex;
	flex-direction: column;
}

html.nx .b-admin-menu > * {
	order: 14;
}

html.nx .b-admin-left .nx-nav-label {
	display: none;
}

html.nx .b-admin-menu .nx-nav-section {
	padding: 18px 12px 6px;
	font-size: 11.5px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--nx-primary-text);
	white-space: nowrap;
	overflow: hidden;
}

html.nx .b-admin-menu .nx-nav-section[data-nx-route="general"] {
	padding-top: 4px;
}

html.nx .b-admin-menu .e-link:before,
html.nx .b-settings-menu .e-link:before {
	width: 18px;
	height: 18px;
	border-radius: 0;
	background: currentColor;
	opacity: .85;
	-webkit-mask: var(--nx-ico, var(--nx-ico-dot)) center / contain no-repeat;
	mask: var(--nx-ico, var(--nx-ico-dot)) center / contain no-repeat;
}

html.nx .b-admin-menu .e-item.selected .e-link:before,
html.nx .b-settings-menu .e-item.selected .e-link:before {
	background: currentColor;
	opacity: 1;
}

/* Menu recolhido: trilho só com ícones (o nome aparece na dica) */
html.nx.rl-left-panel-disabled .b-admin-menu .nx-nav-section {
	height: 0;
	padding: 0;
	margin: 8px 10px;
	border-top: 1px solid var(--nx-border);
	font-size: 0;
}

html.nx.rl-left-panel-disabled .b-admin-menu .nx-nav-section[data-nx-route="general"] {
	display: none;
}

html.nx.rl-left-panel-disabled .b-admin-menu .e-link,
html.nx.rl-left-panel-disabled .b-settings-menu .e-link {
	width: 42px;
	margin: 2px auto;
}

html.nx.rl-left-panel-disabled .b-admin-menu .e-link:before,
html.nx.rl-left-panel-disabled .b-settings-menu .e-link:before {
	width: 20px;
	height: 20px;
}

html.nx .b-admin-menu [data-nx-route="general"] { order: 2; }
html.nx .b-admin-menu [data-nx-route="general"] > .e-link { --nx-ico: var(--nx-ico-sliders); }
html.nx .b-admin-menu [data-nx-route="branding"] { order: 3; }
html.nx .b-admin-menu [data-nx-route="branding"] > .e-link { --nx-ico: var(--nx-ico-palette); }
html.nx .b-admin-menu [data-nx-route="login"] { order: 4; }
html.nx .b-admin-menu [data-nx-route="login"] > .e-link { --nx-ico: var(--nx-ico-login); }
html.nx .b-admin-menu [data-nx-route="domains"] { order: 6; }
html.nx .b-admin-menu [data-nx-route="domains"] > .e-link { --nx-ico: var(--nx-ico-globe); }
html.nx .b-admin-menu [data-nx-route="email-accounts"] { order: 7; }
html.nx .b-admin-menu [data-nx-route="email-accounts"] > .e-link { --nx-ico: var(--nx-ico-at); }
html.nx .b-admin-menu [data-nx-route="contacts"] { order: 8; }
html.nx .b-admin-menu [data-nx-route="contacts"] > .e-link { --nx-ico: var(--nx-ico-book); }
html.nx .b-admin-menu [data-nx-route="security"] { order: 10; }
html.nx .b-admin-menu [data-nx-route="security"] > .e-link { --nx-ico: var(--nx-ico-shield); }
html.nx .b-admin-menu [data-nx-route="integrations"] { order: 11; }
html.nx .b-admin-menu [data-nx-route="integrations"] > .e-link { --nx-ico: var(--nx-ico-plug); }
html.nx .b-admin-menu [data-nx-route="plugins"] { order: 13; }
html.nx .b-admin-menu [data-nx-route="plugins"] > .e-link { --nx-ico: var(--nx-ico-grid); }
html.nx .b-admin-menu [data-nx-route="packages"] { order: 14; }
html.nx .b-admin-menu [data-nx-route="packages"] > .e-link { --nx-ico: var(--nx-ico-package); }
html.nx .b-admin-menu [data-nx-route="about"] { order: 16; }
html.nx .b-admin-menu [data-nx-route="about"] > .e-link { --nx-ico: var(--nx-ico-info); }
html.nx .b-admin-menu .nx-nav-section[data-nx-route="general"] { order: 1; }
html.nx .b-admin-menu .nx-nav-section[data-nx-route="domains"] { order: 5; }
html.nx .b-admin-menu .nx-nav-section[data-nx-route="security"] { order: 9; }
html.nx .b-admin-menu .nx-nav-section[data-nx-route="plugins"] { order: 12; }
html.nx .b-admin-menu .nx-nav-section[data-nx-route="about"] { order: 15; }
html.nx .b-settings-menu [data-nx-route="general"] > .e-link { --nx-ico: var(--nx-ico-sliders); }
html.nx .b-settings-menu [data-nx-route="accounts"] > .e-link { --nx-ico: var(--nx-ico-users); }
html.nx .b-settings-menu [data-nx-route="contacts"] > .e-link { --nx-ico: var(--nx-ico-book); }
html.nx .b-settings-menu [data-nx-route="filters"] > .e-link { --nx-ico: var(--nx-ico-filter); }
html.nx .b-settings-menu [data-nx-route="security"] > .e-link { --nx-ico: var(--nx-ico-shield); }
html.nx .b-settings-menu [data-nx-route="social"] > .e-link { --nx-ico: var(--nx-ico-plug); }
html.nx .b-settings-menu [data-nx-route="change-password"] > .e-link { --nx-ico: var(--nx-ico-key); }
html.nx .b-settings-menu [data-nx-route="templates"] > .e-link { --nx-ico: var(--nx-ico-file); }
html.nx .b-settings-menu [data-nx-route="folders"] > .e-link { --nx-ico: var(--nx-ico-folder); }
html.nx .b-settings-menu [data-nx-route="themes"] > .e-link { --nx-ico: var(--nx-ico-palette); }
html.nx .b-settings-menu [data-nx-route="openpgp"] > .e-link { --nx-ico: var(--nx-ico-lock); }

/* Balão com o nome do item no menu recolhido */
.nx-rail-tip { position: fixed; z-index: 3000; transform: translateY(-50%); padding: 6px 10px; border-radius: 8px; background: var(--nx-surface-3); color: var(--nx-text); border: 1px solid var(--nx-border-strong); box-shadow: var(--nx-shadow-sm); font: 500 13px/1.2 "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity .12s ease; }
.nx-rail-tip.show { opacity: 1; }
.nx-rail-tip:before { content: ""; position: absolute; left: -5px; top: 50%; margin-top: -5px; border: 5px solid transparent; border-left: 0; border-right-color: var(--nx-border-strong); }
html[data-nx-theme="light"] .nx-rail-tip { background: #c9cbe0; color: #161827; border-color: #c9cbe0; }
html[data-nx-theme="light"] .nx-rail-tip:before { border-right-color: #c9cbe0; }

/* Bootstrap só remove o fundo do popup ao fim da transição de opacidade: ao fechar ele
   precisa ir a 0 (antes ficava invisível em opacidade 1 e bloqueava todos os cliques) */
html.nx .modal-backdrop.fade:not(.in) { opacity: 0 !important; pointer-events: none !important; }
