/*
 * SomaPriz interface
 * Visual system and application shell. Existing Bootstrap class names remain
 * available to the current pages while their appearance is defined here.
 */

:root
{
	--somapriz-navbar-height: 72px;
	--somapriz-menu-width: 252px;
	--somapriz-menu-fold-width: 76px;
	--somapriz-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--somapriz-brand-panel-bg: #DDEDEC;
	--somapriz-menu-bg: var(--somapriz-brand-panel-bg);
	--somapriz-menu-bg-dark: #D3E7E5;
	--somapriz-menu-hover: #CDE2DF;
	--somapriz-menu-active: #FFFFFF;
	--somapriz-menu-active-hover: #F8FCFD;
	--somapriz-menu-sub-active: #FFFFFF;
	--somapriz-menu-sub-text: #405E5B;
	--somapriz-menu-sub-guide: #B3D3CF;
	--somapriz-nav-border: #E2EBEF;
	--somapriz-nav-hover: #F4F9FB;
	--somapriz-nav-text: #536371;
	--somapriz-nav-icon: #455A68;
	--somapriz-ink: #24313D;
	--somapriz-muted: #687A87;
	--somapriz-accent: #0C756F;
	--somapriz-accent-dark: #095F5A;
	--somapriz-brand-highlight: #FDCF6F;
	--somapriz-page-bg: #F2F5F6;
	--somapriz-surface-bg: #FFFFFF;
	--somapriz-surface-subtle: #F7FAFA;
	--somapriz-surface-border: #DAE4E7;
	--somapriz-shadow-sm: 0 1px 2px rgba(21, 49, 55, .06), 0 7px 20px rgba(21, 49, 55, .05);
	--somapriz-shadow: 0 12px 32px rgba(21, 49, 55, .13);
	--somapriz-transition: 180ms ease;
}

.fiscal-issuance-unavailable
{
    opacity: 0.55;
    cursor: not-allowed;
}

/* Document and page shell */

html,
body
{
	min-height: 100%;
	background-color: var(--somapriz-page-bg);
}

html.disable-scrolling,
html.disable-scrolling body
{
	overflow: hidden;
}

body
{
	padding-top: var(--somapriz-navbar-height);
	font-family: var(--somapriz-font-family);
	color: var(--somapriz-ink);
	font-size: 1rem;
	-webkit-font-smoothing: antialiased;
}

