/* Planner container */
.camp-weekly{ border:1px solid #e5e5e5; border-radius:12px; padding:16px; background:#fff; position:relative; }
.camp-weekly__header{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
.camp-weekly__header h3{ margin:0; font-size:1.1rem; }
.camp-btn, .camp-btn-primary{ border:none; border-radius:10px; padding:8px 12px; cursor:pointer; }
.camp-btn{ background:#f0f0f0; }
.camp-btn-primary{ background:#434d32; color:#fff; }

/* Week grid */
.camp-weekly__grid{ display:grid; grid-template-columns:repeat(7,minmax(120px,1fr)); gap:8px; overflow-x:auto; padding-bottom:6px; }
.camp-daycell{ border:1px solid #eee; border-radius:10px; padding:8px; background:#fafafa; min-width:120px; }
.camp-daycell.is-weekend{ background:#f3f3f3; }
.camp-daycell h5{ margin:0 0 6px; font-size:13px; font-weight:600; }

/* Slots */
.camp-slot{ display:flex; align-items:center; justify-content:center; padding:8px; border-radius:8px; cursor:pointer; border:1px dashed #ddd; margin-bottom:6px; user-select:none; }
.camp-slot.selected{ border:1px solid #434d32; background:#f3f5ef; font-weight:600; }
.camp-slot.disabled{ cursor:not-allowed; opacity:1; }
.camp-slot.disabled.weekend{ opacity:.45; background:#f2f2f2; border-color:#eaeaea; color:#9a9a9a; }
.camp-slot.disabled.unavailable{ background:#fde7e7; border-color:#e7b4b4; color:#a33; }
.camp-slot.disabled.past{ background:#f6f6f6; border-color:#eee; color:#aaa; }

/* Summary + error */
.camp-weekly__summary{ margin-top:16px; border-top:1px solid #eee; padding-top:12px; }
.camp-summary-list{ list-style:none; padding:0; margin:8px 0; }
.camp-summary-list li{ font-size:14px; margin-bottom:4px; }
.camp-week-error{ margin-top:8px; padding:8px 10px; background:#fde7e7; border:1px solid #e7b4b4; color:#a33; border-radius:8px; font-size:14px; }

/* Button states */
#camp-validate.is-loading{ opacity:.7; pointer-events:none; }

/* Nice anchor when auto-scrolling */
#camp-weekly-scheduler{ scroll-margin-top:80px; }

/* (Optionnel) mise en page 2 colonnes si tu l'utilises dans un wrapper prévu */
@media (max-width:980px){ .camp-weekly{ padding:12px; } }
.camp-weekly__header .camp-btn[disabled]{ opacity:.4; cursor:not-allowed; }

.camp-btn {
    background: #434D32;
    color: white;
    font-weight: 500;
}