/*
 * v3-pi.css — PrimeVue 4 MatDash override layer
 * Loaded in _vue.php after Aura.js preset, before module style.css
 * Aligns PrimeVue components with the MatDash design language (v3.css)
 */

/* ============================================
   SECTION 1 : DESIGN TOKENS
   ============================================ */

:root {
	/* PrimeVue primary palette — mapped from v3-vars.css */
	--p-primary-50: var(--v3-primary-50) !important;
	--p-primary-100: var(--v3-primary-100) !important;
	--p-primary-200: var(--v3-primary-200) !important;
	--p-primary-300: var(--v3-primary-300) !important;
	--p-primary-400: var(--v3-primary-400) !important;
	--p-primary-500: var(--v3-primary-500) !important;
	--p-primary-600: var(--v3-primary-600) !important;
	--p-primary-700: var(--v3-primary-700) !important;
	--p-primary-800: var(--v3-primary-800) !important;
	--p-primary-900: var(--v3-primary-900) !important;
	--p-primary-950: var(--v3-primary-950) !important;
	--p-primary-color: var(--v3-primary) !important;
	--p-primary-contrast-color: var(--v3-primary-contrast) !important;

	/* Local tokens — alias to v3-vars.css shared variables */
	--v3-pi-primary: var(--v3-primary);
	--v3-pi-primary-hover: var(--v3-primary-hover);
	--v3-pi-primary-active: var(--v3-primary-active);
	--v3-pi-primary-light: var(--v3-primary-light);
	--v3-pi-success: var(--v3-success);
	--v3-pi-success-hover: var(--v3-success-hover);
	--v3-pi-danger: var(--v3-danger);
	--v3-pi-danger-hover: var(--v3-danger-hover);
	--v3-pi-warning: var(--v3-warning);
	--v3-pi-warning-hover: var(--v3-warning-hover);
	--v3-pi-info: var(--v3-info);
	--v3-pi-info-hover: var(--v3-info-hover);
	--v3-pi-text: var(--v3-text);
	--v3-pi-text-muted: var(--v3-text-muted);
	--v3-pi-border: var(--v3-border);
	--v3-pi-bg-surface: var(--v3-bg-surface);
	--v3-pi-bg-hover: var(--v3-bg-hover);
	--v3-pi-bg-stripe: var(--v3-bg-stripe);
	--v3-pi-radius: var(--v3-radius-sm);
	--v3-pi-radius-card: var(--v3-radius);
	--v3-pi-radius-lg: var(--v3-radius-lg);
	--v3-pi-shadow: var(--v3-shadow-card);
	--v3-pi-shadow-elevated: var(--v3-shadow-dropdown);
	--v3-pi-font: var(--v3-font);
	--v3-pi-transition: var(--v3-transition);

	/* Button */
	--p-button-label-font-weight: 700;
}


/* ============================================
   SECTION 2 : TYPOGRAPHY & BASE
   ============================================ */

.p-button-label {
	font-weight: 700 !important;
}

body .p-component {
	font-family: var(--v3-pi-font);
	font-size: 0.875rem;
	color: var(--v3-pi-text);
}

body .p-inputtext {
	font-family: var(--v3-pi-font);
}

#app .p-component,
#app .p-component * {
	box-sizing: border-box;
}


/* ============================================
   SECTION 3 : DATATABLE
   ============================================ */

/* Table wrapper */
body .p-datatable {
	border-radius: var(--v3-pi-radius-card);
	overflow: hidden;
}

/* Header cells */
body .p-datatable .p-datatable-thead > tr > th,
body .p-datatable-header-cell {
	background: var(--v3-pi-bg-surface);
	color: var(--v3-pi-text);
	font-weight: 600;
	font-size: 0.8125rem;
	border-color: var(--v3-pi-border);
	padding: 0.625rem 0.75rem;
}

/* Body cells */
body .p-datatable .p-datatable-tbody > tr > td,
body .p-datatable-body-cell {
	border-color: var(--v3-pi-border);
	padding: 0.5rem 0.75rem;
	font-size: 0.8125rem;
}

/* Row hover */
body .p-datatable .p-datatable-tbody > tr:not(.p-datatable-row-selected):hover,
body .p-datatable-row:not([data-p-selected="true"]):hover {
	background: var(--v3-pi-bg-hover);
}

/* Striped rows */
body .p-datatable-striped .p-datatable-tbody > tr:nth-child(even),
body .p-datatable[data-p-striped-rows="true"] .p-datatable-row:nth-child(even) {
	background: var(--v3-pi-bg-stripe);
}
body .p-datatable-striped .p-datatable-tbody > tr:nth-child(even):hover,
body .p-datatable[data-p-striped-rows="true"] .p-datatable-row:nth-child(even):hover {
	background: #eef2f7;
}

