/* Humavéo — forêt, ivoire et citron */
:root{--color-ink:#17372A;--color-brand:#124F3A;--color-brand-dark:#0B3D2D;--color-line:#E1E8D8;--color-rail:#FBFAF3;--humaveo-primary:#124F3A;--humaveo-primary-dark:#0B3D2D;--humaveo-active:#F2F6DC;--humaveo-active-strong:#DCEB9F;--hv-ink:#17372A;--hv-muted:#687868;--hv-line:#E1E8D8;--hv-accent:#124F3A;--hv-accent-soft:#F2F6DC;--humaveo-lime:#D7F23B}
::selection{background:#D7F23B;color:#17372A}
:where(input,select,textarea,button,a):focus-visible{outline-color:#124F3A}
:where(input[type=checkbox],input[type=radio],progress){accent-color:#124F3A}
:where(button.primary,a.primary,.primary:not(.tab),.btn-primary,.button-primary,input[type=submit]){background-color:#124F3A;border-color:#124F3A;color:#fff}
:where(button.primary,a.primary,.primary:not(.tab),.btn-primary,.button-primary,input[type=submit]):hover{background-color:#0B3D2D;border-color:#0B3D2D}
:where(.nav-link[aria-current=page],.subnav[aria-current=page],.tab[aria-selected=true],.active-tab){box-shadow:inset 0 -3px #124F3A;background-color:#F2F6DC;color:#0B3D2D}
.auth-page .login-logo,.login .login-logo{display:block;width:min(100%,250px);max-width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain!important;object-position:center;margin:0 auto 20px!important}

/* Fond forêt-citron partagé par toutes les pages Apps, sans empiéter sur les cartes. */
html{min-height:100%;background:#FBFAF3}
body{position:relative;isolation:isolate;min-height:100vh;background:#FBFAF3!important}
body::after,body.auth-page::after{content:"";position:fixed;z-index:-1;pointer-events:none;inset:0;width:auto;height:auto;border:0;border-radius:0;transform:none;box-shadow:none;background:radial-gradient(circle at 13rem 26rem,#D7F23B 0 8px,transparent 9px),radial-gradient(ellipse 660px 660px at -75px calc(100% + 25px),transparent 67%,rgba(18,79,58,.045) 68% 71%,transparent 72%),radial-gradient(ellipse 470px 470px at -75px calc(100% + 25px),transparent 68%,rgba(18,79,58,.03) 69% 72%,transparent 73%)}
@media(max-width:760px){body::after,body.auth-page::after{background:radial-gradient(circle at 4rem 19rem,rgba(215,242,59,.7) 0 6px,transparent 7px),radial-gradient(ellipse 430px 430px at -95px calc(100% + 18px),transparent 66%,rgba(18,79,58,.04) 67% 70%,transparent 71%),radial-gradient(ellipse 310px 310px at -95px calc(100% + 18px),transparent 67%,rgba(18,79,58,.025) 68% 71%,transparent 72%)}}

/* Palette forêt-citron : garde aussi les en-têtes de page dans cette identité. */
:root{--color-brand:#124F3A;--color-brand-dark:#0B3D2D;--humaveo-primary:#124F3A;--humaveo-primary-dark:#0B3D2D;--humaveo-lime:#D7F23B}
body:has(.workspace){background:#FBFAF3}
.content>.page-heading{background:#F2F6DC!important;border-bottom:1px solid #DCEB9F!important}
.content thead th{background:#F7F8EF!important;color:#466147!important}
.sidebar .navigation-group.is-current>summary{background:#F2F6DC!important;border-bottom-color:#124F3A!important;color:#0B3D2D!important}

/* Le calendrier réel des sessions : repères lisibles, cohérents avec le thème forêt-citron. */
.content .session-calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0;padding:12px 16px;border-bottom:1px solid #E1E8D8;background:#fff}
.content .session-calendar-toolbar h3{margin:0;color:#17372A;font-size:15px;text-transform:capitalize}
.content .session-calendar-scroll{padding:12px 14px 14px;overflow-x:auto}
.content .session-calendar{overflow:hidden;border:1px solid #DDE6D5;border-radius:10px;background:#fff}
.content .session-weekdays,.content .session-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.content .session-weekdays{background:#F2F6DC;color:#466147;font-size:12px;font-weight:700;text-align:center}
.content .session-weekdays span{padding:9px 5px;border-right:1px solid #DCEB9F}
.content .session-calendar-day{min-height:68px;min-width:0;padding:7px;border-right:1px solid #E7ECE0;border-top:1px solid #E7ECE0;overflow:hidden;background:#fff}
.content .session-calendar-day:nth-child(7n){border-right:0}
.content .session-calendar-day.is-outside{background:#F7F8EF;color:#929D8C}
.content .session-calendar-day.is-today{box-shadow:inset 0 3px #124F3A;background:#F8FAEF}
.content .session-calendar-day time{display:block;margin:0 0 3px;font-size:11px;font-weight:700}
.content .session-calendar-event{display:block;margin:2px 0;padding:2px 4px;border-left:3px solid #124F3A;border-radius:4px;background:#F2F6DC;color:#0B3D2D;font-size:10px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.content .session-calendar-event strong{font-weight:700}
@media(max-width:760px){.content .session-calendar-day{min-height:56px;padding:5px}.content .session-calendar-event{font-size:10px;padding:3px 4px}}

/* AJAX page titles retain screen-reader focus without a browser outline. Interactive focus styles are unchanged. */
main.content h1[tabindex="-1"]:focus{outline:none}

html[data-input-modality="pointer"] :is(a,button,input,select,textarea,summary,[tabindex]):focus{outline:none!important;box-shadow:none!important}html[data-input-modality="keyboard"] :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid #618c6f;outline-offset:3px}