body.layout-full
{
	padding-top: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.tooltip,
.popover
{
	font-family: var(--somapriz-font-family);
}

.page
{
	position: relative;
	min-height: calc(100vh - var(--somapriz-navbar-height));
	background-color: var(--somapriz-page-bg);
	transition: margin-left var(--somapriz-transition), transform var(--somapriz-transition);
}

body.layout-full .page
{
	min-height: 100vh;
}

.page-content
{
	min-width: 0;
	max-width: 100%;
	padding: clamp(24px, 3.1vw, 48px);
}

.page-content > .row,
.page-content > .row > .col-12
{
	min-width: 0;
	max-width: 100%;
}

.site-menubar-fold .page,
.site-menubar-fold .site-footer
{
	margin-left: var(--somapriz-menu-fold-width);
}

.site-menubar-unfold .page,
.site-menubar-unfold .site-footer
{
	margin-left: var(--somapriz-menu-width);
}

.site-menubar-fold .page
{
	width: calc(100% - var(--somapriz-menu-fold-width));
}

.site-menubar-unfold .page
{
	width: calc(100% - var(--somapriz-menu-width));
}

/* Navbar */

.site-navbar
{
	position: fixed;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1500;
	display: grid;
	grid-template-columns: var(--somapriz-menu-width) minmax(0, 1fr);
	width: 100%;
	min-height: var(--somapriz-navbar-height);
	height: var(--somapriz-navbar-height);
	padding: 0;
	background-color: #FFFFFF;
	border: 0;
	border-bottom: 1px solid var(--somapriz-nav-border);
	box-shadow: 0 1px 5px rgba(21, 49, 55, .07);
}

.site-navbar .navbar-header
{
	display: flex;
	flex: 0 0 var(--somapriz-menu-width);
	align-items: center;
	width: var(--somapriz-menu-width);
	min-width: var(--somapriz-menu-width);
	max-width: var(--somapriz-menu-width);
	height: var(--somapriz-navbar-height);
	padding: 0;
	color: var(--somapriz-ink);
	background-color: var(--somapriz-menu-bg);
	border-right: 1px solid var(--somapriz-nav-border);
}

.site-navbar .navbar-brand
{
	display: flex;
	flex: 1 1 auto;
	align-items: center;
	justify-content: flex-start;
	min-width: 0;
	height: var(--somapriz-navbar-height);
	margin: 0;
	padding: 0 22px;
	color: var(--somapriz-ink);
	cursor: pointer;
}

.site-navbar .navbar-brand-logo
{
	width: 34px;
	height: 34px;
	object-fit: contain;
}

.site-navbar .navbar-brand-text
{
	margin-left: 10px;
	font-size: 22px;
	font-weight: 750;
	letter-spacing: -0.035em;
}

.site-navbar .navbar-container
{
	display: flex;
	flex: 1 1 auto;
	width: 100%;
	min-width: 0;
	max-width: none;
	height: var(--somapriz-navbar-height);
	padding: 0 24px;
	background-color: #FFFFFF !important;
	border-bottom: 1px solid #e2ebf0;
}

.site-navbar .navbar-collapse-toolbar
{
	display: flex !important;
	flex: 1 1 auto;
	align-items: stretch;
	justify-content: flex-start;
	min-width: 0;
	width: 100%;
	height: var(--somapriz-navbar-height);
	padding: 0;
}

.site-navbar .navbar-collapse-toolbar::before,
.site-navbar .navbar-collapse-toolbar::after
{
	display: none;
	content: none;
}

.site-navbar .navbar-toolbar
{
	display: flex;
	flex-flow: row nowrap;
	align-items: stretch;
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-navbar .navbar-toolbar > .nav-item
{
	position: relative;
	display: flex;
	align-items: stretch;
}

.site-navbar .navbar-toolbar > .nav-item > .nav-link
{
	display: flex;
	align-items: center;
	min-height: var(--somapriz-navbar-height);
	padding: 0 18px;
	color: var(--somapriz-nav-text) !important;
	text-decoration: none;
	transition: background-color var(--somapriz-transition), color var(--somapriz-transition);
}

.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link:hover,
.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link:focus,
.site-navbar .navbar-toolbar > .nav-item.show:not(.bg-danger) > .nav-link
{
	color: var(--somapriz-accent-dark) !important;
	background-color: var(--somapriz-nav-hover) !important;
}

.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link .icon,
.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link .fas,
.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link .far,
.site-navbar .navbar-toolbar > .nav-item:not(.bg-danger) > .nav-link .fa-solid
{
	color: var(--somapriz-nav-icon) !important;
}

.site-navbar .navbar-right > .nav-item:not(.bg-danger)
{
	border-left: 1px solid var(--somapriz-nav-border) !important;
}

.site-navbar .navbar-toggler
{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	color: inherit;
	background: transparent;
	border: 0;
	cursor: pointer;
}

@media (min-width: 768px)
{
	.site-navbar .navbar-header > .navbar-toggler
	{
		display: none;
	}

	.site-navbar .navbar-toolbar-right
	{
		margin-right: -15px;
		margin-left: auto;
	}
}

.site-navbar .navbar-header .navbar-toggler,
.site-navbar .navbar-header .navbar-brand,
.site-navbar .navbar-header .navbar-brand-text
{
	color: var(--somapriz-ink) !important;
}

.hamburger
{
	position: relative;
	display: inline-block;
	width: 20px;
	height: 14px;
	font-size: 0;
}

.hamburger::before,
.hamburger::after,
.hamburger .hamburger-bar
{
	position: absolute;
	left: 0;
	width: 20px;
	height: 2px;
	content: "";
	background-color: currentColor;
	border-radius: 2px;
	transition: transform var(--somapriz-transition), width var(--somapriz-transition);
}

.hamburger::before { top: 0; }
.hamburger .hamburger-bar { top: 6px; }
.hamburger::after { top: 12px; }

.site-menubar-unfold .hamburger-arrow-left::before
{
	width: 11px;
	transform: translate(0, 2px) rotate(-35deg);
}

.site-menubar-unfold .hamburger-arrow-left::after
{
	width: 11px;
	transform: translate(0, -2px) rotate(35deg);
}

/* Menubar */

.site-menubar
{
	position: fixed;
	top: var(--somapriz-navbar-height);
	bottom: 0;
	left: 0;
	padding-top: 24px;
	z-index: 1400;
	width: var(--somapriz-menu-width);
	font-family: var(--somapriz-font-family);
	color: var(--somapriz-nav-text);
	background-color: var(--somapriz-menu-bg);
	border-right: 1px solid #C8DEE5;
	box-shadow: 3px 0 14px rgba(21, 49, 55, .04);
	transition: width var(--somapriz-transition), transform var(--somapriz-transition), top var(--somapriz-transition);
}

.site-menubar-body
{
	height: 100%;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: #CEDCE3 transparent;
}

.site-menubar .scrollable-container,
.site-menubar .scrollable-content
{
	height: auto;
	min-height: 100%;
}

.site-menubar ul
{
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-menubar a,
.site-menubar a:hover,
.site-menubar a:focus
{
	text-decoration: none;
	outline: 0;
}

.site-menu
{
	padding: 0 0 24px;
	font-size: 14px;
}

.site-menu-item
{
	position: relative;
	white-space: nowrap;
}

.site-menu-item > a
{
	position: relative;
	display: flex;
	align-items: center;
	min-height: 42px;
	color: var(--somapriz-nav-text);
	cursor: pointer;
	user-select: none;
}

.site-menu-icon
{
	display: block;
	flex: 0 0 24px;
	width: 24px;
	font-size: 17px;
	text-align: center;
}

.site-menu-title
{
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.site-menu-arrow
{
	position: absolute;
	top: 50%;
	right: 18px;
	width: 8px;
	height: 8px;
	margin-top: -5px;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	transition: transform var(--somapriz-transition);
}

.site-menu-item.open > a > .site-menu-arrow
{
	transform: rotate(225deg) translate(-2px, -2px);
}

.site-menubar-unfold .site-menu > .site-menu-item > a
{
	width: calc(100% - 28px);
	min-height: 46px;
	margin: 3px 14px;
	padding: 3px 18px;
	border-radius: 7px;
	line-height: 22px;
	transition: background-color var(--somapriz-transition), color var(--somapriz-transition);
}

.site-menubar-unfold .site-menu-icon
{
	margin-right: 14px;
}

.site-menu > .site-menu-item:hover > a,
.site-menu > .site-menu-item.hover > a,
.site-menu .site-menu-sub > .site-menu-item:hover > a,
.site-menu .site-menu-sub > .site-menu-item.hover > a
{
	color: var(--somapriz-accent-dark) !important;
	background-color: var(--somapriz-menu-hover) !important;
}

.site-menu > .site-menu-item.open
{
	background-color: var(--somapriz-menu-bg-dark);
}

.site-menu > .site-menu-item.open > a
{
	color: var(--somapriz-accent-dark);
	background-color: var(--somapriz-menu-bg-dark);
}

.site-menu > .site-menu-item.active
{
	background-color: var(--somapriz-menu-bg-dark);
}

.site-menu > .site-menu-item.active > a,
.site-menu > .site-menu-item > a.animsition-link.active
{
	color: var(--somapriz-accent-dark) !important;
	background-color: var(--somapriz-menu-active) !important;
	font-weight: 700;
	box-shadow: 0 1px 2px rgba(21, 49, 55, .06), inset 3px 0 0 var(--somapriz-brand-highlight);
}

.site-menu > .site-menu-item.active > a .site-menu-title,
.site-menu > .site-menu-item.active > a .site-menu-icon,
.site-menu > .site-menu-item.active > a .site-menu-arrow,
.site-menu > .site-menu-item > a.animsition-link.active .site-menu-title,
.site-menu > .site-menu-item > a.animsition-link.active .site-menu-icon
{
	color: var(--somapriz-accent-dark) !important;
}

.site-menu > .site-menu-item.active:hover > a,
.site-menu > .site-menu-item > a.animsition-link.active:hover
{
	background-color: var(--somapriz-menu-active-hover) !important;
}

.site-menubar-unfold .site-menu > .site-menu-item.open,
.site-menubar-unfold .site-menu > .site-menu-item.active
{
	background-color: transparent;
}

.site-menubar-unfold .site-menu-sub
{
	position: relative;
	display: none;
	padding: 4px 0 6px;
	line-height: 22px;
}

.site-menubar-unfold .site-menu-item.open > .site-menu-sub
{
	display: block;
}

.site-menubar-unfold .site-menu-sub::before
{
	position: absolute;
	top: 6px;
	bottom: 8px;
	left: 22px;
	width: 1px;
	content: "";
	background-color: var(--somapriz-menu-sub-guide);
}

.site-menubar-unfold .site-menu-sub > .site-menu-item > a
{
	width: calc(100% - 42px);
	min-height: 34px;
	margin: 2px 12px 2px 30px;
	padding: 0 20px 0 15px;
	color: var(--somapriz-menu-sub-text);
	border-radius: 8px;
	line-height: 34px;
}

.site-menu-sub > .site-menu-item > a.active,
.site-menu-item.has-sub.active .site-menu-sub a.active,
.site-menu-item.has-sub.open .site-menu-sub a.active
{
	color: var(--somapriz-accent-dark) !important;
	background-color: var(--somapriz-menu-sub-active) !important;
}

.site-menu-sub > .site-menu-item > a.active:hover
{
	background-color: var(--somapriz-menu-active) !important;
}

.site-menu .site-menu-item.split
{
	min-height: 16px;
	line-height: 16px;
}

.site-menubar-footer
{
	position: absolute;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
}

.site-menubar-footer > a
{
	color: var(--somapriz-nav-text);
	background-color: var(--somapriz-menu-bg-dark);
}

.site-menubar-footer > a:hover,
.site-menubar-footer > a:focus
{
	background-color: var(--somapriz-menu-hover);
}

/* Folded menubar */

.site-menubar-fold .site-menubar
{
	width: var(--somapriz-menu-fold-width);
}

.site-menubar-fold .site-navbar
{
	grid-template-columns: var(--somapriz-menu-fold-width) minmax(0, 1fr);
}

.site-menubar-fold .site-navbar .navbar-header
{
	flex-basis: var(--somapriz-menu-fold-width);
	width: var(--somapriz-menu-fold-width);
	min-width: var(--somapriz-menu-fold-width);
	max-width: var(--somapriz-menu-fold-width);
}

.site-menubar-fold .site-navbar .navbar-container
{
	max-width: none;
}

.site-menubar-fold .site-navbar .navbar-brand
{
	justify-content: center;
	padding: 0;
}

.site-menubar-fold .site-navbar .navbar-brand-text
{
	display: none;
}

.site-menubar-fold .site-menu
{
	overflow: visible;
}

.site-menubar-fold .site-menubar-body,
.site-menubar-fold .site-menubar .scrollable-container,
.site-menubar-fold .site-menubar .scrollable-content
{
	overflow: visible !important;
}

.site-menubar-fold .site-menu > .site-menu-item > a
{
	width: var(--somapriz-menu-fold-width);
	height: 60px;
	margin: 0;
	padding: 0;
	border-radius: 0;
	line-height: 60px;
}

.site-menubar-fold .site-menu > .site-menu-item.active > a,
.site-menubar-fold .site-menu > .site-menu-item > a.animsition-link.active
{
	color: var(--somapriz-accent-dark) !important;
	background-color: var(--somapriz-menu-active) !important;
}

.site-menubar-fold .site-menu > .site-menu-item.active > a .site-menu-icon,
.site-menubar-fold .site-menu > .site-menu-item.active > a .site-menu-title,
.site-menubar-fold .site-menu > .site-menu-item.active > a .site-menu-arrow
{
	color: var(--somapriz-accent-dark) !important;
}

.site-menubar-fold .site-menu > .site-menu-item > a .site-menu-icon
{
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 100%;
	margin: 0;
	font-size: 24px;
	line-height: 60px;
	text-align: center;
}

.site-menubar-fold .site-menu > .site-menu-item > a .site-menu-title
{
	position: absolute;
	top: 0;
	left: var(--somapriz-menu-fold-width);
	z-index: 2;
	display: block;
	width: 240px;
	max-width: 240px;
	height: 60px;
	padding: 0 30px;
	font-size: 14px;
	line-height: 60px;
	text-align: left;
	color: var(--somapriz-ink);
	background-color: var(--somapriz-menu-bg-dark) !important;
	border-radius: 0;
	visibility: hidden;
	opacity: 0;
}

.site-menubar-fold .site-menu > .site-menu-item > a .site-menu-arrow
{
	display: none;
}

.site-menubar-fold .site-menu > .site-menu-item:hover > a .site-menu-title,
.site-menubar-fold .site-menu > .site-menu-item.hover > a .site-menu-title
{
	visibility: visible;
	opacity: 1;
}

.site-menubar-fold .site-menu > .site-menu-item > .site-menu-sub
{
	position: absolute;
	top: 60px;
	left: var(--somapriz-menu-fold-width);
	z-index: 1;
	display: block;
	width: 240px;
	max-height: calc(100vh - var(--somapriz-navbar-height) - 60px);
	padding: 5px 0;
	overflow-y: auto;
	background-color: var(--somapriz-menu-bg-dark);
	border-radius: 0;
	box-shadow: none;
	visibility: hidden;
	opacity: 0;
	transition: visibility var(--somapriz-transition), opacity var(--somapriz-transition);
}

.site-menubar-fold .site-menu > .site-menu-item:hover > .site-menu-sub,
.site-menubar-fold .site-menu > .site-menu-item.hover > .site-menu-sub
{
	visibility: visible;
	opacity: 1;
}

.site-menubar-fold .site-menu-sub > .site-menu-item > a
{
	padding: 0 30px;
	color: var(--somapriz-menu-sub-text);
	line-height: 34px;
}

/* Dropdowns */

.dropdown-menu
{
	z-index: 1600;
	margin-top: 1px;
	border-color: var(--somapriz-surface-border);
	box-shadow: var(--somapriz-shadow);
}

.dropup > .dropdown-menu
{
	margin-top: 0;
	margin-bottom: 1px;
}

.dropdown-menu.show
{
	display: block;
}

a.dropdown-item
{
	color: #5D666F;
}

.dropdown-item.disabled
{
	color: #CCC !important;
	cursor: not-allowed !important;
	pointer-events: none;
}

.somapriz-context-option
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.somapriz-context-option.is-active,
.somapriz-context-option.is-active:disabled
{
	color: var(--somapriz-accent-dark) !important;
	font-weight: 600;
	background-color: #E6F2F1 !important;
	border-left: 3px solid var(--somapriz-accent);
	opacity: 1;
	cursor: default !important;
	pointer-events: none;
}

.somapriz-context-active
{
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	padding: .2rem .55rem;
	color: #FFF;
	font-size: .72rem;
	line-height: 1.2;
	text-transform: uppercase;
	letter-spacing: .04em;
	background-color: var(--somapriz-accent);
	border-radius: 999px;
}

/* Ficha documental */

.document-detail-surface,
.mm-modal
{
	--somapriz-muted: #536573;
}

.document-title-bar
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.document-title-bar h2
{
	font-size: 2rem;
	font-weight: 700;
}

.document-actions-toolbar
{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	flex-wrap: wrap;
}

.document-actions-toolbar .dropdown-menu
{
	min-width: 230px;
}

.document-issue-summary > div
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
    gap: 12px;
    margin-bottom: 8px;
}

.document-issue-summary > div[hidden] { display: none !important; }
.document-issue-summary dt { font-weight: 400; color: var(--somapriz-muted); }
.document-issue-summary dd { margin: 0; text-align: right; overflow-wrap: anywhere; }

.document-actions-toolbar .dropdown-item
{
	display: block;
	padding: 10px 16px;
	color: #526069;
	text-align: left;
	background: #FFF;
	border: 0;
}

.document-actions-toolbar .dropdown-item:hover,
.document-actions-toolbar .dropdown-item:focus
{
	color: var(--somapriz-accent-dark);
	background: #F1F8F7;
}

.document-actions-toolbar .dropdown-item i
{
	width: 22px;
	margin-right: 6px;
	text-align: center;
}

.badge.document-state-badge
{
	display: inline-flex;
	align-items: center;
	margin-bottom: 12px;
	padding: 8px 14px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
}

.document-summary-row
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.document-information-card
{
	padding: 18px 20px;
	background: #FFF;
	border: 1px solid #E4EAEC;
	border-radius: 6px;
}

.document-information-card h4
{
	margin-bottom: 14px;
	font-weight: 600;
}

.document-information-text
{
	white-space: pre-wrap;
}

.document-summary-card
{
	width: 100%;
	height: 100%;
	padding: 20px 24px;
	background: #F7F9FA;
	border: 1px solid #E4EAEC;
	border-radius: 6px;
}

.document-payments-card
{
	width: 100%;
	height: 100%;
	padding: 20px 24px;
	background: #F7F9FA;
	border: 1px solid #E4EAEC;
	border-radius: 6px;
}

.document-detail-surface .document-summary-card,
.document-detail-surface .document-payments-card
{
	background: var(--somapriz-surface-bg);
	border-color: var(--somapriz-surface-border);
}

.document-payments-card h4
{
	margin-bottom: 15px;
	font-weight: 600;
}

.document-payments-card[hidden] + .document-summary-card
{
	grid-column: 2;
}

.document-summary-card h4,
.document-settlement-card h4
{
	margin-bottom: 15px;
	font-weight: 600;
}

.document-summary-line
{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 20px;
	padding: 5px 0;
}

.document-summary-line strong
{
	color: #37474F;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

.document-summary-total
{
	margin-top: 8px;
	padding-top: 12px;
	font-size: 1.15rem;
	border-top: 1px solid #CCD5DB;
}

.document-summary-total strong
{
	color: var(--somapriz-accent);
	font-weight: 700;
}

.document-settlement-card
{
	padding: 20px 24px;
	background: #FFF;
	border: 1px solid #E4EAEC;
	border-radius: 6px;
}

.document-settlement-grid
{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 0;
}

.document-settlement-grid > div
{
	padding: 4px 20px;
	border-left: 1px solid #E4EAEC;
}

.document-settlement-grid > div:first-child
{
	padding-left: 0;
	border-left: 0;
}

.document-settlement-grid span,
.document-settlement-grid strong
{
	display: block;
}

.document-settlement-grid strong
{
	margin-top: 4px;
	color: var(--somapriz-accent);
	font-size: 1.45rem;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 767.98px)
{
	.document-title-bar
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.document-actions-toolbar
	{
		justify-content: flex-start;
		width: 100%;
	}

	.document-settlement-grid
	{
		grid-template-columns: repeat(2, minmax(0, 1fr));
		row-gap: 20px;
	}

	.document-settlement-grid > div:nth-child(3)
	{
		padding-left: 0;
		border-left: 0;
	}
}

.dropdown-item.bg-danger:hover
{
	color: #FFF;
}

div.dropdown-item.no-hover:hover
{
	color: #76838F;
	text-decoration: none;
	background-color: transparent;
}

.file-attachment > .list-group-item.btn
{
	color: #555;
	white-space: nowrap;
	text-overflow: ellipsis;
	border-right: 2px solid #CCD5DC;
	overflow: hidden;
	transition: border-color 150ms ease-in-out, box-shadow 150ms ease-in-out;
}

.file-attachment > .dropdown-toggle
{
	height: 43.5px;
}

.dropdown-menu-media
{
	width: min(380px, calc(100vw - 24px));
	margin: 0;
	overflow: hidden;
}

.dropdown-menu-header,
.dropdown-menu-footer
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 12px 16px;
}

.dropdown-menu-header
{
	border-bottom: 1px solid var(--somapriz-surface-border);
}

.dropdown-menu-footer
{
	border-top: 1px solid var(--somapriz-surface-border);
}

.dropdown-menu-media > .list-group
{
	max-height: min(420px, calc(100vh - 120px));
	overflow-y: auto;
}

#site-navbar-collapse .dropdown-menu-left .scrollable-container
{
	height: 100% !important;
}

#site-navbar-collapse .media-item-dropdown-info
{
	margin: 0;
	padding: 20px;
	font-size: 14px;
	line-height: 20px;
	text-align: justify;
}

/* Panels and collapses */

.panel
{
	--somapriz-panel-radius: 7px;
	position: relative;
	margin-bottom: 0;
	background-color: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: var(--somapriz-panel-radius);
	box-shadow: var(--somapriz-shadow-sm);
}

.panel-heading
{
	position: relative;
	padding: 0;
	background-color: var(--somapriz-surface-bg);
	border-bottom: 1px solid transparent;
	border-top-left-radius: var(--somapriz-panel-radius);
	border-top-right-radius: var(--somapriz-panel-radius);
}

.panel-actions
{
	position: absolute;
	top: 50%;
	right: 30px;
	z-index: 1;
	margin: auto;
	transform: translateY(-50%);
}

.panel-title
{
	display: block;
	padding: 22px 30px;
	margin-top: 0;
	margin-bottom: 0;
	font-size: 18px;
	font-weight: 700;
	color: var(--somapriz-ink);
}

.panel-title > .icon
{
	margin-right: 10px;
}

.panel-title > .badge
{
	margin-left: 10px;
}

.panel-title .small,
.panel-title small
{
	color: #76838F;
}

.panel-body
{
	position: relative;
	padding: clamp(22px, 2.4vw, 36px);
	background-color: var(--somapriz-surface-bg);
	border-bottom-right-radius: var(--somapriz-panel-radius);
	border-bottom-left-radius: var(--somapriz-panel-radius);
}

.panel-body::after
{
	display: block;
	clear: both;
	content: "";
}

.panel-body > :last-child
{
	margin-bottom: 0;
}

.panel-footer
{
	padding: 10px 30px;
	background-color: var(--somapriz-surface-bg);
	border-top: 1px solid #E4EAEC;
	border-bottom-right-radius: var(--somapriz-panel-radius);
	border-bottom-left-radius: var(--somapriz-panel-radius);
}

.panel-group
{
	margin-bottom: 22px;
}

.panel-group .panel
{
	margin-bottom: 0;
	background-color: var(--somapriz-surface-bg);
	border-radius: 0.286rem;
	box-shadow: none;
}

.panel-group .panel + .panel
{
	margin-top: 10px;
}

.panel-group .panel-title[data-toggle="collapse"]
{
	position: relative;
	padding: 15px 30px;
	font-size: 1rem;
	text-decoration: none;
}

.panel-group .panel-title[data-toggle="collapse"]::before,
.panel-group .panel-title[data-toggle="collapse"]::after
{
	position: absolute;
	top: 15px;
	right: 30px;
	width: 22px;
	height: 22px;
	font-family: inherit;
	font-size: 22px;
	font-weight: 400;
	line-height: 20px;
	color: #76838F;
	text-align: center;
	transition: all 300ms linear;
}

.panel-group .panel-title[data-toggle="collapse"]::before
{
	content: "+";
	opacity: 0.4;
}

.panel-group .panel-title[data-toggle="collapse"]::after
{
	content: "−";
	opacity: 0;
	transform: rotate(-180deg);
}

.panel-group .panel-title[data-toggle="collapse"][aria-expanded="true"]::before
{
	opacity: 0;
	transform: rotate(180deg);
}

.panel-group .panel-title[data-toggle="collapse"][aria-expanded="true"]::after
{
	opacity: 1;
	transform: rotate(0);
}

.panel-group .panel-title[data-toggle="collapse"]:hover,
.panel-group .panel-title[data-toggle="collapse"]:focus
{
	color: #76838F;
	text-decoration: none;
	outline: 0;
}

.panel-group .panel-heading
{
	border-bottom: 0;
}

.panel-group .panel-heading + .panel-collapse
{
	margin: 0;
}

.panel-group .panel-heading + .panel-collapse > .list-group
{
	border-top: 1px solid #E4EAEC;
}

.panel-group .panel-collapse
{
	background-color: var(--somapriz-surface-bg);
}

.panel-group .panel-collapse .panel-body
{
	background-color: var(--somapriz-surface-bg);
}

.panel-group .panel-footer
{
	border-top: 0;
}

.panel-group .panel-footer + .panel-collapse .panel-body
{
	border-bottom: 1px solid #E4EAEC;
}

@media (max-width: 479px)
{
	.panel-actions
	{
		right: 20px;
	}
}

.panel-group-continuous .panel
{
	border-radius: 0;
}

.panel-group-continuous .panel:first-child
{
	border-radius: 0.286rem 0.286rem 0 0;
}

.panel-group-continuous .panel:last-child
{
	border-radius: 0 0 0.286rem 0.286rem;
}

.panel-group-continuous .panel + .panel
{
	margin-top: 0;
	border-top: 1px solid #E4EAEC;
}

.panel-group-simple .panel
{
	background: transparent;
}

.panel-group-simple .panel-title[data-toggle="collapse"]
{
	padding-bottom: 10px;
	padding-left: 0;
}

.panel-group-simple .panel-title[data-toggle="collapse"]::before,
.panel-group-simple .panel-title[data-toggle="collapse"]::after
{
	right: 5px;
}

.panel-group-simple .panel-collapse,
.panel-group-simple .panel-collapse .panel-body
{
	background: transparent;
}

.panel-group-simple .panel + .panel
{
	margin-top: 0;
}

/* Collapse and tabs */

.collapse:not(.show)
{
	display: none;
}

.collapsing
{
	position: relative;
	height: 0;
	overflow: hidden;
	transition: height 250ms ease;
}

.tab-content > .tab-pane
{
	display: none;
}

.tab-content > .active
{
	display: block;
}

[data-toggle="tab"]:focus-visible,
[data-toggle="dropdown"]:focus-visible,
[data-toggle="collapse"]:focus-visible,
[data-toggle="menubar"]:focus-visible
{
	outline: 2px solid var(--somapriz-menu-active);
	outline-offset: 2px;
}

/* Tooltips */

.trovao-tooltip
{
	position: fixed;
	z-index: 2000;
	display: block;
	max-width: min(320px, calc(100vw - 20px));
	margin: 0;
	pointer-events: none;
	opacity: 0;
	transition: opacity 120ms ease;
}

.trovao-tooltip.show
{
	opacity: 1;
}

.trovao-tooltip .tooltip-inner
{
	max-width: 320px;
	padding: 7px 10px;
	font-size: 12px;
	line-height: 1.45;
	color: #FFFFFF;
	text-align: left;
	background-color: #1F2927;
	border-radius: 5px;
	box-shadow: 0 4px 14px rgba(0, 0, 0, 0.18);
}

.trovao-tooltip .arrow
{
	position: absolute;
	width: 0;
	height: 0;
	border: 5px solid transparent;
}

.trovao-tooltip .arrow::before,
.trovao-tooltip .arrow::after
{
	display: none;
	content: none;
}

.trovao-tooltip.bs-tooltip-top .arrow
{
	top: 100%;
	left: 50%;
	margin-left: -5px;
	border-top-color: #1F2927;
}

.trovao-tooltip.bs-tooltip-bottom .arrow
{
	bottom: 100%;
	left: 50%;
	margin-left: -5px;
	border-bottom-color: #1F2927;
}

.trovao-tooltip.bs-tooltip-left .arrow
{
	top: 50%;
	left: 100%;
	margin-top: -5px;
	border-left-color: #1F2927;
}

.trovao-tooltip.bs-tooltip-right .arrow
{
	top: 50%;
	right: 100%;
	margin-top: -5px;
	border-right-color: #1F2927;
}

/* Content surfaces retained from the current Trovão theme */

.page-content .card.card-shadow,
.page-content .panel.panel-bordered,
.page-content > .panel,
.page-content > .panel-group.card-shadow
{
	--somapriz-panel-radius: 7px;
	background-color: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: var(--somapriz-panel-radius);
}

.page-content > .panel-group.card-shadow > .panel
{
	--somapriz-panel-radius: 6px;
	border-radius: inherit;
}

.page-content .card.card-shadow > hr,
.page-content .panel.panel-bordered > .panel-heading,
.page-content > .panel-group.card-shadow .panel-collapse
{
	border-color: var(--somapriz-surface-border) !important;
}

.trovao-menubar-backdrop
{
	position: fixed;
	top: var(--somapriz-navbar-height);
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1390;
	display: none;
	background-color: rgba(0, 20, 19, 0.42);
	backdrop-filter: blur(1px);
}

/* Responsive states */

@media (max-width: 1199px) and (min-width: 768px)
{
	.site-navbar .navbar-toolbar > .nav-item > .nav-link
	{
		padding-right: 13px;
		padding-left: 13px;
	}
}

@media (max-width: 767px)
{
	body
	{
		padding-top: var(--somapriz-navbar-height);
	}

	.page-content
	{
		padding: 10px;
	}

	.site-navbar
	{
		display: block;
		height: auto;
	}

	.site-navbar .navbar-header
	{
		width: 100%;
		min-width: 100%;
		max-width: 100%;
		flex-basis: 100%;
		justify-content: space-between;
		border-right: 0;
	}

	.site-navbar .navbar-container
	{
		display: block;
		width: 100%;
		max-width: none;
		height: auto;
	}

	.site-navbar .navbar-header > .navbar-toggler
	{
		display: inline-flex;
		flex: 0 0 44px;
		position: relative;
		z-index: 2;
	}

	.site-navbar .navbar-collapse-toolbar
	{
		display: none !important;
		width: 100%;
		height: auto;
		min-height: var(--somapriz-navbar-height);
		background-color: #FFFFFF;
		box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
	}

	.site-navbar .navbar-collapse-toolbar.show,
	.site-navbar .navbar-collapse-toolbar.collapsing
	{
		display: flex !important;
		flex-wrap: wrap;
	}

	.site-navbar .navbar-toolbar
	{
		flex: 1 1 auto;
	}

	.site-navbar .navbar-toolbar.navbar-right
	{
		justify-content: flex-end;
	}

	.site-navbar .navbar-toolbar > .nav-item > .nav-link
	{
		min-height: var(--somapriz-navbar-height);
		padding: 0 12px;
	}

	.site-navbar .navbar-toolbar > .nav-item > .nav-link .small,
	.site-navbar .navbar-toolbar > .nav-item > .nav-link div:not(.badge)
	{
		max-width: 150px;
	}

	body.site-navbar-collapse-show
	{
		padding-top: calc(var(--somapriz-navbar-height) * 2);
	}

	.site-navbar-collapse-show .site-menubar,
	.site-navbar-collapse-show .trovao-menubar-backdrop
	{
		top: calc(var(--somapriz-navbar-height) * 2);
	}

	.site-menubar
	{
		width: var(--somapriz-menu-width);
		transform: translateX(-100%);
	}

	.site-menubar-hide .site-menubar
	{
		transform: translateX(-100%);
	}

	.site-menubar-open .site-menubar
	{
		transform: translateX(0);
	}

	.site-menubar-open .trovao-menubar-backdrop
	{
		display: block;
	}

	.site-menubar-fold .page,
	.site-menubar-unfold .page,
	.site-menubar-fold .site-footer,
	.site-menubar-unfold .site-footer
	{
		margin-left: 0;
	}

	.site-menubar-fold .page,
	.site-menubar-unfold .page
	{
		width: 100%;
	}

	body.site-menubar-open
	{
		overflow: hidden;
	}

	.site-menubar-open .page
	{
		pointer-events: none;
	}

	.site-menubar-unfold .site-menu > .site-menu-item > a
	{
		padding-right: 22px;
		padding-left: 22px;
	}

	.dropdown-menu-media
	{
		position: fixed;
		top: calc(var(--somapriz-navbar-height) + 6px);
		right: 12px;
		left: 12px;
		width: auto;
	}
}

@media (prefers-reduced-motion: reduce)
{
	.page,
	.site-menubar,
	.site-menu-arrow,
	.collapsing,
	.trovao-tooltip
	{
		transition-duration: 1ms !important;
	}
}

/* ========================================================================== */
/* Application styles (formerly style.css)                                  */
/* ========================================================================== */

body
{
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-stroke: 0;
	color: var(--somapriz-ink);
	font-size: 1rem;
}

.vertical-align-middle
{
	vertical-align: middle;
}

@media only screen and (max-width: 480px)
{
	.row label
	{
		font-weight: 700;
	}
}


/* ************************************************************** */
/* ************************************************************** */
.fullScreenNotify i
{
	margin-bottom: 20px;
}
.fullScreenNotify
{
	position: fixed;
	top: 0px;
	right: 0px;
	left: 0px;
	bottom: 0px;
	height: 100%;
	width: 100%;
	z-index: 1000000100;
}
#fullScreenNotify-message
{
	width: 100%;
	height: auto;
	position: absolute;
	top: calc(50% + -76px);
	text-align: center;
	color: #fafafa;
	font-size: 3vh;
	font-weight: bold;
	padding: 0px 15px 0px 15px;
}
/* ///////////////////////////////////// */
.form-control-label,
.col-form-label,
.form-control-label.bold
{
	font-weight: 700 !important;
	font-size: 1rem;
	color: #444;
	padding-bottom: calc(.129rem + 1px);
}

/* //// OTHERS //// */
i.fas[disabled="true"],
i.fas.disabled
{
	opacity: 0.5;
	cursor: not-allowed;
}


#full-screen-loader
{
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1000000103;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
	background-color: rgba(255, 255, 255, 0.85);
}

#full-screen-message
{
	position: absolute;
	top: 50%;
	left: 50%;
	width: 100%;
	padding: 0 1.0715rem;
	text-align: center;
	transform: translate(-50%, -50%);
}
/******************************************************/


.page-login-v3:before
{
	background-image: linear-gradient(to bottom,#05b1e0 0,#0481f4 100%) !important;
}

.tooltip
{
	z-index: 1000000104 !important;
}
body.modal-open .tooltip
{
	z-index: 1000000105 !important;
}
.webui-popover
{
	z-index: 1000000105 !important;
}
body.modal-open .webui-popover
{
	z-index: 1000000106 !important;
}
.tooltip.bs-tooltip-bottom:not(.trovao-tooltip)
{
	left: 0px !important;
}
.tooltip .tooltip-inner
{
	background-color: rgba(0,0,0,1) !important;
}
	.modal-confirm-simple .modal-header
	{
		background-color: #fff;
		border-bottom: unset;
		padding: 15px 20px 5px;
	}
	.modal-confirm-simple .modal-header .modal-title
	{
		color: #000;
		font-size: 1.3rem;
		font-weight: 400;
	}
	.modal-confirm-simple .modal-body
	{
		padding-top: 15px;
		padding-bottom: 30px;
	}

.modal-header .modal-title
{
	font-weight: 700;
	text-shadow: unset;
}
.modal-header button.close
{
	opacity: 0.75;
}
.modal-body
{
	padding-top: 20px;
	background-color: #ffffff;
}


input.autoadd
{
	display: inline-block;
	width: calc(100% - 115px) !important;
	max-width: calc(100% - 115px) !important;
}

button.autoadd,div.divautoadd
{
	display: inline-block;
	max-width: 110px;
}
button.autoadd i,
button i
{
	margin-right: 5px;
}
.modal-fill-in.autoadd
{
	background-color: rgba(255,255,255,0.80) !important;
}
.modal-content .modal-footer
{
	background: #fafafa;
}
.modal-fill-in.no-height .modal-content
{
	overflow: auto !important;
}
.modal-fill-in.no-height
{
	height: auto !important;
}
.modal-fill-in.show.no-opacity
{
	background-color: rgba(255,255,255,1) !important;
}
.modal-fill-in .modal-dialog.modal-xl .modal-content
{
	width: 90% !important;
	max-width: 90% !important;
	min-width: 90% !important;
	height: inherit;
}
.modal-fill-in.autoadd .modal-content
{
	border: 1px solid #ddd;
}

@media (min-width: 992px)
{
	.modal-md
	{
		max-width: 750px;
	}
}
.modal-dialog .modal-content .modal-title
{
	width: 100%;
}
.modal-dialog .modal-content .modal-title img.brand-logo
{
	width: 20px;
	margin-right: 10px;
	vertical-align: middle;
	background: #fff;
	border-radius: 100%;
}


.panel-subtitle
{
	font-size: 13px;
}
.panel-subtitle:before
{
	display: inline-block;
	padding: 0px .5rem;
	color: #ccd5db;
	content: "*";
}

.notie-container
{
	z-index: 1000000100 !important;
}
.notie-background-error
{
	background-color: #E62020;
}
.modal-backdrop
{
	z-index: 999999990 !important;
}
.modal
{
	z-index: 999999991 !important;
}


.modal.modal1
{
	z-index: 1000000035 !important
}
.modal.modal1 + .modal-backdrop
{
	z-index: 1000000010 !important;
}
.modal.modal2
{
	z-index: 1000000025 !important;
}
.modal.modal2 + .modal-backdrop
{
	z-index: 1000000020 !important;
}
.modal.modal3
{
	z-index: 1000000035 !important;
}
.modal.modal3 + .modal-backdrop
{
	z-index: 1000000030 !important;
}
.modal.modal4
{
	z-index: 1000000045 !important;
}
.modal.modal4 + .modal-backdrop
{
	z-index: 1000000040 !important;
}
.modal.modal5
{
	z-index: 1000000055 !important;
}
.modal.modal5 + .modal-backdrop
{
	z-index: 1000000050 !important;
}



.hidden
{
	display: none !important;
	visibility: hidden !important;
}

.page-title .page-description
{
	display: inline-block;
	font-size: 14px;
	font-weight: 100;
}
/*
.breadcrumb
{
	background-color: #dbdfe6 !important;
	border-radius: 3px;
	font-size: 12px;
	padding: .55rem 1rem;
}
.breadcrumb-item+.breadcrumb-item
{
	padding-left: 0px;
}
.breadcrumb-item+.breadcrumb-item::before
{
	color: #b4b7b9;
}
*/

	div.has-success label.error
	{
		display: none !important;
	}
	.has-error label.error
	{
		width: 100%;
		margin-top: .286rem;
		font-size: 80%;
		color: #ff4c52 !important;
		float: left;
		text-align: left;
		font-weight: 400;
	}
	.has-error input,
	.has-error textarea,
	.has-error select
	{
		border: 1px solid #ff4c52;
	}

	#toast-container>div
	{
		-moz-box-shadow: 0 0 12px rgba(0,0,0,0.3);
		-webkit-box-shadow: 0 0 12px rgba(0,0,0,0.3);
		box-shadow: 0 0 12px rgba(0,0,0,0.3);
		opacity: 0.9;
		padding: 20px 20px 20px 50px;
	}

	#toast-container.toast-bottom-full-width>div,
	#toast-container.toast-top-full-width>div
	{
		width: 100% !important;
	}

.loader-content
{
	position: fixed;
	margin: 50vh auto 0;
	text-align: center;
	text-transform: uppercase;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	top: 0px;
	left: 0px;
	z-index: 1000000100;
	width: 100%;
	height: 100%;
	background: var(--somapriz-accent);
}
.loader-content .loader-index
{
	margin: 50vh auto 0;
}

/* MELHORIAS NO INTERFACE */

/*
-webkit-transform: translate(0, 0);
	-ms-transform: translate(0, 0);
	-o-transform: translate(0, 0);
	transform: translate(0, 0);

	-webkit-transition: -webkit-transform .3s ease-in-out,width .3s ease-in-out;
		-moz-transition: -moz-transform .3s ease-in-out,width .3s ease-in-out;
		-o-transition: -o-transform .3s ease-in-out,width .3s ease-in-out;
		transition: transform .3s ease-in-out,width .3s ease-in-out;
*/


.cursor-pointer
{
	cursor: pointer;
}
/***************************************/
.badge-md
{
	font-size: 14px;
	margin-bottom: 0px;
}
/***************************************/
.modal-footer
{
	padding: 16px 28px !important;
	border-top: 1px solid #e4eaec !important;
}
.modal-footer button i
{
	margin-right: 5px;
}
/***************************************/
table th[z-hidden="true"],
table col[z-hidden="true"]
{
	visibility: collapse;
}


table a.dropdown-item
{
	text-decoration: none;
}
table a.dropdown-item i
{
	font-size: 14px !important;
}
table a.dropdown-item.bg-danger:hover
{
	color: #fff;
}
table td button i
{
	font-size: 14px;
}
table .panel-group a.panel-title {
	text-decoration: none;
}

a.link-btn
{
	-webkit-text-stroke: 0.45px rgb(81 136 231) !important;
}
/***************************************/
th i.sorter
{
	float: right;
	position: relative;
	margin-top: 3px;
	cursor: pointer;
	opacity: 0.75;
	font-size: 16px;
}
th i.sorter:hover
{
	opacity: 1;
}
table tr i
{
	font-size: 28px;
	cursor: pointer;
	opacity: 0.8;
}
table tr i:first-child
{
	margin-right: 10px;
}
table tr i[action=update]
{
	color: #333;
}
table tr i:hover
{
	opacity: 1;
}
table tr button i
{
	opacity: inherit;
}

/* ============================ */
table.table i[action="delete"],
table.table i[action="href"],
table.table i[action="update"]
{
	font-size: 1.3rem;
	padding: 0.6rem 0.75rem 0.6rem;
	opacity: 1;
	color: #fff !important;
	border-radius: 2px;
}
table.table tr i[action="delete"]:first-child,
table.table tr i[action="href"]:first-child,
table.table tr i[action="update"]:first-child {
	margin-right: 2px;
}
table.table  i[action="delete"]:hover,
table.table  i[action="update"]:hover,
table.table  i[action="href"]:hover
{
	opacity: 0.8;
}
table.table i[action="delete"]
{
	background: #dc3544;
}
table.table i[action="update"],
table.table i[action="href"]
{
	background: #526069;
}
/* ============================ */
table tr i:first-child {
	margin-right: 10px;
}


table tr td,
table td,
.table tr td,
.table td
{
	vertical-align: middle !important;
}

.table tfoot th, .table thead th
{
	font-weight: 700 !important;
}
table td span.highlight
{
	background-color: #FFE54F;
	color: #000;
	padding: 4px 10px;
}

/********************************************/
embed img
{
	display: block;
	margin: 0;
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}
/********************************************/
/* Compatibilidade dos controlos checkbox usados nos formulários Remark. */
.checkbox-custom
{
	position: relative;
	display: block;
	min-height: 20px;
	padding-left: 20px;
	margin: 0;
}
.checkbox-custom input[type=checkbox],
.checkbox-custom input[type=radio]
{
	position: absolute;
	z-index: 1;
	width: 20px;
	height: 20px;
	margin: 0 0 0 -20px;
	cursor: pointer;
	opacity: 0;
}
.checkbox-custom label
{
	position: relative;
	display: inline-block;
	min-height: 20px;
	padding-left: 10px;
	margin: 0;
	font-weight: 400;
	line-height: 20px;
	cursor: pointer;
}
.checkbox-custom label::before,
.checkbox-custom label::after
{
	position: absolute;
	left: 0;
	display: inline-block;
	width: 20px;
	height: 20px;
	margin-left: -20px;
	content: '';
}
.checkbox-custom label::before
{
	background-color: #fff;
	border: 1px solid #a9afb4;
	border-radius: .215rem;
	transition: all .2s ease-in-out;
}
.checkbox-custom label::after
{
	top: 3px;
	left: 7px;
	width: 6px;
	height: 11px;
	margin-left: -20px;
	border: solid transparent;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.checkbox-custom input[type=checkbox]:focus + label::before,
.checkbox-custom input[type=radio]:focus + label::before
{
	box-shadow: 0 0 0 .15rem rgba(12, 117, 111, .18);
}
.checkbox-custom input[type=checkbox]:checked + label::before,
.checkbox-custom input[type=radio]:checked + label::before
{
	background-color: var(--somapriz-accent);
	border-color: var(--somapriz-accent);
}
.checkbox-custom input[type=checkbox]:checked + label::after,
.checkbox-custom input[type=radio]:checked + label::after
{
	border-color: #fff;
}
.checkbox-custom input[type=checkbox]:disabled + label,
.checkbox-custom input[type=radio]:disabled + label
{
	cursor: not-allowed;
	opacity: .6;
}
.checkbox-custom.checkbox-primary input[type=checkbox]:checked + label::before,
.checkbox-custom.checkbox-primary input[type=radio]:checked + label::before
{
	background-color: var(--somapriz-accent);
	border-color: var(--somapriz-accent);
}
.checkbox-custom.checkbox-success input[type=checkbox]:checked + label::before,
.checkbox-custom.checkbox-success input[type=radio]:checked + label::before
{
	background-color: #28a745;
	border-color: #28a745;
}
.checkbox-custom.checkbox-info input[type=checkbox]:checked + label::before,
.checkbox-custom.checkbox-info input[type=radio]:checked + label::before
{
	background-color: #17a2b8;
	border-color: #17a2b8;
}
.checkbox-custom.checkbox-warning input[type=checkbox]:checked + label::before,
.checkbox-custom.checkbox-warning input[type=radio]:checked + label::before
{
	background-color: #ffc107;
	border-color: #ffc107;
}
.checkbox-custom.checkbox-danger input[type=checkbox]:checked + label::before,
.checkbox-custom.checkbox-danger input[type=radio]:checked + label::before
{
	background-color: #dc3545;
	border-color: #dc3545;
}
.checkbox-custom.checkbox-primary.show-border label::before
{
	border: 2px solid var(--somapriz-accent);
}
.checkbox-custom.checkbox-success.show-border label::before
{
	border: 2px solid #28a745;
}
.checkbox-custom.checkbox-info.show-border label::before
{
	border: 2px solid #17a2b8;
}
.checkbox-custom.checkbox-warning.show-border label::before
{
	border: 2px solid #ffc107;
}
.checkbox-custom.checkbox-danger.show-border label::before
{
	border: 2px solid #dc3545;
}
.checkbox-warning input[type=checkbox]:checked+input[type=hidden]+label::before,
.checkbox-warning input[type=checkbox]:checked+label::before,
.checkbox-warning input[type=radio]:checked+input[type=hidden]+label::before,
.checkbox-warning input[type=radio]:checked+label::before {
	background-color: #ffc107;
	border-color: #ffc107;
}

.checkbox-primary.border-only input[type=checkbox]:checked+input[type=hidden]+label::before,
.checkbox-primary.border-only input[type=checkbox]:checked+label::before,
.checkbox-primary.border-only input[type=radio]:checked+input[type=hidden]+label::before,
.checkbox-primary.border-only input[type=radio]:checked+label::before
{
	background-color: transparent;
	border-width: 2px;
}
.checkbox-primary.border-only input[type=checkbox]:checked+input[type=hidden]+label::after,
.checkbox-primary.border-only input[type=checkbox]:checked+label::after,
.checkbox-primary.border-only input[type=radio]:checked+input[type=hidden]+label::after,
.checkbox-primary.border-only input[type=radio]:checked+label::after
{
	color: var(--somapriz-accent);
}

.checkbox-custom .error::before
{
	display: none;
}

/* loader CSS FIX */
.loader-circle.loader-primary
{
	border-top: .125em solid rgba(12, 117, 111, .5);
	border-right: .125em solid rgba(12, 117, 111, .5);
	border-bottom: .125em solid rgba(12, 117, 111, .5);
	border-left: .125em solid var(--somapriz-accent);
}
.loader-circle.loader-danger
{
	border-top: .125em solid rgba(230, 32, 32, 0.5);
	border-right: .125em solid rgba(230, 32, 32, 0.5);
	border-bottom: .125em solid rgba(230, 32, 32, 0.5);
	border-left: .125em solid #E62020;
}
.loader-circle.loader-success
{
	border-top: .125em solid rgba(0, 140, 77, 0.5);
	border-right: .125em solid rgba(0, 140, 77, 0.5);
	border-bottom: .125em solid rgba(0, 140, 77, 0.5);
	border-left: .125em solid #008C4D;
}
/********************************************/
/* badge CSS FIX */
.badge-lg
{
	font-size: 16px !important;
}
.badge-md
{
	font-size: 14px !important;
	margin-bottom: 0px !important;
}
.badge-sm
{
	padding: .1em .5em .1em !important;
	font-size: 10px !important;
}

.badge {
	display: inline-block;
	padding: .25em .6em;
	font-size: 75%;
	font-weight: 400;
	line-height: 1;
	text-align: center;
	white-space: nowrap;
	vertical-align: baseline;
	border-radius: .215rem;
}

.badge:empty {
	display: none;
}

.btn .badge {
	position: relative;
	top: -1px;
}

.badge-pill {
	padding-right: .6em;
	padding-left: .6em;
	border-radius: 10rem;
}

.badge-primary {
	color: #fff;
	background-color: var(--somapriz-accent);
}

.badge-primary[href]:focus,.badge-primary[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: var(--somapriz-accent-dark);
}

.badge-secondary {
	color: #fff;
	background-color: #6c757d;
}

.badge-secondary[href]:focus,.badge-secondary[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: #545b62;
}

.badge-success {
	color: #fff;
	background-color: #28a745;
}

.badge-success[href]:focus,.badge-success[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: #1e7e34;
}

.badge-info {
	color: #fff;
	background-color: #17a2b8;
}

.badge-info[href]:focus,.badge-info[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: #117a8b;
}

.badge-warning {
	color: #3e4854;
	background-color: #ffc107;
}

.badge-warning[href]:focus,.badge-warning[href]:hover {
	color: #3e4854;
	text-decoration: none;
	background-color: #d39e00;
}

.badge-danger {
	color: #fff;
	background-color: #dc3545;
}

.badge-danger[href]:focus,.badge-danger[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: #bd2130;
}

.badge-light {
	color: #3e4854;
	background-color: #f8f9fa;
}

.badge-light[href]:focus,.badge-light[href]:hover {
	color: #3e4854;
	text-decoration: none;
	background-color: #dae0e5;
}

.badge-dark {
	color: #fff;
	background-color: #343a40;
}

.badge-dark[href]:focus,.badge-dark[href]:hover {
	color: #fff;
	text-decoration: none;
	background-color: #1d2124;
}

/* badge em azul bonito */
.badge-code
{
	border-radius: .215rem;
	padding: .15rem .3rem;
	background-color: rgba(217, 233, 255, .1);
	border: 1px solid #99c5ff;
	font-size: 90%;
	color: #4176b9;
	word-break: break-word;
}
/* -----------------------------------
**  Preloader
-------------------------------------*/
#fs-loader {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,0.88);
    /* backdrop-filter removido */
    display: none;
    place-items: center;
    z-index: 2147483647; /* valor razoável em vez do máximo */
    /* força compositing numa layer própria */
    will-change: opacity;
}
#fs-loader.active {
    display: grid;
}
.fs-loader-spinner {
    width: 44px;
    height: 44px;
    border: 4px solid #e6e6e6;
    border-top-color: #3498db;
    border-radius: 50%;
    animation: fs-loader-spin .7s linear infinite;
    margin: auto;
    /* garante que a animação corre na GPU */
    will-change: transform;
}
#fs-loader-message {
    margin-top: 14px;
    font-size: 14px;
    color: #444;
    text-align: center;
}
@keyframes fs-loader-spin {
    to { transform: rotate(360deg); }
}
/*  Preloader Ends */







.eWizardAccordion .panel-title.bg-primary,
.eWizardAccordion .panel-title.bg-primary h4
{
	color: #fff !important;
}



.wizard-buttons
{
	height: 36px;
	min-height: 36px;
}

.badge-option
{
	font-size: 15px;
	padding-bottom: 5px;
}


/* ********************************************************************* */
.form-control
{
	border-color: #d8d8d8;
}
/* ********************************************************************* */
/* SomaPriz: type, controls and content */

body,
button,
input,
select,
textarea,
.smartSelect,
.simpleTable,
.mm-modal
{
	font-family: var(--somapriz-font-family);
}

h1,
h2,
h3,
h4,
h5,
h6,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6
{
	color: var(--somapriz-ink);
	font-family: var(--somapriz-font-family);
	font-weight: 700;
	letter-spacing: -0.025em;
}

a,
.btn-link
{
	color: var(--somapriz-accent-dark);
}

a:hover,
.btn-link:hover
{
	color: var(--somapriz-accent);
}

.text-primary
{
	color: var(--somapriz-accent) !important;
}

.text-muted,
.help-block,
small
{
	color: var(--somapriz-muted) !important;
}

.page-heading
{
	margin: 0 0 34px;
	padding: 0 0 28px;
	border-bottom: 1px solid var(--somapriz-surface-border);
}

.page-eyebrow
{
	margin: 0 0 16px;
	color: var(--somapriz-accent);
	font-size: .76rem;
	font-weight: 750;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.page-heading h1
{
	margin: 0 0 10px;
	font-size: clamp(2.1rem, 3.3vw, 3.3rem);
	line-height: 1.12;
}

.page-heading > p:last-child,
.page-heading > div > p:last-child
{
	margin-bottom: 0;
	color: var(--somapriz-muted);
	font-size: 1.05rem;
}

.workspace-surface
{
	min-width: 0;
	padding: clamp(20px, 2.25vw, 32px);
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow-sm);
}

.workspace-surface + .workspace-surface
{
	margin-top: 20px;
}

.workspace-surface-title
{
	margin: 0 0 20px;
	font-size: 1.2rem;
}

.account-tabs
{
	max-width: 980px;
	margin-bottom: 0;
}

.account-tabs .nav-tabs
{
	padding: 0 14px;
	background: #FFFFFF;
	border: 1px solid var(--somapriz-surface-border);
	border-bottom: 0;
	border-radius: 7px 7px 0 0;
}

.account-tabs .nav-tabs .nav-link
{
	position: relative;
	color: var(--somapriz-muted);
	background: #FFFFFF;
	border-bottom-color: transparent;
}

.account-tabs .nav-tabs .nav-link::after
{
	position: absolute;
	right: 0;
	bottom: -1px;
	left: 0;
	height: 3px;
	content: "";
	background: transparent;
	border-radius: 2px 2px 0 0;
}

.account-tabs .nav-tabs .nav-link:hover,
.account-tabs .nav-tabs .nav-link:focus
{
	color: var(--somapriz-accent-dark);
	background: #FFFFFF;
	border-bottom-color: transparent;
}

.account-tabs .nav-tabs .nav-link.active,
.account-tabs .nav-tabs .nav-link.active:hover,
.account-tabs .nav-tabs .nav-link.active:focus,
.account-tabs .nav-tabs .nav-link[aria-selected="true"]
{
	color: var(--somapriz-accent-dark);
	background: #FFFFFF;
	border-bottom-color: transparent !important;
}

.account-tabs .nav-tabs .nav-link.active::after,
.account-tabs .nav-tabs .nav-link[aria-selected="true"]::after
{
	background: var(--somapriz-accent);
}

.account-tab-content
{
	max-width: 980px;
}

.account-tab-panel
{
	padding: clamp(24px, 3vw, 38px);
	background: #FFFFFF;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 0 0 7px 7px;
}

.account-section
{
	display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: 18px;
}
.account-section-icon
{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	color: var(--somapriz-accent-dark);
	background: #E6F2F1;
	border-radius: 6px;
	font-size: 1.1rem;
}

.account-section h4
{
	margin: 1px 0 8px;
	font-size: 1.12rem;
}

.account-section-body > p:last-of-type
{
	margin-bottom: 18px;
}

.account-section-divider
{
	margin: 30px 0;
	border: 0;
	border-top: 1px solid var(--somapriz-surface-border);
}

.account-danger-zone .account-section-icon
{
	color: #A53D49;
	background: #FBECEE;
}

.account-status
{
	padding: 10px 12px;
	border-radius: 5px;
	font-weight: 600;
}

.account-status-warning
{
	color: #805618;
	background: #FFF7E6;
	border: 1px solid #F2DDAF;
}

.saft-export-panel
{
	max-width: 980px;
}

.saft-mode-fieldset
{
	margin: 0;
	padding: 0 0 24px;
	border: 0;
}

.saft-mode-fieldset legend
{
	margin-bottom: 10px;
	font-size: .9rem;
	font-weight: 700;
}

.saft-mode-control
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	max-width: 590px;
	padding: 4px;
	background: #E9EFF0;
	border-radius: 7px;
}

.saft-mode-option
{
	margin: 0;
	cursor: pointer;
}

.saft-mode-option input
{
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	opacity: 0;
}

.saft-mode-option span
{
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 42px;
	padding: 8px 14px;
	color: var(--somapriz-muted);
	border: 1px solid transparent;
	border-radius: 5px;
	font-weight: 650;
	text-align: center;
	transition: color var(--somapriz-transition), background-color var(--somapriz-transition), box-shadow var(--somapriz-transition);
}

.saft-mode-option input:checked + span
{
	color: var(--somapriz-accent-dark);
	background: #FFFFFF;
	border-color: var(--somapriz-surface-border);
	box-shadow: 0 1px 3px rgba(21, 49, 55, .09);
}

.saft-mode-option input:focus-visible + span
{
	outline: 2px solid var(--somapriz-accent);
	outline-offset: 2px;
}

.saft-fields
{
	padding: 24px;
	background: var(--somapriz-surface-subtle);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 6px;
}

.saft-fields-copy h2
{
	margin: 0 0 6px;
	font-size: 1.15rem;
}

.saft-fields-copy p
{
	max-width: 760px;
	margin: 0 0 20px;
	color: var(--somapriz-muted);
}

.saft-context-note
{
	margin: 2px 0 0;
	padding: 11px 13px;
	color: #3D615E;
	background: #E9F4F2;
	border-radius: 5px;
}

.saft-context-note i
{
	margin-right: 7px;
}

.saft-context-note-warning
{
	color: #805618;
	background: #FFF4DD;
}

.saft-actions
{
	display: flex;
	justify-content: flex-end;
	margin-top: 18px;
}

.saft-export-panel[data-saft-formacao="1"] .saft-actions .btn
{
	max-width: 100%;
	min-width: 0;
	white-space: normal;
}

.cash-vat-status-card
{
	margin-bottom: 18px;
}

.cash-vat-status-line
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
}