/* Selected row */
body .p-datatable .p-datatable-tbody > tr.p-datatable-row-selected,
body .p-datatable-row[data-p-selected="true"] {
	background: var(--v3-pi-primary-light);
	color: var(--v3-pi-primary);
}

/* Sort column hover */
body .p-datatable .p-sortable-column:hover {
	background: var(--v3-pi-bg-hover);
}

body .p-datatable .p-sortable-column[data-p-sorted="true"] {
	color: var(--v3-pi-primary);
}

/* Column filter inputs */
body .p-datatable .p-column-filter-row .p-inputtext,
body .p-datatable .p-datatable-header-cell .p-inputtext {
	border-radius: var(--v3-pi-radius);
	font-size: 0.8125rem;
	padding: 0.375rem 0.625rem;
}

/* Column resize handle */
body .p-datatable .p-column-resizer {
	border-color: transparent;
}
body .p-datatable .p-column-resizer:hover {
	border-color: var(--v3-pi-primary);
}

/* Table header bar */
body .p-datatable .p-datatable-header {
	background: var(--v3-pi-bg-surface);
	border-color: var(--v3-pi-border);
	padding: 0.75rem 1rem;
	border-radius: var(--v3-pi-radius-card) var(--v3-pi-radius-card) 0 0;
}

/* Table footer */
body .p-datatable .p-datatable-footer {
	background: var(--v3-pi-bg-surface);
	border-color: var(--v3-pi-border);
	padding: 0.75rem 1rem;
}

/* Paginator */
body .p-paginator {
	border-color: var(--v3-pi-border);
	padding: 0.5rem 1rem;
	background: var(--v3-pi-bg-surface);
	border-radius: 0 0 var(--v3-pi-radius-card) var(--v3-pi-radius-card);
}
.p-datatable-gridlines .p-datatable-paginator-bottom {
	border-radius: 0 0 var(--v3-pi-radius-card) var(--v3-pi-radius-card);
}
body .p-paginator .p-paginator-page,
body .p-paginator .p-paginator-first,
body .p-paginator .p-paginator-prev,
body .p-paginator .p-paginator-next,
body .p-paginator .p-paginator-last {
	border-radius: var(--v3-pi-radius);
	min-width: 2rem;
	height: 2rem;
	transition: background var(--v3-pi-transition), color var(--v3-pi-transition);
}

body .p-paginator .p-paginator-page:hover {
	background: var(--v3-pi-bg-hover);
}

body .p-paginator .p-paginator-page[data-p-active="true"],
body .p-paginator .p-paginator-page.p-paginator-page-selected {
	background: var(--v3-pi-primary);
	color: #ffffff;
	border-color: var(--v3-pi-primary);
}

/* Compteur « N élément(s) » (défaut de p-datatable, primevue-config.js) : calé à gauche,
   pages centrées par un vide symétrique à droite, passage à la ligne sans chevauchement */
body .p-datatable .p-paginator-content:has(> .p-paginator-current) {
	flex: 1 1 auto;
}
body .p-datatable .p-paginator-content > .p-paginator-current {
	flex: 1 1 0;
	text-align: left;
	white-space: nowrap;
	padding-left: 0;
}
body .p-datatable .p-paginator-content:has(> .p-paginator-current)::after {
	content: '';
	flex: 1 1 0;
}

/* Grid lines refinement */
body .p-datatable-gridlines .p-datatable-thead > tr > th,
body .p-datatable-gridlines .p-datatable-tbody > tr > td {
	border-color: var(--v3-pi-border);
}

/* Empty message */
body .p-datatable .p-datatable-emptymessage td {
	text-align: center;
	color: var(--v3-pi-text-muted);
	padding: 2rem 1rem;
}


/* ============================================
   SECTION 4 : BUTTONS
   ============================================ */

body .p-button {
	border-radius: var(--v3-pi-radius);
	font-family: var(--v3-pi-font);
	font-weight: 500;
	font-size: 0.875rem;
	transition: background var(--v3-pi-transition), border-color var(--v3-pi-transition), box-shadow var(--v3-pi-transition);
	padding: 0.5rem 1rem;
}

/* Primary */
body .p-button:not(.p-button-outlined):not(.p-button-text):not(.p-button-link):not([data-p-severity]) {
	background: var(--v3-pi-primary);
	border-color: var(--v3-pi-primary);
	color: #ffffff;
}
body .p-button:not(.p-button-outlined):not(.p-button-text):not(.p-button-link):not([data-p-severity]):hover {
	background: var(--v3-pi-primary-hover);
	border-color: var(--v3-pi-primary-hover);
}
body .p-button:not(.p-button-outlined):not(.p-button-text):not(.p-button-link):not([data-p-severity]):active {
	background: var(--v3-pi-primary-active);
	border-color: var(--v3-pi-primary-active);
}

