:root{
  --blue:#234d73;
  --blue-dark:#183955;
  --red:#c75a5a;
  --red-dark:#a33d3d;
  --green:#247142;
  --bg:#f5f3ef;
  --line:#d7dee5;
  --muted:#687986;
  --shadow:0 8px 30px rgba(28,53,82,.08)
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:#17212b;line-height:1.45}
.site-header{background:#fff;border-bottom:3px solid var(--red);display:flex;align-items:center;gap:20px;padding:14px max(20px,calc((100% - 1180px)/2))}
.site-header img{width:70px;height:70px;object-fit:contain}
.site-header div{display:flex;flex-direction:column;color:var(--blue);gap:4px}
.site-header b{font-size:18px}
main{max-width:1180px;margin:30px auto;padding:0 18px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px;box-shadow:var(--shadow);margin-bottom:20px}
.narrow{max-width:480px;margin:0 auto}
.narrow-wide{max-width:760px;margin:0 auto 20px}
.centered,.success{text-align:center}
.reference{font-size:24px;font-weight:bold;color:var(--blue);padding:14px}
h1,h2,h3{color:var(--blue);margin-top:0}
h1{font-size:28px}
h2{font-size:20px;border-bottom:2px solid var(--blue);padding-bottom:8px;margin-top:22px}
h3{font-size:16px;margin-top:24px}
p{margin-top:0}
.progress{height:7px;background:#e9eef2;border-radius:10px;overflow:hidden;margin-bottom:12px}
.progress span{display:block;height:100%;background:var(--red);transition:.25s}
.step-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:10px 0 22px;color:var(--blue)}
.step-heading strong{font-size:17px}
.step-heading span{font-size:13px;font-weight:600;color:var(--muted);text-align:right}
.step{display:none}.step.active{display:block}
.form-meta{display:flex;flex-wrap:wrap;gap:10px 22px;padding:12px 15px;background:#f7fafc;border:1px solid var(--line);border-radius:8px;margin-bottom:18px;font-size:13px;color:var(--muted)}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.wide{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:7px;font-weight:600;margin-bottom:14px}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;min-height:44px;padding:10px 12px;border:1px solid #b9c5cf;border-radius:7px;background:#fff;color:#17212b}
textarea{min-height:100px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid #8bb1d1;outline-offset:1px}
input[readonly]{background:#f2f5f7}
input:disabled,select:disabled,textarea:disabled{background:#f1f3f5;color:#65717b;cursor:not-allowed}
.check{display:flex;flex-direction:row;align-items:center;gap:9px;font-weight:normal;margin:10px 0 16px}
.check input{width:auto;min-height:auto}
.inline,.inline-form,.copy-row,.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.inline input,.copy-row input,.inline-form input{flex:1;min-width:220px}
button,.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  min-width:145px;
  padding:10px 18px;
  border:0;
  border-radius:7px;
  background:var(--blue);
  color:#fff;
  text-decoration:none;
  text-align:center;
  cursor:pointer;
  font-weight:600;
  line-height:1.15;
  transition:background .15s ease,opacity .15s ease
}
button:hover,.button:hover{background:var(--blue-dark)}
button:disabled{opacity:.5;cursor:not-allowed}
.secondary{background:var(--muted)}
.secondary:hover{background:#4f606c}
.danger{background:var(--red-dark)}
.danger:hover{background:#812d2d}
.success-button{background:var(--green)}
.success-button:hover{background:#185733}
.full-button{width:100%;min-width:100%}
.compact-button{min-width:170px;width:max-content;margin-top:8px}
.link-danger{background:transparent;color:var(--red-dark);min-width:auto;min-height:auto;padding:2px 4px;font-size:12px}
.link-danger:hover{background:transparent;color:#6f1d1d;text-decoration:underline}
.nav{display:flex;justify-content:space-between;gap:12px;margin-top:28px}
.nav button{width:170px}
.hidden{display:none!important}
.contact-grid,.hours{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:8px;align-items:center}
.hours{grid-template-columns:.8fr .7fr .7fr .7fr 1.5fr}
.contact-grid b,.hours b{background:var(--blue);color:#fff;padding:10px;border-radius:5px}
.warning{padding:15px;background:#fff3cd;border:1px solid #e6c96a;border-radius:8px}
.ok{color:#16733a}.bad{color:#a33}.warning-text{color:#8a6500}
.vat-lookup{padding:16px;border:1px solid #b7c9d8;border-radius:9px;background:#f7fafc;margin-bottom:6px}
.vat-lookup .check{margin-bottom:0}
.muted-block{opacity:.58}
fieldset{border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 18px}
legend{font-weight:700;color:var(--blue);padding:0 6px}
small{color:var(--muted)}
.upload-status{min-height:18px;font-size:12px;color:var(--muted)}
.uploaded-files{list-style:none;padding:0;margin:4px 0 0}
.uploaded-files li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px;background:#f7fafc;border:1px solid var(--line);border-radius:6px;margin-top:6px;font-weight:normal}
.signature-fieldset{margin-top:22px}
.signature-methods{display:flex;gap:12px 28px;flex-wrap:wrap;margin-bottom:12px}
.signature-methods .check{margin:0}
.signature-auto{padding:12px 14px;margin-bottom:12px;border:1px solid var(--line);border-radius:7px;background:#f7fafc}
.signature-auto p{margin-bottom:8px;color:var(--muted)}
.signature-canvas-wrap{width:100%;max-width:720px;border:1px solid #9fb0bd;border-radius:8px;background:#fff;overflow:hidden;box-shadow:inset 0 1px 4px rgba(26,52,76,.08)}
#signature{display:block;width:100%;height:auto;aspect-ratio:900/280;background:#fff;touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none}
#signature.automatic{cursor:default}
#signature.readonly{background:#f1f3f5;cursor:default}
.signature-status{margin:8px 0 0;font-size:13px;color:var(--muted)}
.signature-status.ok{color:#16733a;font-weight:600}
footer{text-align:center;padding:25px;color:#667;font-size:12px}
.flash{padding:12px 15px;border-radius:7px;background:#e9f6ed;color:#166635;margin-bottom:15px}
.flash.error{background:#fdeaea;color:#912828}
.flash.warning{background:#fff3cd;color:#735500}
.login-card form{display:grid;gap:12px}
.login-card button{margin-top:4px}
.admin-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px}
.admin-page-head h1{margin-bottom:4px}
.admin-page-head p{margin-bottom:4px}
.admin-user{color:var(--muted);font-size:13px}
.admin-nav{
  display:grid;
  grid-template-columns:repeat(7,minmax(125px,1fr));
  gap:10px;
  margin-bottom:20px
}
.admin-nav .button{width:100%;min-width:0;padding-left:10px;padding-right:10px}
.admin-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:18px}
.admin-toolbar form{margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}
th{background:var(--blue);color:#fff;white-space:nowrap}
td small{display:block;color:var(--muted);margin-top:4px}
.table-wrap input[type=radio]{width:18px;min-height:18px}
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:20px;background:#e7eef5;color:var(--blue);font-size:12px;font-weight:700;white-space:nowrap}
.status-validé{background:#e2f2e7;color:#166635}
.status-refusé,.status-invitation-révoquée{background:#fdeaea;color:#912828}
.status-à-corriger{background:#fff3cd;color:#735500}
.grid2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:20px;align-items:start}
dl{display:grid;grid-template-columns:1fr 2fr;gap:6px 14px}
dt{font-weight:bold}dd{margin:0;word-break:break-word}
ul{padding-left:20px}
hr{border:0;border-top:1px solid var(--line);margin:25px 0}
.admin-card{margin-bottom:18px}.admin-card.inactive{opacity:.65}
.audit-list{font-size:13px}.audit-list td{vertical-align:top}
.settings-card fieldset{margin-top:18px}
.settings-card code{background:#eef2f5;padding:2px 5px;border-radius:4px}
.dossier-title{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.dossier-title .button-row{justify-content:flex-end}
.copy-row input{font-family:monospace}
@media(max-width:1080px){
  .admin-nav{grid-template-columns:repeat(4,minmax(145px,1fr))}
  .grid2{grid-template-columns:1fr}
}
@media(max-width:760px){
  .fields{grid-template-columns:1fr}.wide{grid-column:auto}
  .contact-grid,.hours{display:block}
  .contact-grid>*{display:block;margin:6px 0}
  .contact-grid b,.hours b{display:none}
  .hours .day-label{font-weight:bold;margin-top:18px}
  .card{padding:18px}
  .admin-page-head,.dossier-title{display:block}
  .admin-page-head>.button,.dossier-title .button-row{margin-top:12px}
  .admin-nav{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-header b{font-size:15px}
  dl{grid-template-columns:1fr}
  .inline,.copy-row,.inline-form{align-items:stretch;flex-direction:column}
  .inline input,.copy-row input,.inline-form input{min-width:0}
  .inline button,.copy-row button,.inline-form button{width:100%}
  .step-heading{align-items:flex-start;flex-direction:column;gap:4px}
  .step-heading span{text-align:left}
  .form-meta{display:grid;gap:6px}
}
@media(max-width:480px){
  .admin-nav{grid-template-columns:1fr}
  .nav button{width:50%;min-width:0}
  .button-row{align-items:stretch;flex-direction:column}
  .button-row>*{width:100%}
  .button-row .button,.button-row button{width:100%}
}
.button-row>form,.button-row>.button{flex:1 1 180px}
.button-row>form>button,.button-row>form>.button{width:100%}

/* v1.4.0 : liens d’invitation compacts dans la liste */
.compact-copy{min-width:300px;align-items:stretch}
.compact-copy input{min-width:210px;font-size:.82rem}
.compact-copy button{flex:0 0 82px}
@media (max-width:900px){.compact-copy{min-width:250px}.compact-copy input{min-width:160px}}

/* v1.4.0 : dépôt individuel des justificatifs et déclarations d’indisponibilité */
.document-card{border:1px solid var(--line);border-radius:9px;padding:15px;background:#fbfcfd}
.document-card>label:first-child{margin-bottom:6px}
.document-card .document-unavailable{margin:8px 0 0;padding-top:10px;border-top:1px dashed var(--line)}
.document-card.document-not-available{background:#f4f5f6;opacity:.82}
.document-card.document-uploaded{border-color:#8ebaa0;background:#f6fbf7}
.document-card input[type=file]{padding:8px;min-height:44px}


/* v1.4.5 : signature robuste et signature automatique */
.invite-mode{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}
.invite-mode legend{grid-column:1/-1}
.choice-card{display:flex;align-items:flex-start;gap:10px;margin:0;padding:14px;border:1px solid var(--line);border-radius:9px;background:#f8fafc;cursor:pointer}
.choice-card:has(input:checked){border-color:var(--blue);background:#eef5fb;box-shadow:0 0 0 1px var(--blue)}
.choice-card input{width:18px;min-height:18px;margin-top:2px;flex:0 0 auto}
.choice-card span{display:grid;gap:4px}
.choice-card small{font-weight:400}
.optional-field>small{color:var(--green)}
@media(max-width:760px){.invite-mode{grid-template-columns:1fr}}

.bank-document-card{align-self:start}
.bank-choice{display:flex;flex-wrap:wrap;gap:12px 24px;margin:0 0 14px;padding:0 0 12px;border:0;border-bottom:1px solid var(--line)}
.bank-choice legend{width:100%;font-weight:700;color:var(--navy);margin-bottom:2px}
.bank-choice .check{margin:0}
.bank-manual-fields{margin-top:12px}
.bank-manual-fields input{text-transform:uppercase}
.bank-manual-fields input[name="bankAccountHolder"],.bank-manual-fields input[name="bankName"]{text-transform:none}
