* {
    box-sizing: border-box;
    font-family: Arial, sans-serif;
}

body {
    margin: 0;
    font-family: Arial, sans-serif;
    background: #f4f6f9;
    color: #202735;
}

/* Barre supérieure */
.topbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 18px 28px;
    background: #1f8200;
    color: #fff;
}

.brand {
    font-size: 22px;
    font-weight: 700;
}

/* Contenu principal */
.container {
    max-width: 1400px;
    margin: 28px auto;
    padding: 0 18px;
}

.narrow {
    max-width: 760px;
}

/* Panneaux */
.panel {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

/* Barre de recherche */
.toolbar {
    margin-bottom: 16px;
}

.toolbar form {
    display: flex;
    gap: 8px;
}

.toolbar input {
    min-width: 300px;
}

/* Tableau */
.table-wrap {
    overflow: auto;
}

table {
    width: 100%;
    border-collapse: collapse;
}

th,
td {
    padding: 12px;
    border-bottom: 1px solid #e7eaf0;
    text-align: left;
    white-space: nowrap;
    vertical-align: middle;
}

th {
    background: #f8f9fb;
}

/* Actions */
.actions {
    display: flex;
    gap: 7px;
}

.actions form {
    margin: 0;
}

td.actions {
    display: table-cell;
    vertical-align: middle;
    text-align: left;
}
td.actions > form {
    display: inline-block;
    vertical-align: middle;
}
td.actions > .button {
    vertical-align: middle;
}
.verified-badge { display:inline-block; vertical-align:middle; }
.bulk-delete-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:12px 16px;border:1px solid #dfe7e0;border-radius:10px;background:white;font-size:14px}
.bulk-delete-bar button:disabled{opacity:.45;cursor:default}
.bulk-status-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bulk-status-controls select{padding:9px 12px;border:1px solid #d5dfd7;border-radius:9px;background:white;color:#24322a;font-size:14px}
.bulk-checkbox{width:18px;height:18px;accent-color:#246b39;cursor:pointer}
.design-test tbody tr.bulk-selected{background:#e4f1e5}
td.actions:has(> .locked-actions) {
    position: relative;
    min-width: 96px;
    padding: 12px;
}
table:has(td.actions) th:last-child { text-align: left; }
td.actions:has(> .locked-actions) > .verified-badge {
    position: static;
    transform: none;
    margin: 0 7px 0 0;
}
td.actions > .locked-actions {
    display: inline-block;
    position: static;
    vertical-align: middle;
    transform: none;
}
td.actions > :not(:last-child) {
    margin-right: 7px;
}

/* Boutons */
.button {
    display: inline-block;
    border: 1px solid #ccd2dc;
    background: #fff;
    color: #202735;
    padding: 9px 13px;
    border-radius: 7px;
    text-decoration: none;
    cursor: pointer;
}

.primary {
    background: #2457d6;
    color: #fff;
    border-color: #2457d6;
}

.danger {
    background: #b42318;
    color: #fff;
    border-color: #b42318;
}

.small {
    padding: 6px 9px;
}

/* Statut */
.badge {
    background: #eef2f7;
    padding: 5px 8px;
    border-radius: 999px;
}

/* Couleurs des statuts */

.badge-stocker {
    background: #d1fae5;
    color: #065f46;
    padding: 5px 10px;
    border-radius: 999px;
    font-weight: 600;
}

.badge-livraison {
    background: #ffedd5;
    color: #9a3412;
    padding: 5px 10px;
    border-radius: 999px;
    font-weight: 600;
}

.badge-poser {
    background: #fee2e2;
    color: #991b1b;
    padding: 5px 10px;
    border-radius: 999px;
    font-weight: 600;
}

/* Formulaires */
.form-panel {
    padding: 24px;
}

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

.form-grid label {
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-weight: 600;
}

.form-grid input,
.toolbar input {
    padding: 10px;
    border: 1px solid #ccd2dc;
    border-radius: 7px;
    font: inherit;
}

.form-grid select {
    padding: 10px;
    border: 1px solid #ccd2dc;
    border-radius: 7px;
    font: inherit;
    background: #fff;
}

.form-actions {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 8px;
}

.empty {
    text-align: center;
    padding: 30px;
}

/* Affichage mobile */
@media (max-width: 700px) {
    .form-grid {
        grid-template-columns: 1fr;
    }

    .toolbar form {
        flex-wrap: wrap;
    }

    .toolbar input {
        min-width: 0;
        width: 100%;
    }
}

    .sort-link {
        color: inherit;
        text-decoration: none;
        display: block;
    }

    .sort-link:hover {
        text-decoration: underline;
    }

    th {
        cursor: pointer;
        user-select: none;
    }

    /* Couleurs des statuts */
    .badge-stocker {
        display: inline-block;
        background: #d1fae5 !important;
        color: #065f46 !important;
        padding: 5px 10px;
        border-radius: 999px;
        font-weight: 600;
    }

    .badge-livraison {
        display: inline-block;
        background: #ffedd5 !important;
        color: #9a3412 !important;
        padding: 5px 10px;
        border-radius: 999px;
        font-weight: 600;
    }

    .badge-poser {
        display: inline-block;
        background: #fee2e2 !important;
        color: #991b1b !important;
        padding: 5px 10px;
        border-radius: 999px;
        font-weight: 600;
    }

    .modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:1000;align-items:center;justify-content:center;padding:20px}
    .modal-overlay.visible{display:flex}
    .modal-box{width:100%;max-width:430px;background:#fff;border-radius:12px;padding:26px;box-shadow:0 15px 45px rgba(0,0,0,.25);text-align:center}
    .modal-box h3{margin:0 0 10px;font-size:21px}
    .modal-box p{margin:0 0 22px;color:#4b5563}
    .modal-actions{display:flex;justify-content:center;gap:10px}
    .modal-actions .button{min-width:90px}
    .header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .admin-login{display:flex;align-items:center;gap:8px;margin:0}
    .admin-login input{padding:9px 10px;border:1px solid #ccd2dc;border-radius:7px;max-width:180px}
    .login-error{color:#991b1b;font-weight:600;font-size:14px}
    .locked-actions{color:#6b7280;font-size:14px;white-space:nowrap}



        .form-grid select {
            padding: 10px;
            border: 1px solid #ccd2dc;
            border-radius: 7px;
            font: inherit;
            background: white;
            width: 100%;
        }

        .extra-field {
            display: none;
            margin-top: 8px;
        }

        .extra-field.visible {
            display: block;
        }

    

.form-grid select {
    padding: 10px;
    border: 1px solid #ccd2dc;
    border-radius: 7px;
    font: inherit;
    background: #fff;
    width: 100%;
}

/* Accueil et navigation des rubriques */
.home-container{max-width:1040px;margin:56px auto;padding:0 22px}
.eyebrow{color:#2457d6;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.home-container h1{font-size:clamp(28px,5vw,42px);margin:12px 0}
.intro{color:#596579;font-size:17px;line-height:1.6;margin-bottom:32px}
.section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.section-card{display:block;padding:28px;background:#fff;border:1px solid #e0e6ef;border-radius:16px;color:inherit;text-decoration:none;box-shadow:0 4px 16px #17203308;transition:transform .15s,border-color .15s}
.section-card:hover{transform:translateY(-3px);border-color:#2457d6}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4c83ff;outline-offset:4px}
.section-icon{font-size:30px;display:block;margin-bottom:20px}
.section-card h2{font-size:21px;margin:0 0 10px}
.section-card p{color:#596579;line-height:1.5;margin:0 0 24px}
.section-link{color:#2457d6;font-weight:700}
.section-placeholder{padding:32px;line-height:1.7}
.topbar{gap:18px;flex-wrap:wrap}
@media(max-width:700px){.section-grid{grid-template-columns:1fr}.home-container{margin:28px auto}.topbar{padding:18px}.header-actions{width:100%}.admin-login{flex-wrap:wrap}.modal-actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.section-card{transition:none}.section-card:hover{transform:none}}
.global-search-card{grid-column:1 / -1;border-left:5px solid #1f8200}
.global-search-form{max-width:760px;margin-bottom:16px}
.global-search-form label{display:block;font-weight:700;margin-bottom:8px}
.global-search-controls{display:flex;gap:10px}
.global-search-controls input{flex:1;min-width:0;padding:12px;border:1px solid #ccd2dc;border-radius:7px;font:inherit}
.search-scope{color:#596579;line-height:1.6}
.search-caption{text-align:left;padding:16px;font-weight:700}
.search-pagination{display:flex;gap:12px;margin:20px 0}
@media(max-width:500px){.global-search-controls{flex-direction:column}}
/* Connexion générale au site */
.site-login-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:linear-gradient(145deg,#eaf2e7,#f4f6f9 65%); }
.site-login-card { width:100%; max-width:440px; background:white; border-radius:16px; padding:36px; box-shadow:0 10px 40px #15350c15; }
.site-login-brand { font-size:30px; font-weight:bold; color:#1f8200; letter-spacing:2px; }
.site-login-card h1 { margin:20px 0 12px; font-size:28px; }
.site-login-card p { line-height:1.5; color:#525b68; }
.site-auth-form { display:flex; flex-direction:column; gap:12px; margin-top:24px; }
.site-auth-form label { font-weight:bold; }
.site-auth-form select { width:100%; padding:12px; border:1px solid #abb4bf; border-radius:7px; font-size:16px; background:white; }
.site-auth-form input:not([type=hidden]) { width:100%; min-width:0; padding:12px; border:1px solid #abb4bf; border-radius:7px; font-size:16px; }
.site-auth-form input:focus { outline:2px solid #1f8200; outline-offset:2px; }
.site-auth-form button { margin-top:12px; padding:13px; }
.site-auth-form small { color:#525b68; }
.site-login-card .site-auth-error { background:#fff0f0; color:#9b1c1c; padding:12px; border-radius:7px; }
.site-login-card .site-auth-success { background:#eaf6e6; color:#245c13; padding:12px; border-radius:7px; }
.site-password-card { margin:32px auto; }
.site-account-controls { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.site-account-controls form { display:inline-flex; margin:0; }
.topbar .button { display:inline-flex; align-items:center; justify-content:center; width:auto; height:44px; padding:0 12px; font-size:14px; line-height:1.2; text-align:center; white-space:nowrap; }
.topbar .header-actions { margin-left:auto; justify-content:flex-end; }
.topbar .site-account-controls { width:auto; }
.site-home-logo { display:inline-flex; flex-shrink:0; align-items:center; padding:5px 8px; background:white; border-radius:6px; }
.site-home-logo img { display:block; width:110px; height:auto; }
.site-home-logo:focus-visible { outline:3px solid white; outline-offset:4px; }
.home-page { min-height:100vh; display:flex; flex-direction:column; }
.home-page .home-container { width:100%; box-sizing:border-box; }
.home-account-footer { margin-top:auto; padding:20px 22px; display:flex; justify-content:flex-end; }
.bulk-confirm-dialog{width:calc(100% - 40px);max-width:440px;box-sizing:border-box;padding:28px;border:1px solid #dce6df;border-radius:18px;background:#fff;color:#243b32;box-shadow:0 24px 80px #12291f40}
.bulk-confirm-dialog::backdrop{background:#142b2366;backdrop-filter:blur(3px)}
.bulk-confirm-dialog h2{margin:16px 0 10px;font-size:23px;line-height:1.3}
.bulk-confirm-dialog p{margin:0;color:#5d7066;line-height:1.6}
.bulk-confirm-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#eaf3ec;color:#246b39;font-size:25px;font-weight:bold}
.bulk-confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:26px}
.page-title-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.page-title-row h1{margin:0;font-size:clamp(24px,4vw,34px)}
.page-title-row .button{font-size:14px;padding:8px 12px}
.page-breadcrumb{font-size:13px;color:#596579;margin:8px 0 24px}
.page-breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.page-breadcrumb li+li::before{content:'›';margin-right:8px;color:#7c8590}
.page-breadcrumb a{color:inherit;text-decoration:none}
.page-breadcrumb a:hover{text-decoration:underline}
@media(max-width:700px) { .topbar { flex-wrap:wrap; gap:16px; } .site-login-card { padding:24px; } .site-account-controls { width:100%; } .site-password-card { width:calc(100% - 32px); } }