/* Focus ring */
body .p-button:focus-visible {
	box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.25);
}

/* Success */
body .p-button[data-p-severity="success"] {
	background: var(--v3-pi-success);
	border-color: var(--v3-pi-success);
}
body .p-button[data-p-severity="success"]:hover {
	background: var(--v3-pi-success-hover);
	border-color: var(--v3-pi-success-hover);
}

/* Danger */
body .p-button[data-p-severity="danger"] {
	background: var(--v3-pi-danger);
	border-color: var(--v3-pi-danger);
}
body .p-button[data-p-severity="danger"]:hover {
	background: var(--v3-pi-danger-hover);
	border-color: var(--v3-pi-danger-hover);
}

/* Warning */
body .p-button[data-p-severity="warn"],
body .p-button[data-p-severity="warning"] {
	background: var(--v3-pi-warning);
	border-color: var(--v3-pi-warning);
}
body .p-button[data-p-severity="warn"]:hover,
body .p-button[data-p-severity="warning"]:hover {
	background: var(--v3-pi-warning-hover);
	border-color: var(--v3-pi-warning-hover);
}

/* Info */
body .p-button[data-p-severity="info"] {
	background: var(--v3-pi-info);
	border-color: var(--v3-pi-info);
}
body .p-button[data-p-severity="info"]:hover {
	background: var(--v3-pi-info-hover);
	border-color: var(--v3-pi-info-hover);
}

/* Secondary */
body .p-button[data-p-severity="secondary"] {
	background: var(--v3-bg-secondary);
	border-color: var(--v3-bg-secondary);
	color: var(--v3-pi-text);
}
body .p-button[data-p-severity="secondary"]:hover {
	background: #e2e8f0;
	border-color: #e2e8f0;
}

/* Contrast */
body .p-button[data-p-severity="contrast"] {
	background: var(--v3-pi-text);
	border-color: var(--v3-pi-text);
	color: #ffffff;
}
body .p-button[data-p-severity="contrast"]:hover {
	background: #1a2536;
	border-color: #1a2536;
}

/* Outlined variant */
body .p-button-outlined {
	background: transparent;
}
body .p-button-outlined:not([data-p-severity]) {
	border-color: var(--v3-pi-primary);
	color: var(--v3-pi-primary);
}
body .p-button-outlined:not([data-p-severity]):hover {
	background: var(--v3-pi-primary-light);
}
body .p-button-outlined[data-p-severity="success"] {
	background: transparent;
	border-color: var(--v3-pi-success);
	color: var(--v3-pi-success);
}
body .p-button-outlined[data-p-severity="danger"] {
	background: transparent;
	border-color: var(--v3-pi-danger);
	color: var(--v3-pi-danger);
}
body .p-button-outlined[data-p-severity="warn"],
body .p-button-outlined[data-p-severity="warning"] {
	background: transparent;
	border-color: var(--v3-pi-warning);
	color: var(--v3-pi-warning);
}
body .p-button-outlined[data-p-severity="info"] {
	background: transparent;
	border-color: var(--v3-pi-info);
	color: var(--v3-pi-info);
}

/* Text variant */
body .p-button-text {
	background: transparent;
	border-color: transparent;
}
body .p-button-text:not([data-p-severity]) {
	color: var(--v3-pi-primary);
}
body .p-button-text:not([data-p-severity]):hover {
	background: var(--v3-pi-primary-light);
}
/* Colored severities — without these the solid severity fill above makes the label invisible (same color text on same color fill) */
body .p-button-text[data-p-severity="danger"] {
	background: transparent;
	border-color: transparent;
	color: var(--v3-pi-danger);
}
body .p-button-text[data-p-severity="danger"]:hover {
	background: #fff1f2;
}
body .p-button-text[data-p-severity="warn"],
body .p-button-text[data-p-severity="warning"] {
	background: transparent;
	border-color: transparent;
	color: var(--v3-pi-warning);
}
body .p-button-text[data-p-severity="warn"]:hover,
body .p-button-text[data-p-severity="warning"]:hover {
	background: #fff7ed;
}

/* Sizes */
body .p-button-sm {
	font-size: 0.8125rem;
	padding: 0.375rem 0.75rem;
}
body .p-button-lg {
	font-size: 1rem;
	padding: 0.625rem 1.25rem;
}

/* Icon-only */
body .p-button-icon-only {
	width: 2.25rem;
	padding: 0.5rem;
}
body .p-button-icon-only.p-button-sm {
	width: 2rem;
	padding: 0.375rem;
}


/* ============================================
   SECTION 5 : FORM INPUTS
   ============================================ */

/* InputText */
body .p-inputtext {
	border-radius: var(--v3-pi-radius);
	border-color: var(--v3-pi-border);
	color: var(--v3-pi-text);
	transition: border-color var(--v3-pi-transition), box-shadow var(--v3-pi-transition);
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
}
body .p-inputtext:enabled:hover {
	border-color: #cbd2de;
}
body .p-inputtext:enabled:focus {
	border-color: var(--v3-pi-primary);
	box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.12);
}