.cash-vat-current-note
{
	display: grid;
	grid-template-columns: 20px minmax(0, 1fr);
	gap: 10px;
	margin-top: 18px;
	padding: 13px 15px;
	color: #3D615E;
	background: #E9F4F2;
	border-radius: 5px;
}

.cash-vat-current-note i
{
	margin-top: 3px;
}

.cash-vat-card-grid
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.cash-vat-card-grid .workspace-surface + .workspace-surface
{
	margin-top: 0;
}

.cash-vat-card
{
	height: 100%;
}

.cash-vat-card-wide
{
	grid-column: 1 / -1;
}

.cash-vat-card-heading
{
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
}

.cash-vat-card-heading > span
{
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 38px;
	width: 38px;
	height: 38px;
	color: var(--somapriz-accent-dark);
	background: #E6F2F1;
	border-radius: 6px;
}

.cash-vat-card-heading h2
{
	margin: 0;
	font-size: 1.14rem;
}

.cash-vat-card li + li
{
	margin-top: 8px;
}

.cash-vat-legal-note
{
	padding-top: 16px;
	color: var(--somapriz-muted);
	border-top: 1px solid var(--somapriz-surface-border);
}

.cash-vat-action-card
{
	max-width: none;
	margin-top: 18px;
}

.cash-vat-action-intro
{
	margin: -8px 0 22px 50px;
	color: var(--somapriz-muted);
}

