/*
 * GMA Scadenziario — Veicoli module (STEP 7A).
 *
 * Scoped under .gma-scd-app and built only from the shared tokens and the
 * components already used by Tasse and Multe (cards, table with its card
 * layout, form grid, data list, pagination, buttons, badges, notices, the
 * plate chip). No colour of its own; Impostazioni → Grafica applies here
 * through the tokens. Layout adapts through the app container (gma-scd).
 */

/* Filters ---------------------------------------------------------------- */

.gma-scd-app .gma-scd-vehicle-filters {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: var(--gma-scd-spacing-3);
	align-items: end;
	margin-bottom: var(--gma-scd-spacing-4);
}

.gma-scd-app .gma-scd-vehicle-filters .gma-scd-field--wide {
	grid-column: span 2;
}

.gma-scd-app .gma-scd-vehicle-filters__actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gma-scd-spacing-2);
	grid-column: 1 / -1;
}

.gma-scd-app .gma-scd-vehicle-filters select:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* While the filters reload the list, the controls say so (and are not sent twice). */
.gma-scd-app .gma-scd-vehicle-filters[aria-busy="true"] {
	opacity: 0.7;
	pointer-events: none;
}

/* List ------------------------------------------------------------------- */

.gma-scd-app .gma-scd-vehicle-list {
	padding: 0;
	overflow: hidden;
}

.gma-scd-app .gma-scd-vehicle-list .gma-scd-inline-empty {
	padding: var(--gma-scd-spacing-8) var(--gma-scd-spacing-4);
}

.gma-scd-app .gma-scd-sort {
	display: inline-flex;
	align-items: center;
	gap: var(--gma-scd-spacing-1);
	min-height: var(--gma-scd-touch-target);
	color: inherit;
	text-decoration: none;
}

.gma-scd-app .gma-scd-sort:hover,
.gma-scd-app .gma-scd-sort.is-active {
	color: var(--gma-scd-color-primary);
}

.gma-scd-app .gma-scd-sort:focus-visible {
	outline: 2px solid var(--gma-scd-color-primary);
	outline-offset: 2px;
}

/* Detail ----------------------------------------------------------------- */

.gma-scd-app .gma-scd-vehicle-header__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gma-scd-spacing-2);
}

.gma-scd-app .gma-scd-plate--title {
	font-size: var(--gma-scd-font-size-lg);
}

.gma-scd-app .gma-scd-vehicle-detail {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--gma-scd-spacing-4);
}

.gma-scd-app .gma-scd-vehicle-detail h2 {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--gma-scd-spacing-2);
	margin: 0;
}

/* Assignee, history, activity, archive and what comes next: full rows. */
.gma-scd-app .gma-scd-vehicle-assignee,
.gma-scd-app .gma-scd-vehicle-history,
.gma-scd-app .gma-scd-vehicle-activity,
.gma-scd-app .gma-scd-vehicle-archive,
.gma-scd-app .gma-scd-vehicle-deadlines,
.gma-scd-app .gma-scd-vehicle-documents,
.gma-scd-app .gma-scd-vdeadline-amounts,
.gma-scd-app .gma-scd-vdeadline-state {
	grid-column: 1 / -1;
}

.gma-scd-app .gma-scd-vehicle-history .gma-scd-table {
	margin-top: var(--gma-scd-spacing-3);
}

.gma-scd-app .gma-scd-vehicle-panel {
	margin-top: var(--gma-scd-spacing-4);
	padding-top: var(--gma-scd-spacing-3);
	border-top: 1px solid var(--gma-scd-border-subtle);
}

.gma-scd-app .gma-scd-vehicle-panel > summary {
	display: inline-flex;
	list-style: none;
	cursor: pointer;
}

.gma-scd-app .gma-scd-vehicle-panel > summary::-webkit-details-marker {
	display: none;
}

.gma-scd-app .gma-scd-vehicle-panel[open] > summary {
	margin-bottom: var(--gma-scd-spacing-3);
}

.gma-scd-app .gma-scd-vehicle-panel .gma-scd-notice,
.gma-scd-app .gma-scd-vehicle-archive .gma-scd-notice {
	margin: var(--gma-scd-spacing-3) 0;
}