/* Select (Dropdown) */
body .p-select {
	border-radius: var(--v3-pi-radius);
	border-color: var(--v3-pi-border);
	transition: border-color var(--v3-pi-transition), box-shadow var(--v3-pi-transition);
}
body .p-select:hover {
	border-color: #cbd2de;
}
body .p-select.p-focus,
body .p-select:focus {
	border-color: var(--v3-pi-primary);
	box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.12);
}
body .p-select-overlay {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
	border: 1px solid var(--v3-pi-border);
}
body .p-select-option[data-p-selected="true"] {
	background: var(--v3-pi-primary-light);
	color: var(--v3-pi-primary);
}
body .p-select-option:hover {
	background: var(--v3-pi-bg-hover);
}

/* MultiSelect */
body .p-multiselect {
	border-radius: var(--v3-pi-radius);
	border-color: var(--v3-pi-border);
}
body .p-multiselect:hover {
	border-color: #cbd2de;
}
body .p-multiselect.p-focus {
	border-color: var(--v3-pi-primary);
	box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.12);
}
body .p-multiselect-overlay {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
}
body .p-multiselect-overlay .p-multiselect-header {
	padding: 10px 12px;
	gap: 10px;
}
body .p-multiselect-overlay .p-multiselect-filter-container {
	flex: 1;
}
body .p-multiselect-overlay .p-multiselect-filter {
	height: 40px;
	cursor: text;
	width: 100%;
}
body .p-multiselect-overlay .p-multiselect-filter-container .p-inputicon {
	pointer-events: none;
}

/* DatePicker */
body .p-datepicker-input {
	border-radius: var(--v3-pi-radius);
}
body .p-datepicker-panel {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
}
body .p-datepicker-panel .p-datepicker-day-cell[data-p-selected="true"] .p-datepicker-day {
	background: var(--v3-pi-primary);
	color: #ffffff;
}
body .p-datepicker-panel .p-datepicker-day:hover {
	background: var(--v3-pi-bg-hover);
}
body .p-datepicker-panel .p-datepicker-today .p-datepicker-day {
	border-color: var(--v3-pi-primary);
	color: var(--v3-pi-primary);
}

/* Checkbox */
body .p-checkbox-box {
	border-radius: 4px;
	border-color: var(--v3-pi-border);
	transition: background var(--v3-pi-transition), border-color var(--v3-pi-transition);
}
body .p-checkbox-box[data-p-checked="true"],
body .p-checkbox.p-checked .p-checkbox-box {
	background: var(--v3-pi-primary);
	border-color: var(--v3-pi-primary);
}
body .p-checkbox-box:hover {
	border-color: var(--v3-pi-primary);
}

/* RadioButton */
body .p-radiobutton-box {
	border-color: var(--v3-pi-border);
	transition: background var(--v3-pi-transition), border-color var(--v3-pi-transition);
}
body .p-radiobutton-box[data-p-checked="true"],
body .p-radiobutton.p-checked .p-radiobutton-box {
	border-color: var(--v3-pi-primary);
}
body .p-radiobutton-icon {
	background: var(--v3-pi-primary);
}

/* ToggleSwitch */
body .p-toggleswitch-slider {
	transition: background var(--v3-pi-transition);
}
body .p-toggleswitch[data-p-checked="true"] .p-toggleswitch-slider,
body .p-toggleswitch.p-checked .p-toggleswitch-slider {
	background: var(--v3-pi-primary);
}

/* Textarea */
body .p-textarea {
	border-radius: var(--v3-pi-radius);
	border-color: var(--v3-pi-border);
}
body .p-textarea:enabled:focus {
	border-color: var(--v3-pi-primary);
	box-shadow: 0 0 0 0.2rem rgba(37, 99, 235, 0.12);
}

/* InputNumber */
body .p-inputnumber-input {
	border-radius: var(--v3-pi-radius);
}

/* Password */
body .p-password-input {
	border-radius: var(--v3-pi-radius);
}

/* FloatLabel inside adjustments */
body .p-floatlabel > .p-inputtext {
	border-radius: var(--v3-pi-radius);
}

/* IconField — padding for input with leading icon */
body .p-iconfield .p-inputtext,
body .p-iconfield .p-password-input,
body .p-iconfield .p-inputtext.p-component,
body .p-iconfield .p-password .p-inputtext {
	padding-left: 2.5rem !important;
}
body .p-iconfield > .p-inputicon {
	left: 0.75rem;
	color: var(--v3-pi-text-muted);
	z-index: 1;
}
body .p-iconfield {
	position: relative;
}
body .p-floatlabel:has(.p-iconfield) > label {
	left: 2.5rem;
}


