/*
Theme Name: SIS App Opere Minori
Theme URI: http://www.sipal.it
Author: Paolo Faccini 
Author URI: http://www.sipal.it
Description: 
 Version: 1.0.55.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
Text Domain: 2603_sis_appopereminori
Domain Path: /languages
*/

:root {
	--sis-safe-area-top: env(safe-area-inset-top, 0px);
	--sis-safe-area-right: env(safe-area-inset-right, 0px);
	--sis-safe-area-bottom: env(safe-area-inset-bottom, 0px);
	--sis-safe-area-left: env(safe-area-inset-left, 0px);
	--sis-touch-target: 44px;
	--sis-brand-primary: #005cb9;
	--sis-brand-primary-dark: #023e58;
	--sis-brand-success: #007134;
	--sis-brand-neutral-dark: #1a1a1a;
	--sis-brand-neutral-soft: #dfeceb;
	--sis-brand-white: #ffffff;
}

[data-bs-theme='light'] {
	--bs-primary: var(--sis-brand-primary);
	--bs-primary-rgb: 0, 92, 185;
	--bs-link-color: var(--sis-brand-primary);
	--bs-link-hover-color: var(--sis-brand-primary-dark);
	--bs-success: var(--sis-brand-success);
	--bs-success-rgb: 0, 113, 52;
	--bs-body-bg: var(--sis-brand-white);
	--bs-body-bg-rgb: 255, 255, 255;
	--bs-body-color: var(--sis-brand-neutral-dark);
	--bs-body-color-rgb: 26, 26, 26;
	--bs-tertiary-bg: #f5f9fc;
	--bs-secondary-bg: var(--sis-brand-neutral-soft);
	--bs-border-color: #c3d4e4;
	--bs-border-color-rgb: 195, 212, 228;
	--bs-primary-bg-subtle: #d9e9f8;
	--bs-primary-border-subtle: #9ac1e6;
	--bs-info-bg-subtle: #dfeceb;
	--bs-info-border-subtle: #9dcdb7;
}

html,
body {
	height: 100%;
}

body.sis-webapp {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	padding-top: var(--sis-safe-area-top);
	padding-right: var(--sis-safe-area-right);
	padding-bottom: var(--sis-safe-area-bottom);
	padding-left: var(--sis-safe-area-left);
}

.sis-webapp .app-main {
	padding-bottom: max(0.75rem, var(--sis-safe-area-bottom));
}

.sis-webapp .btn,
.sis-webapp .form-control,
.sis-webapp .form-select,
.sis-webapp .input-group-text,
.sis-webapp .nav-link,
.sis-webapp .dropdown-item,
.sis-webapp .page-link {
	min-height: var(--sis-touch-target);
}

.sis-webapp .table td,
.sis-webapp .table th {
	vertical-align: middle;
}

.sis-webapp .sis-sort-asc,
.sis-webapp .sis-sort-desc {
	position: relative;
	padding-right: 1.1rem;
}

.sis-webapp .sis-sort-asc::after,
.sis-webapp .sis-sort-desc::after {
	position: absolute;
	right: 0.35rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.72rem;
	color: var(--bs-secondary-color, #6c757d);
}

.sis-webapp .sis-sort-asc::after {
	content: "▲";
}

.sis-webapp .sis-sort-desc::after {
	content: "▼";
}

.sis-webapp .table-responsive {
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
}

.sis-webapp .app-header .navbar-nav .nav-link {
	display: inline-flex;
	align-items: center;
}

.sis-webapp .sis-user-role-badge {
	display: inline-flex;
	align-items: center;
	margin-left: 0.45rem;
	padding: 0.16rem 0.5rem;
	border-radius: 999px;
	background: rgba(0, 92, 185, 0.12);
	border: 1px solid rgba(0, 92, 185, 0.22);
	color: var(--sis-brand-primary-dark);
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1.1;
	vertical-align: middle;
	white-space: nowrap;
}

.sis-webapp .sis-user-role-badge--light {
	margin-left: 0;
	background: rgba(255, 255, 255, 0.18);
	border-color: rgba(255, 255, 255, 0.32);
	color: #fff;
}

.sis-webapp .app-sidebar {
	display: flex;
	flex-direction: column;
}

.sis-webapp .app-sidebar .sidebar-wrapper {
	flex: 1 1 auto;
	min-height: 0;
}

.sis-webapp .app-sidebar .sidebar-footer {
	flex: 0 0 auto;
	background: rgba(255, 255, 255, 0.04);
	display: block;
}

.sis-webapp .app-sidebar .js-apk-btn,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn,
.sis-webapp .app-sidebar .js-theme-toggle-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 2.6rem;
	border-radius: 0.8rem;
	border: 1px solid rgba(255, 255, 255, 0.3);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.09) 0%, rgba(255, 255, 255, 0.04) 100%);
	color: #fff;
	font-weight: 600;
	box-shadow: 0 6px 16px rgba(10, 20, 30, 0.2);
	transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease, background 0.16s ease;
}