.gma-scd-app .gma-scd-vehicle-archive form {
	margin-top: var(--gma-scd-spacing-3);
}

/* "Correggi nominativo" next to the current assignee's name. */
.gma-scd-app .gma-scd-vehicle-rename {
	display: inline-block;
	margin-left: var(--gma-scd-spacing-2);
	font-size: var(--gma-scd-font-size-sm);
}

/* Fields rejected by the server are outlined, not only described. */
.gma-scd-app .gma-scd-vehicle-form [aria-invalid="true"] {
	border-color: var(--gma-scd-color-danger);
}

/* STEP 7B: vehicle deadlines, payments, renewals and documents ------------- */

.gma-scd-app .gma-scd-vehicle-section__header {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--gma-scd-spacing-3);
}

.gma-scd-app .gma-scd-vehicle-deadlines .gma-scd-table,
.gma-scd-app .gma-scd-vehicle-documents .gma-scd-table,
.gma-scd-app .gma-scd-vdeadline-amounts .gma-scd-table {
	margin-top: var(--gma-scd-spacing-3);
}

/* The parts of a cell (date and time condition, plate and archive mark...) wrap instead of overflowing a narrow card. */
.gma-scd-app .gma-scd-vdeadline-cell {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: flex-end;
	gap: var(--gma-scd-spacing-1) var(--gma-scd-spacing-2);
	min-width: 0;
}

.gma-scd-app .gma-scd-vdeadline-due {
	font-variant-numeric: tabular-nums;
}

.gma-scd-app .gma-scd-vdeadline-totals dd {
	font-variant-numeric: tabular-nums;
	font-weight: 600;
}

.gma-scd-app .gma-scd-vdeadline-payment-notes {
	display: block;
}

.gma-scd-app [data-gma-scd-vdeadline-payment-voided] td {
	color: var(--gma-scd-text-muted);
}

.gma-scd-app .gma-scd-vdeadline-renew {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--gma-scd-spacing-3);
}

.gma-scd-app .gma-scd-vdeadline-state form + .gma-scd-vehicle-panel {
	margin-top: var(--gma-scd-spacing-4);
}

.gma-scd-app .gma-scd-vdeadline-form .gma-scd-fieldset,
.gma-scd-app .gma-scd-vdeadline-form > .gma-scd-field {
	margin: 0 0 var(--gma-scd-spacing-4);
	padding: 0;
	border: 0;
	min-width: 0;
}

.gma-scd-app .gma-scd-vdeadline-form .gma-scd-fieldset > legend {
	margin-bottom: var(--gma-scd-spacing-2);
	font-weight: 600;
}

/* Fields of another type (hidden by the script; without it every field shows). */
.gma-scd-app [data-gma-scd-vdeadline-field][hidden],
.gma-scd-app [data-gma-scd-vdeadline-interval-field][hidden] {
	display: none;
}

.gma-scd-app .gma-scd-vehicle-documents__name {
	overflow-wrap: anywhere;
}

.gma-scd-app .gma-scd-vehicle-documents form {
	display: inline;
}

/* Wide layout: row actions side by side. */
@container gma-scd (min-width: 1050px) {
	.gma-scd-app .gma-scd-vehicle-list .gma-scd-table-actions {
		flex-wrap: nowrap;
	}
}

/* Compact layout --------------------------------------------------------- */

@container gma-scd (max-width: 1049px) {
	.gma-scd-app .gma-scd-vehicle-filters {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gma-scd-app .gma-scd-vehicle-detail {
		grid-template-columns: minmax(0, 1fr);
	}
}

@container gma-scd (max-width: 699px) {
	.gma-scd-app .gma-scd-vehicle-filters {
		grid-template-columns: minmax(0, 1fr);
	}

	.gma-scd-app .gma-scd-vehicle-filters .gma-scd-field--wide {
		grid-column: auto;
	}

	.gma-scd-app .gma-scd-vehicle-filters__actions .gma-scd-btn {
		flex: 1 1 auto;
	}
}
