/* Jokko Services v130 — alignements communs, actions robustes et lumière douce. */
:root{
  --jokko-focus-ring:0 0 0 3px rgba(23,105,220,.18);
  --jokko-control-radius:14px;
  --jokko-soft-line:rgba(18,39,65,.10);
}

*,*::before,*::after{box-sizing:border-box}
img,svg,video,canvas{max-width:100%}
img{vertical-align:middle}

:is(
  .primary-btn,.secondary-btn,.submit-btn,.save-button,.back-button,
  .profile-action,.profile-button,.admin-button,.cert-primary,.cert-secondary,
  .cert-link-button,.media-button,.icon-action,.flow-icon-button,
  .dashboard-sync-card__button,.offline-primary,.offline-secondary,
  [data-action],[data-flow-action]
){
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:clamp(7px,.7vw,10px);
  min-width:0;
  text-align:center;
  line-height:1.25;
  -webkit-font-smoothing:antialiased;
  text-decoration:none;
  transition:transform .16s ease,box-shadow .16s ease,filter .16s ease,opacity .16s ease;
}

:is(
  .primary-btn,.secondary-btn,.submit-btn,.save-button,.back-button,
  .profile-action,.profile-button,.admin-button,.cert-primary,.cert-secondary,
  .cert-link-button,.media-button,.icon-action,.flow-icon-button,
  .dashboard-sync-card__button,.offline-primary,.offline-secondary,
  [data-action],[data-flow-action]
) > :where(i,svg,.button-icon,[class$="__icon"]){
  flex:0 0 auto;
  display:grid;
  place-items:center;
  line-height:1;
}


:is(
  .primary-btn,.secondary-btn,.submit-btn,.save-button,.profile-action,
  .profile-button,.admin-button,.cert-primary,.cert-secondary,.cert-link-button,
  .media-button,.dashboard-sync-card__button,.offline-primary,.offline-secondary
):not(:disabled):not([aria-disabled="true"]):active{
  transform:translateY(1px) scale(.995);
}

:is(.admin-table,.data-table,.payments-table,.requests-table) :is(th,td){
  vertical-align:middle;
}
:is(.admin-table,.data-table,.payments-table,.requests-table) :is(
  .status-badge,.role-badge,.payment-brand,.payment-method,.table-action,.admin-table__primary
){
  align-items:center;
}
:is(.table-responsive,.admin-table-wrap,.table-scroll,.data-table-wrap){
  max-width:100%;
  overflow-x:auto;
  overscroll-behavior-inline:contain;
  -webkit-overflow-scrolling:touch;
}

:is(button,a,[role="button"]):focus-visible{
  outline:0;
  box-shadow:var(--jokko-focus-ring);
}

:is(button,[role="button"]):disabled,
:is(button,[role="button"])[aria-disabled="true"]{
  cursor:not-allowed;
  opacity:.62;
}

:is(
  .admin-card,.config-card,.action-card,.performance-card,.professional-card,
  .request-card,.service-card,.partner-card,.certification-card,.cert-card,
  .client-edit-card,.mission-card,.payment-setting-card,.env-summary-card
){min-width:0}

:is(
  .admin-card__head-icon,.admin-stat__icon,.config-card__icon,
  .action-icon,.performance-card__icon,.professional-card__icon,
  .service-icon,.partner-icon,.request-icon,.certification-card__icon,
  .cert-benefit-icon,.field-icon,.account-action__icon,.admin-info-tile__icon,
  .env-summary-card__icon,.security-card__icon,.offline-status-icon
){
  flex:0 0 auto;
  display:grid;
  place-items:center;
  line-height:1;
  text-align:center;
}

:is(
  .admin-card__head-icon,.admin-stat__icon,.config-card__icon,
  .action-icon,.performance-card__icon,.professional-card__icon,
  .service-icon,.partner-icon,.request-icon,.certification-card__icon,
  .cert-benefit-icon,.account-action__icon,.admin-info-tile__icon,
  .env-summary-card__icon,.security-card__icon
) > :where(i,svg,img){
  display:block;
  margin:auto;
}

:is(.admin-card__head,.config-card__header,.client-edit-card__header,
  .presentation-video-card__head,.profile-gallery-card__head,
  .mission-card__heading,.request-card__main){
  min-width:0;
  align-items:center;
}

:is(.admin-card__head-main,.professional-card__body,.request-card__main,
  .certification-card__copy,.client-identity-card__copy,.account-management-card__copy){
  min-width:0;
}

