/* RFL – Anagrafiche · applicazione frontend
   Rende native sul sito le viste dei moduli, senza dipendere dai fogli di stile di wp-admin. */

.rfl-app {
	--rfl-app-fondo: #f4f6f8;
	--rfl-app-superficie: #ffffff;
	--rfl-app-testo: #1b2430;
	--rfl-app-muto: #5b6b7c;
	--rfl-app-linea: #dfe5ea;
	--rfl-app-accento: #2271b1;
	--rfl-app-rosso: #b32d2e;
	--rfl-app-verde: #1a7f52;
	--rfl-app-giallo: #b26a00;
	--rfl-app-raggio: 10px;

	background: var(--rfl-app-fondo);
	color: var(--rfl-app-testo);
	font-size: 15px;
	line-height: 1.55;
	border-radius: var(--rfl-app-raggio);
	overflow: hidden;
	margin: 0 0 28px;
}

.rfl-app *, .rfl-app *::before, .rfl-app *::after { box-sizing: border-box; }

.rfl-app-piena {
	width: 100vw;
	max-width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	border-radius: 0;
}

/* ---------- Barra ---------- */

.rfl-app-barra {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	padding: 12px 20px;
	background: #12202e;
	color: #e7edf3;
	position: sticky;
	top: 0;
	z-index: 30;
}

.rfl-app-marchio a {
	display: flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	text-decoration: none;
	font-weight: 700;
	font-size: 15px;
}

.rfl-app-logo { font-size: 19px; line-height: 1; }

.rfl-app-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	flex: 1 1 auto;
}

.rfl-app-voce {
	--rfl-tile: #64748b;
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 13px;
	border-radius: 999px;
	color: #b9c6d3 !important;
	text-decoration: none;
	font-size: 13.5px;
	font-weight: 600;
	white-space: nowrap;
	transition: background .15s, color .15s;
}

