/* assets/calendar_style.css — Calendrier enrichi */
.calendar-page{padding:18px;max-width:100%}
.calendar-header{
  display:grid;
  grid-template-columns:1fr auto auto auto;
  gap:10px;
  align-items:end;
  margin-bottom:12px;
}
.calendar-title h2{margin:0}
.calendar-sub{display:flex;gap:14px;flex-wrap:wrap;opacity:.9;margin-top:6px}
.calendar-legend{display:flex;gap:10px;align-items:center;font-size:.85rem;opacity:.8}
.legend-dot{width:10px;height:10px;border-radius:999px;background:var(--acc);display:inline-block}
.legend-today{width:14px;height:10px;border-radius:6px;border:2px solid #facc15;display:inline-block}

.calendar-nav,.calendar-picker{display:flex;gap:8px;align-items:center}
.calendar-picker label{display:flex;flex-direction:column;gap:6px;font-size:.85rem}
.calendar-picker select{padding:8px 10px;border-radius:10px;border:1px solid var(--bdr,#1f2937);background:var(--bg2,#0f172a);color:var(--text,#e5e7eb)}
.calendar-nav .btn,.calendar-picker .btn{white-space:nowrap}

/* Grille : 3 lignes de 10 jours comme downtime */
.calendar-grid{
  display:flex;flex-direction:column;gap:12px;
  max-width:100%;
  overflow-x:auto;
  padding-bottom:6px;
}
.calendar-row{
  display:grid;
  grid-template-columns:repeat(10, minmax(0, 1fr));
  gap:12px;
  min-width:980px; /* évite l’écrasement sur petits écrans */
}
.calendar-day{
  text-align:left;
  border:1px solid var(--bdr,#1f2937);
  background:rgba(255,255,255,.03);
  border-radius:14px;
  padding:10px;
  min-height:132px;
  color:var(--text,#e5e7eb);
  cursor:pointer;
  transition:transform .05s ease, border-color .15s ease, background .15s ease;
}
.theme-light .calendar-day{background:rgba(0,0,0,.03)}
.calendar-day:hover{transform:translateY(-1px);border-color:rgba(250,204,21,.45)}
.calendar-day.is-today{border:2px solid #facc15;box-shadow:0 0 0 2px rgba(250,204,21,.15) inset}
.day-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.day-number{font-weight:700;font-size:1.05rem}
.day-dot{width:10px;height:10px;border-radius:999px;background:var(--acc,#60a5fa);display:inline-block;opacity:.95}

.day-events{display:flex;flex-direction:column;gap:6px}
.ev{
  display:inline-flex;
  align-items:center;
  padding:3px 8px;
  border-radius:999px;
  font-size:.78rem;
  line-height:1.2;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ev-off{border-color:rgba(250,204,21,.35)}
.ev-mj{border-color:rgba(96,165,250,.35)}
.ev-more{opacity:.85}

/* Modal */
.cal-modal{position:fixed;inset:0;z-index:1200;display:none}
.cal-modal.is-open{display:block}
.cal-modal__overlay{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.cal-modal__panel{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:min(860px, calc(100vw - 24px));
  max-height:calc(100vh - 24px);
  overflow:auto;
  border-radius:16px;
  border:1px solid var(--bdr,#1f2937);
  background:var(--bg2,#0f172a);
  color:var(--text,#e5e7eb);
  box-shadow:0 18px 60px rgba(0,0,0,.45);
}
.theme-light .cal-modal__panel{background:#fff;color:#111827}
.cal-modal__head{
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 14px 10px 14px;
  border-bottom:1px solid var(--bdr,#1f2937);
  position:sticky;top:0;background:inherit;z-index:2
}
.cal-modal__title{font-weight:800;font-size:1.2rem}
.cal-modal__subtitle{opacity:.8;margin-top:4px}
.cal-modal__body{padding:14px}
.cal-close{white-space:nowrap}

.ev-card{border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px;margin-bottom:10px;background:rgba(255,255,255,.03)}
.theme-light .ev-card{background:rgba(0,0,0,.03)}
.ev-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.ev-title{font-weight:700}
.ev-body{margin-top:8px;opacity:.9;white-space:pre-wrap}
.ev-actions{display:flex;gap:8px;margin-top:10px}
.btn-sm{padding:6px 10px;border-radius:10px;font-size:.85rem}
.danger{border-color:rgba(239,68,68,.55);color:#fecaca}
.danger:hover{background:rgba(239,68,68,.12)}

.badge-off,.badge-mj{
  display:inline-flex;align-items:center;
  padding:2px 8px;border-radius:999px;font-size:.75rem;
  border:1px solid rgba(255,255,255,.14);margin-left:8px;opacity:.9
}
.badge-off{border-color:rgba(250,204,21,.35)}
.badge-mj{border-color:rgba(96,165,250,.35)}

.cal-actions{display:flex;gap:10px;margin:10px 0 16px 0}
.cal-formbox{margin-top:14px;border-top:1px dashed rgba(255,255,255,.18);padding-top:14px}
.cal-formbox h3{margin:0 0 10px 0}
.cal-form label{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}
.cal-form input[type="text"], .cal-form input[type="number"], .cal-form textarea{
  width:100%;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--bdr,#1f2937);
  background:rgba(255,255,255,.03);
  color:var(--text,#e5e7eb);
}
.theme-light .cal-form input, .theme-light .cal-form textarea{background:rgba(0,0,0,.03);color:#111827}
.cal-form .row{display:grid;grid-template-columns:1fr 220px;gap:10px}
.cal-form .chk{flex-direction:row;align-items:center;gap:10px;margin:0}
.cal-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}
.muted{opacity:.75}

/* Responsive : passer les contrôles en colonne */
@media (max-width: 980px){
  .calendar-header{grid-template-columns:1fr;align-items:start}
  .calendar-nav,.calendar-picker{justify-content:flex-start}
}


/* --- Patch couleur événement --- */
.ev-dot{width:10px;height:10px;border-radius:999px;display:inline-block;margin-right:6px;flex:0 0 10px;}

.cal-form .cal-row-chk{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cal-form .colorpick{flex-direction:row;align-items:center;gap:8px;margin:0}
.cal-form .colorpick input[type="color"]{
  width:42px;height:42px;
  padding:0;
  border-radius:8px;
  border:1px solid var(--bdr,#1f2937);
  background:transparent;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}
.theme-light .cal-form .colorpick input[type="color"]{
  width:42px;height:42px;
  padding:0;
  border-radius:8px;
  border:1px solid var(--bdr,#1f2937);
  background:transparent;
  cursor:pointer;
  -webkit-appearance:none;
  appearance:none;
}

.cal-form .colorpick input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}
.cal-form .colorpick input[type="color"]::-webkit-color-swatch{border:none;border-radius:6px;}
.cal-form .colorpick input[type="color"]::-moz-color-swatch{border:none;border-radius:6px;}
