:root {
    --couleur-principale: #2563eb;
    --couleur-principale-fonce: #1d4ed8;
    --couleur-texte: #1f2937;
    --couleur-fond: #f4f6f9;
    --couleur-bordure: #dbe1e8;
    --couleur-danger: #dc2626;
    --couleur-succes: #16a34a;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Segoe UI", Arial, sans-serif;
    background: var(--couleur-fond);
    color: var(--couleur-texte);
}

.entete {
    background: white;
    border-bottom: 1px solid var(--couleur-bordure);
}

.entete-contenu {
    max-width: 1000px;
    margin: 0 auto;
    padding: 16px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.entete h1 {
    font-size: 1.3rem;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 12px;
}

.entete h1 .logo {
    height: 44px;
    width: auto;
}

.entete-sous-titre {
    display: block;
    font-size: 0.85rem;
    font-weight: normal;
    color: #6b7280;
}

nav a {
    margin-left: 16px;
    text-decoration: none;
    color: var(--couleur-principale);
    font-weight: 500;
}

.bouton-principal {
    background: var(--couleur-principale);
    color: white !important;
    padding: 8px 16px;
    border-radius: 6px;
    border: none;
    cursor: pointer;
    font-size: 0.95rem;
}

.bouton-principal:hover { background: var(--couleur-principale-fonce); }

.bouton-secondaire {
    padding: 8px 16px;
    border-radius: 6px;
    border: 1px solid var(--couleur-bordure);
    color: var(--couleur-texte) !important;
    text-decoration: none;
}

.conteneur {
    max-width: 1000px;
    margin: 24px auto;
    padding: 0 24px;
}

.barre-recherche form {
    display: flex;
    gap: 8px;
    margin-bottom: 16px;
    align-items: center;
}

.barre-recherche input[type="text"] {
    flex: 1;
    padding: 10px;
    border: 1px solid var(--couleur-bordure);
    border-radius: 6px;
}

.barre-recherche button {
    padding: 10px 16px;
    border: none;
    background: var(--couleur-principale);
    color: white;
    border-radius: 6px;
    cursor: pointer;
}

.lien-reset { font-size: 0.9rem; color: #6b7280; }

.table-clients {
    width: 100%;
    border-collapse: collapse;
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.table-clients th, .table-clients td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid var(--couleur-bordure);
}

.table-clients th {
    background: #f0f4fa;
    font-size: 0.85rem;
    text-transform: uppercase;
    color: #4b5563;
}

.table-clients a { color: var(--couleur-principale); text-decoration: none; }

.actions { display: flex; gap: 12px; }
.form-inline { display: inline; }
.lien-danger {
    background: none;
    border: none;
    color: var(--couleur-danger);
    cursor: pointer;
    padding: 0;
    font: inherit;
    text-decoration: underline;
}

.vide { color: #6b7280; text-align: center; padding: 40px 0; }

.formulaire-client {
    background: white;
    padding: 24px;
    border-radius: 8px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}

.champ-large { grid-column: 1 / -1; }

.champ { display: flex; flex-direction: column; gap: 4px; }
.champ label { font-size: 0.85rem; font-weight: 600; color: #4b5563; }
.champ input, .champ textarea, .champ select {
    padding: 10px;
    border: 1px solid var(--couleur-bordure);
    border-radius: 6px;
    font-size: 0.95rem;
    font-family: inherit;
}

.sous-titre-formulaire {
    border-bottom: 1px solid var(--couleur-bordure);
    margin-top: 8px;
}

.sous-titre-formulaire h3 { margin: 0 0 4px; }

.photo-existante {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-top: 8px;
    flex-wrap: wrap;
}

.photo-existante img {
    width: 160px;
    max-height: 120px;
    object-fit: contain;
    border: 1px solid var(--couleur-bordure);
    border-radius: 6px;
}

.actions-formulaire {
    grid-column: 1 / -1;
    display: flex;
    gap: 12px;
    margin-top: 8px;
}

.fiche-client {
    background: white;
    padding: 24px;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
.fiche-client p { margin: 8px 0; }
.fiche-client .meta { color: #6b7280; font-size: 0.85rem; margin-top: 20px; }
.fiche-client hr { border: 0; border-top: 1px solid var(--couleur-bordure); margin: 24px 0; }

.photo-kit-detail { margin-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.photo-kit-detail img { max-width: 100%; max-height: 420px; object-fit: contain; object-position: left; border-radius: 6px; }

.entete-page { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.entete-page h2 { margin-bottom: 4px; }
.sous-texte { color: #6b7280; margin-top: 0; }
.import-conseils { margin-bottom: 16px; }
.formulaire-import { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.formulaire-import label { font-weight: 600; }
.choix-espaces { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.choix-espace { color: var(--couleur-texte); text-decoration: none; transition: transform .15s, box-shadow .15s; }
.choix-espace:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.grille-produits { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; margin-bottom: 28px; }
.carte-produit { background: white; border: 1px solid var(--couleur-bordure); border-radius: 8px; overflow: hidden; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.carte-produit.stock-bas { border-color: #f59e0b; }
.carte-produit > img { width: 100%; height: 150px; object-fit: contain; background: #f8fafc; }
.contenu-produit { padding: 16px; }
.contenu-produit h3 { margin-top: 0; }
.form-vente { display: flex; gap: 8px; margin: 12px 0; }
.form-vente input { width: 72px; padding: 8px; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.alerte-stock { color: #b45309; font-size: .85rem; }
.rupture { color: var(--couleur-danger); font-weight: 600; }
.actions-produit { display: flex; gap: 12px; border-top: 1px solid var(--couleur-bordure); padding-top: 12px; }
.actions-produit form { display: inline; }
.actions-page { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.filtres-statistiques { display: flex; gap: 10px; align-items: center; margin-bottom: 18px; flex-wrap: wrap; }
.filtres-statistiques select, .filtres-statistiques input { padding: 9px; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.resume-statistiques { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.statistique { background: white; border: 1px solid var(--couleur-bordure); border-radius: 8px; padding: 20px; display: flex; flex-direction: column; gap: 5px; }
.statistique strong { font-size: 1.6rem; color: var(--couleur-principale); }
.statistique span { color: #6b7280; }
.deux-colonnes-statistiques { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 24px; }
.conteneur-boutique { max-width: 1180px; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; }
.menu-boutique { background: #111827; color: white; min-height: 540px; border-radius: 8px; padding: 16px; display: flex; flex-direction: column; justify-content: space-between; position: sticky; top: 20px; }
.menu-boutique details summary { cursor: pointer; font-weight: 700; padding: 8px 4px 14px; }
.navigation-boutique { display: flex; flex-direction: column; gap: 4px; }
.navigation-boutique a { color: #d1d5db; text-decoration: none; padding: 11px 10px; border-radius: 5px; }
.navigation-boutique a:hover { background: #374151; color: white; }
.compte-boutique { border-top: 1px solid #374151; padding-top: 14px; display: flex; flex-direction: column; gap: 4px; }
.compte-boutique strong { color: white; }
.compte-boutique span { color: #9ca3af; font-size: .82rem; }
.compte-boutique a { color: #fca5a5; text-decoration: none; margin-top: 8px; }
.contenu-boutique { min-width: 0; }
.grille-vente { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.carte-vente img { width: 100%; height: 130px; object-fit: contain; background: #f8fafc; }
.carte-vente .contenu-produit { display: flex; flex-direction: column; gap: 8px; }
.carte-vente input[type="number"] { width: 90px; padding: 8px; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.panier-vente { background: white; border: 1px solid var(--couleur-bordure); border-radius: 8px; padding: 18px; margin-top: 24px; }
.total-panier { text-align: right; font-size: 1.1rem; }
.validation-vente { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--couleur-bordure); padding-top: 16px; }
.validation-vente select, .validation-vente input[type="file"] { padding: 8px; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.photo-recu { max-width: 360px; max-height: 360px; object-fit: contain; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.barre-caisse { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 16px; border-radius: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.barre-caisse > div { display: flex; flex-direction: column; gap: 4px; }
.barre-caisse span { color: #6b7280; font-size: .85rem; }
.caisse-ouverte { background: #ecfdf5; border: 1px solid #86efac; }
.caisse-fermee { background: #fef2f2; border: 1px solid #fca5a5; }
.form-fermeture-caisse { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.form-fermeture-caisse input { width: 150px; padding: 8px; border: 1px solid var(--couleur-bordure); border-radius: 6px; }
.tableau-bord { background: #f8fafc; border: 1px solid var(--couleur-bordure); border-radius: 8px; padding: 20px; margin-bottom: 24px; }
.titre-section-tableau { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; }
.titre-section-tableau h3 { margin: 0 0 4px; }
.grille-indicateurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; }
.indicateur-tableau { background: white; border: 1px solid var(--couleur-bordure); border-radius: 6px; padding: 14px; display: flex; flex-direction: column; gap: 7px; min-height: 112px; }
.indicateur-tableau span, .synthese-tableau span { color: #64748b; font-size: .82rem; }
.indicateur-tableau strong { color: #0f172a; font-size: 1.18rem; }
.indicateur-tableau small { color: #94a3b8; }
.synthese-tableau { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; background: #0f172a; color: white; border-radius: 6px; padding: 16px; margin-top: 14px; }
.synthese-tableau div { display: flex; flex-direction: column; gap: 6px; }
.synthese-tableau span { color: #cbd5e1; }
.synthese-tableau a { color: #93c5fd; }

.messages { margin-bottom: 16px; }
.message {
    padding: 10px 14px;
    border-radius: 6px;
    margin-bottom: 8px;
}
.message-success { background: #dcfce7; color: var(--couleur-succes); }
.message-error { background: #fee2e2; color: var(--couleur-danger); }

.pied {
    text-align: center;
    color: #9ca3af;
    font-size: 0.8rem;
    padding: 24px;
}

.avertissement {
    background: #fef3c7;
    color: #92400e;
    padding: 10px 14px;
    border-radius: 6px;
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.utilisateur-connecte {
    margin-left: 16px;
    color: #6b7280;
    font-size: 0.9rem;
}

.page-connexion {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--couleur-fond);
}

.carte-connexion {
    background: white;
    padding: 32px;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
    text-align: center;
    width: 340px;
}

.logo-connexion { height: 70px; margin-bottom: 12px; }
.carte-connexion h1 { margin: 0; font-size: 1.4rem; }
.carte-connexion .sous-titre { color: #6b7280; margin-top: 4px; margin-bottom: 20px; }

.formulaire-connexion {
    display: flex;
    flex-direction: column;
    gap: 14px;
    text-align: left;
}

.formulaire-connexion .champ label { font-size: 0.85rem; font-weight: 600; color: #4b5563; }
.formulaire-connexion input {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--couleur-bordure);
    border-radius: 6px;
    margin-top: 4px;
}

.formulaire-connexion button { margin-top: 8px; }

@media (max-width: 760px) {
    .conteneur-boutique { grid-template-columns: 1fr; }
    .menu-boutique { min-height: auto; position: static; }
    .navigation-boutique { display: grid; grid-template-columns: repeat(2, 1fr); }
    .compte-boutique { margin-top: 12px; }
    .resume-statistiques, .deux-colonnes-statistiques, .choix-espaces { grid-template-columns: 1fr; }
}