.cash-vat-date-field
{
	max-width: 360px;
}

.cash-vat-consent-list
{
	margin-top: 24px;
	border-top: 1px solid var(--somapriz-surface-border);
}

.cash-vat-consent
{
	margin: 0;
	padding: 18px 0 18px 30px;
	border-bottom: 1px solid var(--somapriz-surface-border);
}

.cash-vat-consent label
{
	line-height: 1.6;
}

.cash-vat-action-footer
{
	display: flex;
	justify-content: flex-end;
	margin-top: 20px;
}

.dashboard-heading
{
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
}

.dashboard-heading .btn
{
	flex: 0 0 auto;
}

.dashboard-period
{
	display: flex;
	justify-content: flex-end;
	margin-bottom: 16px;
}

.dashboard-period form
{
	display: flex;
	align-items: center;
	gap: 10px;
}

.dashboard-period label
{
	margin: 0;
	font-weight: 600;
}

.dashboard-period .smartSelect
{
	min-width: 120px;
}

.dashboard-metrics
{
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
	margin-bottom: 24px;
}

.dashboard-metric
{
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
	min-height: 154px;
	padding: 22px;
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow-sm);
}

.dashboard-metric::before
{
	display: block;
	width: 34px;
	height: 3px;
	margin-bottom: 5px;
	content: "";
	background: var(--somapriz-accent);
	border-radius: 3px;
}

