:root{
  --forest:#1B5E20;
  --leaf:#2E7D32;
  --leaf-pale:#E8F5E9;
  --gold:#C9A227;
  --paper:#FAFAF8;
  --paper-dark:#E4E4DE;
  --ink:#1E2620;
  --ink-soft:#5B6660;
  --alert:#C62828;
  --orange:#E67E22;
  --white:#FFFFFF;
  --blue:#1565C0;
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  -webkit-tap-highlight-color:transparent;
}
.phone{ max-width:460px; margin:0 auto; min-height:100vh; background:var(--paper); display:flex; flex-direction:column;}
.banner-ouverture{
  background:#FFF3E0; color:#8A5A00; font-size:12px; padding:10px 14px;
  border-bottom:1px solid #F0D9A8; text-align:center; line-height:1.4;
}
.header{
  background:var(--forest); color:var(--white); padding:16px 16px 14px;
  display:flex; align-items:center; gap:10px;
}
.header button.back{ background:none; border:none; color:var(--white); font-size:20px; cursor:pointer; padding:0 6px 0 0;}
.header .titres{ flex:1;}
.header h1{ font-size:16px; margin:0; font-weight:700;}
.header .sub{ font-size:11.5px; opacity:.85; margin-top:2px;}
.content{ flex:1; padding:16px; padding-bottom:32px; overflow-y:auto;}
.brand{ text-align:center; padding:34px 20px 10px;}
.brand .seal{ width:56px; height:56px; border-radius:50%; background:var(--forest); color:var(--gold); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; font-weight:800; font-size:20px;}
.brand h2{ font-size:15px; margin:0 0 3px; color:var(--forest);}
.brand p{ font-size:10.5px; color:var(--ink-soft); margin:0; letter-spacing:.3px;}
label.field-label{ display:block; font-size:12px; font-weight:700; color:var(--ink); margin:14px 0 5px;}
label.field-label .req{ color:var(--alert); margin-left:2px;}
input[type=text],input[type=password],input[type=tel],input[type=date],textarea,select{
  width:100%; border:1.5px solid var(--paper-dark); border-radius:8px; padding:10px 11px;
  font-size:14.5px; background:var(--white); color:var(--ink); font-family:inherit;
}
textarea{ min-height:74px; resize:vertical;}
input:read-only{ background:#F1F1EC; color:var(--ink-soft);}
.profil-toggle{ display:flex; gap:8px; margin:14px 0 6px;}
.profil-toggle button{ flex:1; padding:9px 0; border-radius:8px; font-size:12px; font-weight:600; cursor:pointer; border:1.5px solid var(--paper-dark); background:var(--white); color:var(--ink-soft);}
.profil-toggle button.active{ background:var(--forest); border-color:var(--forest); color:var(--white);}
.profil-toggle button:disabled{ opacity:.45; cursor:not-allowed;}
.btn-primary{
  width:100%; background:var(--forest); color:var(--white); border:none; border-radius:9px;
  padding:13px 0; font-size:14.5px; font-weight:700; cursor:pointer; margin-top:18px;
}
.btn-primary:disabled{ background:#B9C2BB; cursor:not-allowed;}
.btn-secondary{
  width:100%; background:var(--white); color:var(--forest); border:1.5px solid var(--forest); border-radius:9px;
  padding:11px 0; font-size:13.5px; font-weight:700; cursor:pointer; margin-top:10px;
}
.checkbox-row{ display:flex; align-items:flex-start; gap:8px; margin-top:12px; font-size:11.5px; color:var(--ink-soft);}
.checkbox-row input{ margin-top:2px;}
.menu-item{
  display:flex; align-items:center; gap:12px; width:100%; background:var(--white);
  border:1px solid var(--paper-dark); border-radius:12px; padding:15px; cursor:pointer; margin-bottom:12px;
}
.menu-item .icon{ width:38px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center; font-size:18px; background:var(--leaf-pale); color:var(--forest);}
.menu-item .txt{ flex:1; text-align:left;}
.menu-item .txt .t{ font-weight:700; font-size:13.5px;}
.menu-item .txt .s{ font-size:11px; color:var(--ink-soft);}
.gps-box{ border:1.5px solid var(--paper-dark); border-radius:10px; padding:12px; margin:14px 0;}
.gps-badge{ display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; padding:6px 10px; border-radius:20px;}
.gps-badge.rouge{ background:#FDECEA; color:var(--alert);}
.gps-badge.vert{ background:var(--leaf-pale); color:var(--forest);}
.gps-badge.orange{ background:#FDF0E2; color:var(--orange);}
.gps-coords{ font-family:monospace; font-size:11px; color:var(--ink-soft); margin-top:8px;}
.sig-pad{ margin:14px 0;}
.sig-pad .lbl{ font-size:12px; font-weight:700; margin-bottom:5px; display:flex; justify-content:space-between; align-items:center;}
.sig-pad canvas{ width:100%; height:110px; border:1.5px dashed var(--paper-dark); border-radius:8px; background:var(--white); touch-action:none;}
.sig-pad .clear{ font-size:11px; color:var(--blue); background:none; border:none; cursor:pointer;}
.sig-signed{ color:var(--forest); font-size:11px; font-weight:700;}
.repeat-row{ display:flex; gap:6px; margin-bottom:8px; align-items:flex-end;}
.repeat-row select{ flex:1.4; }
.repeat-row input[type=number]{ flex:1; width:auto; }
.repeat-row .btn-retirer{ flex:0 0 auto; background:#FDECEA; color:var(--alert); border:1.5px solid #F0B8B3; border-radius:8px; padding:0 12px; font-size:16px; cursor:pointer; height:42px; }
.toast{
  position:fixed; bottom:18px; left:50%; transform:translateX(-50%); background:var(--ink); color:var(--white);
  padding:10px 16px; border-radius:8px; font-size:12.5px; z-index:99; max-width:90%;
}
.confirm-wrap{ text-align:center; padding:50px 20px;}
.confirm-check{ width:64px; height:64px; border-radius:50%; background:var(--leaf-pale); color:var(--forest); font-size:30px; display:flex; align-items:center; justify-content:center; margin:0 auto 18px;}
.hidden{ display:none !important;}
.error-msg{ color:var(--alert); font-size:12px; margin-top:8px;}
