/* ── Appels d'Offres — CSS Institution Dashboard ───────────────────────── */
.ao-dashboard { max-width: 900px; margin: 0 auto; padding: 20px 16px; }
.ao-dashboard-header {
  display: flex; justify-content: space-between; align-items: center;
  flex-wrap: wrap; gap: 12px; margin-bottom: 24px;
  padding-bottom: 16px; border-bottom: 2px solid #1a5fd6;
}
.ao-dashboard-header h2 { margin: 0; font-size: 22px; }

/* Table */
.ao-table { width: 100%; border-collapse: collapse; margin-top: 12px; }
.ao-table th, .ao-table td {
  padding: 10px 12px; text-align: left; border-bottom: 1px solid #e5e7eb; font-size: 14px;
}
.ao-table th { background: #f9fafb; font-weight: 600; font-size: 13px; color: #374151; }
.ao-table tr:hover td { background: #fafafa; }

/* Statut badges */
.ao-badge-brouillon             { background: #f3f4f6; color: #6b7280; }
.ao-badge-en_attente_validation { background: #fef9c3; color: #d97706; }
.ao-badge-publiee               { background: #dcfce7; color: #16a34a; }
.ao-badge-cloturee              { background: #e0f2fe; color: #0369a1; }
.ao-badge-rejetee               { background: #fee2e2; color: #dc2626; }
.ao-badge-decision-en_attente   { background: #fef9c3; color: #d97706; }
.ao-badge-decision-favorable    { background: #dcfce7; color: #16a34a; }
.ao-badge-decision-refuse       { background: #fee2e2; color: #dc2626; }

/* Form */
.ao-form { max-width: 700px; }
.ao-form-group { margin-bottom: 18px; }
.ao-form-group label { display: block; font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.ao-input, .ao-textarea {
  width: 100%; padding: 9px 12px; border: 1px solid #d1d5db; border-radius: 6px;
  font-size: 14px; box-sizing: border-box; transition: border-color .15s; font-family: inherit;
}
.ao-input:focus, .ao-textarea:focus { outline: none; border-color: #1a5fd6; box-shadow: 0 0 0 3px rgba(26,95,214,.1); }
.ao-textarea { resize: vertical; }
.ao-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 600px) { .ao-form-row { grid-template-columns: 1fr; } }
.ao-help { color: #6b7280; font-size: 12px; margin-top: 4px; }
.ao-form-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }

/* Pièces */
.ao-piece-row { display: flex; gap: 8px; align-items: center; margin-bottom: 8px; }
.ao-piece-row .ao-input { flex: 1; }
.ao-btn-remove-piece { color: #dc2626; font-size: 16px; background: none; border: none; cursor: pointer; padding: 0 4px; }

/* Panel */
.ao-panel {
  background: #fff; border: 1px solid #e5e7eb; border-radius: 8px;
  padding: 20px; margin: 20px 0;
}
.ao-panel h3 { margin-top: 0; padding-bottom: 10px; border-bottom: 1px solid #e5e7eb; }

/* Doc list */
.ao-doc-list { list-style: none; padding: 0; }
.ao-doc-list li { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid #f3f4f6; }
.ao-doc-size { color: #6b7280; font-size: 12px; }

/* Note admin */
.ao-note-admin {
  background: #f9fafb; border-left: 3px solid #d97706; padding: 10px 14px;
  border-radius: 0 6px 6px 0; margin-top: 12px; font-size: 14px;
}

/* Radio groupe décision */
.ao-radio-group { display: flex; gap: 12px; flex-wrap: wrap; }
.ao-radio-label {
  display: flex; align-items: center; gap: 6px; padding: 8px 14px;
  border: 2px solid #e5e7eb; border-radius: 6px; cursor: pointer;
  font-size: 14px; transition: .15s;
}
.ao-radio-label input[type=radio] { margin: 0; }
.ao-radio-label:has(input:checked) { border-color: #1a5fd6; background: #eff6ff; }
.ao-decision-favorable:has(input:checked) { border-color: #16a34a; background: #dcfce7; }
.ao-decision-refuse:has(input:checked)    { border-color: #dc2626; background: #fee2e2; }

/* Buttons */
.ao-btn {
  display: inline-block; padding: 9px 18px; border-radius: 6px;
  font-size: 14px; font-weight: 500; text-decoration: none;
  cursor: pointer; border: 1px solid transparent; transition: .15s;
}
.ao-btn-primary   { background: #1a5fd6; color: #fff; }
.ao-btn-primary:hover { background: #1448a8; }
.ao-btn-secondary { background: #fff; color: #1a5fd6; border-color: #d1d5db; }
.ao-btn-secondary:hover { background: #f9fafb; }
.ao-btn-small     { padding: 4px 10px; font-size: 12px; }
.ao-actions       { display: flex; gap: 10px; }

/* Alerts */
.ao-alert { padding: 12px 16px; border-radius: 6px; margin-bottom: 16px; font-size: 14px; }
.ao-alert-success { background: #dcfce7; color: #16a34a; }
.ao-alert-error   { background: #fee2e2; color: #dc2626; }
.ao-alert-info    { background: #e0f2fe; color: #0369a1; }