.dashboard-metric:nth-child(2)::before
{
	background: var(--somapriz-brand-highlight);
}

.dashboard-metric > span,
.dashboard-metric > small
{
	color: var(--somapriz-muted);
}

.dashboard-metric strong
{
	color: var(--somapriz-ink);
	font-size: clamp(1.45rem, 2.2vw, 2.1rem);
	font-weight: 750;
	line-height: 1.12;
	white-space: nowrap;
}

.dashboard-metric a
{
	margin-top: auto;
	font-weight: 650;
}

.dashboard-activity
{
	padding-bottom: 18px;
}

.section-heading
{
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin: 0 0 14px;
}

.section-heading h2
{
	margin: 0;
	font-size: 1.4rem;
}

.section-heading a
{
	font-weight: 650;
}

.document-section-title
{
	margin: 0 0 24px;
	font-size: 1.25rem;
}

#article-fields .document-section-title
{
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.document-editor-toolbar
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}

.document-editor-state
{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	flex-wrap: wrap;
}

.document-workspace-section
{
	margin-bottom: 20px;
}

#transport-fields
{
	margin: 4px -12px 0;
	padding: 22px 20px 6px;
	background: var(--somapriz-surface-subtle);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 6px;
}

#transport-fields > h5
{
	margin: 0 0 18px;
	font-size: 1rem;
}

.document-extra
{
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow-sm);
}

.document-extra-toggle
{
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 18px 22px;
	color: var(--somapriz-ink);
	background: #FFFFFF;
	border: 0;
	border-radius: 7px;
	font: inherit;
	font-size: 1rem;
	font-weight: 650;
	text-align: left;
	cursor: pointer;
}

.document-extra-toggle::after
{
	content: "+";
	color: var(--somapriz-muted);
	font-size: 1.45rem;
	font-weight: 400;
	line-height: 1;
}

.document-extra-toggle[aria-expanded="true"]::after
{
	content: "−";
}

.document-extra-toggle:focus-visible
{
	outline: 2px solid var(--somapriz-accent);
	outline-offset: 2px;
}

.document-extra-fields
{
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr);
	gap: 24px;
	padding: 22px 22px 22px;
}

.document-extra-fields .form-group
{
	min-width: 0;
	margin-bottom: 0;
}

.document-payment-summary
{
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	align-items: stretch;
}

