/* ============================================================
   SDPQUERY — Stylesheet
   ------------------------------------------------------------
   TABLE OF CONTENTS
     1.  Design tokens (CSS variables)
     2.  Base / reset (html, body, links, anchors, row)
     3.  Scrollbar
     4.  Layout (header, content, sidebar, search panel)
     5.  Typography & color utilities
     6.  Forms (inputs, checkbox/radio)
     7.  Buttons
     8.  Cards (header + details)
     9.  Lists & views (list-group, view, table, viewflat)
     10. Pagination & breadcrumb
     11. Filter chips
     12. Multiselect widget (.ms-*)
     13. Dijit calendar (light + dark)
     14. Toaster (jq-toast)
     15. Floating widgets (btn-scroll-top default)
     16. Misc utilities (rounded-*, border, pointer, dijit dialog)
     17. Dark mode overrides (non-calendar)
     18. Responsive (media queries)
   ============================================================ */


/* ============================================================
   1. DESIGN TOKENS
   ============================================================ */

:root {
	--brand: #007AC9;
	--brand-soft: rgba(0, 122, 201, .08);
	--brand-mid: rgba(0, 122, 201, .15);
	--brand-text: #005a96;

	--bg-page: #f3f4f6;
	--bg-card: #ffffff;
	--bg-sidebar: #ffffff;
	--bg-header: #ffffff;
	--bg-input: #f9fafb;
	--bg-hover: #f0f7ff;
	--bg-badge: #f1f5f9;

	--border: #e5e7eb;
	--border-soft: #f0f0f0;

	--text: #1f2937;
	--text-secondary: #6b7280;
	--text-mute: #9ca3af;
	--text-label: #4b5563;

	--shadow-sm: 0 1px 2px rgba(0,0,0,.05);
	--shadow-md: 0 4px 12px rgba(0,0,0,.07);
	--shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 0 0 1px rgba(0,0,0,.04);

	--radius: 10px;
	--radius-sm: 6px;
	--radius-lg: 14px;

	/* Scrollbar (light) */
	--scrollbar-bg: #f7f7f9;
	--scrollbar-thumb: #cccccc;
}

html.dark {
	/* Scrollbar (dark) */
	--scrollbar-bg: #2a2a2a;
	--scrollbar-thumb: #555555;

	/* Dark-mode design tokens */
	--dm-bg-1:        #1e1e2e;
	--dm-bg-2:        #2a2a3c;
	--dm-border:      #3a3a4a;
	--dm-border-soft: #2e2e3e;
	--dm-text:        #e0e0e0;
	--dm-text-soft:   #a0a0b0;
	--dm-text-mute:   #666680;
	--dm-brand:       #007ac9;
	--dm-accent:      #4dabf7;
	--dm-accent-soft: rgba(77, 171, 247, .15);
	--dm-accent-hi:   #74c0fc;
}


/* ============================================================
   2. BASE / RESET
   ============================================================ */

html, body {
	position: fixed !important;
	width: 100%;
	height: 100dvh;
	overflow: hidden;
}

a {
	color: #4B5563 !important;
}

#anchorlink {
	display: none;
}

.row {
	display: flex;
}

.height-auto {
	height: 100% !important;
	max-height: 100% !important;
}


/* ============================================================
   3. SCROLLBAR
   ============================================================ */

::-webkit-scrollbar {
	width: 12px;
	height: 12px;
}
::-webkit-scrollbar-track {
	background: var(--scrollbar-bg);
}
::-webkit-scrollbar-thumb {
	background-color: var(--scrollbar-thumb);
	border-radius: 6px;
	border: 3px solid var(--scrollbar-bg);
}

* {
	scrollbar-width: auto;
	scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-bg);
}


/* ============================================================
   4. LAYOUT
   ============================================================ */

.header {
	border-bottom: 1px solid #e7e7e7;
	height: 50px;
}

.header .fad.fa-folder-magnifying-glass {
    transition: transform .2s ease, filter .2s ease;
}
.header .fad.fa-folder-magnifying-glass:hover {
    transform: scale(1.05);
    filter: drop-shadow(0 0 4px rgba(0, 122, 201, 0.4));
}

.content-left {
	height: calc(100dvh - 50px);
}

.content {
	height: calc(100dvh - 110px);
	overflow-y: auto;
	min-height: 0;
}

.search {
	height: calc(100dvh - 120px);
	overflow-y: auto;
	min-height: 0;
	display: block;
}


/* ============================================================
   5. TYPOGRAPHY & COLOR UTILITIES
   ============================================================ */

.title {
	font-size: 24px;
	font-weight: bolder;
}

