/* Vitasanté public page
   Objectif: rester lisible/agréable même si Tailwind CDN ne charge pas.
*/

:root{
	--bg0:#f8fafc;
	--bg1:#eef2ff;
	--card:#ffffff;
	--text:#0f172a;
	--muted:#475569;
	--muted2:#64748b;
	--border:rgba(15,23,42,.12);
	--shadow:0 10px 30px rgba(2,6,23,.08);
	--shadow-sm:0 6px 16px rgba(2,6,23,.08);
	--primary:#0ea5e9;
	--primary2:#22c55e;
	--danger:#e11d48;
}

*{box-sizing:border-box;}

html,body{height:100%;}

body{
	margin:0;
	font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,"Noto Sans","Liberation Sans",sans-serif;
	color:var(--text);
	background:
		radial-gradient(800px 300px at 20% 0%, rgba(14,165,233,.20), transparent 55%),
		radial-gradient(700px 260px at 90% 15%, rgba(34,197,94,.16), transparent 60%),
		linear-gradient(180deg, var(--bg1), var(--bg0));
}

header{
	background:linear-gradient(135deg, rgba(2,132,199,.95), rgba(21,128,61,.92));
	color:#fff;
	border-bottom:1px solid rgba(255,255,255,.15);
}

header h1{margin:0; letter-spacing:.2px;}
header p{margin:.35rem 0 0; opacity:.9;}

main{padding-bottom:2rem;}

/* Components */
input,select,textarea{
	font:inherit;
	color:inherit;
	background:#fff;
	border:1px solid var(--border);
	border-radius:.6rem;
	padding:.55rem .75rem;
	outline:none;
	transition:border-color .15s ease, box-shadow .15s ease;
}

input::placeholder,textarea::placeholder{color:rgba(71,85,105,.75);}

input:focus,select:focus,textarea:focus{
	border-color:rgba(14,165,233,.55);
	box-shadow:0 0 0 4px rgba(14,165,233,.18);
}

button{
	font:inherit;
	cursor:pointer;
	border-radius:.7rem;
	border:1px solid var(--border);
	background:rgba(255,255,255,.9);
	color:var(--text);
	padding:.55rem .8rem;
	transition:transform .12s ease, box-shadow .12s ease, background-color .12s ease, border-color .12s ease, filter .12s ease;
	backdrop-filter:saturate(120%) blur(6px);
}
button:hover{transform:translateY(-1px); box-shadow:var(--shadow-sm);}
button:active{transform:translateY(0px); box-shadow:none;}

/* If Tailwind doesn't load, many layout utilities below are needed */
.max-w-6xl{max-width:72rem;}
.mx-auto{margin-left:auto; margin-right:auto;}

.p-3{padding:.75rem;}
.p-4{padding:1rem;}
.px-2{padding-left:.5rem; padding-right:.5rem;}
.py-1{padding-top:.25rem; padding-bottom:.25rem;}
.px-3{padding-left:.75rem; padding-right:.75rem;}
.py-2{padding-top:.5rem; padding-bottom:.5rem;}

.mt-1{margin-top:.25rem;}
.mt-2{margin-top:.5rem;}
.mt-3{margin-top:.75rem;}
.mt-4{margin-top:1rem;}
.mt-6{margin-top:1.5rem;}

.border{border:1px solid var(--border);}
.border-b{border-bottom:1px solid var(--border);}
.rounded{border-radius:.75rem;}
.rounded-xl{border-radius:1rem;}

.bg-white{background:var(--card);}
.bg-slate-50{background:transparent;}
.bg-slate-900{
	background:linear-gradient(135deg, rgba(15,23,42,.98), rgba(30,41,59,.98));
	color:#fff;
	border-color:rgba(255,255,255,.12);
}
.bg-rose-600{
	background:linear-gradient(135deg, rgba(225,29,72,.98), rgba(244,63,94,.94));
	color:#fff;
	border-color:rgba(255,255,255,.12);
}

.text-white{color:#fff;}
.text-slate-900{color:var(--text);}
.text-slate-700{color:rgba(30,41,59,.95);}
.text-slate-600{color:var(--muted);}
.text-slate-500{color:var(--muted2);}

.text-2xl{font-size:1.5rem; line-height:2rem;}
.text-sm{font-size:.9rem;}
.text-xs{font-size:.78rem;}
.font-bold{font-weight:700;}
.font-semibold{font-weight:600;}
.font-medium{font-weight:500;}
.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}

.w-full{width:100%;}
.h-40{height:10rem;}

.grid{display:grid;}
.grid-cols-1{grid-template-columns:1fr;}
.gap-2{gap:.5rem;}
.gap-3{gap:.75rem;}

.flex{display:flex;}
.items-end{align-items:flex-end;}
.items-center{align-items:center;}
.justify-between{justify-content:space-between;}
.flex-wrap{flex-wrap:wrap;}

.hidden{display:none !important;}
.text-center{text-align:center;}
.cursor-pointer{cursor:pointer;}
.underline{text-decoration:underline;}

.py-10{padding-top:2.5rem; padding-bottom:2.5rem;}

@media (min-width: 768px){
	.md\:p-6{padding:1.5rem;}
	.md\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr));}
	.md\:grid-cols-5{grid-template-columns:repeat(5, minmax(0, 1fr));}
	.md\:col-span-2{grid-column:span 2 / span 2;}
}

/* Visual polish */
main > div.bg-white.border.rounded-xl{
	box-shadow:var(--shadow);
	border-color:rgba(15,23,42,.10);
}

#results > div{
	box-shadow:0 10px 25px rgba(2,6,23,.06);
	border-color:rgba(15,23,42,.10);
	transition:transform .12s ease, box-shadow .12s ease;
}

#results > div:hover{transform:translateY(-2px); box-shadow:0 16px 40px rgba(2,6,23,.09);}

/* Cartes établissements: accent vert */
.vita-card{
	position:relative;
	border-left:6px solid rgba(34,197,94,.95);
	background:
		linear-gradient(135deg, rgba(34,197,94,.20), rgba(255,255,255,1) 52%),
		linear-gradient(180deg, rgba(34,197,94,.14), rgba(255,255,255,1) 60%);
	box-shadow:
		0 10px 25px rgba(2,6,23,.06),
		0 14px 30px rgba(34,197,94,.10);
}

.vita-card .copy{
	border-color:rgba(34,197,94,.40);
	color:rgba(21,128,61,.98);
	background:rgba(34,197,94,.10);
}

.vita-card .copy:hover{
	filter:saturate(120%);
	box-shadow:0 10px 22px rgba(34,197,94,.20);
}

details{
	box-shadow:0 10px 25px rgba(2,6,23,.06);
	border-color:rgba(15,23,42,.10);
}

summary{
	padding:.35rem 0;
}

#status{padding-left:.25rem;}