/* ============================================
   SECTION 6 : DIALOGS
   ============================================ */

body .p-dialog {
	border-radius: var(--v3-pi-radius-card);
	box-shadow: var(--v3-pi-shadow-elevated);
	border: none;
	overflow: hidden;
}

body .p-dialog .p-dialog-header {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--v3-pi-border);
	background: var(--v3-pi-bg-surface);
}

body .p-dialog .p-dialog-header .p-dialog-title {
	font-weight: 600;
	font-size: 1rem;
}

body .p-dialog .p-dialog-content {
	padding: 1.25rem;
}

body .p-dialog .p-dialog-footer {
	padding: 0.75rem 1.25rem;
	border-top: 1px solid var(--v3-pi-border);
	background: var(--v3-pi-bg-surface);
}

body .p-dialog-mask {
	background: rgba(0, 0, 0, 0.4);
}

/* Close button */
body .p-dialog .p-dialog-header-actions .p-button {
	border-radius: 50%;
	width: 2rem;
	height: 2rem;
	color: var(--v3-pi-text-muted);
}
body .p-dialog .p-dialog-header-actions .p-button:hover {
	background: var(--v3-pi-bg-hover);
	color: var(--v3-pi-text);
}
/* Tablet and phone: the close button is a 44 px touch target */
@media screen and (max-width: 900px) {
	body .p-dialog .p-dialog-header-actions .p-button { width: 44px; height: 44px; }
}

/* ConfirmDialog */
body .p-confirmdialog {
	border-radius: var(--v3-pi-radius-card);
}

/* SignaturePadModal (global component) — lives here because the public portals
   (profile.php, driver.php) load v3-pi.css but not custom.css */
