/* Coquille applicative — connexion, invitation, administration.
   Charte MINI, comme le dashboard : c'est ce que le client voit.
   (Le passage de la coquille à la charte PNFR reste une question ouverte.) */
:root{
  --bg:#0a0a0a; --panel:#1e1e1e; --ink:#fff; --muted:#b3b3b3; --muted-2:#7d7d7d;
  --line:#fff; --line-soft:#2c2c2c; --red:#ff2d47; --red-tint:#33131a;
  --green:#38d17a; --green-tint:#0f2a1c; --amber:#f2a93c; --amber-tint:#2c2110;
  --font-sans:'Inter',Helvetica,Arial,sans-serif;
  --font-serif:'Fraunces',Georgia,'Times New Roman',serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:13px}
a{color:var(--red)}
.center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.card{width:min(420px,100%);background:var(--panel);border:1px solid var(--line-soft);padding:40px}
.badge{height:44px;padding:7px 16px;border-radius:6px;background:#fff;display:inline-flex}
.badge img{height:100%;width:auto;display:block}
h1{font-family:var(--font-serif);font-size:22px;font-weight:700;margin:20px 0 6px}
.sub{font-size:12px;color:var(--muted);line-height:1.6;margin-bottom:26px}
label{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;margin:16px 0 6px}
input[type=email],input[type=password],input[type=text],select{
  width:100%;background:#000;border:1px solid var(--line-soft);color:var(--ink);
  font-family:inherit;font-size:13px;padding:11px 12px;border-radius:2px}
input:focus,select:focus{outline:none;border-color:var(--red)}
button{margin-top:22px;width:100%;padding:12px;background:var(--ink);color:#000;border:none;
  font-family:inherit;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer;border-radius:2px}
button:hover{background:var(--muted)}
button:disabled{opacity:.5;cursor:default}
button.ghost{background:transparent;color:var(--muted);border:1px solid var(--line-soft);width:auto;padding:8px 16px;margin:0}
button.ghost:hover{background:var(--line-soft);color:var(--ink)}
.msg{margin-top:18px;padding:11px 14px;font-size:11.5px;line-height:1.5;display:none}
.msg.error{display:block;background:var(--red-tint);color:#ff8b98;border-left:3px solid var(--red)}
.msg.ok{display:block;background:var(--green-tint);color:#7fe0a6;border-left:3px solid var(--green)}
.msg.warn{display:block;background:var(--amber-tint);color:#e8c98a;border-left:3px solid var(--amber)}
.hint{font-size:10px;color:var(--muted-2);margin-top:8px;line-height:1.5}
/* administration */
.wrap{max-width:1100px;margin:0 auto;padding:0 24px 60px}
.header{display:flex;align-items:center;justify-content:space-between;padding:18px 0;border-bottom:2px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px}
.brand-name{font-family:var(--font-serif);font-size:16px;font-weight:700}
.brand-sub{font-size:10px;color:var(--muted);letter-spacing:1.5px}
.nav{display:flex;gap:24px;align-items:center}
.nav a,.nav span{font-size:11px;color:var(--muted);letter-spacing:.5px;font-weight:600;cursor:pointer;text-decoration:none}
.nav a:hover,.nav span:hover{color:var(--ink)}
.section{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;
  margin:34px 0 14px;padding-bottom:6px;border-bottom:1px solid var(--line-soft)}
.panel{background:var(--panel);border:1px solid var(--line-soft);padding:22px}
.drop{border:2px dashed var(--line-soft);padding:38px;text-align:center;transition:border-color .15s}
.drop.over{border-color:var(--red)}
table{width:100%;border-collapse:collapse;font-size:12px}
th{text-align:left;font-size:9px;letter-spacing:.4px;text-transform:uppercase;color:var(--muted);
  font-weight:700;padding:8px 6px;border-bottom:1px solid var(--line-soft)}
td{padding:10px 6px;border-bottom:1px solid var(--line-soft)}
.tag{font-size:8px;padding:2px 7px;font-weight:700;letter-spacing:.3px}
.tag.admin{background:var(--red-tint);color:var(--red)}
.tag.client{background:#232323;color:var(--muted)}
.tag.pending{background:var(--amber-tint);color:var(--amber)}
.tag.off{background:#232323;color:var(--muted-2)}
/* rapport de contrôle du dépôt */
.tag.blocage{background:var(--red-tint);color:var(--red)}
.tag.attention{background:var(--amber-tint);color:var(--amber)}
.tag.info{background:#232323;color:var(--muted)}
.report{margin-top:14px}
.report table{margin-top:0}
.report td{vertical-align:top;font-size:10.5px;line-height:1.55}
.report td.sev{width:1%;white-space:nowrap;padding-right:14px}
.report .ou{color:var(--muted-2);font-size:9.5px;display:block;margin-top:3px}
.report .sugg{color:var(--muted);display:block;margin-top:4px}
.report .sugg::before{content:'→ ';color:var(--muted-2)}
.row{display:flex;gap:10px;align-items:flex-end}
.row > div{flex:1}
.row button{margin-top:0;width:auto;padding:11px 20px}
code{background:#000;border:1px solid var(--line-soft);padding:9px 11px;display:block;
  font-size:10.5px;word-break:break-all;margin-top:8px;color:var(--green)}