:is(.admin-card__head-main,.professional-card__body,.certification-card__copy,
  .client-identity-card__copy,.account-management-card__copy) :is(h1,h2,h3,p,strong,small,span){
  overflow-wrap:anywhere;
}

.admin-table th,.admin-table td{vertical-align:middle}
.admin-table :where(.admin-table__primary-icon,.payment-brand-icon,[class*="__icon"]){align-self:center}
.admin-table img{display:block;object-fit:contain}

/* v134 — lumière blanche douce globale, sans forcer overflow:hidden sur les cartes. */
.jokko-polished-card,
.jokko-polished-visual{
  isolation:isolate;
}
.jokko-sheen-positioned{position:relative}

.jokko-card-sheen,
.jokko-visual-sheen{
  position:absolute;
  inset:0;
  z-index:20;
  display:block;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none;
  opacity:1;
  contain:paint;
}

.jokko-card-sheen::before,
.jokko-visual-sheen::before{
  content:"";
  position:absolute;
  top:-55%;
  bottom:-55%;
  left:-52%;
  width:30%;
  border-radius:999px;
  pointer-events:none;
  opacity:0;
  transform:translate3d(-135%,0,0) rotate(13deg);
  background:linear-gradient(90deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.08) 22%,
    rgba(255,255,255,.42) 50%,
    rgba(255,255,255,.07) 78%,
    rgba(255,255,255,0)
  );
  filter:blur(8px);
  mix-blend-mode:screen;
  will-change:transform,opacity;
}

.jokko-visual-sheen{z-index:24}
.jokko-visual-sheen::before{
  width:25%;
  background:linear-gradient(90deg,
    rgba(255,255,255,0),
    rgba(255,255,255,.10) 20%,
    rgba(255,255,255,.56) 50%,
    rgba(255,255,255,.10) 80%,
    rgba(255,255,255,0)
  );
  filter:blur(6px);
}

.jokko-polished-card.is-jokko-visible>.jokko-card-sheen::before{
  animation:jokko-card-soft-sheen 10.8s cubic-bezier(.22,.61,.36,1) infinite;
  animation-delay:var(--jokko-sheen-delay,0s);
}
.jokko-polished-visual.is-jokko-visible>.jokko-visual-sheen::before{
  animation:jokko-visual-soft-sheen 9.2s cubic-bezier(.22,.61,.36,1) infinite;
  animation-delay:var(--jokko-sheen-delay,0s);
}

.jokko-polished-card:hover>.jokko-card-sheen::before,
.jokko-polished-card:focus-within>.jokko-card-sheen::before,
.jokko-polished-visual:hover>.jokko-visual-sheen::before,
.jokko-polished-visual:focus-within>.jokko-visual-sheen::before{
  animation-duration:5.8s;
}

@keyframes jokko-card-soft-sheen{
  0%,18%{opacity:0;transform:translate3d(-145%,0,0) rotate(13deg)}
  24%{opacity:.20}
  43%{opacity:.13}
  56%,100%{opacity:0;transform:translate3d(560%,0,0) rotate(13deg)}
}
@keyframes jokko-visual-soft-sheen{
  0%,13%{opacity:0;transform:translate3d(-145%,0,0) rotate(13deg)}
  20%{opacity:.34}
  46%{opacity:.20}
  61%,100%{opacity:0;transform:translate3d(560%,0,0) rotate(13deg)}
}

/* Les couches restent décoratives et ne doivent jamais masquer une action. */
.jokko-card-sheen,
.jokko-card-sheen *,
.jokko-visual-sheen,
.jokko-visual-sheen *{user-select:none!important;-webkit-user-select:none!important}

@media(max-width:760px){
  :is(.admin-card__head,.config-card__header,.client-edit-card__header){gap:11px}
  :is(.primary-btn,.secondary-btn,.submit-btn,.save-button,.admin-button,
    .cert-primary,.cert-secondary,.profile-action,.offline-primary,.offline-secondary){
    min-height:44px;
  }
  .jokko-card-sheen::before{width:38%;filter:blur(7px)}
  .jokko-visual-sheen::before{width:34%;filter:blur(5px)}
}

@media(prefers-reduced-motion:reduce){
  .jokko-card-sheen,
  .jokko-visual-sheen{display:none!important}
  .jokko-card-sheen::before,
  .jokko-visual-sheen::before{animation:none!important}
}
