/* ═════════════════════════════════════════════════════════════════════════════
   Calendrier d'AsMa — habillage et ergonomie (chargé APRÈS style.css).
   Uniquement de la présentation des classes .cal-* / .ctg-* déjà utilisées par le
   calendrier : rien d'autre dans l'application n'est concerné. Les couleurs passent par
   les variables existantes, le thème sombre suit tout seul.
   ═════════════════════════════════════════════════════════════════════════════ */

/* ---------- barre d'outils ---------- */
.cal-toolbar{flex-wrap:wrap;row-gap:10px;margin-bottom:10px;}
.cal-toolbar h3{font-size:20px;letter-spacing:-.01em;}
.cal-toolbar h3::first-letter{text-transform:uppercase;}
.cal-nav{gap:0;background:var(--card);border:1.5px solid var(--border);border-radius:9px;overflow:hidden;}
.cal-nav button{border:none;border-radius:0;width:34px;height:34px;font-size:18px;color:var(--text);background:transparent;}
.cal-nav button:hover{background:var(--grey-light);border-color:transparent;}
.cal-nav .cal-today-btn{width:auto;padding:0 14px;font-size:13px;font-weight:700;border-left:1.5px solid var(--border);border-right:1.5px solid var(--border);}
.cal-subbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 12px;}
.cal-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);font-weight:600;}
.cal-legend span,.cal-lg-toggle{display:inline-flex;align-items:center;gap:6px;}
.cal-lg{display:inline-block;width:12px;height:12px;border-radius:3px;border-left:3px solid var(--grey);background:var(--grey-light);}
.cal-lg.tab-urgent{border-color:var(--brick);background:var(--brick-light);}
.cal-lg.tab-haute{border-color:var(--amber);background:var(--amber-light);}
.cal-lg.tab-normale{border-color:var(--blue);background:var(--blue-light);}
.cal-lg.tab-basse{border-color:var(--grey);background:var(--grey-light);}
.cal-lg.tab-prev{border-color:#7E57C2;background:rgba(126,87,194,.16);}
.cal-lg-toggle{cursor:pointer;padding:3px 10px 3px 6px;border-radius:14px;background:var(--grey-light);color:var(--text);}
.cal-lg-toggle input{margin:0;}
.cal-hint{font-size:11.5px;color:var(--text-faint);}

/* ---------- vue Mois ---------- */
.cal-month-grid{grid-template-columns:repeat(7,minmax(0,1fr));border-radius:12px;box-shadow:var(--shadow-sm);}
.cal-dow{padding:10px 8px;background:var(--card);border-bottom:1px solid var(--border);}
.cal-cell{min-height:112px;padding:6px 6px 8px;gap:3px;transition:background .12s;position:relative;}
.cal-cell:hover{background:color-mix(in srgb, var(--card) 94%, var(--emerald));}
.cal-cell.other-month{background:var(--paper);}
.cal-cell.other-month .daynum{opacity:.5;}
.cal-cell:nth-child(7n+6):not(.other-month),.cal-cell:nth-child(7n):not(.other-month){background:color-mix(in srgb, var(--card) 96%, var(--text));}
.cal-cell .daynum{font-family:var(--font-display);font-size:12.5px;font-weight:700;color:var(--text-muted);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;margin-bottom:1px;}
.cal-cell .daynum:hover{background:var(--grey-light);color:var(--text);}
.cal-cell.today{box-shadow:inset 0 0 0 2px var(--role-accent, var(--emerald));}
.cal-cell.today .daynum{background:var(--role-accent, var(--ink));color:#fff;width:24px;height:24px;}
.cal-chips{display:flex;flex-direction:column;gap:3px;min-width:0;}
.cal-chip{font-size:11.3px;padding:3px 7px;border-radius:6px;line-height:1.35;min-width:0;transition:transform .08s, box-shadow .12s;}
.cal-chip:hover{box-shadow:0 2px 6px rgba(0,0,0,.10);transform:translateY(-1px);}
.cal-chip[draggable="true"]{cursor:grab;}
.cal-chip.tab-prev{border-color:#7E57C2;background:rgba(126,87,194,.13);color:#5E3BA0;background-image:repeating-linear-gradient(135deg, transparent 0 6px, rgba(126,87,194,.07) 6px 12px);}
[data-theme="dark"] .cal-chip.tab-prev{color:#CDB8F4;}
.cal-chip.is-done{opacity:.55;text-decoration:line-through;}
.cal-overflow{border-radius:6px !important;padding:2px 7px !important;font-weight:700;}
.cal-overflow:hover{background:var(--grey-light) !important;color:var(--text) !important;}
.cal-day-list{display:flex;flex-direction:column;gap:6px;}
.cal-day-list .cal-chip{font-size:13px;padding:7px 10px;white-space:normal;}

/* ---------- vues Semaine / Jour ---------- */
.ctg{border-radius:12px;box-shadow:var(--shadow-sm);}
.ctg-header{background:var(--card);}
.ctg-day-header{padding:8px 4px 10px;display:flex;align-items:baseline;justify-content:center;gap:5px;cursor:pointer;font-size:12px;color:var(--text-muted);font-weight:600;transition:background .12s;}
.ctg-day-header:hover{background:var(--grey-light);}
.ctg-dname{text-transform:capitalize;}
.ctg-dnum{font-family:var(--font-display);font-size:19px;font-weight:800;color:var(--text);}
.ctg-day-header.is-today .ctg-dnum{background:var(--role-accent, var(--emerald));color:#fff;border-radius:50%;min-width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;font-size:15px;}
.ctg-day-header.is-today{color:var(--role-accent, var(--emerald));}
.ctg-allday-row{background:var(--card);}
.ctg-allday-row > .ctg-time-col-header{font-size:10px;line-height:1.15;text-align:right;padding:6px 6px 6px 2px;}
.ctg-allday-cell{min-height:34px;}
.ctg-allday-cell.is-weekend,.ctg-day-col.is-weekend{background:color-mix(in srgb, var(--card) 96%, var(--text));}
.ctg-day-col.is-today{background:color-mix(in srgb, var(--card) 93%, var(--emerald));}
.ctg-allday-cell.is-today{background:color-mix(in srgb, var(--card) 93%, var(--emerald));}
.ctg-hour-line{border-top-color:color-mix(in srgb, var(--border) 70%, transparent);}
.ctg-hour-label{font-size:10.5px;}
.ctg-task-block{border-radius:7px;border-left-width:4px;padding:4px 7px;box-shadow:0 1px 2px rgba(0,0,0,.06);}
.ctg-task-block[draggable="true"]{cursor:grab;}
.ctg-task-block:hover{box-shadow:0 4px 12px rgba(0,0,0,.12);z-index:3;}
.ctg-task-title{font-size:11.8px;}
.ctg-task-block.ctg-status-prev{background:rgba(126,87,194,.14);background-image:repeating-linear-gradient(135deg, transparent 0 7px, rgba(126,87,194,.08) 7px 14px);}
.ctg-task-block.ctg-status-prevdone{background:rgba(126,87,194,.07);opacity:.65;}
.ctg-task-block.ctg-status-prevdone .ctg-task-title{text-decoration:line-through;}

/* ---------- glisser-déposer ---------- */
.cal-dragging{opacity:.4;}
.cal-drop-target{outline:2px dashed var(--role-accent, var(--emerald));outline-offset:-2px;}
.cal-cell.cal-drop-target,.ctg-allday-cell.cal-drop-target{background:var(--emerald-light) !important;}
.cal-drop-ghost{position:absolute;left:3px;right:3px;border:2px dashed var(--role-accent, var(--emerald));background:rgba(20,99,86,.08);border-radius:7px;pointer-events:none;z-index:6;font-size:11px;font-weight:800;color:var(--role-accent, var(--emerald));padding:2px 6px;}

/* ---------- petits écrans ---------- */
@media (max-width:760px){
  .cal-toolbar h3{min-width:0;font-size:17px;flex-basis:100%;order:-1;}
  .cal-cell{min-height:78px;padding:4px;}
  .cal-chip{font-size:10px;padding:2px 4px;}
  .cal-hint{display:none;}
}
/* colonnes toujours alignées entre l'en-tête, la bande « sans horaire » et la grille */
.ctg-day-header,.ctg-allday-cell,.ctg-day-col{min-width:0;}
.ctg-allday-cell .cal-chip{max-width:100%;}

/* ---------- agenda unique : rendez-vous, projets ---------- */
.cal-lg.tab-rdv,.cal-chip.tab-rdv{border-color:#0F7C8C;background:rgba(15,124,140,.12);color:#0B5F6B;}
[data-theme="dark"] .cal-chip.tab-rdv{color:#7FD0DA;}
.cal-lg.tab-proj,.cal-chip.tab-proj{border-color:#B8790F;background:var(--card);color:#8A5A08;border-style:solid;box-shadow:inset 0 0 0 1px rgba(184,121,15,.35);}
[data-theme="dark"] .cal-chip.tab-proj{color:#E9B95E;}
.ctg-task-block.ctg-kind-rdv{background:rgba(15,124,140,.14);}
.ctg-task-block.ctg-kind-rdv .ctg-task-title{color:#0B5F6B;}
[data-theme="dark"] .ctg-task-block.ctg-kind-rdv .ctg-task-title{color:#7FD0DA;}

/* ---------- le passé, moins visible ---------- */
.cal-lg-past{display:inline-flex;align-items:center;gap:6px;}
.cal-lg.is-past{border-color:var(--grey);background:repeating-linear-gradient(135deg, var(--grey-light) 0 3px, transparent 3px 6px);opacity:.7;}
.cal-chip.is-past{opacity:.48;filter:saturate(.45);}
.cal-chip.is-past:hover{opacity:.85;}
.ctg-task-block.is-past{opacity:.5;filter:saturate(.45);}
.ctg-task-block.is-past:hover{opacity:.9;}
.cal-cell.is-past:not(.other-month){background:color-mix(in srgb, var(--paper) 70%, var(--card));}
.cal-cell.is-past .daynum{opacity:.55;}
.ctg-day-col.is-past,.ctg-allday-cell.is-past{background:repeating-linear-gradient(135deg, transparent 0 9px, rgba(120,128,140,.06) 9px 18px) !important;}
.ctg-day-header.is-past{opacity:.55;}
.ctg-past-shade{position:absolute;left:0;right:0;top:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(135deg, rgba(120,128,140,.05) 0 9px, rgba(120,128,140,.11) 9px 18px);}
