/* ========================================================================
   IPPOCRATE ESPERTI FIORI DI BACH — frontend stylesheet
   Design: viola/lavanda coerente con il template del registro originale.
   ======================================================================== */

.iefb-app{
	max-width:1200px;
	margin:0 auto;
	padding:24px 16px;
	font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;
	color:#1F2937;
	box-sizing:border-box;
}
.iefb-app *,.iefb-app *::before,.iefb-app *::after{box-sizing:border-box}

/* ===== Filters ===== */
.iefb-filters{
	background:#fff;
	border:1px solid #E5E7EB;
	border-radius:16px;
	padding:18px 20px;
	margin-bottom:20px;
	box-shadow:0 4px 12px rgba(107,70,193,.05);
}
.iefb-filters-row{
	display:grid;
	grid-template-columns:2fr 1fr 1fr auto;
	gap:14px;
	align-items:end;
}
.iefb-field{display:flex;flex-direction:column;gap:6px}
.iefb-field label{
	font-size:12px;
	font-weight:600;
	text-transform:uppercase;
	letter-spacing:.5px;
	color:#6B7280;
}
.iefb-field input,.iefb-field select{
	height:42px;
	padding:0 14px;
	border:1.5px solid #E5E7EB;
	border-radius:10px;
	font-size:15px;
	background:#fff;
	color:#1F2937;
	transition:border-color .2s,box-shadow .2s;
	font-family:inherit;
	width:100%;
}
.iefb-field input:focus,.iefb-field select:focus{
	outline:none;
	border-color:#9333EA;
	box-shadow:0 0 0 3px rgba(147,51,234,.15);
}
.iefb-btn-reset{
	height:42px;
	padding:0 18px;
	border:1.5px solid #E5E7EB;
	border-radius:10px;
	background:#fff;
	color:#6B7280;
	font-size:14px;
	font-weight:500;
	cursor:pointer;
	transition:all .2s;
	font-family:inherit;
}
.iefb-btn-reset:hover{border-color:#9333EA;color:#6B46C1}

/* ===== Counter ===== */
.iefb-meta{
	margin:18px 4px 14px;
	color:#6B46C1;
	font-weight:600;
	font-size:15px;
}

/* ===== Grid ===== */
.iefb-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
	gap:22px;
	margin-bottom:30px;
}

/* ===== Card ===== */
.iefb-card{
	background:#fff;
	border:2px solid #E5E7EB;
	border-radius:14px;
	padding:24px 20px 22px;
	text-align:center;
	position:relative;
	overflow:hidden;
	transition:all .25s ease;
	display:flex;
	flex-direction:column;
	align-items:center;
	box-shadow:0 4px 12px rgba(0,0,0,.04);
}
.iefb-card::before{
	content:"";
	position:absolute;
	top:0;left:0;right:0;height:3px;
	background:linear-gradient(90deg,#6B46C1,#9333EA);
	transform:scaleX(0);
	transition:transform .3s ease;
}
.iefb-card--active{cursor:pointer}
.iefb-card--active:hover{
	transform:translateY(-4px);
	border-color:#9333EA;
	box-shadow:0 12px 28px rgba(107,70,193,.18);
}
.iefb-card--active:hover::before{transform:scaleX(1)}
.iefb-card--inactive{opacity:.65}

.iefb-card-icon{
	font-size:38px;
	line-height:1;
	margin-bottom:14px;
	transition:transform .3s ease;
}
.iefb-card--active:hover .iefb-card-icon{transform:scale(1.12)}

.iefb-card-name{
	font-size:1.15rem;
	font-weight:600;
	margin:0 0 6px;
	color:#1F2937;
	line-height:1.3;
}
.iefb-card-qual{
	font-size:.78rem;
	font-weight:600;
	color:#6B46C1;
	margin:0 0 10px;
	letter-spacing:.5px;
	text-transform:uppercase;
}
.iefb-card-location{
	display:inline-flex;
	align-items:center;
	gap:5px;
	color:#6B7280;
	font-size:.88rem;
	margin:0 0 16px;
	min-height:20px;
	font-style:italic;
}
.iefb-card-location svg{flex-shrink:0;color:#9333EA}

.iefb-card-btn{
	display:inline-block;
	margin-top:auto;
	padding:9px 22px;
	background:#6B46C1;
	color:#fff !important;
	border-radius:999px;
	font-size:.85rem;
	font-weight:600;
	text-decoration:none;
	transition:all .2s;
}
.iefb-card-btn:hover{background:#9333EA;transform:translateY(-1px)}
.iefb-card-btn--disabled{
	background:#ECF0F1 !important;
	color:#95A5A6 !important;
	cursor:not-allowed;
}
.iefb-card-btn--disabled:hover{background:#ECF0F1 !important;transform:none}

/* ===== Pagination ===== */
.iefb-pagination{
	display:flex;
	justify-content:center;
	gap:6px;
	margin:28px 0 14px;
	flex-wrap:wrap;
}
.iefb-pagination button{
	min-width:38px;
	height:38px;
	padding:0 12px;
	border:1.5px solid #E5E7EB;
	border-radius:10px;
	background:#fff;
	color:#6B7280;
	font-weight:600;
	cursor:pointer;
	transition:all .2s;
	font-family:inherit;
}
.iefb-pagination button:hover{border-color:#9333EA;color:#6B46C1}
.iefb-pagination button.is-current{
	background:#6B46C1;
	color:#fff;
	border-color:#6B46C1;
}
.iefb-pagination button:disabled{opacity:.4;cursor:not-allowed}

/* ===== Empty / Disclaimer ===== */
.iefb-empty{
	grid-column:1/-1;
	text-align:center;
	padding:40px 20px;
	color:#6B7280;
	background:#F9FAFB;
	border-radius:12px;
}
.iefb-disclaimer{
	margin-top:30px;
	padding:18px 22px;
	background:#F9FAFB;
	border-left:3px solid #9333EA;
	border-radius:8px;
	color:#6B7280;
	line-height:1.6;
	font-style:italic;
}
.iefb-disclaimer small{font-size:.85rem}

/* ===== Loading state ===== */
.iefb-grid.is-loading{opacity:.5;pointer-events:none;transition:opacity .2s}

/* ===== Responsive ===== */
@media (max-width:780px){
	.iefb-filters-row{grid-template-columns:1fr 1fr;gap:12px}
	.iefb-field-search{grid-column:1/-1}
	.iefb-field-actions{grid-column:1/-1}
	.iefb-btn-reset{width:100%}
}
@media (max-width:480px){
	.iefb-grid{grid-template-columns:1fr;gap:14px}
	.iefb-filters{padding:14px}
}