.document-global-discount
{
	display: flex;
	flex-wrap: wrap;
	gap: 10px 16px;
	align-items: center;
	max-width: 100%;
}

.document-global-discount > .form-group
{
	flex: 0 1 220px;
	min-width: 0;
	max-width: 100%;
}

.document-global-discount > #global-discount-value-field
{
	flex-basis: 150px;
}

.document-discount-heading
{
    display: flex;
    align-items: center;
    gap: 4px;
}

#document-discount-title
{
    margin: 0;
    font-size: 1rem;
    font-weight: 650;
}

.document-info
{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--somapriz-muted);
    cursor: help;
}

.document-info span
{
    width: 16px;
    height: 16px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font: 650 12px/14px sans-serif;
    text-align: center;
}

.document-info:hover,
.document-info:focus-visible
{
    color: var(--somapriz-accent);
}

.document-info:focus-visible
{
    outline: 2px solid currentColor;
    outline-offset: 1px;
    border-radius: 3px;
}

#global-discount-fields[hidden],
.document-global-discount > [hidden]
{
	display: none !important;
}

.document-global-discount-value
{
	position: relative;
}

.document-global-discount-value input
{
	padding-right: 32px;
	text-align: right;
}

.document-global-discount-value span
{
	position: absolute;
	right: 11px;
	top: 9px;
	color: var(--somapriz-muted);
}

.document-line-discount-amount
{
	display: block;
	margin-top: 5px;
	color: var(--somapriz-muted);
	font-size: .8rem;
	font-variant-numeric: tabular-nums;
	text-align: right;
}

.document-payment-editor,
#document-totals
{
	min-width: 0;
	padding: 20px 24px;
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 6px;
	box-shadow: var(--somapriz-shadow-sm);
}

.document-payment-editor h4
{
	margin-bottom: 15px;
	font-weight: 600;
}

.document-payment-editor[hidden] + #document-totals
{
	grid-column: 2;
}

.document-payment-head,
.document-payment-row
{
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(120px, 160px) 42px;
	gap: 10px;
	align-items: center;
}

.document-payment-head
{
	margin-bottom: 6px;
	color: var(--somapriz-muted);
	font-size: .8rem;
}

.document-payment-row
{
	margin-bottom: 10px;
}

.document-payment-row .form-control
{
	width: 100%;
}

.document-payment-remove
{
	width: 42px;
	height: 40px;
	padding: 0;
}

.document-payment-balance
{
	display: flex;
	justify-content: space-between;
	gap: 20px;
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--somapriz-surface-border);
}

.document-payment-balance span
{
	display: block;
	margin-bottom: 4px;
	color: var(--somapriz-muted);
	font-size: .8rem;
}

.document-payment-balance strong
{
	display: block;
	font-variant-numeric: tabular-nums;
}

.receipt-flow-section
{
	margin-bottom: 20px;
	padding: 18px 20px;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 6px;
}

.receipt-step-title
{
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 15px;
}

.receipt-step-title > span
{
	display: inline-flex;
	width: 28px;
	height: 28px;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--somapriz-accent);
	color: #fff;
	font-size: .85rem;
}

.receipt-allocation-table table
{
	min-width: 820px;
}

.receipt-allocation-table th:nth-child(1)
{
	width: 30%;
}

.receipt-allocation-table th:nth-child(2),
.receipt-allocation-table th:nth-child(3),
.receipt-allocation-table th:nth-child(4)
{
	width: 20%;
}

.receipt-allocation-table th:last-child
{
	width: 70px;
}

.receipt-total-summary
{
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 20px;
	margin-bottom: 20px;
	padding: 16px 20px;
	border-left: 3px solid var(--somapriz-accent);
	background: #EAF5F3;
}

.receipt-total-summary span,
.receipt-total-summary strong
{
	font-size: 1.1rem;
	font-weight: 700;
}

.receipt-total-summary strong
{
	font-variant-numeric: tabular-nums;
}

.receipt-total-summary small
{
	grid-column: 1 / -1;
	color: var(--somapriz-muted);
}

.document-payment-editor.receipt-flow-section
{
	background: #f7f9fa;
}

#document-totals .document-totals-box
{
	width: 100%;
	margin-left: auto;
	padding: 0;
}

.document-totals-state
{
	margin-bottom: 16px;
	color: var(--somapriz-muted);
	font-size: .8rem;
	text-align: right;
}

.document-totals-row
{
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: baseline;
	gap: 24px;
	padding: 5px 0;
	color: var(--somapriz-muted);
	font-size: 1.05rem;
	line-height: 1.5;
}

.document-totals-row strong
{
	color: var(--somapriz-ink);
	font-weight: 600;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.document-totals-discounts-total
{
	margin-bottom: 5px;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--somapriz-surface-border);
}

.document-totals-final
{
	margin-top: 12px;
	padding-top: 17px;
	color: var(--somapriz-ink);
	border-top: 1px solid var(--somapriz-surface-border);
	font-size: 1.35rem;
	font-weight: 700;
}

.document-totals-final strong
{
	font-weight: 700;
}

.document-submit-bar
{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 22px;
	padding: 12px;
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow-sm);
}

.debit-line
{
	margin-bottom: 12px;
	padding: 12px 14px 4px;
	background: #F8FBFC;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 5px;
}

.debit-line .form-group
{
	margin-bottom: 8px;
}

.debit-line label
{
	margin-bottom: 4px;
	font-size: .85rem;
}

.debit-line .form-control,
.debit-line .smartSelect-control
{
	height: 36px;
	min-height: 36px;
	padding-top: 5px;
	padding-bottom: 5px;
}

.debit-line-remove-column
{
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
}

.debit-line-remove
{
	height: 36px;
	min-height: 36px;
	padding-top: 5px;
	padding-right: 0;
	padding-bottom: 5px;
	padding-left: 0;
}

.debit-line-total-column
{
	text-align: right;
}

.debit-line-total-box
{
	display: flex;
	min-height: 58px;
	padding: 7px 12px;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	background: #E6F2F1;
	border-left: 3px solid var(--somapriz-accent);
	border-radius: 5px;
}

.debit-line-total-box span
{
	color: var(--somapriz-muted);
	font-size: .78rem;
}

