:root{
  --kum-primary:#1f3a82;
  --kum-accent:#58b0df;
  --kum-danger:#d43f3a;
}
.kum-wrap{max-width:1100px;margin:24px auto;padding:0 16px;}
.kum-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.kum-user{display:flex;gap:12px;align-items:center}
.kum-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--kum-accent);}
.kum-user-name{font-size:1.1rem;font-weight:600}
.kum-user-role{opacity:.8}
.kum-nav{display:flex;gap:8px;flex-wrap:wrap}
.kum-tab{padding:8px 12px;border-radius:999px;background:#f4f7fb;border:1px solid #e4e9f2;text-decoration:none;color:inherit}
.kum-tab.active{background:var(--kum-primary);color:#fff;border-color:var(--kum-primary)}
.kum-tab.logout{border-color:#f2dede;background:#fff3f3}
.kum-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.kum-grid{grid-template-columns:1fr}}
.kum-card{background:#fff;border:1px solid #e6ecf5;border-radius:14px;box-shadow:0 6px 18px rgba(31,58,130,.08);padding:16px}
.kum-field{margin-bottom:12px}
.kum-field input[type=text],
.kum-field input[type=email],
.kum-field input[type=url],
.kum-field input[type=password],
.kum-field textarea{width:100%}
.kum-choices label{font-weight: 400!important}
.kum-notice{padding:10px 12px;border-radius:10px;margin:10px 0}
.kum-notice.success{background:#e8f7ff;border:1px solid #ccecff}
.kum-notice.error{background:#fff0f0;border:1px solid #ffd6d6}
.kum-info{font-size:.95rem;opacity:.85}
.kum-btn{display:inline-block;padding:8px 14px;border-radius:10px;background:var(--kum-primary);color:#fff;text-decoration:none;border:none;cursor:pointer}
.kum-btn:hover{opacity:.92}
.kum-btn--danger{background:var(--kum-danger)}
.kum-btn--primary{
  background:var(--kum-primary)!important;
  color:#fff!important;
  border:none!important;
  border-radius: 25px!important;
}
.kum-inline{display:inline-block}
.kum-files .button, .kum-files .kum-btn, .kum-btn-download{color:#fff}
.kum-coach-single .photo img{aspect-ratio:1/1;width:100%;object-fit:cover;border-radius:12px}
/* Onglets centrés */
.kum-nav--top{
  display:flex;
  justify-content:center;
  gap:10px;
  flex-wrap:wrap;
  margin:0 auto 18px auto;
}

/* Grille de l’onglet profil : 2 colonnes */
.kum-grid--profile{
  grid-template-columns: 1fr 1fr;
  gap:16px;
}
.kum-col-left, .kum-col-right{ display:flex; flex-direction:column; gap:16px; }

/* Bandeau identité à droite */
.kum-identity-row{ display:flex; align-items:center; gap:12px; }
.kum-identity .kum-avatar{ width:64px; height:64px; border-radius:50%; object-fit:cover; border:3px solid var(--kum-accent); }

/* Boutons / actions */
.kum-actions{ margin-top:16px; text-align:right; }

/* Listes verticales pour radios/checkbox */
.kum-choices{ display:flex; flex-direction:column; gap:6px; margin-top:6px; }
.kum-choices label{ display:flex; align-items:center; gap:8px; }

/* Drag & drop upload */
.kum-dropzone{
  border:2px dashed #c7d6f3;
  border-radius:12px;
  padding:18px;
  text-align:center;
  background:#f8fbff;
  cursor:pointer;
  transition: .15s ease;
}
.kum-dropzone:hover{ background:#f2f7ff; }
.kum-dropzone.is-dragover{ border-color: var(--kum-accent); background:#e8f7ff; }
.kum-dropzone.has-file{ border-color:#a9c6e8; background:#f4f9ff; }

.kum-help{ display:block; margin-top:6px; opacity:.8; }

/* Boutons dans chaque bloc */
.kum-card .kum-actions{ text-align:right; margin-top:12px; }

/* (déjà présent) Radios/checkbox en vertical */
.kum-choices{ display:flex; flex-direction:column; gap:6px; margin-top:6px; }

/* ===== Material cards ===== */
.md-card{
  border-radius:14px;
  box-shadow:0 10px 24px rgba(31,58,130,.12);
  border:1px solid #e6ecf5;
}

/* ===== Material form + floating labels ===== */
.md-form{ display:block; }
.md-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:900px){ .md-row-2{ grid-template-columns:1fr; } }

.md-field{ position:relative; margin:14px 0 6px; }
.md-field input[type="text"],
.md-field input[type="email"],
.md-field input[type="url"],
.md-field input[type="datetime-local"],
.md-field textarea{
  width:100%;
  border:none;
  border-bottom:2px solid #c7d6f3;
  background:transparent;
  padding:12px 0 10px;
  outline:0;
  font-size:16px;
}
.md-field textarea{ resize:vertical; min-height:110px; }
.md-field input::placeholder,
.md-field textarea::placeholder{ color:transparent; } /* hack pour :placeholder-shown */

.md-field label{
  position:absolute; left:0; top:12px;
  font-size:14px; color:#6e7aa6; pointer-events:none;
  transition:all .15s ease;
}
.md-field.is-focused label,
.md-field.is-filled label,
.md-field input:focus + label,
.md-field input:not(:placeholder-shown) + label,
.md-field textarea:focus + label,
.md-field textarea:not(:placeholder-shown) + label{
  top:-8px; font-size:12px; color:var(--kum-primary);
}
.md-field input:focus,
.md-field textarea:focus{ border-bottom-color:var(--kum-primary); }

/* ===== Material dropzone ===== */
.md-dropzone{
  border:2px dashed #c7d6f3;
  border-radius:12px;
  padding:20px;
  text-align:center;
  background:#f8fbff;
  cursor:pointer;
  transition:.2s ease;
  margin-top:6px;
}
.md-dropzone:hover{ background:#f2f7ff; }
.md-dropzone.is-dragover{ border-color:var(--kum-accent); background:#e8f7ff; }
.md-dropzone.has-file{ border-color:#a9c6e8; background:#f4f9ff; }
.md-dropzone .md-sub{ opacity:.75; font-size:13px; margin-top:4px; }

/* ===== Actions ===== */
.md-actions{ text-align:right; margin-top:10px; }
.md-btn{ border-radius:999px; padding:10px 18px; }

/* Harmonise les labels “textuels” (groupes radios/checkbox) */
.md-label{ display:block; margin-bottom:6px; color:#6e7aa6; font-size:14px; }

/* Radios/Checkbox Material color */
.kum-choices input[type="radio"],
.kum-choices input[type="checkbox"]{ accent-color: var(--kum-primary); }

/* Select simple dans md-field (si utilisé dans Más información) */
.md-field select{
  width:100%; padding:10px 8px; border:1px solid #c7d6f3; border-radius:10px; background:#fff;
}
/* 1) Ne cibler que le label "flottant" direct du champ texte/textarea */
.md-field > label{
  position:absolute;
  left:0; top:12px;
  font-size:14px; color:#6e7aa6; pointer-events:none;
  transition:all .15s ease;
}

span.md-label 
{
  font-weight: 600!important;
  color:#333333!important;
}

/* 2) Les labels des radios/checkbox (dans kum-choices) redeviennent normaux */
.md-field .kum-choices{ 
  display:flex; 
  flex-direction:column; 
  gap:8px; 
  margin-top:8px;
}
.md-field .kum-choices label{
  position:static;
  display:flex; 
  align-items:center; 
  gap:8px;
  line-height:1.3;
  margin:0;
}
.md-field .kum-choices input[type="radio"],
.md-field .kum-choices input[type="checkbox"]{
  position:static;
  margin:0;
  accent-color: var(--kum-primary);
}

/* (optionnel) Si tu utilisais "grid" pour les options, tu peux préférer : */
/* .md-field .kum-choices{ display:grid; grid-template-columns:1fr; row-gap:8px; } */



/* Disposer les GROUPES en colonnes */
.kum-adv-filters{
  display: grid;
  grid-template-columns: repeat(var(--group-cols, 3), minmax(220px, 1fr));
  column-gap: 24px;
  row-gap: 16px;
  align-items: start;
}

/* Un groupe = un item (titre + options) */
.kum-adv-filters .md-field{ margin:0; }

/* À l’intérieur d’un groupe, les options restent verticales */
.kum-adv-filters .kum-choices{
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Mobile: repli progressif */
@media (max-width: 1024px){
  .kum-adv-filters{ grid-template-columns: repeat(2, minmax(220px, 1fr)); }
}
@media (max-width: 640px){
  .kum-adv-filters{ grid-template-columns: 1fr; }
}

/* 1) Le label flottant ne vise QUE le label direct du champ texte/textarea */
.md-field > label{
  position:absolute;
  left:0; top:12px;
  font-size:14px; color:#6e7aa6;
  transition:all .15s ease;
  pointer-events:none;         /* OK uniquement pour le label flottant */
}

/* 2) Les labels des radios/checkbox redeviennent cliquables */
.md-field .kum-choices label,
.kum-adv-filters .kum-choices label{
  position:static;
  display:flex;
  align-items:flex-start;
  gap:8px;
  pointer-events:auto;         /* <- clé pour réactiver le clic */
  cursor:pointer;
  line-height:1.3;
}

/* 3) Les inputs sont cliquables aussi (au cas où un style précédent les bloque) */
.kum-choices input[type="radio"],
.kum-choices input[type="checkbox"]{
  pointer-events:auto;
  margin:0;
  accent-color: var(--kum-primary);
}

/* 4) S'assure qu'aucun overlay ne recouvre les filtres */
.kum-adv-filters{ position:relative; z-index:0; }

.kum-card .md-actions{ margin-top:12px; text-align:right; }
.kum-card .md-actions .md-btn{ min-width:120px; }

/* ====== Mis eventos — Accordéon ====== */
.kum-ev-acc{
  list-style:none; margin:8px 0 0; padding:0; display:grid; gap:10px;
}
.kum-ev-item{
  border:1px solid #e6ecf5; border-radius:14px; background:#fff;
  overflow:hidden;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
.kum-ev-toggle{
  width:100%!important; 
  display:grid!important; 
  grid-template-columns:auto 1fr auto auto auto!important;
  gap:12px!important; 
  align-items:center!important; 
  padding:12px 14px!important; 
  cursor:pointer!important;
  background:linear-gradient(0deg, rgba(88,176,223,.06), rgba(88,176,223,.06))!important;
  border:none!important; 
  text-align:left!important;
}
.kum-ev-toggle:focus{ outline:2px solid var(--kum-accent); outline-offset:2px; }
.kum-ev-toggle:hover{ background:linear-gradient(0deg, rgba(88,176,223,.12), rgba(88,176,223,.12)); }
.kum-ev-date{
  width:46px; height:46px; border-radius:12px; background:var(--kum-primary);
  color:#fff; display:flex; flex-direction:column; justify-content:center; align-items:center;
  line-height:1;
}
.kum-ev-date strong{ font-size:16px; font-weight:700; }
.kum-ev-date em{ font-size:11px; opacity:.9; font-style:normal; text-transform:uppercase; letter-spacing:.03em; }

.kum-ev-title{ font-weight:600; color:#1b2653; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.kum-ev-time{ font-variant-numeric:tabular-nums; color:#2c3a80; font-weight:600; }
.kum-ev-chip{
  font-size:12px; padding:4px 8px; border-radius:999px; border:1px solid transparent;
}
.kum-ev-chip.ok{ background:#eaf6ff; color:#1f3a82; border-color:#cfe6fb; }
.kum-ev-chip.pending{ background:#fff4e5; color:#8a5c00; border-color:#ffe3b3; }

.kum-ev-caret{
  width:10px; height:10px; border-right:2px solid #4a5db0; border-bottom:2px solid #4a5db0;
  transform: rotate(-45deg); margin-left:6px;
}
.kum-ev-toggle[aria-expanded="true"] .kum-ev-caret{
  transform: rotate(45deg);
}

.kum-ev-panel{ padding:12px 14px 16px; border-top:1px dashed #e6ecf5; background:#fafcff; }
.kum-ev-desc p{ margin:.5em 0; }
.kum-ev-meta{ display:grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap:8px 16px; margin-top:10px; }
.kum-ev-meta dt{ font-weight:600; color:#1f3a82; }
.kum-ev-meta dd{ margin:0; }

/* Mobile */
@media (max-width:680px){
  .kum-ev-toggle{ grid-template-columns: auto 1fr auto; }
  .kum-ev-chip{ display:none; }
}

.kum-right-tossina
{
  padding-right: 10px!important;
}


/* ====== Calendario — Pro UI ====== */
.kum-cal{ position:relative; }
.kum-cal-head{
  display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:10px;
}
.kum-cal-title{
  font-weight:700; color:#1f3a82; font-size:18px; padding:0 8px;
}
.kum-cal-nav{
  border:none!important; 
  background:#eaf4fb!important; 
  color:#1f3a82!important; 
  width:34px; 
  height:34px; 
  border-radius:10px!important; 
  font-size:18px; 
  line-height:1;
  display:flex; 
  align-items:center; 
  justify-content:center; 
  cursor:pointer;
}
.kum-cal-nav:hover{ background:#d8ecf9!important; }

.kum-cal-grid{
  background:#fff; border:1px solid #e6ecf5; border-radius:14px; overflow:hidden;
}
.kum-cal-weekdays, .kum-cal-days{
  display:grid; grid-template-columns:repeat(7,1fr);
}
.kum-cal-wd{
  background:linear-gradient(0deg, rgba(88,176,223,.06), rgba(88,176,223,.06));
  padding:8px 6px; text-align:center; font-weight:700; color:#1f3a82; font-size:12px;
}
.kum-cal-cell{
  min-height:78px!important; 
  border:1px solid #f3f5fb!important; 
  border-top:none!important; 
  border-left:none!important;
  background:#fff!important; 
  padding:8px!important; 
  text-align:left!important; 
  position:relative!important; 
  cursor:pointer!important;
}

.kum-cal-cell:hover
{
  background:#c9e3f3!important;
}
.kum-cal-cell:nth-child(7n){ border-right:none; }
.kum-cal-cell.muted{ background:#fafcff; color:#99a3c3; }
.kum-cal-cell .num{ font-weight:600; color:#1b2653; }
.kum-cal-cell .dots{ display:flex; gap:4px; position:absolute; right:8px; bottom:8px; }
.kum-cal-cell .dot{ width:8px; height:8px; border-radius:50%; background:var(--kum-accent); box-shadow:0 0 0 1px rgba(31,58,130,.12) inset; }
.kum-cal-cell.has-events{ background:linear-gradient(0deg, rgba(88,176,223,.04), rgba(88,176,223,.04)); }

.kum-cal-drawer{
  margin-top:12px; border:1px solid #e6ecf5; border-radius:14px; background:#fff;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.kum-cal-drawer-head{
  display:flex; align-items:center; justify-content:space-between; padding:10px 12px;
  background:linear-gradient(0deg, rgba(88,176,223,.06), rgba(88,176,223,.06));
  border-bottom:1px dashed #e6ecf5;
}
.kum-cal-drawer-date{ font-weight:700; color:#1f3a82; }
.kum-cal-drawer-close{
  border:none; background:#1f3a82; color:#fff; width:28px; height:28px; border-radius:8px; cursor:pointer;
}
.kum-cal-drawer-list{ padding:12px; display:grid; gap:10px; }
.kum-cal-drawer-list .entry{
  border:1px solid #eef2fb; border-radius:12px; padding:10px; background:#fafcff;
}
.kum-cal-drawer-list .row{ display:flex; align-items:center; gap:10px; }
.kum-cal-drawer-list .row.time{ color:#2c3a80; font-weight:600; font-variant-numeric:tabular-nums; }
.kum-cal-drawer-list .desc{ margin-top:6px; color:#334079; }
.kum-cal-drawer-list .chip{ font-size:12px; padding:2px 8px; border-radius:999px; border:1px solid transparent; }
.kum-cal-drawer-list .chip.ok{ background:#eaf6ff; color:#1f3a82; border-color:#cfe6fb; }
.kum-cal-drawer-list .chip.pending{ background:#fff4e5; color:#8a5c00; border-color:#ffe3b3; }

/* Responsive */
@media (max-width:720px){
  .kum-cal-cell{ min-height:64px; padding:6px; }
  .kum-cal-drawer-list .row{ flex-wrap:wrap; }
}



/* ====== Mis archivos — List UI ====== */
.kum-files{
  list-style:none; margin:0; padding:0; display:grid; gap:10px;
}
.kum-file{
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; padding:10px 12px;
  border:1px solid #e6ecf5; border-radius:16px;
  background:#fff; box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.kum-file-main{ display:flex; align-items:center; gap:12px; min-width:0; }
.kum-file-badge{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; border-radius:12px;
  background:linear-gradient(180deg, rgba(31,58,130,.12), rgba(31,58,130,.06));
  color:#1f3a82; font-weight:800; font-size:11px; letter-spacing:.04em;
}
.kum-file-text{ min-width:0; }
.kum-file-title{
  font-weight:600; color:#1b2653; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.kum-file-meta{ font-size:12px; color:#6e7aa6; }

.kum-file-actions{
  display:flex; align-items:center; gap:8px; flex-shrink:0;
}
.kum-inline{ display:inline; margin:0; }

/* Boutons pilule génériques */
.kum-btn{
  --btn-bg: var(--kum-primary);
  --btn-fg: #fff;
  border:1px solid transparent;
  background: var(--btn-bg);
  color: var(--btn-fg);
  padding:8px 14px;
  border-radius:9999px;       /* pilule très arrondie */
  font-weight:600;
  line-height:1;
  display:inline-flex; align-items:center; gap:8px;
  text-decoration:none; cursor:pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,.06);
}
.kum-btn:hover{ filter:brightness(1.05); }
.kum-btn:focus{ outline:2px solid var(--kum-accent); outline-offset:2px; }

/* Télécharger = primaire, texte blanc (lisible) */
.kum-btn-download{
  --btn-bg: var(--kum-primary);
  --btn-fg: #ffffff;
}
.kum-btn .ico{ display:block; }

.kum-btn-danger{
  background: var(--kum-danger)!important;
  --btn-fg: #ffffff;
  border-radius: 25px!important;
}

/* Mobile */
@media (max-width:720px){
  .kum-file{
    flex-direction:column; align-items:stretch; gap:10px;
  }
  .kum-file-actions{ justify-content:flex-end; }
}

.kum-choice-vertical{ display:flex; align-items:center; gap:8px; margin:6px 0; }
