/* CSL Gestion 2.0.56 — finition de l'espace intervenant.
 * Couche isolée : uniquement présentation, aucune logique métier. */

body.csl-attendance-person-page{
  --csl-i56-bg:#f2f5f7;
  --csl-i56-card:#ffffff;
  --csl-i56-soft:#f7f9fa;
  --csl-i56-line:#dce4e9;
  --csl-i56-ink:#172536;
  --csl-i56-muted:#6b7885;
  --csl-i56-red:#d90b1b;
  --csl-i56-red-dark:#b90917;
  --csl-i56-blue:#2c7899;
  --csl-i56-green:#2f7d50;
  --csl-i56-purple:#7651aa;
}
body.csl-attendance-person-page .csl-attendance--instructor{
  background:linear-gradient(180deg,#eef2f4 0,#f7f9fa 42%,#f2f5f7 100%)!important;
}
body.csl-attendance-person-page .csl-attendance-shell{
  width:min(1040px,100%)!important;
  max-width:1040px!important;
}

/* En-tête */
body.csl-attendance-person-page .csl-attendance-instructor-header-v2{
  padding:16px 18px 17px!important;
  border-color:#dce3e8!important;
  border-radius:22px!important;
  background:
    radial-gradient(circle at 9% 0,rgba(217,11,27,.07),transparent 31%),
    radial-gradient(circle at 100% 100%,rgba(47,125,112,.08),transparent 35%),
    #fff!important;
  box-shadow:0 14px 34px rgba(23,37,54,.08)!important;
}
body.csl-attendance-person-page .csl-attendance-instructor-avatar{
  width:66px!important;height:66px!important;border-radius:50%!important;
  border:3px solid #fff!important;outline:2px solid rgba(47,125,112,.22)!important;
  box-shadow:0 8px 20px rgba(23,37,54,.14)!important;
}
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__badge{color:#c31929!important}
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__hello h1{font-size:clamp(26px,3vw,33px)!important}
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__actions{width:min(420px,100%)!important}
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__urgent,
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__logout{
  min-height:43px!important;border-radius:13px!important;font-size:12px!important;
}
body.csl-attendance-person-page .csl-attendance-instructor-header-v2__urgent{
  background:linear-gradient(135deg,#eb1325,#c90717)!important;
  box-shadow:0 8px 18px rgba(217,11,27,.19)!important;
}

/* Barre d'outils : même langage visuel sur les 5 onglets. */
body.csl-attendance-person-page .csl-attendance-action-hub{margin:12px 0 14px!important}
body.csl-attendance-person-page .csl-attendance-action-bar{
  padding:6px!important;gap:6px!important;border-radius:18px!important;
  border-color:var(--csl-i56-line)!important;background:#fff!important;
  box-shadow:0 10px 26px rgba(23,37,54,.06)!important;
}
body.csl-attendance-person-page .csl-attendance-action-tab{
  min-height:62px!important;border:1px solid transparent!important;border-radius:13px!important;
  transition:transform .14s ease,box-shadow .14s ease,filter .14s ease!important;
}
body.csl-attendance-person-page .csl-attendance-action-tab:hover{transform:translateY(-1px);filter:saturate(1.04)}
body.csl-attendance-person-page .csl-attendance-action-tab:focus-visible{outline:3px solid rgba(44,120,153,.22)!important;outline-offset:2px!important}
body.csl-attendance-person-page .csl-attendance-action-tab.is-active{box-shadow:0 7px 16px rgba(23,37,54,.15)!important}
body.csl-attendance-person-page .csl-attendance-action-icon{border-radius:9px!important}

/* Panneaux de saisie */
body.csl-attendance-person-page .csl-attendance-action-panel{
  margin-top:8px!important;padding:18px!important;border-radius:18px!important;
  border:1px solid var(--csl-i56-line)!important;background:#fff!important;
  box-shadow:0 14px 32px rgba(23,37,54,.08)!important;
}
body.csl-attendance-person-page .csl-attendance-action-panel__title{margin-bottom:15px!important}
body.csl-attendance-person-page .csl-attendance-action-panel__title strong{font-size:18px!important;letter-spacing:-.02em}
body.csl-attendance-person-page .csl-attendance-action-panel__title small{font-size:12px!important;line-height:1.45}
body.csl-attendance-person-page .csl-attendance-tool-date-form,
body.csl-attendance-person-page .csl-attendance-tool-add-form{gap:11px!important}
body.csl-attendance-person-page .csl-attendance-tool-date-form label>span,
body.csl-attendance-person-page .csl-attendance-tool-add-form label>span,
body.csl-attendance-person-page .csl-attendance-personal-form label,
body.csl-attendance-person-page .csl-attendance-password-form--embedded label{font-weight:850!important}
body.csl-attendance-person-page .csl-attendance-tool-date-form input,
body.csl-attendance-person-page .csl-attendance-tool-add-form input,
body.csl-attendance-person-page .csl-attendance-tool-add-form select,
body.csl-attendance-person-page .csl-attendance-personal-form input,
body.csl-attendance-person-page .csl-attendance-personal-form textarea,
body.csl-attendance-person-page .csl-attendance-password-form--embedded input{
  min-height:46px!important;border-radius:12px!important;border:1px solid #ccd7de!important;
  background:#fff!important;color:#172536!important;
}
body.csl-attendance-person-page .csl-attendance-personal-form textarea{min-height:125px!important}
body.csl-attendance-person-page .csl-attendance-button{border-radius:12px!important;font-weight:900!important}
body.csl-attendance-person-page .csl-attendance-button--primary{
  background:linear-gradient(135deg,#e51222,#c80717)!important;color:#fff!important;border-color:transparent!important;
}
body.csl-attendance-person-page .csl-attendance-button--light{background:#f4f7f9!important;color:#344454!important;border-color:#d7e0e6!important}

/* Calendrier / profil */
body.csl-attendance-person-page .csl-attendance-calendar-intro{font-size:13px!important;line-height:1.55!important}
body.csl-attendance-person-page .csl-attendance-calendar-summary{border:1px solid #e4e9ed!important;background:#f7f9fa!important}
body.csl-attendance-person-page .csl-attendance-calendar-help{border-color:#e4e9ed!important}
body.csl-attendance-person-page .csl-attendance-calendar-help input{min-height:44px!important}
body.csl-attendance-person-page .csl-attendance-profile-photo-field{
  border-color:#d9e7e4!important;background:#f2f9f7!important;border-radius:16px!important;
}
body.csl-attendance-person-page .csl-attendance-profile-photo-field__preview{border-radius:50%!important}

/* Séance du jour / pointage */
body.csl-attendance-person-page .csl-attendance-day--compact,
body.csl-attendance-person-page .csl-attendance-upcoming--compact{
  border-radius:20px!important;border-color:var(--csl-i56-line)!important;background:#fff!important;
  box-shadow:0 11px 28px rgba(23,37,54,.055)!important;
}
body.csl-attendance-person-page .csl-attendance-section-heading--line{
  padding-bottom:10px!important;border-bottom:1px solid #e7ecef!important;
}
body.csl-attendance-person-page .csl-attendance-section-heading--line h2{font-size:19px!important}
body.csl-attendance-person-page .csl-attendance-section-time{color:#7b8792!important;font-weight:750!important}
body.csl-attendance-person-page .csl-attendance-roster{
  border-color:#e0e7eb!important;background:#f9fbfc!important;border-radius:14px!important;
}
body.csl-attendance-person-page .csl-attendance-table tr{
  border-color:#e3e9ed!important;background:#fff!important;
}
body.csl-attendance-person-page .csl-attendance-readonly-status,
body.csl-attendance-person-page .csl-attendance-date-state{
  border:1px solid rgba(23,37,54,.06)!important;
}

/* Prochaines séances : cartes plus lisibles et réellement tactiles. */
body.csl-attendance-person-page .csl-attendance-upcoming--compact .csl-attendance-upcoming-grid{gap:10px!important}
body.csl-attendance-person-page .csl-attendance-upcoming-card{
  position:relative;display:grid!important;gap:4px!important;min-height:96px!important;
  padding:14px 15px!important;border:1px solid #e2e8ec!important;border-radius:15px!important;
  background:linear-gradient(145deg,#fff,#f8fafb)!important;color:var(--csl-i56-ink)!important;
  text-decoration:none!important;box-shadow:0 5px 14px rgba(23,37,54,.045)!important;
  transition:transform .14s ease,box-shadow .14s ease,border-color .14s ease!important;
}
body.csl-attendance-person-page .csl-attendance-upcoming-card::before{
  content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:#d90b1b;
}
body.csl-attendance-person-page .csl-attendance-upcoming-card:hover,
body.csl-attendance-person-page .csl-attendance-upcoming-card:focus-visible{
  transform:translateY(-2px);border-color:#cbd8df!important;box-shadow:0 10px 22px rgba(23,37,54,.09)!important;
}
body.csl-attendance-person-page .csl-attendance-upcoming-card strong{color:#c61a29!important;font-size:13px!important}
body.csl-attendance-person-page .csl-attendance-upcoming-card span{color:#28394a!important;font-size:14px!important;font-weight:900!important}
body.csl-attendance-person-page .csl-attendance-upcoming-card small{color:#7a8792!important;font-size:11px!important}

/* Urgences : identité claire + photos + contacts sans champ de fichier visible. */
body.csl-attendance-person-page .csl-attendance-day-emergency{
  padding:14px!important;border-radius:20px!important;border:1px solid #e6c7cb!important;
  background:linear-gradient(180deg,#fffafb,#fff 44%)!important;box-shadow:0 12px 30px rgba(108,17,27,.08)!important;
}
body.csl-attendance-person-page .csl-attendance-day-emergency__head{padding:1px 2px 3px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__session{border-radius:15px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__session-title{padding:11px 13px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__people{gap:10px!important;padding:10px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__person{padding:12px!important;border-radius:13px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__person-head{margin-bottom:9px!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__identity{display:flex!important;align-items:center!important;gap:9px!important;min-width:0!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__identity>strong{min-width:0!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__avatar{
  display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;overflow:hidden;
  border-radius:50%;background:#eaf0f4;color:#3b4c5b;border:2px solid #fff;box-shadow:0 2px 8px rgba(23,37,54,.1);
}
body.csl-attendance-person-page .csl-attendance-day-emergency__avatar img{width:100%;height:100%;object-fit:cover;display:block}
body.csl-attendance-person-page .csl-attendance-day-emergency__avatar b{font-size:12px;letter-spacing:.03em}
body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div{
  grid-template-columns:42px minmax(0,1fr) auto!important;gap:10px!important;padding:9px 8px!important;
  border-top:1px solid #f0e8e9!important;border-radius:10px!important;
}
body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div:first-child{border-top:0!important}
body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div:hover{background:#fff8f8!important}
body.csl-attendance-person-page .csl-attendance-contact-photo-editor{position:relative!important;display:block!important;width:42px!important;height:42px!important;overflow:visible!important}
body.csl-attendance-person-page .csl-attendance-contact-photo-editor label{
  position:relative!important;display:grid!important;place-items:center!important;width:42px!important;height:42px!important;margin:0!important;cursor:pointer!important;
}
body.csl-attendance-person-page .csl-attendance-contact-photo-editor input[type=file]{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;z-index:3!important;cursor:pointer!important;font-size:0!important;
}
body.csl-attendance-person-page .csl-attendance-contact-photo,
body.csl-attendance-person-page .csl-attendance-contact-photo-placeholder{
  width:42px!important;height:42px!important;border-radius:50%!important;border:2px solid #fff!important;box-shadow:0 2px 8px rgba(23,37,54,.1)!important;
}
body.csl-attendance-person-page .csl-attendance-contact-photo-editor__hint{
  left:50%!important;bottom:-5px!important;padding:2px 5px!important;border-radius:999px!important;
  background:#172536!important;color:#fff!important;font-size:7px!important;z-index:4!important;pointer-events:none!important;
}
body.csl-attendance-person-page .csl-attendance-day-emergency__contacts a{
  min-width:74px!important;min-height:36px!important;border-radius:10px!important;background:#b81120!important;
}

/* Responsive iPad / iPhone */
@media(max-width:900px){
  body.csl-attendance-person-page .csl-attendance-shell{width:100%!important}
  body.csl-attendance-person-page .csl-attendance-upcoming--compact .csl-attendance-upcoming-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
  body.csl-attendance-person-page .csl-attendance--instructor{padding:5px 9px 28px!important}
  body.csl-attendance-person-page .csl-attendance-instructor-header-v2{padding:13px 12px 14px!important;border-radius:18px!important}
  body.csl-attendance-person-page .csl-attendance-instructor-avatar{width:58px!important;height:58px!important}
  body.csl-attendance-person-page .csl-attendance-action-bar{gap:4px!important;padding:5px!important}
  body.csl-attendance-person-page .csl-attendance-action-tab{min-height:56px!important;padding:5px 2px!important}
  body.csl-attendance-person-page .csl-attendance-action-panel{padding:14px!important;border-radius:16px!important}
  body.csl-attendance-person-page .csl-attendance-day--compact,
  body.csl-attendance-person-page .csl-attendance-upcoming--compact{padding:12px!important;border-radius:17px!important}
  body.csl-attendance-person-page .csl-attendance-upcoming--compact .csl-attendance-upcoming-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card{min-height:88px!important;padding:12px 13px!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency{padding:10px!important;border-radius:16px!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div{grid-template-columns:42px minmax(0,1fr) auto!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts a{grid-column:auto!important;width:auto!important;min-width:70px!important}
}
@media(max-width:480px){
  body.csl-attendance-person-page .csl-attendance-instructor-header-v2__actions{grid-template-columns:1fr 1fr!important}
  body.csl-attendance-person-page .csl-attendance-upcoming--compact .csl-attendance-upcoming-grid{grid-template-columns:1fr!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card{min-height:78px!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__person-head{align-items:flex-start!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div{grid-template-columns:42px minmax(0,1fr)!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts a{grid-column:1/-1!important;width:100%!important}
}

/* Mode sombre : aucune grande surface blanche, contraste conservé. */
@media(prefers-color-scheme:dark){
  body.csl-attendance-person-page{
    --csl-i56-bg:#0b1119;--csl-i56-card:#141d28;--csl-i56-soft:#101821;
    --csl-i56-line:#303c49;--csl-i56-ink:#f3f7fa;--csl-i56-muted:#aab5c0;
  }
  body.csl-attendance-person-page .csl-attendance--instructor{
    background:linear-gradient(180deg,#0b1119,#0f1620 42%,#0b1119)!important;color:#edf3f7!important;
  }
  body.csl-attendance-person-page .csl-attendance-instructor-header-v2{
    border-color:#303d4a!important;
    background:radial-gradient(circle at 8% 0,rgba(217,11,27,.12),transparent 30%),radial-gradient(circle at 100% 100%,rgba(47,125,112,.1),transparent 35%),#141d28!important;
    box-shadow:0 14px 34px rgba(0,0,0,.28)!important;
  }
  body.csl-attendance-person-page .csl-attendance-action-bar,
  body.csl-attendance-person-page .csl-attendance-action-panel,
  body.csl-attendance-person-page .csl-attendance-day--compact,
  body.csl-attendance-person-page .csl-attendance-upcoming--compact,
  body.csl-attendance-person-page .csl-attendance-roster,
  body.csl-attendance-person-page .csl-attendance-table tr{
    background:#141d28!important;border-color:#303c49!important;color:#edf3f7!important;
    box-shadow:none!important;
  }
  body.csl-attendance-person-page .csl-attendance-action-tab{border-color:#33414f!important}
  body.csl-attendance-person-page .csl-attendance-calendar-summary,
  body.csl-attendance-person-page .csl-attendance-roster__head,
  body.csl-attendance-person-page .csl-attendance-profile-photo-field,
  body.csl-attendance-person-page .csl-attendance-private-manager-note{
    background:#101821!important;border-color:#2e3b48!important;color:#e9f0f5!important;
  }
  body.csl-attendance-person-page .csl-attendance-section-heading--line{border-color:#2c3743!important}
  body.csl-attendance-person-page .csl-attendance-tool-date-form input,
  body.csl-attendance-person-page .csl-attendance-tool-add-form input,
  body.csl-attendance-person-page .csl-attendance-tool-add-form select,
  body.csl-attendance-person-page .csl-attendance-personal-form input,
  body.csl-attendance-person-page .csl-attendance-personal-form textarea,
  body.csl-attendance-person-page .csl-attendance-password-form--embedded input,
  body.csl-attendance-person-page .csl-attendance-calendar-help input{
    background:#0d151e!important;border-color:#354453!important;color:#eef4f8!important;
  }
  body.csl-attendance-person-page .csl-attendance-button--light{background:#202b37!important;color:#e8eef4!important;border-color:#384654!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card{
    background:linear-gradient(145deg,#17212c,#111922)!important;border-color:#31404e!important;color:#f2f6f9!important;box-shadow:none!important;
  }
  body.csl-attendance-person-page .csl-attendance-upcoming-card strong{color:#ff8f9a!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card span{color:#f1f5f8!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card small{color:#aab5c0!important}
  body.csl-attendance-person-page .csl-attendance-upcoming-card:hover{border-color:#526474!important;background:#1a2531!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency{
    background:linear-gradient(180deg,#1d1317,#111922 44%)!important;border-color:#6c333a!important;box-shadow:none!important;
  }
  body.csl-attendance-person-page .csl-attendance-day-emergency__session,
  body.csl-attendance-person-page .csl-attendance-day-emergency__person,
  body.csl-attendance-person-page .csl-attendance-day-emergency__session-title{
    background:#141d28!important;border-color:#34414e!important;color:#eef4f8!important;
  }
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div{border-color:#2f3944!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts>div:hover{background:#1b232d!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__avatar,
  body.csl-attendance-person-page .csl-attendance-contact-photo-placeholder{
    background:#253341!important;color:#dce7ef!important;border-color:#344555!important;
  }
  body.csl-attendance-person-page .csl-attendance-contact-photo{border-color:#344555!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__person-head strong,
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts strong,
  body.csl-attendance-person-page .csl-attendance-action-panel__title strong,
  body.csl-attendance-person-page .csl-attendance-section-heading h2,
  body.csl-attendance-person-page .csl-attendance-table td strong{color:#f4f7fa!important}
  body.csl-attendance-person-page .csl-attendance-day-emergency__contacts em,
  body.csl-attendance-person-page .csl-attendance-action-panel__title small,
  body.csl-attendance-person-page .csl-attendance-calendar-intro,
  body.csl-attendance-person-page .csl-attendance-calendar-note,
  body.csl-attendance-person-page .csl-attendance-section-time,
  body.csl-attendance-person-page .csl-attendance-table td small{color:#aab5c0!important}
}
