@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap');

:root {
  --black: #1a1a1a;
  --gold: #E8B84B;
  --gold-dark: #c99c2e;
  --gold-light: rgba(232,184,75,0.12);
  --white: #ffffff;
  --gray-50: #fafafa;
  --gray-100: #f4f4f4;
  --gray-200: #e8e8e8;
  --gray-400: #9a9a9a;
  --gray-600: #555555;
  --green: #22c55e;
  --green-bg: rgba(34,197,94,0.1);
  --red: #ef4444;
  --red-bg: rgba(239,68,68,0.1);
  --font: 'Nunito', sans-serif;
  --radius: 14px;
  --radius-sm: 10px;
  --shadow: 0 2px 16px rgba(0,0,0,0.07);
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.12);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;-webkit-text-size-adjust:100%;}
body{font-family:var(--font);background:var(--gray-100);color:var(--black);min-height:100vh;-webkit-font-smoothing:antialiased;}

/* ─── Typography ─── */
h1{font-size:1.75rem;font-weight:800;line-height:1.2;}
h2{font-size:1.375rem;font-weight:800;line-height:1.3;}
h3{font-size:1.125rem;font-weight:700;}
p{line-height:1.6;color:var(--gray-600);}
a{color:var(--black);text-decoration:none;}

/* ─── Layout ─── */
.container{max-width:480px;margin:0 auto;width:100%;}
.page{min-height:100vh;display:flex;flex-direction:column;}

/* ─── App Bar ─── */
.appbar{
  background:var(--white);
  padding:12px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  position:sticky;
  top:0;
  z-index:100;
  box-shadow:0 1px 0 var(--gray-200);
  min-height:56px;
}
.appbar-logo{height:30px;object-fit:contain;}
.appbar-title{font-weight:800;font-size:1rem;}
.appbar-actions{display:flex;gap:8px;align-items:center;}

/* ─── Auth Layout ─── */
.auth-page{min-height:100vh;background:var(--white);display:flex;flex-direction:column;}
.auth-logo{display:flex;justify-content:center;padding:40px 0 28px;}
.auth-logo img{height:52px;object-fit:contain;}
.auth-content{flex:1;padding:0 24px 40px;max-width:480px;width:100%;margin:0 auto;}
.auth-title{font-size:1.875rem;font-weight:900;margin-bottom:6px;color:var(--black);}
.auth-subtitle{color:var(--gray-600);margin-bottom:32px;font-size:1rem;}
.auth-footer{text-align:center;padding:20px 24px 40px;font-size:.9375rem;color:var(--gray-600);}
.auth-footer a{font-weight:800;color:var(--black);text-decoration:underline;text-underline-offset:2px;}

/* ─── Buttons ─── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 24px;border-radius:var(--radius-sm);
  font-family:var(--font);font-size:1rem;font-weight:700;
  cursor:pointer;border:none;transition:all .15s ease;
  text-decoration:none;width:100%;line-height:1;
}
.btn-primary{background:var(--gold);color:var(--black);}
.btn-primary:hover{background:var(--gold-dark);}
.btn-primary:active{transform:scale(.98);}
.btn-secondary{background:var(--gray-100);color:var(--black);}
.btn-secondary:hover{background:var(--gray-200);}
.btn-danger{background:var(--red-bg);color:var(--red);}
.btn-outline{background:transparent;color:var(--black);border:2px solid var(--gray-200);}
.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none;}
.btn-icon{
  width:40px;height:40px;padding:0;border-radius:50%;
  background:var(--gray-100);border:none;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--black);font-size:1.25rem;flex-shrink:0;
}

/* ─── Form Elements ─── */
.form-group{margin-bottom:20px;}
label,.field-label{display:block;font-weight:700;margin-bottom:8px;font-size:.9375rem;color:var(--black);}
.label-opt{font-weight:400;color:var(--gray-400);font-size:.8125rem;margin-left:4px;}

input[type=text],input[type=email],input[type=tel],
input[type=password],input[type=number],textarea,select{
  width:100%;padding:14px 16px;border:2px solid var(--gray-200);
  border-radius:var(--radius-sm);font-family:var(--font);
  font-size:1rem;color:var(--black);background:var(--white);
  outline:none;transition:border-color .15s;-webkit-appearance:none;
}
input:focus,textarea:focus,select:focus{border-color:var(--gold);}
input.error,textarea.error{border-color:var(--red);}
textarea{resize:vertical;min-height:100px;}
.field-error{color:var(--red);font-size:.8125rem;margin-top:6px;font-weight:600;display:none;}
.field-error.visible{display:block;}

