*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Segoe UI',sans-serif;background:#f5f5f5;color:#1a1a1a}
.hidden{display:none!important}

#app{min-height:100vh}
header{display:flex;align-items:center;gap:12px;padding:16px 24px;background:#fff;border-bottom:1px solid #e0e0e0;position:sticky;top:0;z-index:10}
header h1{flex:1;font-size:1.2rem;font-weight:700}

.btn-primary{background:#1a5c3e;color:#fff;border:none;padding:9px 18px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600}
.btn-primary:hover{background:#134a30}
.btn-secondary{background:#fff;color:#1a1a1a;border:1px solid #ddd;padding:9px 18px;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:600}
.btn-secondary:hover{background:#f5f5f5}
.btn-back{background:none;border:none;cursor:pointer;font-size:.9rem;color:#555;padding:6px 0;font-weight:600}
.btn-small{background:#eee;border:none;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:.8rem}

#listView{padding:24px}
#badgeList{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:20px}
.badge-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.08);display:flex;align-items:center;gap:12px;transition:.15s}
.badge-card:hover{box-shadow:0 3px 12px rgba(0,0,0,.12);transform:translateY(-1px)}
.badge-card-thumb{width:48px;height:48px;border-radius:50%;object-fit:cover;background:#eee;flex-shrink:0}
.badge-card-info{flex:1}
.badge-card-name{font-weight:700;font-size:.95rem}
.badge-card-role{font-size:.8rem;color:#666;margin-top:2px}
.badge-card-actions{display:flex;gap:6px}
.badge-card-btn{background:none;border:1px solid #ddd;padding:5px 10px;border-radius:6px;cursor:pointer;font-size:.8rem}
.badge-card-btn.danger{border-color:#dc2626;color:#dc2626}
.badge-card-btn:hover{background:#f5f5f5}

#editorBody{display:grid;grid-template-columns:340px 1fr;gap:24px;padding:24px;align-items:start}
#editorForm{background:#fff;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px}
#editorForm section{display:flex;flex-direction:column;gap:6px}
#editorForm label{font-size:.8rem;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.05em}
#editorForm input[type=text],#editorForm select{border:1px solid #ddd;border-radius:8px;padding:9px 12px;font-size:.9rem;width:100%}
#editorForm input[type=text]:focus,#editorForm select:focus{outline:none;border-color:#1a5c3e}
.check-row{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:400;text-transform:none;letter-spacing:0;cursor:pointer}
.check-row input{width:16px;height:16px;cursor:pointer}

#logoGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:4px}
.logo-choice{background:#f9f9f9;border:2px solid #ddd;border-radius:8px;padding:8px;cursor:pointer;transition:.15s}
.logo-choice img{width:100%;height:40px;object-fit:contain}
.logo-choice.active{border-color:#1a5c3e;background:#f0f8f4}
.logo-choice:hover{border-color:#aaa}

#photoThumb img,#versoThumb img{width:64px;height:64px;object-fit:cover;border-radius:8px;margin-top:8px;border:1px solid #eee}

#previewPanel{display:flex;flex-direction:column;align-items:center;padding:20px}
.preview-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#888;margin-bottom:8px}

/* Badge CR-80: 85.6×54mm @ 3.75px/mm = 321×202.5px */
.badge-preview{
  width:321px;height:202.5px;
  background:#fff;
  border-radius:10px;
  box-shadow:0 4px 20px rgba(0,0,0,.18);
  overflow:hidden;
  display:flex;
  align-items:flex-start;
  padding:11px 11px 11px 11px;
  gap:10px;
}

/* Photo portrait ID: ~19mm×25mm → 71×94px */
.badge-photo-zone{
  width:71px;height:94px;
  background:#e8e8e8;
  flex-shrink:0;overflow:hidden;
  border-radius:2px;
}
.badge-photo-zone img{width:100%;height:100%;object-fit:cover}

.badge-info-zone{
  flex:1;
  height:180px; /* 202.5 - 11*2 = 180.5 */
  display:flex;flex-direction:column;
  justify-content:space-between;
}
.badge-name-block{display:flex;flex-direction:column;gap:3px}
.badge-name{font-size:.95rem;font-weight:800;line-height:1.2;color:#1a1a1a}
.badge-fonction{font-size:.68rem;color:#555;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.badge-qr-zone{flex:1;display:flex;justify-content:center;align-items:center}
.badge-qr-zone canvas{width:72px!important;height:72px!important}

.badge-verso{justify-content:center;align-items:center;padding:0}
.badge-verso img{max-width:70%;max-height:70%;object-fit:contain}

@media print{
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{margin:0;padding:0}
  .badge-verso-print{width:85.6mm;height:54mm;background:#fff;display:flex;justify-content:center;align-items:center}
  .badge-verso-print img{max-width:60mm;max-height:36mm;object-fit:contain}
}