.sis-webapp .app-sidebar .js-apk-btn {
	margin-top:8px;
}

.sis-webapp .app-sidebar .js-apk-btn:hover,
.sis-webapp .app-sidebar .js-apk-btn:focus-visible,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn:hover,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn:focus-visible,
.sis-webapp .app-sidebar .js-theme-toggle-btn:hover,
.sis-webapp .app-sidebar .js-theme-toggle-btn:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 10px 20px rgba(10, 20, 30, 0.24);
	border-color: rgba(255, 255, 255, 0.45);
}

.sis-webapp .app-sidebar .js-apk-btn .bi,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn .bi,
.sis-webapp .app-sidebar .js-theme-toggle-btn .bi {
	font-size: 1rem;
}

.sis-webapp .app-sidebar .js-apk-btn.is-on,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn.is-on {
	border-color: rgba(13, 202, 240, 0.8);
	background: linear-gradient(180deg, rgba(13, 202, 240, 0.35) 0%, rgba(13, 110, 253, 0.45) 100%);
	box-shadow: 0 10px 22px rgba(13, 110, 253, 0.34);
}

.sis-webapp .app-sidebar .js-apk-btn.is-off,
.sis-webapp .app-sidebar .js-anti-idle-toggle-btn.is-off {
	border-color: rgba(255, 255, 255, 0.25);
	background: linear-gradient(180deg, rgba(108, 117, 125, 0.2) 0%, rgba(73, 80, 87, 0.2) 100%);
}

[data-bs-theme='light'] .sis-webapp .app-sidebar .sidebar-footer .btn {
	color: var(--sis-brand-primary-dark) !important;
	border-color: rgba(0, 92, 185, 0.35);
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(223, 236, 235, 0.92) 100%);
}

[data-bs-theme='light'] .sis-webapp .app-sidebar .sidebar-footer .btn:hover,
[data-bs-theme='light'] .sis-webapp .app-sidebar .sidebar-footer .btn:focus-visible {
	color: var(--sis-brand-primary-dark) !important;
	border-color: rgba(0, 92, 185, 0.55);
}

.sis-pwa-install-prompt {
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 1080;
	padding: 0.75rem;
	padding-bottom: max(0.75rem, calc(0.75rem + var(--sis-safe-area-bottom)));
	pointer-events: none;
}

.sis-pwa-install-prompt.is-visible {
	pointer-events: auto;
}

.sis-pwa-install-prompt__inner {
	max-width: 980px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	padding: 0.75rem 0.85rem;
	border-radius: 0.9rem;
	border: 1px solid rgba(0, 92, 185, 0.25);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 0.4rem 1.2rem rgba(10, 20, 30, 0.18);
	backdrop-filter: blur(4px);
}

.sis-pwa-install-prompt__text-wrap {
	min-width: 0;
}

.sis-pwa-install-prompt__title {
	display: block;
	font-size: 0.95rem;
	line-height: 1.2;
}

