/* Accès : page de connexion / demande d'accès et panneau d'administration (charte ABIPA : blanc, anthracite, orange en signal). */
.access-main{max-width:520px;margin:2.5rem auto;padding:0 1rem}
.access-card{background:white;border:1px solid var(--rule);border-radius:7px;overflow:hidden}
.access-card .section-heading h2{margin:0}
.access-form{display:grid;gap:16px;padding:22px 24px}
.access-form label{display:grid;gap:6px;font-size:.85rem;font-weight:600}
.access-form input{min-height:44px;padding:9px 11px;border:1px solid var(--rule);border-radius:4px;background:white;font-weight:400;width:100%}
.access-form small{font-weight:400;color:var(--muted)}
.access-form .button{width:100%}
.access-switch{display:flex;gap:6px;padding:0 24px 18px;font-size:.85rem;color:var(--muted);flex-wrap:wrap}
.access-note{padding:14px 24px;background:var(--gris-vide);border-top:1px solid var(--soft);font-size:.78rem;color:var(--muted);line-height:1.5}
.access-note b{color:var(--anthracite)}
.access-main #message{margin:0 0 18px}
.header-right .text-button{padding:0;font-size:.875rem}
/* Administration */
.admin-grid{display:grid;gap:20px}
.admin-user{border-left:3px solid var(--rule)}
.admin-user.pending{border-left-color:var(--orange)}
.admin-user.approved{border-left-color:var(--c-identical)}
.admin-user.refused,.admin-user.suspended{border-left-color:var(--c-disappeared)}
.admin-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;padding:18px 24px 6px}
.admin-head h3{margin:0;font-size:1rem}
.admin-head p{margin:4px 0 0;font-size:.82rem;color:var(--muted);font-family:var(--mono)}
.admin-actions{display:flex;gap:8px;flex-wrap:wrap}
.admin-actions .button{min-height:36px;padding:.4rem .8rem;font-size:.8rem}
.button.danger{color:var(--c-disappeared);border-color:var(--c-disappeared);background:white}.button.danger:hover:not(:disabled){background:var(--c-disappeared-bg)}
.ip-table{margin:8px 24px 18px;font-size:.85rem}
.ip-table td,.ip-table th{padding:.55rem .7rem}
.ip-table .mono{font-size:.85rem}
.status-pending{background:var(--sable);color:var(--orange-fonce)}.status-approved{background:var(--c-identical-bg);color:var(--c-identical)}.status-revoked,.status-refused,.status-suspended{background:var(--c-disappeared-bg);color:var(--c-disappeared)}
.ip-add{display:flex;gap:8px;margin:0 24px 18px;flex-wrap:wrap}.ip-add input{min-height:36px;padding:6px 9px;border:1px solid var(--rule);border-radius:4px}
.mail-table td{white-space:normal}
@media(max-width:600px){.admin-head{padding:16px}.ip-table,.ip-add{margin-left:12px;margin-right:12px}}
/* Journal de sécurité : mise en évidence des échecs et refus */
.audit-failure td,.audit-denied td{background:#fff4e8}
/* Avis d'utilisation du système (NIST SP 800-171 3.1.9), affiché avant toute saisie */
.use-notice{margin:0 0 18px;padding:12px 16px;border:1px solid var(--gris-bord);border-left:4px solid var(--orange-fonce);background:white;font-size:.8rem;line-height:1.5;color:var(--gris-texte)}
.use-notice b{color:var(--anthracite)}.use-notice small{display:block;margin-top:6px;color:var(--muted)}
/* Enrôlement MFA et codes de secours */
.mfa-setup{padding:18px 24px 0;font-size:.88rem;line-height:1.55}.mfa-setup p{margin:0 0 10px}
.mfa-secret{font-family:var(--mono);font-size:1.15rem;letter-spacing:.08em;background:var(--gris-vide);border:1px solid var(--gris-bord);border-radius:4px;padding:10px 12px;user-select:all;overflow-wrap:anywhere}
.recovery-codes{columns:2;margin:0 0 16px;padding-left:22px;font-family:var(--mono);font-size:1rem}.recovery-codes li{padding:3px 0;break-inside:avoid}.recovery-codes code{user-select:all}
.mfa-setup .button{width:100%;margin-bottom:22px}

/* ===== MAS vs ÉPICOR intégration — styles propres à l'app (charte et relief : upgrade.css, jamais redéfinis ici) ===== */
.me-kpis{grid-template-columns:repeat(4,1fr)}@media(max-width:1000px){.me-kpis{grid-template-columns:1fr 1fr}}@media(max-width:600px){.me-kpis{grid-template-columns:1fr}}
.me-filters .me-form,.run-settings.me-form{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;padding:14px 24px 18px}
.me-form-wrap{padding:14px 24px 18px}.me-form-col{flex-direction:column;align-items:stretch;padding:0 24px 18px}
.field{display:flex;flex-direction:column;gap:4px;font-size:.85rem;font-weight:600;color:var(--gris-texte)}.field input,.field select,.field textarea{font-weight:400;color:var(--anthracite);padding:8px 10px;border:1px solid var(--gris-bord);border-radius:4px;min-width:150px;font-family:inherit}.field textarea{min-width:280px}
.me-fieldset{border:1px solid var(--gris-bord);border-radius:4px;padding:8px 12px;display:flex;gap:14px;flex-wrap:wrap}.me-fieldset legend{font-size:.8rem;font-weight:700;color:var(--gris-texte);text-transform:uppercase;letter-spacing:.04em}
.me-daynav{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 24px 18px}
.me-alert{box-shadow:inset 4px 0 0 var(--orange-fonce),0 2px 0 #e4e4e4,0 10px 18px -14px rgba(58,58,60,.4)}.me-alert h3{color:var(--orange-fonce)}
.me-bt .card-head{align-items:flex-start;flex-direction:column;gap:4px}.me-bt h3{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.me-part{font-weight:400;color:var(--gris-texte);font-size:.95rem}.me-meta{font-size:.85rem;color:var(--gris-texte);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.me-followup .card-head{flex-direction:column;align-items:flex-start;gap:6px}.me-followup h3{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.me-comment{white-space:pre-wrap}.me-actions{padding:0 24px 16px;gap:8px;max-width:none;justify-content:flex-start}
.button.me-mini{min-height:34px;padding:6px 12px;font-size:.82rem}
.bt-link{text-decoration:none;color:var(--anthracite);border-bottom:2px solid var(--orange)}.bt-link:hover{color:var(--orange-fonce)}
tr.me-hot td{background:var(--sable)}
.me-progress{height:14px;border-radius:999px;background:var(--gris-neutre);overflow:hidden;margin:12px 24px 4px;box-shadow:inset 0 1px 3px rgba(58,58,60,.2)}.me-progress-bar{height:100%;width:var(--w,0%);background:var(--anthracite);transition:width .4s var(--ease)}
.me-pre{white-space:pre-wrap;font-family:var(--mono);font-size:.82rem;background:var(--gris-vide);border:1px solid var(--gris-bord);border-radius:4px;padding:12px 16px;margin:0 24px 16px;max-height:420px;overflow:auto}
.me-dialog form{min-width:min(520px,92vw);display:flex;flex-direction:column;gap:12px}.me-dialog .picker-actions{display:flex;gap:10px;justify-content:flex-end}
.table-wrap.history-scroll{max-height:640px}
@media(prefers-reduced-motion:reduce){.me-progress-bar{transition:none}}
@media print{.me-actions,.me-filters,.me-daynav,.pager{display:none!important}}

/* ===== Suivi MAS ↔ Epicor (mas-epicor-suivi) — styles propres à l'app ===== */
.form-inline{display:inline-flex;gap:8px;align-items:center;margin:0}
.form-inline input{min-height:34px;padding:6px 9px;border:1px solid var(--gris-bord);border-radius:4px;box-shadow:inset 0 1px 2px rgba(58,58,60,.12)}
.field-check{display:flex;gap:8px;align-items:center;font-size:.85rem;font-weight:600;color:var(--gris-texte);min-height:44px}
.history-table td.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.history-table td.mono{font-family:var(--mono);white-space:nowrap}
.history-table th a.tri{color:inherit;text-decoration:none;display:block}
.history-table th a.tri:hover,.history-table th a.tri:focus-visible{text-decoration:underline}
.compteurs td:first-child,.compteurs th:first-child{width:62%}
.compteurs .secondaire{color:var(--gris-texte);font-size:.8rem}
.compte-lignes{margin:8px 24px;font-size:.82rem;color:var(--gris-texte)}
.explain{margin:0 24px 12px;font-size:.85rem;color:var(--gris-texte)}
.graphique{position:relative;height:320px;margin:8px 24px 18px}
.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:1000px){.grille-2{grid-template-columns:1fr}}
.history-card h4{margin:18px 24px 8px;font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;color:var(--anthracite)}
.history-card .level-tabs{margin:0 24px}
tr.ligne-erreur td{background:var(--sable)}
.procedure-text{padding:18px 24px;line-height:1.55;font-size:.92rem}
.procedure-text h3{margin:18px 0 6px;font-size:1rem}
#message.error{border-left:4px solid var(--c-disappeared)}
#message.ok{border-left:4px solid var(--c-identical)}