.rfl-app-voce:hover,
.rfl-app-voce:focus-visible { background: rgba(255, 255, 255, .1); color: #fff !important; }

.rfl-app-voce.attiva {
	background: var(--rfl-tile);
	color: #fff !important;
}

.rfl-app-pallino {
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: #f0b429;
	display: inline-block;
}

.rfl-app-utente {
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	color: #9fb0c0;
}

.rfl-app-utente a { color: #9fb0c0; text-decoration: none; }
.rfl-app-utente a:hover { color: #fff; text-decoration: underline; }
.rfl-app-chi { font-weight: 600; color: #e7edf3; }

/* ---------- Corpo ---------- */

.rfl-app-corpo { padding: 26px 24px 34px; }
.rfl-app-corpo > .wrap { margin: 0; max-width: 1220px; }
.rfl-app .wrap { padding: 0; }

.rfl-app h1 {
	font-size: 26px;
	line-height: 1.2;
	margin: 0 0 6px;
	font-weight: 700;
	color: var(--rfl-app-testo);
}

.rfl-app h2 { font-size: 18px; margin: 30px 0 10px; font-weight: 700; }
.rfl-app h3 { font-size: 15.5px; margin: 22px 0 8px; font-weight: 700; }
.rfl-app h1:first-child, .rfl-app h2:first-child { margin-top: 0; }

.rfl-app .wp-heading-inline { display: inline-block; margin-right: 10px; }
.rfl-app .wp-header-end { display: block; height: 1px; margin: 14px 0 18px; background: var(--rfl-app-linea); border: 0; }
.rfl-app hr.wp-header-end { border: 0; }

.rfl-app p { margin: 0 0 14px; }
.rfl-app a { color: var(--rfl-app-accento); }
.rfl-app code { background: #eef2f6; padding: 1px 5px; border-radius: 4px; font-size: .88em; }

.rfl-app .description { color: var(--rfl-app-muto); font-size: 13px; margin-top: 4px; }
.rfl-app .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* ---------- Schede di navigazione ---------- */

.rfl-app .nav-tab-wrapper {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	border-bottom: 1px solid var(--rfl-app-linea);
	margin: 0 0 22px;
	padding: 0;
}

.rfl-app .nav-tab {
	background: none;
	border: 0;
	border-bottom: 2px solid transparent;
	border-radius: 0;
	padding: 9px 14px;
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	color: var(--rfl-app-muto);
	text-decoration: none;
}

.rfl-app .nav-tab:hover { color: var(--rfl-app-testo); }
.rfl-app .nav-tab-active,
.rfl-app .nav-tab-active:hover { color: var(--rfl-app-accento); border-bottom-color: var(--rfl-app-accento); background: none; }

/* ---------- Pulsanti ---------- */

.rfl-app .button,
.rfl-app .page-title-action,
.rfl-app input[type="submit"],
.rfl-app button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	background: var(--rfl-app-superficie);
	border: 1px solid var(--rfl-app-linea);
	border-radius: 7px;
	color: var(--rfl-app-testo);
	padding: 7px 14px;
	font-size: 13.5px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}

.rfl-app .button:hover,
.rfl-app .page-title-action:hover { border-color: var(--rfl-app-accento); color: var(--rfl-app-accento); }

.rfl-app .button-primary,
.rfl-app input[type="submit"].button-primary,
.rfl-app .page-title-action {
	background: var(--rfl-app-accento);
	border-color: var(--rfl-app-accento);
	color: #fff;
}

.rfl-app .button-primary:hover,
.rfl-app .page-title-action:hover { background: #1a5c92; border-color: #1a5c92; color: #fff; }

.rfl-app .button-small { padding: 4px 10px; font-size: 12.5px; }
.rfl-app .button-link-delete { background: none; border-color: transparent; color: var(--rfl-app-rosso); }
.rfl-app .button-link-delete:hover { background: #fdf1f1; border-color: #f3c4c4; color: var(--rfl-app-rosso); }
.rfl-app .button-link { background: none; border: 0; color: var(--rfl-app-accento); padding: 0; }
.rfl-app .button:disabled { opacity: .55; cursor: not-allowed; }
.rfl-app .submit { margin: 20px 0 0; padding: 0; }

/* ---------- Campi ---------- */

.rfl-app input[type="text"],
.rfl-app input[type="search"],
.rfl-app input[type="email"],
.rfl-app input[type="url"],
.rfl-app input[type="tel"],
.rfl-app input[type="number"],
.rfl-app input[type="date"],
.rfl-app input[type="password"],
.rfl-app select,
.rfl-app textarea {
	background: var(--rfl-app-superficie);
	border: 1px solid var(--rfl-app-linea);
	border-radius: 7px;
	padding: 7px 10px;
	font-size: 14px;
	font-family: inherit;
	color: var(--rfl-app-testo);
	max-width: 100%;
}

.rfl-app input:focus,
.rfl-app select:focus,
.rfl-app textarea:focus {
	border-color: var(--rfl-app-accento);
	box-shadow: 0 0 0 3px rgba(34, 113, 177, .16);
	outline: 2px solid transparent;
}

.rfl-app .regular-text { width: 320px; max-width: 100%; }
.rfl-app .large-text, .rfl-app .widefat { width: 100%; }
.rfl-app .small-text { width: 78px; }
.rfl-app .code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }

.rfl-app .form-table { width: 100%; border-collapse: collapse; margin: 0 0 18px; }
.rfl-app .form-table th {
	text-align: left;
	vertical-align: top;
	width: 210px;
	padding: 14px 16px 14px 0;
	font-weight: 600;
	font-size: 13.5px;
	color: var(--rfl-app-muto);
}
.rfl-app .form-table td { padding: 12px 0; vertical-align: top; }
.rfl-app .form-table tr { border-bottom: 1px solid var(--rfl-app-linea); }
.rfl-app .form-table tr:last-child { border-bottom: 0; }
.rfl-app .form-table label { display: inline-flex; align-items: center; gap: 6px; margin-right: 12px; }

@media (max-width: 782px) {
	.rfl-app .form-table th { display: block; width: auto; padding-bottom: 4px; }
	.rfl-app .form-table td { display: block; padding-top: 0; }
}

/* ---------- Tabelle ---------- */

.rfl-app .widefat {
	background: var(--rfl-app-superficie);
	border: 1px solid var(--rfl-app-linea);
	border-radius: var(--rfl-app-raggio);
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	font-size: 14px;
	margin-bottom: 18px;
}

.rfl-app .widefat th {
	text-align: left;
	font-size: 11.5px;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--rfl-app-muto);
	font-weight: 700;
	padding: 11px 14px;
	background: #f8fafb;
	border-bottom: 1px solid var(--rfl-app-linea);
}

.rfl-app .widefat td { padding: 12px 14px; border-bottom: 1px solid #eef2f5; vertical-align: top; }
.rfl-app .widefat tbody tr:last-child td { border-bottom: 0; }
.rfl-app .widefat.striped tbody tr:nth-child(even) { background: #fafbfc; }
.rfl-app .widefat tbody tr:hover { background: #f2f7fb; }
.rfl-app .row-title { font-weight: 700; text-decoration: none; }
.rfl-app .row-actions { color: var(--rfl-app-muto); font-size: 12.5px; margin-top: 3px; visibility: visible; }
.rfl-app .row-actions span::after { content: " · "; color: #c6d0d9; }
.rfl-app .row-actions span:last-child::after { content: ""; }
.rfl-app .submitdelete { color: var(--rfl-app-rosso); }

.rfl-app .tablenav { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 14px; }
.rfl-app .tablenav.bottom { margin: 14px 0 0; }
.rfl-app .tablenav .actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 0; }
.rfl-app .tablenav-pages { margin-left: auto; display: flex; gap: 4px; align-items: center; }
.rfl-app .tablenav-pages a,
.rfl-app .tablenav-pages .current {
	padding: 4px 10px;
	border: 1px solid var(--rfl-app-linea);
	border-radius: 6px;
	text-decoration: none;
	background: var(--rfl-app-superficie);
}
.rfl-app .tablenav-pages .current { background: var(--rfl-app-accento); color: #fff; border-color: var(--rfl-app-accento); }
.rfl-app .displaying-num { color: var(--rfl-app-muto); font-size: 13px; }
.rfl-app .search-box { display: flex; gap: 6px; margin: 0 0 14px; }
.rfl-app .spinner { display: none; }
.rfl-app .check-column { width: 32px; }

/* ---------- Avvisi ---------- */

.rfl-app .notice {
	background: var(--rfl-app-superficie);
	border: 1px solid var(--rfl-app-linea);
	border-left: 4px solid var(--rfl-app-accento);
	border-radius: 7px;
	padding: 12px 16px;
	margin: 0 0 18px;
}

.rfl-app .notice p { margin: 0; }
.rfl-app .notice-success { border-left-color: var(--rfl-app-verde); background: #f2faf6; }
.rfl-app .notice-error { border-left-color: var(--rfl-app-rosso); background: #fdf2f2; }
.rfl-app .notice-warning { border-left-color: var(--rfl-app-giallo); background: #fffaf0; }
.rfl-app .notice.inline { margin: 0 0 14px; }
.rfl-app .notice-dismiss { display: none; }

/* ---------- Riquadri dei moduli ---------- */

.rfl-app .rfl-box,
.rfl-app .rfl-acq-card,
.rfl-app .rfl-tipo-card,
.rfl-app .rfl-stat,
.rfl-app .rfl-panel { background: var(--rfl-app-superficie); border-color: var(--rfl-app-linea); border-radius: var(--rfl-app-raggio); }

.rfl-app .rfl-admin-cols { gap: 24px; }
.rfl-app .rfl-piastrelle { margin-top: 4px; }

/* ---------- Accesso ---------- */

.rfl-app-accesso { padding: 48px 24px; }
.rfl-app-accesso-box {
	max-width: 380px;
	margin: 0 auto;
	background: var(--rfl-app-superficie);
	border: 1px solid var(--rfl-app-linea);
	border-radius: 14px;
	padding: 28px;
}
.rfl-app-accesso-box h2 { margin-top: 0; }
.rfl-app-accesso-box label { display: block; margin-bottom: 12px; font-weight: 600; font-size: 13.5px; }
.rfl-app-accesso-box input[type="text"],
.rfl-app-accesso-box input[type="password"] { width: 100%; margin-top: 4px; }
.rfl-app-accesso-box .login-remember { font-weight: 400; }
.rfl-app-accesso-box .login-submit input { width: 100%; }
.rfl-app-negato { padding: 40px 24px; text-align: center; }

/* ---------- Responsive ---------- */

@media (max-width: 782px) {
	.rfl-app-barra { padding: 10px 14px; }
	.rfl-app-nav { order: 3; width: 100%; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 2px; }
	.rfl-app-corpo { padding: 18px 14px 26px; }
	.rfl-app .widefat { font-size: 13px; }
	.rfl-app .widefat th, .rfl-app .widefat td { padding: 9px 10px; }
}

@media (prefers-reduced-motion: reduce) {
	.rfl-app * { transition: none !important; }
}
