/*
 * 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);
}

/* 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; }


/* ============================================
   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;
}


/* ============================================
   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;
}