.color-red    { color: #cc3300 !important; }
.color-green  { color: #009900 !important; }
.color-yellow { color: #ffcc00 !important; }
.color-blue   { color: #007AC9 !important; }
.color-black  { color: #000000 !important; }
.color-white  { color: #FFFFFF !important; }
.color-gray   { color: rgba(0, 0, 0, .5) !important; }
.color-orange { color: #ff9544 !important; }
.color-dark   { color: #4B5563 !important; }

.size-10 { font-size: 10px; }
.size-16 { font-size: 16px; }
.size-18 { font-size: 18px; }
.size-36 { font-size: 36px; }

.bg-light {
	background-color: #f7f7f9;
}

.text-nowrap li {
	display: inline-block;
}


/* ============================================================
   6. FORMS
   ============================================================ */

.form-control {
	border-radius: .7rem !important;
}

.checkbox, .radio {
	margin: 0px !important;
	font-size: 18px;
}

.radio td, .checkbox td {
	padding-left: inherit;
}

.checkbox label, .radio label {
	padding-left: inherit;
	font-size: 80%;
	margin-top: 5px;
}

.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox],
.radio input[type=radio], .radio-inline input[type=radio] {
	margin: 0px !important;
	margin-right: 5px !important;
	margin-left: inherit;
	position: relative;
}

/* Nasconde lo sprite immagine originale */
.dijitComboBox .dijitArrowButtonInner {
    background-image: none !important;
    visibility: hidden;
    width: 0 !important;
}

/* Bottone freccia: area cliccabile pulita */
.dijitComboBox .dijitArrowButton {
    position: relative;
    background: transparent !important;
    border: none !important;
    cursor: pointer;
    min-width: 28px;
    transition: background-color .15s ease;
}
.dijitComboBox .dijitArrowButton:hover {
    background-color: #f1f5f9 !important;
}

/* Chevron CSS al posto dello sprite */
.dijitComboBox .dijitArrowButton::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 7px;
    height: 7px;
    border-right: 2px solid #64748b;
    border-bottom: 2px solid #64748b;
    transform: translate(-50%, -65%) rotate(45deg);
    transition: border-color .15s ease;
    pointer-events: none;
}
.dijitComboBox .dijitArrowButton:hover::after {
    border-color: #007AC9;
}

/* Nasconde anche il carattere fallback ▼ se per qualche motivo Dojo lo mostra
   (evita doppia freccia: chevron + carattere) */
.dijitComboBox .dijitArrowButtonChar {
    display: none !important;
}

.dijitComboBox.form-control {
    overflow: hidden;          /* ritaglia input + bottone freccia al raggio esterno */
    padding: 0 !important;     /* il padding lo gestisce l'input interno, non il wrapper */
}


/* ============================================================
   7. BUTTONS
   ============================================================ */

.btn {
	border-radius: .7rem;
}

.btn-primary, .active a, .btn-outline-primary:hover {
	background-color: #007AC9 !important;
	color: #ffffff !important;
}

.btn-outline-primary, .active a {
	border-color: #007AC9 !important;
	color: #007AC9 !important;
}


/* ============================================================
   8. CARDS
   ============================================================ */

/* --- Card header: PDF icon a sinistra + griglia celle a destra --- */
.card-header {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
}

.card-header-file {
    flex: 0 0 70px;
    align-self: flex-start;
    padding-top: 0.25rem;  /* allineamento ottico col primo label */
}

.card-header-cells {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    column-gap: 1.5rem;
    row-gap: 0.75rem;
}

.card-header-cell {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    flex: 0 1 auto;         /* larghezza naturale, può shrinkare se serve */
    min-width: 90px;        /* mai sotto 90px (per label di una parola) */
    max-width: 280px;       /* tetto sui casi molto lunghi */
}

.card-header-label {
    text-transform: uppercase;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    font-weight: 600;
    color: #6c757d;
    line-height: 1.2;
    overflow-wrap: anywhere;
    word-break: break-word;
}

.card-header-value {
    color: #212529;
    font-weight: 500;
    line-height: 1.35;
    overflow-wrap: anywhere;
    word-break: break-word;

    /* Max 3 righe con ellipsis */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- Card details: griglia label / valore --- */
.card-details .card-detail-row {
	display: grid;
	grid-template-columns: fit-content(170px) 1fr;
	column-gap: 1.5rem;
	align-items: baseline;
	padding: 0.2rem 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.03);
}
.card-details .card-detail-row:last-child {
	border-bottom: 0;
}

.card-details .card-detail-label {
	min-width: 170px;
	text-transform: uppercase;
	font-size: 0.72rem;
	letter-spacing: 0.04em;
	font-weight: 600;
	color: #6c757d;
	line-height: 1.6;
	overflow-wrap: anywhere;
	word-break: break-word;
}

.card-details .card-detail-value {
	color: #212529;
	font-weight: 500;
	overflow-wrap: anywhere;
	word-break: break-word;
}

/* Valori "vuoti" (-, –, —) attenuati */
.card-details .card-detail-row[data-empty="true"] .card-detail-value {
	color: #adb5bd;
	font-style: italic;
}


/* ============================================================
   9. LISTS, VIEWS & TABLES
   ============================================================ */

.list-group-item {
	border: none !important;
	border-bottom: 1px solid rgba(0, 0, 0, .125) !important;
}

.view .col {
	float: none;
	box-sizing: border-box;
	color: #333333;
	padding: 0.3rem;
}

.view tr:first-child {
	display: none;
}

.view img, .table img {
	max-width: 60px;
}

.viewflat > tbody > tr:first-child {
	display: none;
}

.table tr:first-child {
	display: table-row;
}

.table span[id*="internalViewText"] {
	display: none !important;
}

.columnicon {
	max-height: 60px;
}


/* ============================================================
   10. PAGINATION & BREADCRUMB
   ============================================================ */

.pagination {
	margin: 0 !important;
	display: inline-flex;
}

.breadcumb a {
	margin: 4px;
}

a.xspFilter::after {
	content: "\f00d";                /* Font Awesome "times" */
	font-family: "Font Awesome 5 Pro";
	font-weight: 900;
	margin-left: 8px;
	color: #6c757d;
}


/* ============================================================
   11. FILTER CHIPS
   ============================================================ */

.filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 8px 3px 10px;
	background: var(--brand-soft);
	border: 1px solid var(--brand-mid);
	border-radius: 20px;
	font-size: 11px;
	color: var(--brand-text);
	font-weight: 500;
}
.filter-chip-label { opacity: .7; }
.filter-chip-remove {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	border: none;
	background: transparent;
	color: var(--brand-text);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	opacity: .6;
	transition: opacity .15s;
}
.filter-chip-remove:hover { opacity: 1; }

/* Clear all: chip "speciale" che azzera tutti i filtri.
   Stile neutro/tratteggiato per distinguersi dalle chip dei filtri. */
.filter-chip-clear-all {
	padding: 3px 10px;
	background: transparent;
	border: 1px dashed #cbd5e1;
	border-radius: 20px;
	font-size: 11px;
	color: #6b7280;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .04em;
	cursor: pointer;
	transition: color .15s, border-color .15s, background-color .15s;
	margin-left: 6px;
	white-space: nowrap;
}
.filter-chip-clear-all:hover,
.filter-chip-clear-all:active {
	color: #cc3300;
	border-color: #fecaca;
	border-style: solid;
	background-color: #fef2f2;
}
.filter-chip-clear-all .fa-xmark {
	font-size: 10px;
	opacity: .8;
}


/* ============================================================
   12. MULTISELECT WIDGET
   ============================================================ */

.ms-container { position: relative; }

.ms-chips-area {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	min-height: calc(1.5em + .5rem + 2px);
	padding: .25rem .5rem;
	font-size: .875rem;
	line-height: 1.5;
	color: #495057;
	transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
	cursor: text;
}

.ms-chips-area.disabled {
	cursor: default;
	opacity: 1 !important;
}
.ms-chips-area.disabled .ms-chip {
	cursor: default;
	color: #212529;
	background-color: #dee2e6;
	border-color: #ced4da;
}

.ms-chip {
	display: inline-flex;
	align-items: center;
	background: #e7f1fa;
	border: 1px solid #b8d4ed;
	color: #2c5f8a;
	border-radius: 4px;
	padding: 0px 7px;
	margin: 1px 2px;
	line-height: 1.6;
}

.ms-chip-exact {
	background-color: #d4edda;
	border: 1px solid #28a745;
	font-style: italic;
}

.ms-chip-x {
	margin-left: 5px;
	cursor: pointer;
	font-weight: bold;
	line-height: 1;
	opacity: .5;
	color: #2c5f8a;
}
.ms-chip-x:hover { opacity: 1; }

.ms-input {
	border: none;
	outline: none;
	flex: 1;
	min-width: 60px;
	padding: 0 2px;
	background: transparent;
	color: #495057;
}
.ms-input::placeholder { color: #6C757D; }

.ms-input-inline {
	flex: none;
	width: auto;
	min-width: 40px;
	margin: 1px 2px;
	padding: 0 7px;
	line-height: 1.6;
	border: 1px dashed #b8d4ed;
	border-radius: 4px;
	background: #fff;
}

.ms-dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 1000;
	background: #fff;
	border: 1px solid #ced4da;
	border-top: none;
	border-radius: 0 0 .45rem .45rem;
	max-height: 200px;
	overflow-y: auto;
	box-shadow: 0 2px 6px rgba(0, 0, 0, .1);
}

.ms-option {
	padding: .25rem .75rem;
	cursor: pointer;
	font-size: .875rem;
	color: #212529;
}
.ms-option:hover { background: #007AC9; color: #fff; }

.ms-option-active,
.ms-option:hover {
	background-color: #e9ecef;
	cursor: pointer;
	color: #495057;
}

.ms-opt-data { display: none; }

.ms-option-hint {
	padding: .35rem .75rem;
	font-size: .85rem;
	color: #6c757d;
	font-style: italic;
	cursor: default;
	text-align: center;
}
.ms-option-hint i {
	font-size: .95rem;
	vertical-align: middle;
	margin-right: .25rem;
}

/* Stato errore hint (caricamento listvalues fallito) */
.ms-option-error {
	color: #cc3300 !important;
	font-style: normal !important;
	font-weight: 600;
}
.ms-option-error i {
	font-size: 1rem;
	margin-right: .35rem;
}

/* Layout verticale */
.ms-vertical .ms-chips-area {
	flex-direction: column;
	align-items: stretch;
}
.ms-vertical .ms-chips {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.ms-vertical .ms-input {
	width: 100%;
}


/* ============================================================
   13. DIJIT CALENDAR
   ------------------------------------------------------------
   Fix sprite frecce mese su Tundra/Dojo 1.9.7 (HCL Domino 12).
   Lo sprite originale è invisibile su Domino 12; sostituiamo
   con chevron CSS puro. Su Domino 14 il problema non esiste.
   ============================================================ */

/* ==================== DIJIT CALENDAR — MODERN ==================== */

/* Popup wrapper: ombra morbida e bordo arrotondato */
.dijitCalendarPopup {
	border-radius: 12px !important;
	box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12), 0 2px 6px rgba(15, 23, 42, 0.06) !important;
	border: 1px solid #e5e7eb !important;
	overflow: hidden !important;
	background: #ffffff !important;
}

.dijitCalendarContainer {
	background-color: #ffffff !important;
	font-size: 12px !important;
	font-family: inherit !important;
	padding: 4px 6px 6px !important;
	border: none !important;
}

/* --- Header: frecce mese + dropdown mese --- */
.dijitCalendarMonthContainer {
	padding: 2px 0 6px !important;
}

.dijitCalendarMonthContainer th {
	background: transparent !important;
	padding: 0 !important;
}

.dijitCalendarMonthContainer .dijitButtonNode {
	border: none !important;
	background: transparent !important;
	padding: 4px 8px !important;
	border-radius: 6px !important;
	transition: background-color .15s ease;
}

.dijitCalendarMonthContainer .dijitButtonNode:hover {
	background-color: #f1f5f9 !important;
}

.dijitCalendarCurrentMonthLabel {
	font-weight: 600 !important;
	font-size: 13px !important;
	color: #0f172a !important;
	text-transform: capitalize;
	letter-spacing: .2px;
}

.dijitCalendarCurrentMonthLabel:hover {
	background-color: transparent !important;
}

/* Frecce mese: tondeggianti, hover discreto */
.dijitCalendarArrow {
	border-radius: 8px !important;
	transition: background-color .15s ease;
}
.dijitCalendarArrow:hover {
	background-color: #f1f5f9 !important;
}

/* Menu mesi (dropdown a tendina) */
.dijitCalendarMonthMenu {
	background: #ffffff !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 10px !important;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.10) !important;
	padding: 4px !important;
	overflow: hidden;
}

.dijitCalendarMonthLabel {
	font-weight: 500 !important;
	line-height: 28px !important;
	padding: 0 12px !important;
	border-radius: 6px !important;
	transition: background-color .15s ease, color .15s ease;
}

.dijitComboBoxMenuPopup > .dijitMenu > .dijitMenuItem:hover,
.dijitCalendarMonthLabel:hover {
	background-color: #007AC9 !important;
	color: #ffffff !important;
}

/* --- Intestazione giorni (L M M G V S D) --- */
.dijitCalendarDayLabelTemplate {
	background: #ffffff !important;
	padding: 4px 0 !important;
}

.dijitCalendarDayLabel {
	font-size: 10px !important;
	font-weight: 600 !important;
	color: #64748b !important;
	text-transform: uppercase;
	letter-spacing: .5px;
}

/* --- Celle data --- */
.dijitCalendarDateTemplate {
	padding: 1px !important;
	text-align: center;
}

.dijitCalendarDateLabel {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	line-height: 26px !important;
	border-radius: 50%;
	font-size: 12px;
	font-weight: 500 !important;
	color: #0f172a;
	transition: background-color .15s ease, color .15s ease, box-shadow .15s ease;
	cursor: pointer;
}

/* Hover su qualsiasi giorno abilitato */
.dijitCalendarEnabledDate:hover .dijitCalendarDateLabel {
	background-color: #e0f2fe !important;
	color: #007AC9 !important;
}

/* Giorni del mese precedente/successivo: tono spento, niente sfondo grigio */
.dijitCalendarPreviousMonth,
.dijitCalendarNextMonth {
	background-color: transparent !important;
}
.dijitCalendarPreviousMonth .dijitCalendarDateLabel,
.dijitCalendarNextMonth .dijitCalendarDateLabel {
	color: #cbd5e1 !important;
	font-weight: 400 !important;
}

/* OGGI: anello sottile attorno al numero */
.dijitCalendarCurrentDate .dijitCalendarDateLabel {
	font-weight: 700 !important;
	box-shadow: inset 0 0 0 1.5px #007AC9;
	color: #007AC9 !important;
}

/* Data selezionata: cerchio pieno blu */
.dijitCalendarYearLabel > .dijitCalendarSelectedYear,
.dijitCalendarSelectedDate .dijitCalendarDateLabel,
.dijitCalendarWeekTemplate > .dijitCalendarSelectedDate .dijitCalendarDateLabel {
	background-color: #007AC9 !important;
	color: #ffffff !important;
	box-shadow: 0 2px 6px rgba(0, 122, 201, .35);
}

/* Se OGGI è anche selezionata: vince il "pieno" */
.dijitCalendarCurrentDate.dijitCalendarSelectedDate .dijitCalendarDateLabel {
	background-color: #007AC9 !important;
	color: #ffffff !important;
	box-shadow: 0 2px 6px rgba(0, 122, 201, .35);
}

/* --- Footer: anni --- */
.dijitCalendarYearContainer {
	background: #ffffff !important;
	padding-top: 4px !important;
	border-top: 1px solid #f1f5f9;
}

.dijitCalendarYearLabel {
	padding: 4px 0 2px !important;
	display: flex;
	justify-content: center;
	gap: 4px;
}

.dijitCalendarPreviousYear,
.dijitCalendarNextYear,
.dijitCalendarSelectedYear {
	padding: 3px 10px !important;
	border-radius: 999px !important;
	font-size: 11px !important;
	font-weight: 500 !important;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease;
}

.dijitCalendarPreviousYear,
.dijitCalendarNextYear {
	color: #64748b !important;
}

.dijitCalendarPreviousYear:hover,
.dijitCalendarNextYear:hover {
	background-color: #f1f5f9 !important;
	color: #0f172a !important;
}

.dijitCalendarYearLabel > .dijitCalendarSelectedYear {
	font-weight: 600 !important;
	background-color: #007AC9 !important;
	color: #ffffff !important;
}

/* Nasconde lo sprite Dojo (blank.gif + bg sprite) */
.dijitCalendarIncrementControl {
	display: none !important;
}

/* Wrapper freccia: bottone tondo cliccabile */
.dijitCalendarArrow {
	position: relative;
	width: 26px !important;
	height: 26px !important;
	border-radius: 50% !important;
	cursor: pointer;
	background: transparent !important;
	transition: background-color .15s ease;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	vertical-align: middle;
}

.dijitCalendarArrow:hover {
	background-color: #f1f5f9 !important;
}

/* Chevron disegnato con bordi */
.dijitCalendarArrow::before {
	content: "";
	display: block;
	width: 8px;
	height: 8px;
	border-top: 2px solid #475569;
	border-right: 2px solid #475569;
	border-radius: 1px;
	transition: border-color .15s ease;
}

.dijitCalendarArrow:hover::before {
	border-color: #007AC9;
}

/* Decrement = chevron a sinistra */
.dijitCalendarDecrementArrow::before {
	transform: rotate(-135deg);
	margin-left: 3px;
}

/* Increment = chevron a destra */
.dijitCalendarIncrementArrow::before {
	transform: rotate(45deg);
	margin-right: 3px;
}

/* Nasconde il fallback testuale "-" / "+" usato per a11y */
.dijitA11ySideArrow {
	display: none !important;
}

/* Bottone dropdown mese: ridotto e centrato tra le frecce */
.dijitCalendarMonthContainer .dijitButtonNode {
	border: none !important;
	background: transparent !important;
	padding: 3px 8px !important;
	border-radius: 6px !important;
	transition: background-color .15s ease;
}

.dijitCalendarMonthContainer .dijitButtonNode:hover {
	background-color: #f1f5f9 !important;
}

/* Rimuove il gradiente grigio del tema Dojo sulla testata */
.dijitCalendarMonthContainer,
.dijitCalendarMonthContainer th,
.dijitCalendarMonthContainer tr,
.dijitCalendarMonthContainer .dijitButtonNode,
.dijitCalendarMonthContainer .dijitButtonContents,
.dijitCalendarMonthContainer .dijitDownArrowButton,
.dijitCalendarMonthContainer .dijitButtonText {
	background: #ffffff !important;
	background-image: none !important;
	border: none !important;
	box-shadow: none !important;
}

/* La freccetta ▼ del dropdown mese: più discreta */
.dijitCalendarMonthContainer .dijitArrowButtonChar {
	color: #64748b !important;
	font-size: 9px !important;
	margin-left: 4px;
	background: transparent !important;
}

.dijitCalendarMonthContainer .dijitArrowButtonInner {
	background: transparent !important;
	background-image: none !important;
}

/* ============================================================
   DIJIT CALENDAR — fix frecce mese su Tundra/Dojo 1.9.7
   (HCL Domino 12.0.x)
   ============================================================
   Lo sprite image delle frecce mese (.dijitCalendarIncrementControl)
   non viene reso correttamente su Domino 12: la freccia è invisibile.
   Su Domino 14 (Dojo più recente) il problema non esiste.
   Sostituiamo lo sprite con un chevron CSS puro che funziona
   uniformemente su tutte le versioni di Domino/Dojo.
   Il colore in dark mode è sovrascritto da css/darkmode.css
   (regole .dijitCalendarArrow::before con border-top-color/border-right-color). */

.dijitCalendarArrow {
    position: relative !important;
    width: 24px !important;
    height: 22px !important;
    cursor: pointer;
}

/* Nasconde lo sprite originale, mantiene lo span per il click handler */
.dijitCalendarIncrementControl {
    background-image: none !important;
    visibility: hidden;
}

/* Chevron CSS — default: orientato a destra (incrementMonth) */
.dijitCalendarArrow::before {
    content: "" !important;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 7px;
    height: 7px;
    border-top: 2px solid #505050;
    border-right: 2px solid #505050;
    transform: translate(-65%, -50%) rotate(45deg);
    pointer-events: none;
}

/* Freccia sinistra (decrementMonth): chevron orientato a sinistra */
.dijitCalendarArrow[data-dojo-attach-point="decrementMonth"]::before {
    transform: translate(-35%, -50%) rotate(-135deg);
}

/* Hover: usa il brand color */
.dijitCalendarArrow:hover::before {
    border-color: #007AC9;
}

/* --- Dijit calendar — dark mode --- */
html.dark .dijitCalendarPopup {
	background: var(--dm-bg-1) !important;
	border-color: var(--dm-border) !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .5), 0 2px 6px rgba(0, 0, 0, .3) !important;
}

html.dark .dijitCalendarContainer {
	background-color: var(--dm-bg-1) !important;
}

/* Corpo grid: table, tbody, tr, td — il tema Dojo (tundra/claro) imposta sfondi bianchi */
html.dark body .dijitCalendarContainer table,
html.dark body .dijitCalendarContainer tbody,
html.dark body .dijitCalendarBodyContainer,
html.dark body .dijitCalendarWeekTemplate,
html.dark body .dijitCalendarDateTemplate,
html.dark body td.dijitCalendarDateTemplate,
html.dark body td.dijitCalendarEnabledDate,
html.dark body td.dijitCalendarDisabledDate,
html.dark body td.dijitCalendarPreviousMonth,
html.dark body td.dijitCalendarNextMonth,
html.dark body td.dijitCalendarCurrentMonth,
html.dark body .tundra .dijitCalendarDateTemplate,
html.dark body .tundra td.dijitCalendarDateTemplate {
	background: var(--dm-bg-1) !important;
	background-image: none !important;
	border-color: var(--dm-border-soft) !important;
}

html.dark .dijitCalendarMonthContainer,
html.dark .dijitCalendarMonthContainer th,
html.dark .dijitCalendarMonthContainer tr,
html.dark .dijitCalendarMonthContainer .dijitButtonNode,
html.dark .dijitCalendarMonthContainer .dijitButtonContents,
html.dark .dijitCalendarMonthContainer .dijitDownArrowButton,
html.dark .dijitCalendarMonthContainer .dijitButtonText {
	background: var(--dm-bg-1) !important;
	background-image: none !important;
}

html.dark .dijitCalendarCurrentMonthLabel { color: var(--dm-text) !important; }

html.dark .dijitCalendarMonthContainer .dijitButtonNode:hover,
html.dark .dijitCalendarArrow:hover {
	background-color: var(--dm-bg-2) !important;
}

html.dark .dijitCalendarMonthContainer .dijitArrowButtonChar {
	color: var(--dm-text-soft) !important;
}

html.dark .dijitCalendarArrow::before {
	border-top-color: var(--dm-text-soft) !important;
	border-right-color: var(--dm-text-soft) !important;
}
html.dark .dijitCalendarArrow:hover::before {
	border-top-color: var(--dm-accent) !important;
	border-right-color: var(--dm-accent) !important;
}


html.dark .dijitCalendarMonthMenu {
	background: var(--dm-bg-1) !important;
	border-color: var(--dm-border) !important;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .5) !important;
}
html.dark .dijitCalendarMonthLabel { color: var(--dm-text) !important; }
html.dark .dijitCalendarMonthLabel:hover {
	background-color: var(--dm-brand) !important;
	color: #ffffff !important;
}

html.dark .dijitCalendarDayLabelTemplate { background: var(--dm-bg-1) !important; }
html.dark .dijitCalendarDayLabel { color: var(--dm-text-mute) !important; }

html.dark .dijitCalendarDateLabel { color: var(--dm-text) !important; }

html.dark .dijitCalendarEnabledDate:hover .dijitCalendarDateLabel {
	background-color: var(--dm-accent-soft) !important;
	color: var(--dm-accent-hi) !important;
}

html.dark .dijitCalendarPreviousMonth .dijitCalendarDateLabel,
html.dark .dijitCalendarNextMonth .dijitCalendarDateLabel {
	color: var(--dm-text-mute) !important;
	opacity: .55;
}

/* OGGI: anello brand */
html.dark .dijitCalendarCurrentDate .dijitCalendarDateLabel {
	box-shadow: inset 0 0 0 1.5px var(--dm-brand) !important;
	color: var(--dm-accent) !important;
}

/* Selezionata: pieno brand */
html.dark .dijitCalendarYearLabel > .dijitCalendarSelectedYear,
html.dark .dijitCalendarSelectedDate .dijitCalendarDateLabel,
html.dark .dijitCalendarWeekTemplate > .dijitCalendarSelectedDate .dijitCalendarDateLabel,
html.dark .dijitCalendarCurrentDate.dijitCalendarSelectedDate .dijitCalendarDateLabel {
	background-color: var(--dm-brand) !important;
	color: #ffffff !important;
	box-shadow: 0 2px 6px rgba(0, 122, 201, .4) !important;
}

html.dark .dijitCalendarYearContainer {
	background: var(--dm-bg-1) !important;
	border-top-color: var(--dm-border-soft) !important;
}

html.dark .dijitCalendarPreviousYear,
html.dark .dijitCalendarNextYear {
	color: var(--dm-text-soft) !important;
}
html.dark .dijitCalendarPreviousYear:hover,
html.dark .dijitCalendarNextYear:hover {
	background-color: var(--dm-bg-2) !important;
	color: var(--dm-text) !important;
}


/* ============================================================
   14. TOASTER (jq-toast)
   ============================================================ */

.jq-toast-wrap {
	width: fit-content !important;
	top: 2px !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
}

.jq-toast-single {
	max-height: 400px;
	overflow-y: auto;
	font-size: 14px;
	line-height: 22px;
	border-radius: .7rem;
	box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !important;
	margin-left: 10px;
	margin-right: 10px;
	color: white;
}

.jq-toast-single a {
	margin-left: 10px;
	margin-right: 10px;
	color: white;
	border-bottom: none;
	text-decoration: underline !important;
}

.jq-icon-warning { background-color: #F97316; }
.jq-icon-info    { background-color: #007AC9; }

.close-jq-toast-single {
	position: unset;
	font-size: 22px;
	float: right;
}


/* ============================================================
   15. FLOATING WIDGETS
   ============================================================ */

/* Stato base: nascosto. Reso visibile da .visible (vedi mobile). */
.btn-scroll-top {
	opacity: 0;
	visibility: hidden;
	transform: translateY(0);
	display: none;
}


/* ============================================================
   16. MISC UTILITIES & THIRD-PARTY
   ============================================================ */

.border-silver {
	border: 1px solid silver !important;
}

.text-underline {
	text-decoration: underline;
}

.pointer {
	cursor: pointer;
}

.link:hover {
	cursor: pointer;
	text-decoration: underline;
}

.icon-close {
	position: absolute;
	right: 10px;
	top: 5px;
	cursor: pointer;
}

/* --- Dijit dialog tweaks --- */
.dijitDialogTitleBar {
	display: none;
}

.dijitDialog {
	z-index: 1050 !important;
}

div[dojoattachpoint="titleBar"] {
	display: none;
}

/* --- Rounded utility variants --- */
.rounded {
	border-radius: 0.7rem !important;
	-moz-border-radius: 0.7rem !important;
	-webkit-border-radius: 0.7rem !important;
}
.rounded > div:first-of-type {
	border-top-left-radius: 0.7rem !important;
	border-top-right-radius: 0.7rem !important;
	-moz-border-top-left-radius: 0.7rem !important;
	-moz-border-top-right-radius: 0.7rem !important;
	-webkit-border-top-left-radius: 0.7rem !important;
	-webkit-border-top-right-radius: 0.7rem !important;
}
.rounded > div:last-of-type {
	border-bottom-left-radius: 0.7rem !important;
	border-bottom-right-radius: 0.7rem !important;
	-moz-border-bottom-left-radius: 0.7rem !important;
	-moz-border-bottom-right-radius: 0.7rem !important;
	-webkit-border-bottom-left-radius: 0.7rem !important;
	-webkit-border-bottom-right-radius: 0.7rem !important;
}

.rounded-top, .rounded-top > div:first-of-type {
	border-top-left-radius: 0.7rem !important;
	border-top-right-radius: 0.7rem !important;
	-moz-border-top-left-radius: 0.7rem !important;
	-moz-border-top-right-radius: 0.7rem !important;
	-webkit-border-top-left-radius: 0.7rem !important;
	-webkit-border-top-right-radius: 0.7rem !important;
}

.rounded-left, .rounded-left > div:first-of-type {
	border-top-left-radius: 0.7rem !important;
	border-bottom-left-radius: 0.7rem !important;
	-moz-border-top-left-radius: 0.7rem !important;
	-moz-border-bottom-left-radius: 0.7rem !important;
	-webkit-border-top-left-radius: 0.7rem !important;
	-webkit-border-bottom-left-radius: 0.7rem !important;
}

.rounded-right, .rounded-right > div:first-of-type {
	border-top-right-radius: 0.7rem !important;
	border-bottom-right-radius: 0.7rem !important;
	-moz-border-top-right-radius: 0.7rem !important;
	-moz-border-bottom-right-radius: 0.7rem !important;
	-webkit-border-top-right-radius: 0.7rem !important;
	-webkit-border-bottom-right-radius: 0.7rem !important;
}

.rounded-top-left, .rounded-top-left > div:first-of-type {
	border-top-left-radius: 0.7rem !important;
	-moz-border-top-left-radius: 0.7rem !important;
	-webkit-border-top-left-radius: 0.7rem !important;
}

.rounded-bottom-left, .rounded-bottom-left > div:first-of-type {
	border-bottom-left-radius: 0.7rem !important;
	-moz-border-bottom-left-radius: 0.7rem !important;
	-webkit-border-bottom-left-radius: 0.7rem !important;
}


/* ============================================================
   17. DARK MODE OVERRIDES (non-calendar)
   ============================================================ */

/* Sfondo e testo globale */
html.dark body {
	background-color: #121212 !important;
	color: #e0e0e0 !important;
}

html.dark .header {
	background-color: #1e1e1e !important;
	border-bottom-color: #333 !important;
}

/* Backgrounds */
html.dark .bg-light  { background-color: #2a2a2a !important; }
html.dark .bg-white  { background-color: #1e1e1e !important; }

/* Links */
html.dark a,
html.dark a:hover {
	color: #ffffff !important;
}

/* Color utilities override */
html.dark .color-black  { color: #ffffff !important; }
html.dark .color-white  { color: #000000 !important; }
html.dark .color-gray   { color: #bbbbbb !important; }
html.dark .color-red    { color: #ff6666 !important; }
html.dark .color-green  { color: #66ff66 !important; }
html.dark .color-yellow { color: #ffff66 !important; }
html.dark .color-blue   { color: #6699ff !important; }
html.dark .color-orange { color: #ffb366 !important; }
html.dark .color-dark   { color: #ffffff !important; }

html.dark .text-secondary {
	color: #ffffff !important;
}

/* Buttons */
html.dark .btn-primary,
html.dark .active a {
	background-color: #0056a3 !important;
	color: #ffffff !important;
}

/* List group */
html.dark .list-group-item {
	background-color: #2c2c2c !important;
	border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

/* Views & tables */
html.dark .view img,
html.dark .table img {
	filter: brightness(0.8) !important;
}

html.dark .table-bordered td,
html.dark .table-bordered th {
	border: 1px solid #495057 !important;
}

/* Form controls */
html.dark .form-control,
html.dark .form-control-sm,
html.dark .form-control-lg {
	background-color: #343a40 !important;
	color: #e9ecef !important;
	border: 1px solid #495057 !important;
}

html.dark .form-control::placeholder {
	color: rgba(233, 236, 239, 0.6) !important;
}

html.dark .form-control:focus {
	background-color: #343a40 !important;
	color: #e9ecef !important;
	border-color: #66afe9 !important;
	outline: 0;
	box-shadow: 0 0 0 0.2rem rgba(102, 175, 233, 0.25) !important;
}

html.dark .form-control:disabled,
html.dark .form-control[readonly] {
	background-color: #3e444a !important;
	opacity: 1;
	color: #ced4da !important;
}

/* Combobox arrow — dark mode */
html.dark .dijitComboBox .dijitArrowButton:hover {
    background-color: var(--dm-bg-2) !important;
}
html.dark .dijitComboBox .dijitArrowButton::after {
    border-right-color: var(--dm-text-soft);
    border-bottom-color: var(--dm-text-soft);
}
html.dark .dijitComboBox .dijitArrowButton:hover::after {
    border-right-color: var(--dm-accent);
    border-bottom-color: var(--dm-accent);
}

/* Cards (Bootstrap base) */
html.dark .card {
	background-color: #242526 !important;
	border: 1px solid #3a3b3c !important;
	color: #e4e6eb !important;
}
html.dark .card-header {
	background-color: #2f3031 !important;
	border-bottom: 1px solid #3a3b3c !important;
	color: #e4e6eb !important;
}
html.dark .card-body {
	background-color: transparent !important;
	color: #e4e6eb !important;
}

/* Card details (custom griglia) */
html.dark .card-details .card-detail-row {
	border-bottom-color: rgba(255, 255, 255, 0.06);
}
html.dark .card-details .card-detail-label {
	color: #adb5bd;
}
html.dark .card-details .card-detail-value {
	color: #f1f3f5;
}
html.dark .card-details .card-detail-row[data-empty="true"] .card-detail-value {
	color: #6c757d;
}

/* Card header (custom celle) */
html.dark .card-header-label { color: #adb5bd; }
html.dark .card-header-value { color: #f1f3f5; }

/* Filter chip "Clear all" */
html.dark .filter-chip-clear-all {
	color: #adb5bd;
	border-color: #495057;
}
html.dark .filter-chip-clear-all:hover,
html.dark .filter-chip-clear-all:active {
	color: #ff8a80;
	border-color: #5a3a3a;
	background-color: rgba(204, 51, 0, .1);
}

/* Filter chip (breadcumb risultati) */
html.dark .filter-chip {
	background: var(--dm-accent-soft);          /* rgba(77,171,247,.15) */
	border-color: rgba(77, 171, 247, .35);
	color: var(--dm-accent-hi);                 /* #74c0fc */
}
html.dark .filter-chip .fas,
html.dark .filter-chip-remove {
	color: var(--dm-accent-hi);
}

/* Multiselect / chiplist widget */
html.dark .ms-chips-area,
html.dark .ms-input {
	color: var(--dm-text);
}
html.dark .ms-input::placeholder {
	color: var(--dm-text-mute);
}

/* Chips dentro multiselect: identità accent ma su fondo soft */
html.dark .ms-chip {
	background: var(--dm-accent-soft);
	border-color: rgba(77, 171, 247, .35);
	color: var(--dm-accent-hi);
}
html.dark .ms-chip-x {
	color: var(--dm-accent-hi);
}
html.dark .ms-chip-exact {
	background-color: rgba(40, 167, 69, .15);
	border-color: rgba(40, 167, 69, .35);
	color: #75c687;
}
html.dark .ms-chips-area.disabled .ms-chip {
	background-color: var(--dm-bg-2);
	border-color: var(--dm-border);
	color: var(--dm-text-soft);
}

html.dark .ms-input-inline {
	background: var(--dm-bg-2);
	border-color: rgba(77, 171, 247, .35);
	color: var(--dm-text);
}

/* Dropdown autocompletamento */
html.dark .ms-dropdown {
	background: var(--dm-bg-1);
	border-color: var(--dm-border);
	color: var(--dm-text);
}
html.dark .ms-option {
	color: var(--dm-text);
}
html.dark .ms-option:hover,
html.dark .ms-option-active {
	background-color: var(--dm-bg-2);
	color: var(--dm-accent-hi);
}
html.dark .ms-option-hint {
	color: var(--dm-text-mute);
}

/* Pagination & filters */
html.dark .pagination {
	background-color: transparent !important;
}
html.dark .page-link {
	background-color: #343a40 !important;
}
html.dark .pagination .disabled span {
	background-color: transparent !important;
	color: #bbbbbb !important;
}
html.dark .xspFilter {
	background-color: #343a40 !important;
}

/* Dijit menu */
html.dark .dijitMenu {
	background-color: #343a40 !important;
}
html.dark .dijitMenuItem {
	color: #bbbbbb !important;
}
html.dark .dbootstrap .dijitDropDownButton .dijitButtonNode {
	background: none !important;
}

/* Layout */
html.dark .content-left {
	border: none !important;
}


/* ============================================================
   18. RESPONSIVE — MEDIA QUERIES
   ============================================================ */

@media (max-width: 992px) {
	.breadcumb {
		display: none !important;
	}
}

@media (max-width: 768px) {
	html, body {
		position: fixed !important;
		width: 100%;
		height: 100dvh;
		overflow: auto;
	}

	.title {
		font-size: 20px !important;
		font-weight: bolder;
	}

	.header {
		position: relative !important;
		justify-content: center !important;
		height: 50px;
	}

	.cell {
		max-height: 50px !important;
		overflow: hidden;
	}

	#anchorlink {
		display: inline !important;
	}

	.breadcumb {
		display: none !important;
	}

	.content-left, .content {
		height: auto !important;
	}

	.row {
		display: block !important;
	}

	.search.collapsed {
		max-height: 0;
		overflow: hidden;
		transition: max-height .3s ease-out;
	}

	.themelink {
		display: none !important;
	}

	/* Card details: collapse a 1 colonna */
	.card-details .card-detail-row {
		grid-template-columns: 1fr;
		row-gap: 0.1rem;
		padding: 0.35rem 0;
	}
	
	
	/* Card header: stack verticale come i details */
	.card-header-cells {
	    flex-direction: column;
	    align-items: stretch;
	    row-gap: 0.5rem;
	}
	.card-header-cell {
	    max-width: none;
	    min-width: 0;
	    width: 100%;
	}
	

	/* Bottone "torna su" — solo mobile */
	.btn-scroll-top {
		position: fixed;
		bottom: 20px;
		right: 20px;
		width: 44px;
		height: 44px;
		border-radius: 50%;
		background-color: #007AC9;
		color: #ffffff;
		border: none;
		box-shadow: 0 4px 12px rgba(0, 0, 0, .25);
		font-size: 18px;
		display: flex !important;
		align-items: center;
		justify-content: center;
		opacity: 0;
		visibility: hidden;
		transition: opacity .25s ease, visibility .25s ease, transform .25s ease;
		z-index: 1040;
		cursor: pointer;
		transform: translateY(10px);
	}

	.btn-scroll-top.visible {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}