/* ─── Choice Buttons (radio/select style) ─── */
.choices{display:flex;flex-direction:column;gap:10px;}
.choices-row{display:flex;flex-wrap:wrap;gap:10px;}

.choice-btn{
  display:flex;align-items:center;justify-content:center;
  padding:12px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-sm);
  font-family:var(--font);font-size:.9375rem;font-weight:700;
  cursor:pointer;background:var(--white);color:var(--black);
  transition:all .15s;text-align:center;user-select:none;
  flex:1;min-width:100px;
}
.choice-btn:active{transform:scale(.97);}
.choice-btn.selected{border-color:var(--gold);background:var(--gold-light);color:var(--black);}
.choice-btn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none;}
.choices-col .choice-btn{width:100%;justify-content:flex-start;flex:none;min-width:unset;}

.choice-badge{
  font-size:.6875rem;font-weight:600;background:var(--gray-400);
  color:var(--white);padding:2px 7px;border-radius:10px;margin-left:auto;
}

/* ─── Progress Bar ─── */
.progress-wrap{
  background:var(--white);padding:12px 16px;
  position:sticky;top:56px;z-index:99;
  border-bottom:1px solid var(--gray-200);
}
.progress-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.progress-step-label{font-size:.8125rem;font-weight:700;color:var(--gray-600);}
.progress-pct{font-size:.8125rem;font-weight:800;color:var(--gold-dark);}
.progress-track{background:var(--gray-200);border-radius:4px;height:5px;overflow:hidden;}
.progress-fill{height:100%;background:var(--gold);border-radius:4px;transition:width .35s ease;}

/* ─── Form Steps ─── */
.step{padding:24px 16px 160px;max-width:480px;margin:0 auto;}
.step-title{font-size:1.375rem;font-weight:800;margin-bottom:6px;}
.step-subtitle{font-size:.9375rem;color:var(--gray-600);margin-bottom:24px;line-height:1.5;}
.divider{height:1px;background:var(--gray-200);margin:20px 0;}

/* Conditional blocks */
.cond-block{display:none;margin-top:16px;}
.cond-block.visible{display:block;}

/* ─── Step Navigation (fixed bottom) ─── */
.step-nav{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--white);
  padding:10px 16px;
  padding-bottom:max(10px, env(safe-area-inset-bottom));
  box-shadow:0 -1px 0 var(--gray-200);
  display:flex;gap:10px;align-items:center;
  max-width:480px;margin:0 auto;
}
.nav-back{
  width:50px;height:50px;flex-shrink:0;
  background:var(--gray-100);border:none;border-radius:var(--radius-sm);
  font-size:1.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s;
}
.nav-back:hover{background:var(--gray-200);}
.nav-next{
  flex:1;background:var(--gold);color:var(--black);
  border:none;border-radius:var(--radius-sm);
  font-family:var(--font);font-size:1.0625rem;font-weight:800;
  padding:14px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  transition:background .15s;
}
.nav-next:hover{background:var(--gold-dark);}
.nav-next:disabled{opacity:.5;cursor:not-allowed;}

/* ─── Cards ─── */
.card{background:var(--white);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);}
.card+.card{margin-top:12px;}

/* ─── Dashboard ─── */
.dash-hero{background:var(--black);margin:16px;border-radius:var(--radius);padding:24px;color:var(--white);}
.dash-hero-welcome{font-size:.875rem;color:var(--gray-400);font-weight:600;margin-bottom:4px;}
.dash-hero-name{font-size:1.25rem;font-weight:800;margin-bottom:20px;}
.dash-stat-number{font-size:3rem;font-weight:900;color:var(--gold);line-height:1;}
.dash-stat-label{font-size:.875rem;color:var(--gray-400);margin-top:4px;}

.new-est-btn{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:0 16px 8px;padding:18px;
  background:var(--gold);color:var(--black);
  border:none;border-radius:var(--radius);
  font-family:var(--font);font-size:1.125rem;font-weight:800;
  cursor:pointer;text-decoration:none;
  transition:background .15s;box-shadow:var(--shadow);
}
.new-est-btn:hover{background:var(--gold-dark);}

.section-label{
  padding:16px 16px 8px;
  font-size:.8125rem;font-weight:800;
  color:var(--gray-400);text-transform:uppercase;letter-spacing:.06em;
}