.sig-pad-wrapper { padding: 10px 0; }
.sig-pad-canvas {
	width: 100%;
	height: 220px;
	background: #fff;
	border: 2px dashed #cbd5e1;
	border-radius: 10px;
	touch-action: none;
}
.sig-pad-hint { font-size: 0.82rem; color: #64748b; text-align: center; margin: 8px 0 0; }

/* DeliveryNoteSheet (global component) — delivery note read and signed on the driver's phone.
   Full screen on a phone, fixed head and foot, dense lines: quantity first, dish in bold. */
body .p-dialog.bl-sheet { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; border-radius: 0; background: #f8fafc; }
body .p-dialog.bl-sheet .p-dialog-content { display: flex; height: 100%; padding: 0; overflow: hidden; background: #f8fafc; }
@media screen and (min-width: 640px) {
	body .p-dialog.bl-sheet { width: 560px; height: calc(100dvh - 48px); border-radius: 16px; }
}
.bl-sheet-wrap { display: flex; flex-direction: column; width: 100%; min-height: 0; color: #0f172a; }
.bl-sheet-top { padding: 10px 16px 12px; background: #fff; border-bottom: 1px solid var(--v3-border, #e2e8f0); }
.bl-sheet-eyebrow { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-primary, #2563eb); }
.bl-sheet-close { width: 44px; height: 44px; margin: -6px -12px -6px 0; border: 0; border-radius: 50%; background: transparent; color: #64748b; font-size: 16px; cursor: pointer; }
.bl-sheet-close:hover { background: #f1f5f9; }
.bl-sheet-title { margin: 0 0 5px; font-size: 19px; font-weight: 800; line-height: 1.2; }
.bl-sheet-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; font-size: 13px; font-weight: 700; color: #334155; }
.bl-sheet-meta i, .bl-sheet-row i { margin-right: 6px; font-size: 12px; color: #94a3b8; }
.bl-sheet-row { display: flex; align-items: baseline; margin-top: 4px; font-size: 13px; line-height: 1.35; color: #475569; }
.bl-sheet-body { flex: 1; min-height: 0; padding: 0 12px 16px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.bl-sheet-body > :first-child { margin-top: 10px; }
.bl-sheet-mention { margin-bottom: 8px; padding: 8px 12px; border: 1px solid var(--v3-border, #e2e8f0); border-radius: 10px; background: #fff; font-size: 12.5px; font-weight: 700; text-align: center; line-height: 1.35; }
.bl-sheet-mention p, .bl-sheet-legal p { margin: 0; }
.bl-sheet-comment { display: flex; gap: 8px; margin-bottom: 8px; padding: 9px 12px; border-radius: 10px; background: #fff7ed; color: #9a3412; font-size: 13px; line-height: 1.4; white-space: pre-line; }
.bl-sheet-comment i { margin-top: 2px; }
.bl-sheet-comment span { flex: 1; min-width: 0; }
.bl-sheet-comment.is-long { cursor: pointer; }
.bl-sheet-comment.is-long:not(.is-open) span { display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical; }
.bl-sheet-sec { margin-bottom: 8px; border: 1px solid var(--v3-border, #e2e8f0); border-radius: 12px; background: #fff; }
.bl-sheet-sec-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 6px 12px; border-radius: 11px 11px 0 0; background: #f1f5f9; font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: #475569; }
.bl-sheet-sec-head span + span { min-width: 22px; padding: 0 7px; border-radius: 9px; background: #fff; color: #0f172a; text-align: center; }
.bl-sheet-line { display: flex; align-items: flex-start; gap: 10px; padding: 6px 12px; border-top: 1px solid #f1f5f9; }
.bl-sheet-sec-head + .bl-sheet-line { border-top: 0; }
.bl-sheet-qty { flex: 0 0 auto; min-width: 48px; padding: 1px 6px; border-radius: 7px; background: #eff6ff; color: #1e3a8a; font-size: 14px; font-weight: 800; line-height: 1.45; text-align: center; font-variant-numeric: tabular-nums; }
.bl-sheet-qty small { font-size: 10.5px; }
.bl-sheet-name { flex: 1; min-width: 0; font-size: 13.5px; line-height: 1.35; overflow-wrap: anywhere; }
.bl-sheet-name b { display: block; font-weight: 700; }
.bl-sheet-name small { display: block; overflow: hidden; font-size: 12px; color: #64748b; white-space: nowrap; text-overflow: ellipsis; }
.bl-sheet-name small.bl-sheet-alg { color: #b45309; font-weight: 600; white-space: normal; }
.bl-sheet-name em { display: block; margin-top: 2px; font-size: 12px; font-style: normal; font-weight: 700; color: #b45309; }
.bl-sheet-props i { display: inline-block; margin: 3px 4px 0 0; padding: 0 6px; border-radius: 9px; background: #fff4e0; color: #a15c00; font-size: 10px; font-style: normal; font-weight: 700; }
.bl-sheet-prov { margin-bottom: 8px; padding: 0 12px; border-radius: 10px; background: #fff; font-size: 12px; color: #64748b; }
.bl-sheet-prov summary { min-height: 40px; display: flex; align-items: center; font-weight: 700; color: #475569; cursor: pointer; }
.bl-sheet-prov p { margin: 0; padding-bottom: 10px; line-height: 1.45; }
.bl-sheet-legal { padding: 2px 4px; font-size: 12px; line-height: 1.4; color: #475569; }
.bl-sheet-state { padding: 32px 12px; text-align: center; color: #64748b; }
.bl-sheet-foot { padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); border-top: 1px solid var(--v3-border, #e2e8f0); background: #fff; box-shadow: 0 -4px 14px rgba(15, 23, 42, .06); }
.bl-sheet-form { display: flex; gap: 8px; }
.bl-sheet-signed + .bl-sheet-form { margin-top: 8px; }
body .bl-sheet-input { flex: 1; min-width: 0; min-height: 46px; font-size: 16px; }
body .bl-sheet-sign { flex: 0 0 auto; min-height: 46px; font-weight: 700; }
.bl-sheet-signed { display: flex; align-items: center; gap: 10px; padding: 6px 10px; border-radius: 10px; background: #ecfdf5; color: #065f46; }
.bl-sheet-signed > i { font-size: 22px; color: #16a34a; }
.bl-sheet-signed span { display: flex; flex: 1; flex-direction: column; font-size: 13.5px; line-height: 1.3; }
.bl-sheet-signed small { font-size: 12px; color: #047857; }
.bl-sheet-link { min-height: 44px; padding: 0 2px; border: 0; background: transparent; color: var(--v3-primary, #2563eb); font-size: 13px; font-weight: 700; text-decoration: underline; cursor: pointer; }
.bl-sheet-hint { display: flex; gap: 6px; align-items: baseline; margin: 0; font-size: 13px; color: #64748b; }
@media screen and (max-width: 360px) {
	.bl-sheet-form { flex-direction: column; }
}


/* ============================================
   SECTION 7 : TOAST
   ============================================ */

body .p-toast-message {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
	margin-bottom: 0.5rem;
}

body .p-toast-message[data-p-severity="success"] {
	background: #ecfdf5;
	border-left: 4px solid var(--v3-pi-success);
	color: #065f46;
}

body .p-toast-message[data-p-severity="info"] {
	background: #ecfeff;
	border-left: 4px solid var(--v3-pi-info);
	color: #155e75;
}

body .p-toast-message[data-p-severity="warn"] {
	background: #fff7ed;
	border-left: 4px solid var(--v3-pi-warning);
	color: #9a3412;
}

body .p-toast-message[data-p-severity="error"] {
	background: #fff1f2;
	border-left: 4px solid var(--v3-pi-danger);
	color: #9f1239;
}

body .p-toast-message .p-toast-close-button {
	border-radius: 50%;
	width: 1.75rem;
	height: 1.75rem;
}
body .p-toast-message .p-toast-close-button:hover {
	background: rgba(0, 0, 0, 0.06);
}

body .p-toast-message .p-toast-summary {
	font-weight: 600;
}

/* Phones: the 25rem toast started off-screen on a 390 px wide page */
@media screen and (max-width: 480px) {
	body .p-toast { width: calc(100vw - 16px); max-width: calc(100vw - 16px); }
	body .p-toast.p-toast-top-right { right: 8px !important; } /* PrimeVue sets right: 20px inline */
}


/* ============================================
   SECTION 8 : TAGS & BADGES
   ============================================ */

body .p-tag {
	border-radius: 6px;
	font-size: 0.75rem;
	font-weight: 600;
	padding: 0.2rem 0.5rem;
}

body .p-tag[data-p-severity="success"],
body .p-tag.p-tag-success {
	background: #ecfdf5;
	color: #065f46;
}
body .p-tag[data-p-severity="info"],
body .p-tag.p-tag-info {
	background: #ecfeff;
	color: #155e75;
}
body .p-tag[data-p-severity="warn"],
body .p-tag[data-p-severity="warning"],
body .p-tag.p-tag-warn {
	background: #fff7ed;
	color: #9a3412;
}
body .p-tag[data-p-severity="danger"],
body .p-tag.p-tag-danger {
	background: #fff1f2;
	color: #9f1239;
}

body .p-badge {
	border-radius: 50%;
	font-size: 0.7rem;
	font-weight: 700;
	min-width: 1.25rem;
	height: 1.25rem;
	line-height: 1.25rem;
}
body .p-badge:not([data-p-severity]) {
	background: var(--v3-pi-primary);
}
body .p-badge[data-p-severity="success"] { background: var(--v3-pi-success); }
body .p-badge[data-p-severity="info"] { background: var(--v3-pi-info); }
body .p-badge[data-p-severity="warn"],
body .p-badge[data-p-severity="warning"] { background: var(--v3-pi-warning); }
body .p-badge[data-p-severity="danger"] { background: var(--v3-pi-danger); }


/* ============================================
   SECTION 9 : CARDS & PANELS
   ============================================ */

body .p-card {
	border-radius: var(--v3-pi-radius-card);
	box-shadow: var(--v3-pi-shadow);
	border: 1px solid var(--v3-pi-border);
}
body .p-card .p-card-body {
	padding: 1.25rem;
}
body .p-card .p-card-title {
	font-weight: 600;
	font-size: 1rem;
	color: var(--v3-pi-text);
}
body .p-card .p-card-subtitle {
	color: var(--v3-pi-text-muted);
	font-size: 0.8125rem;
}

body .p-panel {
	border-radius: var(--v3-pi-radius-card);
	box-shadow: var(--v3-pi-shadow);
	border: 1px solid var(--v3-pi-border);
}
body .p-panel .p-panel-header {
	padding: 0.75rem 1.25rem;
	border-bottom: 1px solid var(--v3-pi-border);
	background: var(--v3-pi-bg-surface);
	border-radius: var(--v3-pi-radius-card) var(--v3-pi-radius-card) 0 0;
	font-weight: 600;
}
body .p-panel .p-panel-content {
	padding: 1.25rem;
}

body .p-toolbar {
	border-radius: var(--v3-pi-radius-card);
	border-color: var(--v3-pi-border);
	padding: 0.75rem 1rem;
	background: var(--v3-pi-bg-surface);
}

body .p-fieldset {
	border-radius: var(--v3-pi-radius);
	border-color: var(--v3-pi-border);
}
body .p-fieldset .p-fieldset-legend {
	border-radius: var(--v3-pi-radius);
	font-weight: 600;
}

/* Accordion */
body .p-accordion .p-accordion-header a {
	border-radius: var(--v3-pi-radius);
	font-weight: 600;
}
body .p-accordion .p-accordion-header:not(.p-disabled).p-highlighted a {
	color: var(--v3-pi-primary);
}


/* ============================================
   SECTION 10 : MENUS & POPOVER
   ============================================ */

body .p-menu {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
	border: 1px solid var(--v3-pi-border);
	padding: 0.25rem;
}
body .p-menu .p-menuitem-link {
	border-radius: 6px;
	padding: 0.5rem 0.75rem;
	transition: background var(--v3-pi-transition);
}
body .p-menu .p-menuitem-link:hover,
body .p-menu .p-menuitem:not(.p-disabled) > .p-menuitem-content:hover {
	background: var(--v3-pi-bg-hover);
}
body .p-menu .p-menuitem-link .p-menuitem-text {
	color: var(--v3-pi-text);
	font-size: 0.875rem;
}

body .p-tieredmenu {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
	border: 1px solid var(--v3-pi-border);
	padding: 0.25rem;
}
body .p-tieredmenu .p-menuitem-link {
	border-radius: 6px;
	padding: 0.5rem 0.75rem;
}

body .p-contextmenu {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
}

body .p-popover {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
	border: 1px solid var(--v3-pi-border);
}
body .p-popover .p-popover-content {
	padding: 0.75rem;
}

body .p-overlaypanel {
	border-radius: var(--v3-pi-radius);
	box-shadow: var(--v3-pi-shadow-elevated);
}

/* Breadcrumb */
body .p-breadcrumb {
	border-radius: var(--v3-pi-radius);
	background: transparent;
	border: none;
	padding: 0.5rem 0;
}
body .p-breadcrumb .p-breadcrumb-item-link {
	color: var(--v3-pi-text-muted);
	transition: color var(--v3-pi-transition);
}
body .p-breadcrumb .p-breadcrumb-item-link:hover {
	color: var(--v3-pi-primary);
}


/* ============================================
   SECTION 11 : FEEDBACK & LOADING
   ============================================ */

/* ProgressBar */
body .p-progressbar {
	border-radius: var(--v3-pi-radius);
	height: 0.5rem;
	background: var(--v3-bg-secondary);
}
body .p-progressbar .p-progressbar-value {
	background: var(--v3-pi-primary);
	border-radius: var(--v3-pi-radius);
}

/* ProgressSpinner */
body .p-progressspinner-circle {
	stroke: var(--v3-pi-primary) !important;
}

/* Message (inline) */
body .p-message {
	border-radius: var(--v3-pi-radius);
	margin: 0.5rem 0;
}
body .p-message[data-p-severity="success"],
body .p-message.p-message-success {
	background: #ecfdf5;
	border-color: #bbf7d0;
	color: #065f46;
}
body .p-message[data-p-severity="info"],
body .p-message.p-message-info {
	background: #ecfeff;
	border-color: #a5f3fc;
	color: #155e75;
}
body .p-message[data-p-severity="warn"],
body .p-message[data-p-severity="warning"],
body .p-message.p-message-warn {
	background: #fff7ed;
	border-color: #fed7aa;
	color: #9a3412;
}
body .p-message[data-p-severity="error"],
body .p-message.p-message-error {
	background: #fff1f2;
	border-color: #fecdd3;
	color: #9f1239;
}


/* ============================================
   SECTION 12 : MISC
   ============================================ */

/* Divider */
body .p-divider {
	border-color: var(--v3-pi-border);
}
body .p-divider .p-divider-content {
	background: var(--v3-pi-bg-surface);
	color: var(--v3-pi-text-muted);
	font-size: 0.8125rem;
}

/* Chip */
body .p-chip {
	border-radius: 999px;
	font-size: 0.8125rem;
	background: var(--v3-bg-secondary);
	color: var(--v3-pi-text);
}
body .p-chip .p-chip-remove-icon {
	border-radius: 50%;
}

/* Avatar */
body .p-avatar {
	border-radius: var(--v3-pi-radius);
}
body .p-avatar.p-avatar-circle {
	border-radius: 50%;
}

/* Tabs */
body .p-tabs .p-tablist-tab-list {
	border-color: var(--v3-pi-border);
}
body .p-tabs .p-tab {
	font-weight: 500;
	color: var(--v3-pi-text-muted);
	transition: color var(--v3-pi-transition);
	padding: 0.75rem 1.25rem;
}
body .p-tabs .p-tab:hover {
	color: var(--v3-pi-primary);
}
body .p-tabs .p-tab[data-p-active="true"],
body .p-tabs .p-tab-active {
	color: var(--v3-pi-primary);
}
body .p-tabs .p-tablist-active-bar {
	background: var(--v3-pi-primary);
}

/* Skeleton */
body .p-skeleton {
	border-radius: var(--v3-pi-radius);
	background: var(--v3-bg-secondary);
}
body .p-skeleton::after {
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.5), transparent);
}

/* ScrollPanel */
body .p-scrollpanel .p-scrollpanel-bar {
	border-radius: 999px;
	background: #c8cdd5;
	opacity: 0;
	transition: opacity var(--v3-pi-transition);
}
body .p-scrollpanel:hover .p-scrollpanel-bar {
	opacity: 1;
}

/* Stepper */
body .p-stepper .p-stepper-item.p-stepper-item-active .p-stepper-number {
	background: var(--v3-pi-primary);
	color: #ffffff;
}

/* Image preview */
body .p-image-preview-mask {
	border-radius: var(--v3-pi-radius);
}

/* Drawer */
body .p-drawer {
	box-shadow: var(--v3-pi-shadow-elevated);
}
body .p-drawer .p-drawer-header {
	padding: 1rem 1.25rem;
	border-bottom: 1px solid var(--v3-pi-border);
}
body .p-drawer .p-drawer-content {
	padding: 1.25rem;
}
