/*
Theme Name: Certigate
Theme URI: https://3vision-group.com/
Author: 3Vision Group
Author URI: https://3vision-group.com/
Description: Thème WordPress pixel-perfect pour Certigate, converti depuis la maquette HTML complète. Le thème porte l'expérience visuelle ; le plugin Certigate Core porte la logique métier.
Version: 1.18.3
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: certigate
*/

/*
 * Certigate v1.4.2 — stylesheet shell only.
 * Visual rules live in assets/css/certigate.css to avoid cascade conflicts.
 */
html, body { margin: 0; padding: 0; }
body.cg-single-screen { background: var(--bg); }
body.cg-single-screen .screen { display: block; padding-top: 0; }
body.cg-single-screen .screen.active { min-height: 100vh; }
body.cg-admin-screen .screen,
html[data-cg-admin-boot] body.cg-admin-screen .screen {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-height: 100vh;
}

/* v1.8.29 — Admin first-paint integrity.
 * One neutral loading state while the single Core REST renderer resolves.
 * No server-side figures or alternate dashboard are ever flashed to the user.
 */
body.cg-admin-screen.cg-admin-hydration-pending .screen {
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  background: #f3f7fa;
}
html[data-theme="dark"] body.cg-admin-screen.cg-admin-hydration-pending .screen { background:#071822; }
body.cg-admin-screen.cg-admin-hydration-pending .screen > * { visibility:hidden !important; }
body.cg-admin-screen.cg-admin-hydration-pending .screen::before {
  content:'';
  position:absolute;
  inset:0;
  z-index:9998;
  visibility:visible;
  background:inherit;
}
body.cg-admin-screen.cg-admin-hydration-pending .screen::after {
  content:'';
  position:absolute;
  z-index:9999;
  visibility:visible;
  width:34px;
  height:34px;
  left:50%;
  top:50%;
  margin:-17px 0 0 -17px;
  border-radius:50%;
  border:3px solid rgba(14,42,58,.12);
  border-top-color:#c9a227;
  animation:cgAdminHydrationSpin .7s linear infinite;
}
html[data-theme="dark"] body.cg-admin-screen.cg-admin-hydration-pending .screen::after { border-color:rgba(255,255,255,.12);border-top-color:#c9a227; }
body.cg-admin-screen.cg-admin-hydration-ready .screen > * { animation:cgAdminHydrationIn .16s ease both; }
@keyframes cgAdminHydrationSpin { to { transform:rotate(360deg); } }
@keyframes cgAdminHydrationIn { from { opacity:.72;transform:translateY(2px); } to { opacity:1;transform:none; } }
@media(prefers-reduced-motion:reduce){
  body.cg-admin-screen.cg-admin-hydration-pending .screen::after,
  body.cg-admin-screen.cg-admin-hydration-ready .screen > *{animation:none!important}
}
body.cg-single-screen #demoNav { display: none; }
body.cg-demo-screen .screen { padding-top: 52px; }
body.cg-wp-page .site-main { min-height: 100vh; }
body.admin-bar #demoNav { top: 32px; }
@media screen and (max-width: 782px) { body.admin-bar #demoNav { top: 46px; } }

.cg-logo-img { display: inline-block; object-fit: contain; flex: 0 0 auto; vertical-align: middle; }
.cg-logo-wrap { display: inline-flex; align-items: center; justify-content: center; width: var(--cg-logo-w, 52px); height: var(--cg-logo-h, 52px); line-height: 1; flex: 0 0 auto; background: transparent; border: 0; box-shadow: none; overflow: visible; }
.cg-logo-wrap .cg-logo-img { display: block; width: 100%; height: 100%; object-fit: contain; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.cg-logo-wrap .cg-logo-img-light { display: none; }
html[data-theme="light"] .cg-logo-wrap:not(.cg-logo-on-dark) .cg-logo-img-dark { display: none; }
html[data-theme="light"] .cg-logo-wrap:not(.cg-logo-on-dark) .cg-logo-img-light { display: block; }
html[data-theme="light"] .cg-logo-wrap.cg-logo-on-dark .cg-logo-img-dark { display: block; }
html[data-theme="light"] .cg-logo-wrap.cg-logo-on-dark .cg-logo-img-light { display: none; }


/* v1.8.15 — Diagnostic candidate answer flow */
.cg-diag-loading{display:grid;gap:10px;justify-items:center;text-align:center;padding:26px;border-radius:18px;background:rgba(216,179,38,.08);border:1px solid rgba(216,179,38,.28)}
.cg-diag-loading>span{width:34px;height:34px;border-radius:50%;border:3px solid rgba(216,179,38,.25);border-top-color:#d8b326;animation:cgDiagSpin .8s linear infinite}.cg-diag-loading strong{color:var(--cg-gold,#d8b326)}.cg-diag-loading p{margin:0;color:var(--cg-muted,#6f7f8f)}
@keyframes cgDiagSpin{to{transform:rotate(360deg)}}
.cg-diag-option.is-selected{outline:2px solid var(--cg-gold,#d8b326);outline-offset:2px}.cg-diag-option:disabled{cursor:not-allowed;opacity:.78}.cg-diag-save-state{display:inline-flex;align-items:center;min-height:34px;color:var(--cg-muted,#6f7f8f);font-weight:700}

/* v1.8.17 — Diagnostic UX flow polish */
.cg-diag-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;color:var(--text-secondary,#A7B3BF);font-weight:800;font-size:.88rem}.cg-diag-progress-head span{color:var(--gold,#C9A227);letter-spacing:.04em;text-transform:uppercase}.cg-diag-progress-head strong{font-weight:800;color:var(--text-secondary,#A7B3BF)}.cg-diag-question{transition:opacity .2s ease,transform .2s ease,box-shadow .2s ease,border-color .2s ease}.cg-diag-question.is-loading-next{opacity:.72;transform:translateY(6px);pointer-events:none}.cg-diag-question.is-entering-question{animation:cgDiagQuestionIn .28s ease both}.cg-diag-question.is-saving-answer{border-color:rgba(201,162,39,.58)}.cg-diag-question.is-answer-saved{box-shadow:0 0 0 1px rgba(42,214,117,.18),0 20px 60px rgba(42,214,117,.08)}@keyframes cgDiagQuestionIn{from{opacity:.35;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.cg-diag-save-state{gap:8px;text-align:center;justify-content:center}.cg-diag-save-state:before{content:'';width:8px;height:8px;border-radius:999px;background:rgba(148,163,184,.55);display:inline-block;flex:0 0 auto}.cg-diag-save-state.is-choice:before{background:var(--gold,#C9A227)}.cg-diag-save-state.is-saving:before,.cg-diag-save-state.is-loading:before{background:var(--gold,#C9A227);animation:cgDiagPulse 1s ease infinite}.cg-diag-save-state.is-saved{color:#4ade80!important}.cg-diag-save-state.is-saved:before{background:#22c55e}.cg-diag-save-state.is-error{color:#ff7777!important}.cg-diag-save-state.is-error:before{background:#ff7777}@keyframes cgDiagPulse{0%{box-shadow:0 0 0 0 rgba(201,162,39,.45)}70%{box-shadow:0 0 0 8px rgba(201,162,39,0)}100%{box-shadow:0 0 0 0 rgba(201,162,39,0)}}@media(max-width:640px){.cg-diag-progress-head{display:grid;gap:4px;font-size:.82rem}.cg-diag-question.is-loading-next{transform:none}.cg-diag-save-state{font-size:.82rem;line-height:1.35}}@media(prefers-reduced-motion:reduce){.cg-diag-question,.cg-diag-option:not(:disabled){transition:none!important}.cg-diag-question.is-entering-question,.cg-diag-save-state.is-saving:before,.cg-diag-save-state.is-loading:before{animation:none!important}}


/* v1.8.17 — Diagnostic premium transition + one-click advance */
.cg-diag-question{position:relative;overflow:hidden;transform-origin:50% 40%;will-change:transform,opacity,box-shadow}
.cg-diag-question.is-transition-countdown{box-shadow:0 0 0 1px rgba(34,197,94,.22),0 26px 72px rgba(34,197,94,.10)}
.cg-diag-question.is-transitioning-next{opacity:1!important;transform:none!important;pointer-events:none}
.cg-diag-question.is-transitioning-next::before{content:'';position:absolute;inset:0;z-index:20;border-radius:inherit;background:linear-gradient(135deg,rgba(2,13,22,.66),rgba(10,35,48,.74));backdrop-filter:blur(3px);animation:cgDiagVeilIn .28s ease both}
html[data-theme="light"] .cg-diag-question.is-transitioning-next::before{background:linear-gradient(135deg,rgba(255,255,255,.74),rgba(239,246,255,.82))}
.cg-diag-question.is-transitioning-next::after{content:attr(data-cg-transition-label);position:absolute;z-index:21;left:50%;top:50%;transform:translate(-50%,-50%);padding:13px 18px;border-radius:999px;border:1px solid rgba(201,162,39,.45);background:rgba(201,162,39,.14);box-shadow:0 18px 44px rgba(0,0,0,.18);color:var(--gold,#C9A227);font-weight:900;letter-spacing:.02em;white-space:nowrap;animation:cgDiagBadgeIn .36s ease both}
html[data-theme="light"] .cg-diag-question.is-transitioning-next::after{background:#fff8df;color:#9b7600;box-shadow:0 18px 44px rgba(16,24,40,.10)}
.cg-diag-question.is-entering-question{animation:cgDiagQuestionPremiumIn .42s cubic-bezier(.18,.85,.28,1.08) both!important}
.cg-diag-option.is-selected{box-shadow:0 0 0 1px rgba(201,162,39,.35),0 16px 46px rgba(201,162,39,.08)}
.cg-diag-save-state.is-saved{animation:cgDiagSavedPop .24s ease both}
@keyframes cgDiagVeilIn{from{opacity:0}to{opacity:1}}
@keyframes cgDiagBadgeIn{from{opacity:0;transform:translate(-50%,-42%) scale(.96)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes cgDiagQuestionPremiumIn{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(3px)}100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
@keyframes cgDiagSavedPop{0%{transform:translateY(2px);opacity:.72}100%{transform:translateY(0);opacity:1}}
@media(max-width:640px){.cg-diag-question.is-transitioning-next::after{max-width:calc(100% - 34px);white-space:normal;text-align:center;line-height:1.35}.cg-diag-question.is-transitioning-next::before{backdrop-filter:blur(2px)}}
@media(prefers-reduced-motion:reduce){.cg-diag-question.is-transitioning-next::before,.cg-diag-question.is-transitioning-next::after,.cg-diag-question.is-entering-question,.cg-diag-save-state.is-saved{animation:none!important}.cg-diag-question{will-change:auto}}


/* v1.8.18 — Dashboard Stability & UX Polish */
html[data-cg-dashboard-stability="v1.8.18"] body.cg-admin-screen,
html[data-cg-dashboard-stability="v1.8.18"] body.cg-single-screen{scroll-behavior:smooth}
.cg-dashboard-ready-note{display:inline-flex;align-items:center;gap:8px;margin-top:8px;padding:7px 10px;border-radius:999px;border:1px solid rgba(201,162,39,.22);background:rgba(201,162,39,.08);color:var(--text-secondary,#A7B3BF);font-weight:800;font-size:.78rem;letter-spacing:.02em}
.cg-dashboard-syncing .cg-admin-home,.cg-dashboard-syncing .cg132-app{opacity:.94;transition:opacity .18s ease}
.cg-admin-dashboard-refreshing{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:rgba(11,34,48,.94);color:#fff;border:1px solid rgba(201,162,39,.28);box-shadow:0 18px 44px rgba(0,0,0,.22);font-weight:800;font-size:.82rem}
html[data-theme="light"] .cg-admin-dashboard-refreshing{background:#fff;color:#0B2230;border-color:rgba(11,34,48,.12)}
.cg-admin-dashboard-refreshing:before{content:'';width:8px;height:8px;border-radius:999px;background:var(--gold,#C9A227);animation:cgDiagPulse 1s ease infinite}
@media(max-width:560px){.cg-admin-dashboard-refreshing{left:14px;right:14px;justify-content:center}.cg-dashboard-ready-note{border-radius:16px;line-height:1.35}}
@media(prefers-reduced-motion:reduce){html[data-cg-dashboard-stability="v1.8.18"] body.cg-admin-screen,html[data-cg-dashboard-stability="v1.8.18"] body.cg-single-screen{scroll-behavior:auto}.cg-dashboard-syncing .cg-admin-home,.cg-dashboard-syncing .cg132-app{transition:none}}


/* Certigate 1.8.48 — Attribution Usability & Data Guard */
.cg-assignment-panel{padding:22px;background:var(--card);border:1px solid rgba(201,162,39,.48);border-radius:20px;box-shadow:var(--shadow)}
.cga-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.cga-head small{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:900}.cga-head h3{margin:5px 0;color:var(--text-1);font-size:24px}.cga-head p{margin:0;color:var(--text-2);max-width:760px}.cga-status{padding:7px 11px;border-radius:999px;background:rgba(148,163,184,.14);color:var(--text-2);font:800 11px/1 var(--mono);text-transform:uppercase}.cga-status.is-active{background:rgba(34,197,94,.14);color:#22c55e}.cga-status.is-pending_payment,.cga-status.is-scheduled,.cga-status.is-ready{background:rgba(201,162,39,.14);color:var(--gold)}
.cga-message{margin:14px 0;padding:11px 13px;border-radius:12px;color:var(--text-2);background:rgba(148,163,184,.1)}.cga-message.is-success{color:#16a34a;background:rgba(34,197,94,.12)}.cga-message.is-error{color:#ef4444;background:rgba(239,68,68,.12)}
.cga-form{margin-top:16px}.cga-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.cga-grid label{display:grid;gap:7px;color:var(--text-1);font-weight:800}.cga-grid .is-wide{grid-column:1/-1}.cga-grid input,.cga-grid select,.cga-grid textarea{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text-1);padding:11px 12px;font:inherit}.cga-selectors{display:grid;grid-template-columns:1fr 1.35fr;gap:14px;margin:16px 0}.cga-selectors fieldset{min-width:0;border:1px solid var(--border);border-radius:14px;padding:13px}.cga-selectors legend{padding:0 7px;color:var(--gold);font-weight:900}.cga-selectors fieldset>div{display:grid;gap:7px;max-height:260px;overflow:auto}.cga-selectors label{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:9px;color:var(--text-1);background:rgba(255,255,255,.025)}.cga-selectors input{margin-top:3px}.cga-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px;flex-wrap:wrap}.cgcs-module-row.is-retry{border-color:rgba(239,68,68,.35)}
@media(max-width:1100px){.cga-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cga-selectors{grid-template-columns:1fr}}
@media(max-width:680px){.cga-head{display:block}.cga-status{display:inline-flex;margin-top:12px}.cga-grid{grid-template-columns:1fr}.cga-actions{display:grid}.cga-actions .btn{width:100%;justify-content:center}}

.cga-item-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}
.cga-item-row [data-cga-selection]{min-width:112px;padding:7px 9px;border:1px solid rgba(15,34,55,.16);border-radius:9px;background:#fff;font:inherit;font-size:.78rem}
.cga-item-row input:not(:checked)~[data-cga-selection]{opacity:.55}
@media(max-width:640px){.cga-item-row{grid-template-columns:auto minmax(0,1fr)}.cga-item-row [data-cga-selection]{grid-column:2;width:100%}}


/* Certigate 1.8.48 — Attribution usability states */
.cga-filter-note{margin:2px 0 0;color:var(--text-2);font-size:11px;font-weight:600;line-height:1.4}
.cga-cohort-help{display:grid;gap:8px;margin-top:2px;padding:10px;border:1px solid rgba(201,162,39,.28);border-radius:11px;background:rgba(201,162,39,.06)}
.cga-cohort-help p{margin:0;color:var(--text-2);font-size:12px;line-height:1.45}.cga-inline-link{width:max-content;padding:0;border:0;background:none;color:var(--gold);font-weight:900;cursor:pointer}.cga-inline-link:hover{text-decoration:underline}
.cga-empty-state{margin:0;padding:12px;border:1px dashed var(--border);border-radius:10px;color:var(--text-2);font-size:12px;line-height:1.5}.cga-empty-state.is-info{border-style:solid;background:rgba(148,163,184,.06)}
.cga-readonly-item{padding:9px 10px;border-radius:9px;background:rgba(255,255,255,.025);color:var(--text-1);font-size:13px}
.cga-validation-help{margin:12px 0 0;padding:10px 12px;border-radius:11px;background:rgba(239,68,68,.08);color:#ef4444;font-weight:800;font-size:12px}.cga-validation-help.is-ready{background:rgba(34,197,94,.10);color:#16a34a}
.cga-actions button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.3);box-shadow:none!important}.cga-message:empty{display:none}.btn.btn-small{padding:8px 10px;font-size:12px}
@media(max-width:680px){.cg-assignment-panel{padding:16px}.cga-selectors fieldset>div{max-height:none}.cga-cohort-help .btn{width:100%;justify-content:center}.cga-inline-link{width:100%;text-align:left;padding:6px 0}}


/* Certigate 1.8.49 — Unified Admin Mobile Left Rail & Left Edge */
.cg-admin-mobile-menu-button-v1849,
.cg-admin-mobile-drawer-v1849,
.cg-admin-mobile-backdrop-v1849{display:none}

@media (max-width:960px){
  body.cg-admin-mobile-unified-v1849{overflow-x:hidden}
  body.cg-admin-mobile-unified-v1849 .cg-fa-mobile-menu-button,
  body.cg-admin-mobile-unified-v1849 .cg-fa-menu-backdrop{display:none!important}

  body.cg-admin-mobile-unified-v1849 .screen[id^="screen-admin"] .main,
  body.cg-admin-mobile-unified-v1849 #screen-dash-admin .main{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding-left:14px!important;
    padding-right:14px!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }
  body.cg-admin-mobile-unified-v1849 .screen[id^="screen-admin"] .main > :not(script):not(style):not(.cg-admin-mobile-menu-button-v1849),
  body.cg-admin-mobile-unified-v1849 #screen-dash-admin .main > :not(script):not(style):not(.cg-admin-mobile-menu-button-v1849){
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }
  body.cg-admin-mobile-unified-v1849 .cg-fa-detail,
  body.cg-admin-mobile-unified-v1849 .cg-fa-workspace,
  body.cg-admin-mobile-unified-v1849 .cg-fa-synthesis-grid,
  body.cg-admin-mobile-unified-v1849 .cg-fa-analysis-grid,
  body.cg-admin-mobile-unified-v1849 .cg-fa-review-panel,
  body.cg-admin-mobile-unified-v1849 .cg-assignment-panel,
  body.cg-admin-mobile-unified-v1849 .cg-front-hero,
  body.cg-admin-mobile-unified-v1849 .cg-front-status,
  body.cg-admin-mobile-unified-v1849 .cg-front-grid,
  body.cg-admin-mobile-unified-v1849 .cg-fallback-head,
  body.cg-admin-mobile-unified-v1849 .cg-fallback-grid{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
  }

  .cg-admin-mobile-menu-button-v1849{
    display:inline-flex;
    position:sticky;
    top:8px;
    z-index:10001;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    width:100%;
    margin:0 0 14px;
    padding:11px 13px;
    border:1px solid rgba(201,162,39,.38);
    border-radius:12px;
    background:rgba(8,27,39,.97);
    color:var(--text-1,#f8fafc);
    box-shadow:0 14px 36px rgba(0,0,0,.22);
    font:800 .86rem/1.2 var(--font-sans,inherit);
    cursor:pointer;
    backdrop-filter:blur(14px);
  }
  .cg-admin-mobile-menu-button-v1849 i{color:var(--gold,#c9a227)}
  html[data-theme="light"] .cg-admin-mobile-menu-button-v1849{background:rgba(255,255,255,.97);color:#0b2230}

  .cg-admin-mobile-backdrop-v1849{
    display:block;
    position:fixed;
    inset:0;
    z-index:10030;
    background:rgba(2,10,18,.7);
    opacity:0;
    pointer-events:none;
    transition:opacity .22s ease;
  }
  .cg-admin-mobile-drawer-v1849{
    display:flex;
    position:fixed;
    inset:0 auto 0 0;
    z-index:10040;
    width:min(86vw,304px);
    height:100dvh;
    flex-direction:column;
    overflow-y:auto;
    padding:0 0 max(18px,env(safe-area-inset-bottom));
    background:linear-gradient(180deg,#071a29,#061522);
    border-right:1px solid rgba(255,255,255,.07);
    box-shadow:30px 0 76px rgba(0,0,0,.45);
    transform:translateX(-105%);
    transition:transform .22s ease;
  }
  html[data-theme="light"] .cg-admin-mobile-drawer-v1849{background:linear-gradient(180deg,#fff,#f5f8fb);border-right-color:rgba(11,34,48,.12)}
  body.cg-admin-mobile-menu-open-v1849 .cg-admin-mobile-backdrop-v1849{opacity:1;pointer-events:auto}
  body.cg-admin-mobile-menu-open-v1849 .cg-admin-mobile-drawer-v1849{transform:translateX(0)}
  body.cg-admin-mobile-menu-open-v1849{overflow:hidden!important}

  .cg-admin-mobile-drawer-v1849 .sidebar-logo{flex:0 0 auto}
  .cg-admin-mobile-drawer-v1849 .sidebar-link{display:flex!important;flex:0 0 auto}
  .cg-admin-mobile-drawer-v1849 .sidebar-user{margin-top:auto}
}

.cg-admin-mobile-brand-v1849{display:grid;gap:2px;color:var(--text-1,#fff)}.cg-admin-mobile-brand-v1849 strong{font-size:1.05rem}.cg-admin-mobile-brand-v1849 span{font-size:.74rem;color:var(--text-3,#8ca0b2)}