.debit-line-total
{
	display: flex;
	align-items: center;
	justify-content: flex-end;
	height: auto;
	font-size: 1.05rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.debit-totals
{
	width: min(100%, 420px);
	margin-left: auto;
}

.debit-totals .document-totals-state
{
	margin-bottom: 4px;
}

.guide-invoice-line
{
	margin-bottom: 14px;
	padding: 14px 16px 10px;
	background: #F8FBFC;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 5px;
}

.guide-invoice-line .form-group
{
	margin-bottom: 10px;
}

.guide-invoice-line label
{
	margin-bottom: 4px;
	font-size: .85rem;
}

.guide-invoice-line .form-control,
.guide-invoice-line .smartSelect-control,
.guide-invoice-value-box
{
	height: 38px;
	min-height: 38px;
}

.guide-invoice-line .form-control,
.guide-invoice-line .smartSelect-control
{
	padding-top: 5px;
	padding-bottom: 5px;
}

.guide-invoice-identity strong
{
	display: block;
	color: var(--somapriz-ink);
	font-size: 1rem;
}

.guide-invoice-remove-column
{
	display: flex;
	align-items: flex-end;
}

.guide-invoice-remove
{
	height: 38px;
	min-height: 38px;
}

.guide-invoice-value-box
{
	display: flex;
	padding: 5px 12px;
	align-items: center;
	justify-content: flex-end;
	background: #FFFFFF;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 5px;
	font-variant-numeric: tabular-nums;
}

.guide-invoice-total-box
{
	display: flex;
	min-height: 60px;
	padding: 7px 12px;
	flex-direction: column;
	align-items: flex-end;
	justify-content: center;
	background: #E6F2F1;
	border-left: 3px solid var(--somapriz-accent);
	border-radius: 5px;
}

.guide-invoice-total-box span
{
	color: var(--somapriz-muted);
	font-size: .78rem;
}

.guide-invoice-total-box strong
{
	font-size: 1.05rem;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.guide-invoice-adjustments
{
	padding-top: 10px;
	border-top: 1px solid var(--somapriz-surface-border);
}

@media (max-width: 767px)
{
	.guide-invoice-total-box
	{
		align-items: flex-start;
	}

	.debit-line-total-column
	{
		text-align: left;
	}

	.debit-line-total-box
	{
		align-items: flex-start;
	}

	.debit-line-total
	{
		justify-content: flex-start;
	}
}

@media (max-width: 767px)
{
	.document-summary-row,
	.document-payment-summary
	{
		grid-template-columns: 1fr;
	}

	.document-payment-editor[hidden] + #document-totals
	{
		grid-column: 1;
	}

	.document-payments-card[hidden] + .document-summary-card
	{
		grid-column: 1;
	}

	.document-extra-fields
	{
		grid-template-columns: 1fr;
		gap: 18px;
	}

	.document-global-discount > .form-group,
	.document-global-discount > #global-discount-value-field
	{
		flex-basis: 100%;
	}
}

.panel,
.card
{
	background: #FFFFFF;
	border-color: var(--somapriz-surface-border);
	box-shadow: var(--somapriz-shadow-sm);
}

.panel-heading,
.card-header,
.panel-footer,
.card-footer
{
	background: #FFFFFF;
	border-color: var(--somapriz-surface-border);
}

.card.bg-light
{
	background: #F8FBFC !important;
}

.form-group
{
	margin-bottom: 22px;
}

label,
.form-control-label,
.col-form-label
{
	color: var(--somapriz-ink);
	font-weight: 650;
}

.form-control,
.smartSelect-control
{
	min-height: 42px;
	color: var(--somapriz-ink);
	background: #FFFFFF;
	border: 1px solid #CADAE2;
	border-radius: 5px;
	box-shadow: none;
}

.form-control:focus,
.smartSelect-control:focus,
.smartSelect-open .smartSelect-control
{
	border-color: var(--somapriz-accent);
	box-shadow: 0 0 0 3px rgba(12, 117, 111, .13);
	outline: 0;
}

.form-control::placeholder,
.smartSelect-placeholder
{
	color: #8B9BA6;
}

.btn
{
	min-height: 40px;
	padding: 8px 16px;
	border-radius: 5px;
	font-weight: 650;
	box-shadow: none;
}

.btn-primary,
.btn-success
{
	color: #FFFFFF;
	background: var(--somapriz-accent);
	border-color: var(--somapriz-accent);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-success:hover,
.btn-success:focus
{
	color: #FFFFFF;
	background: var(--somapriz-accent-dark);
	border-color: var(--somapriz-accent-dark);
}

.btn-default,
.btn-secondary
{
	color: var(--somapriz-ink);
	background: #FFFFFF;
	border: 1px solid #CADAE2;
}

.btn-default:hover,
.btn-default:focus,
.btn-secondary:hover,
.btn-secondary:focus
{
	color: var(--somapriz-accent-dark);
	background: #F5FAFC;
	border-color: var(--somapriz-accent);
}

.btn:focus-visible,
a:focus-visible,
button:focus-visible
{
	outline: 2px solid var(--somapriz-accent);
	outline-offset: 2px;
}

.at-communications-intro
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px;
}

.at-communications-summary
{
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}

.at-summary-card
{
    border: 1px solid var(--somapriz-border, #e4eaec);
    border-radius: 8px;
    background: #fff;
    color: inherit;
    padding: 16px;
    text-align: left;
    cursor: pointer;
}

.at-summary-card span,
.at-summary-card strong
{
    display: block;
}

.at-summary-card span
{
    color: var(--somapriz-muted, #76838f);
    font-size: 13px;
}

.at-summary-card strong
{
    margin-top: 5px;
    font-size: 26px;
}

.at-summary-card.is-active
{
    border-color: var(--somapriz-primary, #0c756f);
    box-shadow: 0 0 0 2px rgba(12, 117, 111, .12);
}

.at-alerts-badge
{
    position: absolute;
    top: 7px;
    right: 5px;
    min-width: 18px;
}

.at-alerts-menu
{
    width: min(390px, calc(100vw - 24px));
    max-height: 70vh;
    overflow-y: auto;
}

.at-alerts-item
{
    white-space: normal;
    overflow-wrap: anywhere;
    border-bottom: 1px solid var(--somapriz-border, #e4eaec);
    padding-top: 12px;
    padding-bottom: 12px;
}

#transport-at-status strong
{
    font-size: 1rem;
}

@media (max-width: 991px)
{
    .at-communications-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 575px)
{
    .at-communications-intro { align-items: stretch; flex-direction: column; }
    .at-communications-summary { grid-template-columns: 1fr; }
}

.table
{
	color: var(--somapriz-ink);
}

.table thead th,
.table tfoot th
{
	padding: 12px 15px;
	color: #526573;
	background: #F8FBFC;
	border-top: 0;
	border-bottom: 1px solid var(--somapriz-surface-border);
	font-size: .86rem;
	font-weight: 650;
}

.table td
{
	padding: 14px 15px;
	border-color: var(--somapriz-surface-border);
}

.table-hover tbody tr:hover
{
	background: #F8FBFC;
}

.badge
{
	border-radius: 5px;
	font-size: .78rem;
	font-weight: 650;
}

.badge-primary,
.badge-info
{
	color: var(--somapriz-accent-dark);
	background: #E6F2F1;
}

.badge-success
{
	color: #176E60;
	background: #E3F6F0;
}

.badge-warning
{
	color: #8A5A12;
	background: #FFF2D6;
}

.badge-danger
{
	color: #A7353F;
	background: #FCEBED;
}

.dropdown-menu,
.mm-window
{
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow);
}

.mm-header,
.mm-footer
{
	border-color: var(--somapriz-surface-border);
}

.mm-window.mm-size-pdf .document-pdf-download
{
	font-size: 1em;
	font-weight: 400;
	white-space: nowrap;
	text-decoration: underline;
}

.mm-window .mm-body
{
	padding: 20px 28px;
}

.mm-window:not(.mm-size-pdf) > .mm-header
{
	padding-right: 28px;
	padding-left: 28px;
}

.nav-tabs
{
	border-bottom: 1px solid var(--somapriz-surface-border);
}

.nav-tabs .nav-link
{
	color: var(--somapriz-muted);
	border: 0;
	border-bottom: 2px solid transparent;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link.active
{
	color: var(--somapriz-accent-dark);
	background: transparent;
	border-bottom-color: var(--somapriz-accent);
}

/* SomaPriz: existing table and select components */

:root
{
	--g-bg: #FFFFFF;
	--g-border: #E2EBEF;
	--g-border-light: #EFF4F6;
	--g-header-bg: #F8FBFC;
	--g-header-text: #61717E;
	--g-text: #24313D;
	--g-muted: #8796A0;
	--g-accent: #0C756F;
	--g-hover: #F5FAFC;
	--g-radius: 7px;
	--g-font: var(--somapriz-font-family) !important;
}

.simpleTable-controls
{
	flex-wrap: wrap;
	gap: 16px;
	margin-bottom: 16px;
}

.simpleTable
{
	padding: 18px;
	background: var(--somapriz-surface-bg);
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: var(--somapriz-shadow-sm);
}

.simpleTable-search
{
	padding: 0;
}

.simpleTable-search input,
.simpleTable-limit,
.simpleTable-filter-btn,
.simpleTable-columns-btn
{
	min-height: 42px;
	border-color: #CADAE2;
	border-radius: 5px;
	box-shadow: none;
}

.simpleTable-search input
{
	width: min(380px, 100%);
	padding: 10px 14px;
}

.simpleTable-custom-btn,
.simpleTable-custom-btn.btn-success
{
	min-height: 42px;
	color: #FFFFFF;
	background: var(--somapriz-accent);
	border-color: var(--somapriz-accent);
	border-radius: 5px;
	font-weight: 650;
}

.simpleTable-custom-btn:hover,
.simpleTable-custom-btn.btn-success:hover
{
	color: #FFFFFF;
	background: var(--somapriz-accent-dark);
	border-color: var(--somapriz-accent-dark);
}

.simpleTable-table-wrapper
{
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 7px;
	box-shadow: none;
	overflow-x: auto;
}

.simpleTable-head
{
	background: #F8FBFC;
}

.simpleTable-th
{
	color: #526573;
	font-size: .86rem;
	font-weight: 650;
}

.simpleTable-td
{
	color: var(--somapriz-ink);
}

.simpleTable-row:hover
{
	background: #F8FBFC;
}

.simpleTable-footer
{
	color: var(--somapriz-muted);
}

.simpleTable-page.active
{
	color: var(--somapriz-accent-dark);
	background: var(--somapriz-menu-active);
}

.smartSelect-control
{
	height: 42px;
	min-height: 42px;
}

.smartSelect-option:hover,
.smartSelect-option[aria-selected="true"]
{
	background: #E6F2F1;
}

.smartSelect-article-option
{
	flex: 1 1 auto;
	overflow: hidden;
}

.mm-backdrop
{
	background: rgba(24, 45, 58, .34);
}

.alert
{
	border-radius: 5px;
	box-shadow: none;
}

.alert-warning
{
	color: #805618;
	background: #FFF7E6;
	border-color: #F2DDAF;
}

.alert-danger
{
	color: #963D46;
	background: #FDF0F1;
	border-color: #F2D1D5;
}

@media (max-width: 1100px)
{
	.dashboard-metrics
	{
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 767px)
{
	.page-content
	{
		padding: 24px 16px;
	}

	.dashboard-heading
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.dashboard-metrics
	{
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.dashboard-metric,
	.dashboard-metric:first-child,
	.dashboard-metric:nth-child(3),
	.dashboard-metric:last-child
	{
		min-height: 0;
		padding: 18px;
	}

	.section-heading
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.workspace-surface
	{
		padding: 18px;
	}

	.account-tabs .nav-tabs
	{
		padding: 0 4px;
	}

	.account-tab-panel
	{
		padding: 22px 18px;
	}

	.account-section
	{
		grid-template-columns: 1fr;
	}

	.account-section-icon
	{
		width: 38px;
		height: 38px;
	}

	.saft-mode-control
	{
		grid-template-columns: 1fr;
	}

	.saft-fields
	{
		padding: 18px;
	}

	.saft-actions .btn
	{
		width: 100%;
	}

	.cash-vat-status-line
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.cash-vat-card-grid
	{
		grid-template-columns: 1fr;
	}

	.cash-vat-card-wide
	{
		grid-column: auto;
	}

	.cash-vat-action-intro
	{
		margin-left: 0;
	}

	.cash-vat-action-footer .btn
	{
		width: 100%;
	}

	.simpleTable
	{
		padding: 12px;
	}

	.document-editor-toolbar
	{
		align-items: flex-start;
		flex-direction: column;
	}

	.document-editor-state
	{
		justify-content: flex-start;
	}

	.document-submit-bar
	{
		flex-direction: column;
	}

	.document-submit-bar .btn
	{
		width: 100%;
		margin-right: 0 !important;
	}
}

/* SomaPriz: account access pages */

.somapriz-login
{
	min-width: 320px;
	background: #FFFFFF;
}

.somapriz-login .login-shell
{
	display: grid;
	grid-template-columns: minmax(0, 52%) minmax(0, 48%);
	min-height: 100vh;
	min-height: 100svh;
}

.somapriz-login .login-brand-panel
{
	min-width: 0;
	padding: clamp(32px, 4.5vw, 72px);
	background: var(--somapriz-brand-panel-bg);
}

.somapriz-login .login-brand-content
{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: calc(100vh - clamp(64px, 9vw, 144px));
	min-height: calc(100svh - clamp(64px, 9vw, 144px));
}

.somapriz-login .login-brand,
.somapriz-login .login-mobile-brand
{
	display: flex;
	align-items: center;
	gap: 12px;
}

.somapriz-login .login-brand-mark
{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 43px;
	height: 43px;
	flex: 0 0 43px;
}

.somapriz-login .login-brand-mark img
{
	display: block;
	width: 42px;
	height: 42px;
	object-fit: contain;
}

.somapriz-login .login-brand-name
{
	color: var(--somapriz-ink);
	font-size: 1.65rem;
	font-weight: 750;
	letter-spacing: -.035em;
}

.somapriz-login .login-brand-message
{
	max-width: 700px;
	margin: auto 0;
	padding: 72px 0;
}

.somapriz-login .login-eyebrow
{
	margin: 0 0 18px;
	color: var(--somapriz-accent-dark);
	font-size: .75rem;
	font-weight: 700;
	letter-spacing: .2em;
	text-transform: uppercase;
}

.somapriz-login .login-brand-message h1
{
	margin: 0;
	font-size: clamp(2.7rem, 3.7vw, 4rem);
	font-weight: 750;
	letter-spacing: -.055em;
	line-height: 1.06;
}

.somapriz-login .login-brand-message > p:last-child
{
	max-width: 570px;
	margin: 28px 0 0;
	color: #5E7180;
	font-size: clamp(1rem, 1.5vw, 1.28rem);
	line-height: 1.55;
}

.somapriz-login .login-form-panel
{
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 62px clamp(32px, 5.3vw, 92px);
	background: #FFFFFF;
}

.somapriz-login .login-form-wrap
{
	width: min(100%, 510px);
	margin: auto;
}

.somapriz-login .login-mobile-brand
{
	display: none;
}

.somapriz-login .login-heading
{
	margin-bottom: 28px;
}

.somapriz-login .login-heading h2
{
	margin: 0;
	font-size: clamp(1.9rem, 2.4vw, 2.45rem);
	line-height: 1.17;
}

.somapriz-login .login-heading > p:last-child
{
	margin: 12px 0 0;
	color: var(--somapriz-muted);
	font-size: 1rem;
	line-height: 1.5;
}

.somapriz-login .login-field
{
	margin-bottom: 20px;
}

.somapriz-login .login-field label
{
	display: block;
	margin-bottom: 8px;
	font-size: .93rem;
}

.somapriz-login .login-field .form-control,
.somapriz-login .login-field .smartSelect-control
{
	width: 100%;
	min-height: 52px;
	padding: 12px 14px;
	font-size: .96rem;
}

.somapriz-login .login-password
{
	position: relative;
}

.somapriz-login .login-password .form-control
{
	padding-right: 48px;
}

.somapriz-login .login-password-toggle
{
	position: absolute;
	top: 50%;
	right: 6px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	color: var(--somapriz-muted);
	background: transparent;
	border: 0;
	transform: translateY(-50%);
	cursor: pointer;
}

.somapriz-login .login-submit
{
	width: 100%;
	min-height: 54px;
	margin-top: 8px;
	padding: 12px 20px;
	color: #FFFFFF;
	background: var(--somapriz-accent);
	border: 1px solid var(--somapriz-accent);
	border-radius: 5px;
	font-size: 1rem;
	font-weight: 700;
	cursor: pointer;
}

.somapriz-login .login-submit:hover,
.somapriz-login .login-submit:focus
{
	background: var(--somapriz-accent-dark);
	border-color: var(--somapriz-accent-dark);
}

.somapriz-login .login-submit:disabled
{
	opacity: .55;
	cursor: not-allowed;
}

.somapriz-login .login-register
{
	margin: 20px 0 0;
	color: var(--somapriz-muted);
	font-size: .93rem;
}

.somapriz-login .login-register a
{
	font-weight: 650;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.somapriz-login .login-footer
{
	margin-top: 65px;
	color: var(--somapriz-muted);
	font-size: .78rem;
}

.somapriz-login .login-footer p
{
	margin: 0;
}

.somapriz-login .login-demo-alert
{
	margin-bottom: 22px;
	padding: 10px 14px;
	color: #805618;
	background: #FFF7E6;
	border: 1px solid #F2DDAF;
	border-radius: 5px;
	font-size: .86rem;
}

.somapriz-login .login-association-field[hidden]
{
	display: none !important;
}

@media (max-width: 900px)
{
	.somapriz-login .login-shell
	{
		grid-template-columns: minmax(0, 46%) minmax(0, 54%);
	}

	.somapriz-login .login-brand-panel
	{
		padding: 32px;
	}

	.somapriz-login .login-form-panel
	{
		padding: 42px 32px;
	}
}

@media (max-width: 700px)
{
	.somapriz-login .login-shell
	{
		display: block;
	}

	.somapriz-login .login-brand-panel
	{
		padding: 24px;
	}

	.somapriz-login .login-brand-content
	{
		min-height: 0;
	}

	.somapriz-login .login-brand-message
	{
		padding: 38px 0 8px;
	}

	.somapriz-login .login-brand-message h1
	{
		font-size: clamp(2rem, 8vw, 3rem);
	}

	.somapriz-login .login-brand-message > p:last-child
	{
		margin-top: 14px;
		font-size: 1rem;
	}

	.somapriz-login .login-form-panel
	{
		padding: 38px 24px 52px;
	}
}


/* Pormenores da empresa (estilos da página) */
.text-warning
    {
        color: #d09c01 !important;
    }

    .at-preview-section
    {
        border: 1px solid #e4eaec;
        border-radius: 4px;
        padding: 12px;
        margin-bottom: 12px;
    }

    .at-preview-section h5
    {
        margin: 0 0 10px 0;
        font-size: 14px;
        font-weight: 600;
    }

    .at-preview-row
    {
        display: grid;
        grid-template-columns: minmax(130px, 38%) 1fr;
        gap: 10px;
        padding: 6px 0;
        border-top: 1px solid #f1f4f5;
    }

    .at-preview-row:first-child
    {
        border-top: 0;
    }

    .at-preview-label
    {
        color: #526069;
        font-weight: 500;
    }

    .at-preview-socios
    {
        display: grid;
        grid-template-columns: 120px 1fr 140px 120px;
        gap: 10px;
        padding: 6px 0;
        border-top: 1px solid #f1f4f5;
    }

    .at-preview-socios.at-preview-head
    {
        border-top: 0;
        color: #526069;
        font-weight: 500;
    }

    .at-preview-empty
    {
        color: #a3afb7;
    }

    .empresa-upload-column
    {
        display: flex;
    }

    .empresa-upload-panel
    {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        width: 100%;
    }

    .empresa-upload-panel .panel-body
    {
        display: flex;
        flex: 1 1 auto;
    }

    .empresa-logo-upload
    {
        align-items: center;
        display: grid;
        gap: 20px;
        grid-template-columns: 120px minmax(0, 1fr);
        width: 100%;
    }

    .empresa-logo-image
    {
        display: block;
        max-height: 110px;
        max-width: 110px;
        object-fit: contain;
    }

    .empresa-upload-content
    {
        min-width: 0;
        width: 100%;
    }

    .empresa-upload-content>p
    {
        color: #667270;
        margin: 0 0 14px;
    }

    .empresa-upload-actions
    {
        display: grid;
        gap: 8px;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .empresa-upload-actions .empresa-upload-primary
    {
        grid-column: 1 / -1;
    }

    .empresa-data-panel .panel-title
    {
        padding-right: 150px;
    }

    .empresa-form-section
    {
        border-top: 1px solid #edf1ef;
        padding: 28px 0 10px;
    }

    .empresa-form-section:first-child
    {
        border-top: 0;
        padding-top: 0;
    }

    .empresa-form-section-header
    {
        margin-bottom: 20px;
    }

    .empresa-form-section h2,
    .empresa-form-section h4
    {
        font-size: 1.05rem;
        font-weight: 700;
        margin: 0 0 6px;
    }

    .empresa-form-section-header p
    {
        color: #667270;
        margin: 0;
    }

    .empresa-field-validation
    {
        margin-top: 6px;
    }

    @media (max-width: 767px)
    {

        .at-preview-row,
        .at-preview-socios
        {
            grid-template-columns: 1fr;
        }

        .at-preview-socios.at-preview-head
        {
            display: none;
        }
    }

    @media (max-width: 575px)
    {
        .empresa-logo-upload
        {
            grid-template-columns: 1fr;
        }

        .empresa-data-panel .panel-heading
        {
            padding-bottom: 20px;
        }

        .empresa-data-panel .panel-title
        {
            padding-right: 20px;
        }

        .empresa-data-panel .panel-actions
        {
            position: static;
            padding: 0 20px;
            transform: none;
        }

        .empresa-data-panel .panel-actions .btn
        {
            width: 100%;
        }
    }


/* Editor de documentos (estilos da página) */
.document-editor-page .page-content
{
    padding: 24px;
}

#document-editor .document-workspace-section
{
    padding: 16px;
}

#article-fields .document-section-title
{
    margin-bottom: 12px;
}

#article-fields .document-lines-footer
{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 10px;
}

.document-lines-scroll-hint
{
    color: var(--somapriz-muted);
    font-size: 12px;
}

@container document-editor-lines (min-width: 1500px)
{
    .document-lines-scroll-hint { display: none; }
}

#document-editor > .row
{
    margin-right: 0;
    margin-left: 0;
}

#document-form
{
    padding-right: 0;
    padding-left: 0;
}

#article-fields
{
    container-type: inline-size;
    container-name: document-editor-lines;
}

/* Uma única série selecionada é só de leitura, não um campo em erro.
   A seleção preenchida não altera nem representa uma validação fiscal/AT. */
#doc-serie:disabled:not(.is-invalid):has(option:checked:not([value=""])) + .smartSelect .smartSelect-control
{
    border-left: 1px solid #CADAE2 !important;
    padding-right: 10px;
    color: var(--somapriz-ink);
    background: var(--somapriz-surface-subtle);
}

#doc-serie:disabled:not(.is-invalid):has(option:checked:not([value=""])) + .smartSelect .smartSelect-arrow
{
    display: none;
}

#series-field .smartSelect-control
{
    padding-top: 4px;
    padding-bottom: 4px;
    line-height: 1.2;
}

#doc-cliente + .smartSelect .smartSelect-control
{
    padding-top: 4px;
    padding-bottom: 4px;
    line-height: 1.2;
}

#doc-observacoes
{
    height: 42px;
    min-height: 42px;
    resize: vertical;
}

.smartSelect-customer-title
{
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.smartSelect-customer-name
{
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.smartSelect-customer-taxid
{
    flex-shrink: 0;
    font-weight: 400;
    white-space: nowrap;
}

.smartSelect-customer-code
{
    font-size: 11px;
    line-height: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#document-editor,
#document-editor > .panel,
#document-form,
#article-fields
{
	min-width: 0;
	max-width: 100%;
}

.document-lines-scroll
{
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: auto;
	contain: layout;
	overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    scrollbar-color: #9FAFB5 #EFF3F4;
}

.document-lines-scroll::-webkit-scrollbar { height: 10px; }
.document-lines-scroll::-webkit-scrollbar-track { background: #EFF3F4; }
.document-lines-scroll::-webkit-scrollbar-thumb { background: #9FAFB5; border: 2px solid #EFF3F4; border-radius: 3px; }

.document-lines-scroll:focus-visible
{
	outline: 2px solid var(--somapriz-accent);
	outline-offset: 2px;
}

#document-lines
{
    table-layout: fixed;
    width: 100%;
    min-width: 1500px;
    border-collapse: separate;
    border-spacing: 0;
    margin-bottom: 0;
    font-size: 14px;
}

#document-lines th,
#document-lines td
{
    padding: 6px 4px;
    /* Sobrepõe apenas no editor o alinhamento global middle !important. */
    vertical-align: top !important;
    overflow-wrap: anywhere;
}

/* Campos largos, uma fila por artigo. Colunas adicionais alcançáveis por
   scroll local em vez de comprimir os inputs ou criar cartões. */
#document-lines .document-line-drag { width: 42px; }
#document-lines .document-line-article { width: 164px; }
#document-lines .document-line-quantity { width: 156px; }
#document-lines .document-line-price { width: 132px; }
#document-lines .document-line-discount { width: 104px; }
#document-lines .document-line-discount-value { width: 112px; }
#document-lines .document-line-tax { width: 148px; }
#document-lines .document-line-tax-value { width: 108px; }
#document-lines .document-line-total { width: 112px; }
#document-lines .document-line-actions { width: 40px; }

/* Sem colunas monetárias, não reservar os 1500 px da tabela valorizada.
   A descrição usa apenas o espaço restante, mantendo quantidade/unidade
   visíveis em desktop e scroll local compacto nos ecrãs pequenos. */
#document-lines.document-lines-unvalued
{
    min-width: 680px;
}

#document-lines .document-line-drag,
#document-lines .document-line-actions
{
    position: sticky;
    z-index: 1;
    background: #FFFFFF;
}

#document-lines .document-line-drag { left: 0; border-right: 1px solid #EFF3F4; }
#document-lines .document-line-actions { right: 0; border-left: 1px solid #EFF3F4; }
#document-lines th.document-line-drag,
#document-lines th.document-line-actions { z-index: 2; background: #F8FBFC; }

#document-lines tbody
{
    border: 0;
    background: transparent;
    box-shadow: none;
}

#document-lines tbody > tr > td
{
    border-top: 1px solid var(--somapriz-surface-border);
}

#document-lines .document-line-detail-toggle
{
    position: absolute;
    top: 1px;
    right: 1px;
    height: 40px;
    min-height: 40px;
    width: 24px;
    min-width: 24px;
    padding: 0;
    font-size: 12px;
    font-weight: 400;
    white-space: nowrap;
    background: #FFFFFF;
    border: 0;
    border-left: 1px solid #e5e8eb;
    color: var(--somapriz-muted);
}

#document-lines .document-line-detail-toggle::before
{
    content: "";
    display: inline-block;
    border-top: 5px solid currentColor;
    border-right: 4px solid transparent;
    border-left: 4px solid transparent;
    vertical-align: middle;
}

#document-lines .document-line-detail-toggle[aria-expanded="true"]::before
{
    transform: rotate(180deg);
}

#document-lines .document-line-detail-toggle[aria-expanded="true"]
{
    color: var(--somapriz-accent-dark);
    background: #E8F4F2;
}

#document-lines .document-line-detail-toggle:focus-visible
{
    outline: 2px solid var(--somapriz-accent);
    outline-offset: -3px;
}

.document-line-quantity-fields
{
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 4px;
}

#document-lines .document-line-quantity-fields .smartSelect-control,
#document-lines .document-line-quantity-fields .document-line-unit
{
    padding-right: 6px;
    padding-left: 6px;
}

#document-lines .document-line-quantity-fields .smartSelect-control
{
    padding-right: 16px;
}

#document-lines .smartSelect-arrow
{
    right: 6px;
    border-right-width: 4px;
    border-left-width: 4px;
}

#document-lines .smartSelect-clear
{
    right: 17px;
    width: 18px;
}

#document-lines .document-line-article .smartSelect:has(.smartSelect-clear:not([hidden])) .smartSelect-control
{
    padding-right: 37px;
}

#document-lines .document-line-quantity-fields .smartSelect-value small,
#document-lines .document-line-quantity-fields [data-unit-name]
{
    display: none;
}

#document-lines [hidden]
{
    display: none !important;
}

#document-lines .document-line-move
{
    display: none;
}

#document-lines .document-line-actions .btn,
#document-lines [data-drag-line]
{
    padding: 9px 2px;
    height: 42px;
}

#document-lines [data-remove-line]
{
    min-width: 24px;
    min-height: 38px;
    font-size: 16px;
    color: #B02F3A;
    border: 0;
    background: transparent;
}

#document-lines [data-remove-line]:hover,
#document-lines [data-remove-line]:focus-visible
{
    background: #FFF0F1;
}

#document-lines [data-remove-line] i
{
    margin: 0;
}

#document-lines .smartSelect-disabled,
#document-lines .smartSelect-disabled .smartSelect-control
{
    opacity: 1;
    color: var(--somapriz-ink);
}

#document-lines [data-line-total],
#document-lines .document-line-money
{
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 42px;
    font-weight: 650;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

#document-lines .document-line-money
{
    font-weight: 400;
    padding-right: 6px;
}

@media (max-width: 767px)
{
    .document-editor-page .page-content { padding: 12px; }
    #document-editor .document-workspace-section { padding: 12px; }
    #document-lines { min-width: 1560px; }
    #document-lines.document-lines-unvalued { min-width: 740px; }
    #document-lines .document-line-actions { width: 100px; white-space: nowrap; }
    #document-lines .document-line-move { display: inline-block; width: 28px; }
    #article-fields .document-lines-footer { align-items: flex-start; }
    .document-lines-scroll-hint { max-width: 150px; }
}

    #document-lines th
    {
        text-align: left;
        white-space: nowrap;
    }

    #document-lines th.document-line-price,
    #document-lines th.document-line-discount,
    #document-lines th.document-line-discount-value,
    #document-lines th.document-line-tax-value,
    #document-lines th.document-line-total
    {
        text-align: right;
    }

    #article-search-results .simpleTable-th
    {
        text-align: left;
    }

    #document-lines .form-control
    {
        height: 42px;
        font-size: 14px;
        padding-right: 6px;
        padding-left: 6px;
        font-variant-numeric: tabular-nums;
        border: 1px solid #e5e8eb !important;
        box-shadow: none;
    }

    #document-lines input[type=number]
    {
        text-align: right;
        appearance: textfield;
    }

    #document-lines input::-webkit-inner-spin-button
    {
        appearance: none;
    }

    #document-lines .smartSelect-control
    {
        height: 42px;
        min-height: 42px;
        padding-top: 4px;
        padding-bottom: 4px;
        padding-right: 20px;
        padding-left: 6px;
        line-height: 1.2;
        font-size: 13px;
        border: 1px solid #e5e8eb !important;
    }

    #document-lines .description-field
    {
        position: relative;
        display: flex;
        align-items: center;
        gap: 4px;
    }

    #document-lines .description-field input
    {
        min-width: 0;
        flex: 1;
        min-height: 42px;
        line-height: 1.4;
        padding: 9px 28px 9px 8px;
    }

    #document-lines .percentage-field
    {
        position: relative;
    }

    #document-lines .percentage-field input
    {
        padding-right: 22px;
    }

    #document-lines .percentage-field span
    {
        position: absolute;
        right: 7px;
        top: 9px;
        color: #777;
    }

    #document-lines [data-drag-line]
    {
        cursor: grab;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        width: 34px;
        min-height: 42px;
        padding: 0 2px;
        color: var(--somapriz-muted);
        font-size: 11px;
        font-weight: 400;
    }

    #document-lines .document-line-grip
    {
        width: 8px;
        height: 16px;
        background: radial-gradient(circle, currentColor 1px, transparent 1.2px) 0 0 / 4px 4px;
    }

    #document-lines .form-control,
    #document-lines .smartSelect-control,
    #document-lines .document-line-unit,
    #document-lines .btn
    {
        border-radius: 3px;
    }

    #document-lines tbody.dragging
    {
        opacity: .45;
    }

#document-lines.document-lines-dragging,
#document-lines.document-lines-dragging [data-drag-line] { cursor: grabbing; }

#document-lines .document-line-drop-before > tr > td
{
    box-shadow: inset 0 3px 0 var(--somapriz-accent);
    background-color: #F2FAF8;
}

#document-lines .document-line-drop-after > tr > td
{
    box-shadow: inset 0 -3px 0 var(--somapriz-accent);
    background-color: #F2FAF8;
}

#document-lines .document-line-reordered > tr > td
{
    background-color: #DCF2E9;
}

.document-line-drag-preview
{
    position: fixed;
    z-index: 2000;
    top: 0;
    left: 0;
    width: min(360px, calc(100vw - 16px));
    padding: 12px 16px;
    color: var(--somapriz-ink);
    background: #FFFFFF;
    border: 2px solid var(--somapriz-accent);
    border-radius: 3px;
    box-shadow: var(--somapriz-shadow);
    font-size: 14px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}

/* Indicação persistente de preenchimento obrigatório, sem simular um erro. */
.form-control[required]:not(:disabled):not([readonly]),
.smartSelect-required:not(.smartSelect-disabled) .smartSelect-control
{
	border-left: 3px solid #ff8c00 !important;
}

.document-line-unit
{
	display: flex;
	min-height: 42px;
	padding: 5px 10px;
	flex-direction: column;
	justify-content: center;
	background: #F8FBFC;
	border: 1px solid var(--somapriz-surface-border);
	border-radius: 5px;
}

.document-line-unit[hidden]
{
	display: none;
}

.document-line-unit strong
{
	line-height: 1.15;
}

.document-line-unit small
{
	color: var(--somapriz-muted);
	font-size: 11px;
	line-height: 1.15;
}
.document-origin-line + .document-origin-line
{
	margin-top: .5rem;
}