.sis-pwa-install-prompt__text {
	font-size: 0.84rem;
	line-height: 1.25;
	color: var(--bs-secondary-color, #6c757d);
}

.sis-pwa-install-prompt__actions {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	flex-shrink: 0;
}

@media (max-width: 1199.98px) {
	.sis-webapp .app-content-header .breadcrumb {
		display: none;
	}

	.sis-webapp .app-main,
	.sis-webapp .app-main .app-content,
	.sis-webapp .app-main .container-fluid {
		max-width: 100%;
	}

	.sis-webapp .app-header {
		padding-left: 0.25rem;
		padding-right: 0.25rem;
	}

	.sis-webapp .app-header .navbar-nav {
		gap: 0.1rem;
	}

	.sis-webapp .app-sidebar {
		width: 16.5rem;
	}

	.sis-webapp .app-sidebar .nav-link {
		padding-top: 0.55rem;
		padding-bottom: 0.55rem;
	}

	.sis-pwa-install-prompt {
		display: block;
	}

	.sis-webapp .app-content-header h3 {
		font-size: 1.15rem;
	}

	.sis-webapp .app-content .card {
		margin-bottom: 0.875rem;
	}

	.sis-webapp .app-content .card-header,
	.sis-webapp .app-content .card-body,
	.sis-webapp .app-content .card-footer {
		padding: 0.85rem;
	}

	.sis-webapp .small-box {
		margin-bottom: 0.85rem;
	}

	.sis-webapp .small-box .inner h3 {
		font-size: 1.55rem;
	}

	.sis-webapp .sis-table-main {
		font-size: 0.95rem;
	}

	.sis-webapp .js-inspection-table-toolbar,
	.sis-webapp .js-opera-table-toolbar,
	.sis-webapp .js-inspection-table-pager,
	.sis-webapp .js-opera-table-pager {
		padding-left: 0.6rem !important;
		padding-right: 0.6rem !important;
	}

	.sis-webapp .js-inspection-table-toolbar .input-group,
	.sis-webapp .js-opera-table-toolbar .input-group {
		max-width: 100% !important;
	}

	.sis-webapp .app-footer {
		font-size: 0.9rem;
		padding: 0.6rem 0.9rem;
	}
}

@media (max-width: 991.98px) {
	.sis-webapp .app-header {
		position: sticky;
		top: 0;
		z-index: 1040;
	}

	.sis-pwa-install-prompt__inner {
		align-items: flex-start;
	}

	.sis-webapp .app-header .navbar-nav .nav-link {
		padding: 0.55rem 0.65rem;
	}

	.sis-webapp .app-sidebar {
		width: 18rem;
	}

	.sis-webapp .app-main .app-content {
		padding-top: 0.35rem;
	}

	.sis-webapp .app-content-header {
		padding: 0.65rem 0.85rem;
	}

	.sis-webapp .app-content .container-fluid {
		padding-left: 0.65rem;
		padding-right: 0.65rem;
	}

	.sis-webapp .table {
		font-size: 0.93rem;
	}

	.sis-webapp .table td,
	.sis-webapp .table th {
		padding: 0.6rem 0.5rem;
	}

	.sis-webapp .js-inspection-table-toolbar,
	.sis-webapp .js-opera-table-toolbar,
	.sis-webapp .js-inspection-table-pager,
	.sis-webapp .js-opera-table-pager {
		position: sticky;
		top: calc(var(--sis-safe-area-top) + 3.45rem);
		z-index: 4;
		background: var(--bs-body-bg, #fff);
	}

	.sis-webapp .js-inspection-table-toolbar .btn,
	.sis-webapp .js-opera-table-toolbar .btn,
	.sis-webapp .js-inspection-table-toolbar .form-select,
	.sis-webapp .js-opera-table-toolbar .form-select,
	.sis-webapp .js-inspection-table-pager .btn,
	.sis-webapp .js-opera-table-pager .btn {
		min-height: 40px;
	}

	.sis-webapp .modal .modal-dialog {
		margin: 0.6rem;
	}

	.sis-webapp .modal .modal-content {
		border-radius: 0.75rem;
	}
}

@media (max-width: 767.98px) {
	.sis-webapp .app-content .card-header {
		gap: 0.5rem;
		flex-wrap: wrap;
	}

	.sis-webapp .app-content .card-header .btn {
		width: 100%;
	}

	.sis-webapp .pagination {
		flex-wrap: wrap;
		gap: 0.25rem;
	}

	.sis-pwa-install-prompt__inner {
		flex-direction: column;
		align-items: stretch;
	}

	.sis-pwa-install-prompt__actions {
		width: 100%;
	}

	.sis-pwa-install-prompt__actions .btn {
		flex: 1 1 auto;
	}
}

@media (min-width: 1200px) {
	.sis-pwa-install-prompt {
		display: none !important;
	}
}

/* --- Tablet webapp tuning for SIS operations pages --- */
.sis-webapp .sis-table-main {
	margin-bottom: 0;
}

.sis-webapp .sis-table-main td,
.sis-webapp .sis-table-main th {
	line-height: 1.25;
}

.sis-webapp .sis-cell-actions {
	white-space: nowrap;
}

.sis-webapp .sis-cell-actions .btn {
	min-width: 7.25rem;
}

.sis-webapp .sis-cell-actions .btn.sis-btn-icon-square {
	min-width: 2.2rem;
	width: 2.2rem;
	height: 2.2rem;
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 0.35rem;
}

.sis-webapp .sis-cell-actions .btn.sis-btn-icon-square .bi {
	font-size: 1.15rem;
	line-height: 1;
}

.sis-webapp .sis-cell-actions--inspection-status {
	min-width: 6.6rem;
	gap: 0.3rem !important;
}

.sis-webapp .sis-cell-actions .sis-btn-icon-square--compact {
	min-width: 1.75rem;
	width: 1.75rem;
	height: 1.75rem;
	border-radius: 0.3rem;
}

.sis-webapp .sis-cell-actions .sis-btn-icon-square--compact .bi {
	font-size: 0.92rem;
}

.js-distance-range-open,
.js-opera-distance-range-open {
	white-space: nowrap;
}

.sis-webapp .sis-form-panel .btn {
	min-width: 8rem;
}

.sis-webapp #opera-dropzone {
	padding: 1rem !important;
	border-radius: 0.75rem !important;
}

.sis-webapp .inspection-opera-map,
.sis-webapp .opera-list-map {
	border-radius: 0.6rem;
}

.sis-webapp .sis-google-map {
	width: 100%;
	height: 360px;
	min-height: 260px;
}

.sis-webapp .sis-map-card {
	position: relative;
	transition: all 0.2s ease;
}

.sis-webapp .sis-map-card.sis-map-card--fullscreen {
	position: fixed;
	inset: 0;
	z-index: 2100;
	margin: 0 !important;
	border-radius: 0;
	border: 0;
	background: var(--bs-body-bg, #fff);
	display: flex;
	flex-direction: column;
}

.sis-webapp .sis-map-card.sis-map-card--fullscreen .card-header {
	border-radius: 0;
	position: relative;
	z-index: 2;
	padding-top: max(0.75rem, var(--sis-safe-area-top));
	background: var(--bs-body-bg, #fff);
}

.sis-webapp .sis-map-card.sis-map-card--fullscreen .card-body {
	flex: 1 1 auto;
	display: flex;
	padding: 0.75rem;
	padding-bottom: max(0.75rem, var(--sis-safe-area-bottom));
}

.sis-webapp .sis-map-card.sis-map-card--fullscreen .sis-google-map {
	height: 100% !important;
	min-height: 0;
	border-radius: 0.5rem;
	flex: 1 1 auto;
}

body.sis-map-fullscreen-active {
	overflow: hidden;
}

[data-bs-theme='dark'] .sis-webapp .sis-map-point-popup {
	color: #e9ecef;
}

[data-bs-theme='dark'] .sis-webapp .sis-map-point-popup a {
	color: #8ec5ff;
}

[data-bs-theme='dark'] .sis-webapp .gm-style .gm-style-iw-c {
	background-color: #1f242b;
	color: #e9ecef;
}

[data-bs-theme='dark'] .sis-webapp .gm-style .gm-style-iw-d {
	background-color: #1f242b;
	overflow: auto !important;
}

[data-bs-theme='dark'] .sis-webapp .gm-style .gm-style-iw-tc::after {
	background: #1f242b;
}

[data-bs-theme='dark'] .sis-webapp .gm-style button.gm-ui-hover-effect span {
	background-color: #e9ecef;
}

.sis-webapp .sis-sheet-table thead th {
	position: sticky;
	top: 0;
	z-index: 2;
	box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.08);
}

.sis-webapp .sis-sheet-wrap {
	max-height: none !important;
	overflow: visible !important;
}

@media (max-width: 1199.98px) {
	.sis-webapp .inspection-opera-map,
	.sis-webapp .opera-list-map {
		height: 320px !important;
	}

	.sis-webapp .sis-cell-actions {
		min-width: 9.5rem;
	}

	.sis-webapp .sis-cell-actions--inspection-status {
		min-width: 6rem;
	}

	.sis-webapp .sis-cell-actions .btn {
		min-width: 6.25rem;
	}

	.sis-webapp .sis-cell-actions .btn.sis-btn-icon-square {
		min-width: 2.2rem;
		width: 2.2rem;
		height: 2.2rem;
	}

	.sis-webapp .sis-cell-actions .sis-btn-icon-square--compact {
		min-width: 1.65rem;
		width: 1.65rem;
		height: 1.65rem;
	}
}

@media (max-width: 991.98px) {
	.sis-webapp .sis-table-main {
		font-size: 0.9rem;
	}

	.sis-webapp .sis-cell-actions {
		white-space: normal;
	}

	.sis-webapp .sis-cell-actions .btn {
		display: inline-flex;
		width: 100%;
		justify-content: center;
		margin-bottom: 0.25rem;
	}

	.sis-webapp .sis-cell-actions .btn.sis-btn-icon-square {
		width: 2.2rem;
	}

	.sis-webapp .sis-cell-actions .sis-btn-icon-square--compact {
		min-width: 2rem;
		width: 2rem;
		height: 2rem;
	}

	.sis-webapp .inspection-opera-map,
	.sis-webapp .opera-list-map {
		height: 280px !important;
	}
}

@media (max-width: 767.98px) {
	.sis-webapp .sis-form-panel .btn {
		width: 100%;
	}
}

/* --- Inspection Opera Photos reusable gallery --- */
.sis-webapp .sis-thumb-grid {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 0.6rem;
}

.sis-webapp .sis-thumb-item {
	display: block;
	position: relative;
	border-radius: 0.85rem;
	overflow: hidden;
	border: 1px solid var(--bs-border-color, #dee2e6);
	background: var(--bs-body-bg, #fff);
	box-shadow: 0 4px 10px rgba(10, 20, 30, 0.08);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.sis-webapp .sis-thumb-item:hover,
.sis-webapp .sis-thumb-item:focus-visible {
	transform: translateY(-1px);
	box-shadow: 0 8px 16px rgba(10, 20, 30, 0.14);
}

.sis-webapp .sis-thumb-item img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
}

.sis-webapp .sis-inspection-photo-gallery .fancybox__container {
	--fancybox-bg: rgba(13, 20, 34, 0.94);
	z-index: 2000 !important;
}

.sis-webapp .sis-inspection-photo-gallery .fancybox__toolbar {
	background: linear-gradient(180deg, rgba(0, 0, 0, 0.44) 0%, rgba(0, 0, 0, 0) 100%);
}

.sis-webapp .sis-inspection-photo-gallery .fancybox__caption {
	text-align: center;
}

.sis-webapp .sis-inspection-photo-gallery .sis-fancybox-photo-description {
	display: block;
	text-align: center;
}

.sis-webapp .sis-gallery-upload-loader {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.82);
	backdrop-filter: blur(2px);
	z-index: 10;
	color: var(--sis-brand-primary);
	text-align: center;
}

.sis-gallery-count-zero {
	opacity: 0.1;
}

.sis-webapp .js-gallery-reuse-photo-select.sis-gallery-reuse-photo-selected {
	background: rgba(0, 92, 185, 0.14) !important;
	border-color: rgba(0, 92, 185, 0.9) !important;
	box-shadow: 0 0 0 2px rgba(0, 92, 185, 0.22), 0 10px 20px rgba(0, 92, 185, 0.16);
	transform: translateY(-1px);
}

.sis-webapp .js-gallery-reuse-photo-select.sis-gallery-reuse-photo-selected span {
	color: var(--sis-brand-primary-dark);
	font-weight: 600;
}

.sis-webapp .js-gallery-reuse-photo-select.sis-gallery-reuse-photo-selected img {
	filter: saturate(1.08) contrast(1.04);
}

.sis-webapp .sis-gallery-upload-actions {
	flex-wrap: nowrap;
	overflow-x: auto;
}

.sis-webapp .sis-gallery-upload-actions .btn {
	white-space: nowrap;
}

.pInspHeaderReadOnly {
	font-weight: bold;
	text-transform: uppercase;
}

input[readonly],
textarea[readonly],
.form-control[readonly] {
	background-color: rgba(var(--bs-body-bg-rgb, 255, 255, 255), 0.9) !important;
	border-color: rgba(var(--bs-border-color-rgb, 222, 226, 230), 0.9) !important;
	pointer-events: none; 
}

.js-opera-tree-filter-open,
.js-table-tree-filter-open {
	max-width: 100px;
	white-space: nowrap;
	text-overflow: ellipsis;	
	overflow: hidden;
}

.sis-webapp .sis-user-form-profile .password-field {
	min-width: 0;
}

.sis-webapp .sis-user-form-profile .sis-password-action-btn {
	flex: 0 0 auto;
	min-width: 2.25rem;
	padding-left: 0.45rem;
	padding-right: 0.45rem;
}

.sis-webapp .sis-user-form-profile .password-generate.sis-password-action-btn {
	min-width: 2.6rem;
}

.fancybox__caption {
	text-align: center;
}

#sisApkModeLabel {
	text-align: center;
}

@media (max-width: 1399.98px) {
	.sis-webapp .sis-thumb-grid {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}

@media (max-width: 991.98px) {
	.sis-webapp .sis-thumb-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 575.98px) {
	.sis-webapp .sis-thumb-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0.5rem;
	}
}
