Files
2026-09-25 11:02:14 +02:00

477 lines
6.2 KiB
CSS

:root
{
--vert: #3d6b4f;
--vert-fonce: #2a4a37;
--beige: #f7f3eb;
--creme: #fffdf8;
--texte: #2c2c2c;
--bordure: #d4cbb8;
--erreur: #a33;
--danger: #8b3a3a;
}
*
{
box-sizing: border-box;
}
body
{
margin: 0;
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
background: var(--beige);
color: var(--texte);
line-height: 1.5;
}
a
{
color: var(--vert);
}
/* ----- Connexion ----- */
.page-connexion
{
min-height: 100vh;
display: flex;
align-items: center;
justify-content: center;
background:
linear-gradient(160deg, #e8f0e4 0%, var(--beige) 50%, #efe6d4 100%);
}
.boite-connexion
{
background: var(--creme);
padding: 2rem;
border: 1px solid var(--bordure);
width: 100%;
max-width: 360px;
}
.boite-connexion h1
{
margin: 0 0 0.25rem;
color: var(--vert-fonce);
text-align: center;
}
.sous-titre
{
text-align: center;
margin-top: 0;
color: #666;
}
/* ----- En-tête ----- */
.entete
{
background: var(--vert);
color: white;
padding: 1rem 1.5rem;
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 1rem;
}
.entete h1
{
margin: 0;
font-size: 1.4rem;
}
.entete h1 a
{
color: white;
text-decoration: none;
}
.entete nav
{
display: flex;
flex-wrap: wrap;
gap: 0.75rem;
align-items: center;
flex: 1;
}
.entete nav a
{
color: #e8f0e4;
text-decoration: none;
padding: 0.25rem 0.5rem;
}
.entete nav a.actif,
.entete nav a:hover
{
text-decoration: underline;
}
.info-session
{
margin: 0;
font-size: 0.9rem;
opacity: 0.9;
}
main
{
max-width: 960px;
margin: 0 auto;
padding: 1.5rem;
}
/* ----- Formulaires ----- */
label
{
display: block;
margin-top: 0.75rem;
margin-bottom: 0.25rem;
font-weight: 600;
}
input,
select,
textarea,
button
{
font: inherit;
}
input[type="text"],
input[type="password"],
input[type="date"],
input[type="file"],
select,
textarea
{
width: 100%;
padding: 0.5rem;
border: 1px solid var(--bordure);
background: white;
}
button
{
margin-top: 1rem;
padding: 0.55rem 1rem;
background: var(--vert);
color: white;
border: none;
cursor: pointer;
}
button:hover
{
background: var(--vert-fonce);
}
button.secondaire
{
background: #888;
}
button.secondaire:hover
{
background: #666;
}
button.danger
{
background: var(--danger);
}
.erreur
{
color: var(--erreur);
margin-top: 0.75rem;
}
/* ----- Stats ----- */
.statistiques
{
background: var(--creme);
border: 1px solid var(--bordure);
padding: 1rem 1.25rem;
margin-bottom: 1.5rem;
}
.statistiques h2
{
margin-top: 0;
font-size: 1.1rem;
}
.liste-stats
{
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
gap: 1rem;
}
.liste-stats li
{
background: #eef5ee;
padding: 0.5rem 0.85rem;
}
.liste-stats span
{
font-weight: 700;
color: var(--vert-fonce);
}
/* ----- Liste animaux ----- */
.titre-avec-action
{
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: space-between;
gap: 0.75rem;
}
.titre-avec-action h2
{
margin: 0;
}
.titre-avec-action button
{
margin-top: 0;
}
.grille-animaux
{
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
gap: 1rem;
margin-top: 1rem;
}
.carte-animal
{
background: var(--creme);
border: 1px solid var(--bordure);
padding: 0.75rem;
text-decoration: none;
color: inherit;
display: block;
}
.carte-animal:hover
{
border-color: var(--vert);
}
.carte-animal img
{
width: 100%;
height: 140px;
object-fit: cover;
background: #ddd;
display: block;
}
.carte-animal .sans-photo
{
width: 100%;
height: 140px;
background: #ddd;
display: flex;
align-items: center;
justify-content: center;
color: #666;
font-size: 0.9rem;
}
.carte-animal h3
{
margin: 0.5rem 0 0.25rem;
font-size: 1rem;
text-transform: capitalize;
}
.carte-animal p
{
margin: 0.15rem 0;
font-size: 0.9rem;
}
.badge
{
display: inline-block;
font-size: 0.75rem;
padding: 0.1rem 0.4rem;
background: #eef5ee;
margin-right: 0.25rem;
}
.message-vide
{
color: #666;
font-style: italic;
}
/* ----- Fiche ----- */
.fiche
{
background: var(--creme);
border: 1px solid var(--bordure);
padding: 1.25rem;
display: grid;
grid-template-columns: 200px 1fr;
gap: 1.25rem;
}
.fiche img,
.fiche .sans-photo
{
width: 200px;
height: 200px;
object-fit: cover;
background: #ddd;
}
.fiche .sans-photo
{
display: flex;
align-items: center;
justify-content: center;
color: #666;
}
.fiche dl
{
margin: 0;
}
.fiche dt
{
font-weight: 600;
margin-top: 0.5rem;
}
.fiche dd
{
margin: 0.15rem 0 0;
}
.actions-fiche
{
margin-top: 1rem;
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}
.actions-fiche button
{
margin-top: 0;
}
.lien-retour
{
text-decoration: none;
}
#sectionPeriodes h2
{
margin-top: 2rem;
}
.tableau-periodes
{
width: 100%;
border-collapse: collapse;
margin: 0.75rem 0;
background: var(--creme);
}
.tableau-periodes th,
.tableau-periodes td
{
border: 1px solid var(--bordure);
padding: 0.5rem;
text-align: left;
}
.tableau
{
width: 100%;
border-collapse: collapse;
margin-top: 1rem;
background: var(--creme);
}
.tableau th,
.tableau td
{
border: 1px solid var(--bordure);
padding: 0.6rem;
text-align: left;
}
/* ----- Dialogues ----- */
dialog
{
border: 1px solid var(--bordure);
padding: 1.25rem;
max-width: 420px;
width: 90%;
background: var(--creme);
}
dialog::backdrop
{
background: rgba(0, 0, 0, 0.4);
}
.actions-dialogue
{
display: flex;
justify-content: flex-end;
gap: 0.5rem;
margin-top: 0.5rem;
}
.actions-dialogue button
{
margin-top: 0.5rem;
}
/* ----- Responsive ----- */
@media (max-width: 640px)
{
.fiche
{
grid-template-columns: 1fr;
}
.fiche img,
.fiche .sans-photo
{
width: 100%;
height: 200px;
}
.entete
{
flex-direction: column;
align-items: flex-start;
}
}