/* ─── Estimate List Item ─── */
.est-list{background:var(--white);border-radius:var(--radius);margin:0 16px;overflow:hidden;box-shadow:var(--shadow);}

/* ─── Est Card (wrapper accordéon) ─── */
.est-card{}
.est-card:last-child .est-item{border-bottom:none;}
.est-card.open .est-item{border-bottom:1px solid var(--gray-200);}

.est-item{
  padding:14px 16px;border-bottom:1px solid var(--gray-100);
  display:flex;align-items:center;gap:12px;
  cursor:pointer;user-select:none;
}
.est-item-right{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.est-chevron{
  font-size:1.125rem;color:var(--gray-400);font-weight:700;line-height:1;
  transition:transform .25s ease;flex-shrink:0;
}
.est-card.open .est-chevron{transform:rotate(90deg);}

/* ─── Panneau détail accordéon ─── */
.est-details{
  max-height:0;overflow:hidden;
  transition:max-height .3s ease;
}
.est-card.open .est-details{max-height:700px;}

.est-detail-grid{
  padding:14px 16px 16px;
  display:flex;flex-direction:column;gap:10px;
  background:var(--gray-50);
  border-top:1px solid var(--gray-200);
}
.est-detail-row{
  display:flex;justify-content:space-between;align-items:flex-start;gap:8px;
  font-size:.8125rem;
}
.est-detail-label{color:var(--gray-400);font-weight:600;flex-shrink:0;min-width:105px;}
.est-detail-value{color:var(--black);text-align:right;word-break:break-all;}
.est-detail-value a{color:var(--gold);text-decoration:none;}
.est-detail-divider{height:1px;background:var(--gray-200);margin:2px 0;}
.est-detail-action{padding-top:6px;display:flex;justify-content:flex-end;}

.est-avatar{
  width:42px;height:42px;background:var(--gold);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-weight:900;font-size:1rem;flex-shrink:0;color:var(--black);
}
.est-info{flex:1;min-width:0;}
.est-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9375rem;}
.est-date{font-size:.8125rem;color:var(--gray-400);margin-top:2px;}
.est-badge{
  font-size:.75rem;font-weight:700;padding:4px 10px;border-radius:20px;white-space:nowrap;flex-shrink:0;
}
.badge-sent{background:var(--green-bg);color:#16a34a;}
.badge-pending{background:var(--gold-light);color:#92400e;}
.badge-done{background:#1a3a1a;color:#4caf50;border:1px solid #4caf50;text-decoration:none;display:inline-block;cursor:pointer;}
.badge-done:hover{background:#2a4a2a;}
.badge-error{background:#3a1a1a;color:#f44336;border:1px solid #f44336;}

/* ─── Boutons action accordéon ─── */
.btn-delete-est{
  width:100%;padding:10px;background:none;
  border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);
  color:var(--gray-400);font-size:.8125rem;font-weight:600;
  cursor:pointer;font-family:var(--font);
}
.btn-delete-est:hover{border-color:var(--red);color:var(--red);}
.btn-restore-est{
  width:100%;padding:10px;background:none;
  border:1.5px solid var(--gold);border-radius:var(--radius-sm);
  color:var(--gold-dark);font-size:.8125rem;font-weight:600;
  cursor:pointer;font-family:var(--font);
}
.btn-restore-est:hover{background:var(--gold-light);}

/* ─── Archives toggle ─── */
.archives-toggle{
  text-align:center;padding:14px 16px;
  font-size:.8125rem;color:var(--gray-400);
  cursor:pointer;font-weight:600;
}
.archives-toggle:hover{color:var(--black);}

/* ─── Modal ─── */
.modal-overlay{
  position:fixed;inset:0;
  background:rgba(0,0,0,0.55);
  display:flex;align-items:center;justify-content:center;
  z-index:200;padding:24px;
}
.modal-box{
  background:var(--white);border-radius:var(--radius);
  padding:24px;width:100%;max-width:320px;
  box-shadow:var(--shadow-lg);
}
.modal-title{font-weight:800;font-size:1.125rem;margin-bottom:8px;}
.modal-desc{font-size:.875rem;color:var(--gray-600);line-height:1.5;margin-bottom:20px;}
.modal-actions{display:flex;gap:10px;}
.btn-modal-cancel{
  flex:1;padding:12px;border:none;
  background:var(--gray-100);border-radius:var(--radius-sm);
  font-weight:700;font-size:.9375rem;cursor:pointer;font-family:var(--font);
}
.btn-modal-confirm{
  flex:1;padding:12px;border:none;
  background:var(--red);color:var(--white);border-radius:var(--radius-sm);
  font-weight:700;font-size:.9375rem;cursor:pointer;font-family:var(--font);
}
.btn-modal-restore{
  flex:1;padding:12px;border:none;
  background:var(--gold);color:var(--black);border-radius:var(--radius-sm);
  font-weight:700;font-size:.9375rem;cursor:pointer;font-family:var(--font);
}

/* ─── Alerts ─── */
.alert{padding:14px 16px;border-radius:var(--radius-sm);font-weight:600;font-size:.9375rem;margin-bottom:16px;}
.alert-error{background:var(--red-bg);color:var(--red);}
.alert-success{background:var(--green-bg);color:#16a34a;}
.alert-info{background:var(--gold-light);color:#92400e;}

/* ─── Settings ─── */
.settings-group{margin:0 16px 12px;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);}
.settings-item{
  background:var(--white);padding:16px;border-bottom:1px solid var(--gray-100);
  display:flex;align-items:center;gap:12px;cursor:pointer;
  transition:background .1s;
}
.settings-item:last-child{border-bottom:none;}
.settings-item:hover{background:var(--gray-50);}
.settings-icon{
  width:36px;height:36px;background:var(--gray-100);border-radius:10px;
  display:flex;align-items:center;justify-content:center;font-size:1.125rem;flex-shrink:0;
}
.settings-text{flex:1;}
.settings-text strong{display:block;font-weight:700;font-size:.9375rem;}
.settings-text span{font-size:.8125rem;color:var(--gray-600);}
.settings-arrow{color:var(--gray-400);font-size:1.125rem;}

/* ─── Success Screen ─── */
.success-screen{
  display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;
  padding:48px 24px;min-height:100vh;background:var(--white);
}
.success-icon{
  width:88px;height:88px;background:var(--green-bg);border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:2.75rem;margin-bottom:24px;
}
.success-title{font-size:1.75rem;font-weight:900;margin-bottom:12px;}
.success-text{font-size:1rem;color:var(--gray-600);margin-bottom:32px;max-width:280px;}

/* ─── Spinner ─── */
.spinner{
  display:inline-block;width:20px;height:20px;
  border:3px solid rgba(0,0,0,.2);border-top-color:var(--black);
  border-radius:50%;animation:spin .6s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}

/* ─── Toast ─── */
#toast{
  position:fixed;bottom:80px;left:50%;
  transform:translateX(-50%) translateY(20px);
  background:var(--black);color:var(--white);
  padding:12px 20px;border-radius:var(--radius-sm);
  font-weight:700;font-size:.9375rem;
  opacity:0;transition:all .3s ease;
  z-index:1000;pointer-events:none;
  max-width:calc(100vw - 32px);text-align:center;
}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ─── Info box ─── */
.info-box{
  background:var(--gold-light);border-radius:var(--radius-sm);
  padding:14px 16px;margin-bottom:20px;
  font-size:.9rem;color:#92400e;font-weight:600;line-height:1.5;
}

/* ─── Empty state ─── */
.empty-state{text-align:center;padding:40px 16px;color:var(--gray-400);}
.empty-icon{font-size:2.5rem;margin-bottom:12px;}
.empty-state p{font-size:.9375rem;}

/* ─── Bottom nav ─── */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;
  background:var(--white);border-top:1px solid var(--gray-200);
  display:flex;max-width:480px;margin:0 auto;
  padding-bottom:env(safe-area-inset-bottom);
  z-index:100;
}
.bottom-nav-item{
  flex:1;display:flex;flex-direction:column;align-items:center;
  padding:8px 4px;cursor:pointer;border:none;background:none;
  font-family:var(--font);font-size:.6875rem;font-weight:700;color:var(--gray-400);
  transition:color .15s;gap:3px;text-decoration:none;
}
.bottom-nav-item .nav-icon{font-size:1.375rem;}
.bottom-nav-item.active{color:var(--gold-dark);}
.bottom-nav-item.active .nav-icon{color:var(--gold);}

/* content with bottom nav */
.has-bottom-nav{padding-bottom:68px;}

/* ─── Misc ─── */
.mt-8{margin-top:8px;} .mt-16{margin-top:16px;} .mt-24{margin-top:24px;} .mt-32{margin-top:32px;}
.mb-0{margin-bottom:0;} .mb-8{margin-bottom:8px;}
.text-center{text-align:center;}
.text-small{font-size:.875rem;color:var(--gray-600);}
.hidden{display:none!important;}
.bold{font-weight:700;}

/* ─── Choice Checkboxes (multi-select) ─── */
.choices-checkboxes{display:flex;flex-direction:column;gap:8px;}

.choice-checkbox{
  position:relative;
  display:flex;align-items:center;
  padding:12px 16px 12px 46px;
  border:2px solid var(--gray-200);border-radius:var(--radius-sm);
  font-family:var(--font);font-size:.9375rem;font-weight:700;
  cursor:pointer;background:var(--white);color:var(--black);
  transition:all .15s;text-align:left;user-select:none;width:100%;
}
.choice-checkbox:active{transform:scale(.98);}
.choice-checkbox.selected{border-color:var(--gold);background:var(--gold-light);}

/* Custom checkbox square */
.choice-checkbox::before{
  content:'';
  position:absolute;left:12px;top:50%;
  transform:translateY(-50%);
  width:22px;height:22px;
  border:2px solid var(--gray-200);border-radius:5px;
  background:var(--white);transition:all .15s;
}
.choice-checkbox.selected::before{
  background:var(--gold);border-color:var(--gold-dark);
}
/* Checkmark */
.choice-checkbox::after{
  content:'';
  position:absolute;left:19px;top:50%;
  width:7px;height:12px;
  border-right:2.5px solid var(--black);
  border-bottom:2.5px solid var(--black);
  transform:translateY(-65%) rotate(45deg) scale(0);
  transition:transform .15s;
}
.choice-checkbox.selected::after{transform:translateY(-65%) rotate(45deg) scale(1);}

/* ─── Electrical Board Cards ─── */
.elec-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}

.elec-card{
  border:2px solid var(--gray-200);border-radius:var(--radius-sm);
  padding:14px 10px 12px;text-align:center;
  cursor:pointer;background:var(--white);
  transition:all .15s;user-select:none;
  font-family:var(--font);
  display:flex;flex-direction:column;align-items:stretch;width:100%;
}
.elec-card:active{transform:scale(.97);}
.elec-card.selected{border-color:var(--gold);background:var(--gold-light);}

.elec-board-visual{
  width:100%;height:150px;
  background:#2a2a2a;border-radius:5px;
  margin:0 auto 12px;padding:6px 5px;
  display:grid;grid-template-columns:repeat(3,1fr);gap:3px;align-content:center;
  overflow:hidden;
  flex-shrink:0;
}
/* Quand la div contient une image (photo réelle) */
.elec-board-visual img{
  width:100%;height:100%;object-fit:contain;display:block;
}
.eb-switch{height:12px;background:#666;border-radius:2px;}
.eb-switch.on{background:#4ade80;}
.eb-fuse{
  width:12px;height:12px;
  background:#c0924d;border-radius:50%;
  margin:0 auto;border:2px solid #8b6225;
}
.elec-card-title{font-weight:800;font-size:.875rem;color:var(--black);margin-bottom:6px;}
.elec-card-desc{font-size:.75rem;color:var(--gray-600);line-height:1.4;}

/* ─── Comment Toggle ─── */
.comment-toggle{
  display:flex;align-items:center;gap:8px;
  background:var(--gold-light);border:1.5px solid var(--gold);border-radius:var(--radius-sm);
  cursor:pointer;font-family:var(--font);font-size:.875rem;font-weight:700;
  color:var(--black);padding:12px 16px;width:100%;
  transition:all .15s;margin-top:12px;
}
.comment-toggle:hover{background:var(--gold);color:var(--black);}
.comment-toggle-icon{margin-left:auto;font-size:1.125rem;line-height:1;}
.comment-area{display:none;margin-top:10px;}
.comment-area.visible{display:block;}
.comment-area textarea{min-height:90px;background:var(--gold-light);border:1.5px solid var(--gold);}

/* ─── Audio Recorder ─── */
.recorder-wrap{
  border:2px solid var(--gray-200);border-radius:var(--radius-sm);
  padding:24px 20px;text-align:center;background:var(--white);
}
.recorder-time{
  font-size:1.875rem;font-weight:900;color:var(--black);
  letter-spacing:.05em;margin-bottom:8px;
}
.recorder-btn{
  width:72px;height:72px;border-radius:50%;
  background:var(--gold);border:none;cursor:pointer;
  font-size:1.875rem;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 12px;transition:all .2s;
  box-shadow:0 4px 16px rgba(232,184,75,.4);
}
.recorder-btn:hover{transform:scale(1.05);}
.recorder-btn.recording{
  background:var(--red);
  box-shadow:0 4px 16px rgba(239,68,68,.4);
  animation:pulse-rec .9s ease-in-out infinite;
}
@keyframes pulse-rec{0%,100%{transform:scale(1);}50%{transform:scale(1.08);}}
.recorder-status{font-size:.875rem;color:var(--gray-400);font-weight:600;}
.recorder-done{
  display:none;margin-top:16px;padding:12px 16px;
  background:var(--green-bg);border-radius:var(--radius-sm);
  font-weight:700;color:#16a34a;font-size:.9375rem;
}
.recorder-done.visible{display:block;}
.recorder-tip{font-size:.8125rem;color:var(--gray-400);margin-top:10px;line-height:1.5;}

/* ─── Photos Upload ─── */
.photo-upload-zone{display:flex;flex-direction:column;gap:12px;}
.photo-preview-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.photo-thumb{
  position:relative;aspect-ratio:1;
  border-radius:var(--radius-sm);overflow:hidden;
  background:var(--gray-200);
}
.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.photo-thumb-del{
  position:absolute;top:4px;right:4px;
  width:24px;height:24px;border-radius:50%;
  background:rgba(0,0,0,.6);color:#fff;border:none;
  font-size:1.125rem;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  padding:0;
}
.photo-upload-status{font-size:.875rem;color:var(--gray-600);min-height:1.2em;}

/* ─── Vocal Guide (étape 15) ─── */
.vocal-guide{display:flex;flex-direction:column;gap:20px;}
.vocal-guide-section{background:var(--surface);border-radius:var(--radius-sm);padding:16px;}
.vocal-guide-intro{font-size:.9375rem;color:var(--gray-700);line-height:1.5;margin:0;}
.vocal-guide-title{font-size:.875rem;font-weight:700;color:var(--gray-900);margin:0 0 10px;}
.vocal-guide-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px;}
.vocal-guide-list li{font-size:.875rem;color:var(--gray-800);line-height:1.45;}
.vocal-guide-list--bullet{list-style:disc;}
.vocal-example{display:block;font-size:.8125rem;font-style:italic;color:var(--gray-500);margin-top:3px;}

/* ─── Feature gate — lock overlay ─────────────────────────────────────────── */
.feature-gate{position:relative;border-radius:var(--radius-sm);}
.feature-gate-overlay{display:none;position:absolute;inset:0;background:rgba(20,20,20,0.92);z-index:5;align-items:center;justify-content:center;flex-direction:column;gap:8px;text-align:center;padding:16px;border-radius:var(--radius-sm);}
.feature-gate.feature-locked .feature-gate-overlay{display:flex;}
.feature-gate.feature-locked .feature-gate-content{opacity:0.2;pointer-events:none;filter:blur(2px);user-select:none;}
.feature-gate-overlay-icon{font-size:2rem;line-height:1;}
.feature-gate-overlay-label{color:var(--gold);font-weight:700;font-size:.9375rem;margin:0;}
.feature-gate-overlay-sub{color:var(--gray-500);font-size:.8125rem;margin:0;}

/* ─── Artisan cards (settings) ─────────────────────────────────────────────── */
.artisan-card-item{cursor:default;flex-direction:column;align-items:stretch;gap:0;}
.artisan-metier-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.artisan-metier-tag{background:rgba(200,160,60,0.15);border:1px solid rgba(200,160,60,0.35);color:var(--gold);border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:600;}

/* ─── Artisan selection (formulaire étape 14) ──────────────────────────────── */
.artisan-select-card{display:flex;align-items:center;gap:12px;background:var(--surface);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:10px;cursor:pointer;border:2px solid transparent;transition:border-color .15s;}
.artisan-select-card:last-child{margin-bottom:0;}
.artisan-select-card.selected{border-color:var(--gold);}
.artisan-select-card-check{width:22px;height:22px;flex-shrink:0;border:2px solid var(--gray-400);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:.875rem;color:transparent;transition:background .15s,border-color .15s,color .15s;}
.artisan-select-card.selected .artisan-select-card-check{background:var(--gold);border-color:var(--gold);color:#000;}
.artisan-select-card-info{flex:1;}
.artisan-select-card-name{font-weight:700;font-size:.9375rem;}
.artisan-select-card-sub{font-size:.8125rem;color:var(--gray-500);margin-top:2px;}
