/* ==========================================================================
   Klas 237 · Direction artistique « Cahier national »
   Les couleurs du Cameroun, dans l'ordre du drapeau : vert (agir),
   rouge (annoter, encourager), jaune (surligner, retenir), sur une page
   de cahier claire. Le ruban vert-rouge-jaune signe chaque écran.
   Chargé en dernier : il redéfinit les jetons de toutes les feuilles.
   ========================================================================== */

@font-face{font-family:"Bricolage";src:url(assets/fonts/Bricolage-var.woff2) format("woff2");font-weight:200 800;font-stretch:75% 100%;font-display:swap}
@font-face{font-family:"Manrope";src:url(assets/fonts/Manrope-400.woff2) format("woff2");font-weight:400 500;font-display:swap}
@font-face{font-family:"Manrope";src:url(assets/fonts/Manrope-600.woff2) format("woff2");font-weight:600;font-display:swap}
@font-face{font-family:"Manrope";src:url(assets/fonts/Manrope-700.woff2) format("woff2");font-weight:700 900;font-display:swap}
@font-face{font-family:"Caveat";src:url(assets/fonts/Caveat-700.woff2) format("woff2");font-weight:400 700;font-display:swap}

:root{
  /* Les 4 outils du cahier */
  --k-blue:#007a5e;        /* vert national : toutes les actions */
  --k-blue-deep:#005a46;   /* vert profond : survols, textes d'action */
  --k-blue-soft:#e6f4ee;
  --k-red:#ce1126;         /* rouge national : annotations, encouragements */
  --k-red-soft:#fde8ea;
  --k-mark:#fcd116;        /* jaune national : surligneur */
  --k-mark-soft:#fff8d6;
  --k-slate:#007a5e;       /* aplats verts (cartes, bouton d'aide) */
  --k-slate-2:#00664f;
  --k-slate-soft:#e6f4ee;
  --k-chalk:#f4f1e6;       /* craie */
  /* Papier et encre */
  --k-ink:#141b2e;
  --k-muted:#4a5166;       /* ≥ 7:1 sur le papier */
  --k-paper:#fbfaf5;
  --k-card:#ffffff;
  --k-line:#e3e1d6;
  --k-rule:rgba(0,122,94,.07);
  --k-flag:linear-gradient(90deg,#007a5e 0 33.34%,#ce1126 33.34% 66.67%,#fcd116 66.67% 100%);
  --k-margin:rgba(206,17,38,.28);
  --k-focus:#ce1126;
  --k-radius:14px;
  --k-radius-lg:22px;
  --k-shadow:0 1px 2px rgba(20,27,46,.06),0 10px 28px rgba(20,27,46,.07);
  --k-ink-shadow:0 3px 0 #004a3a;
  --k-font-display:"Bricolage","Manrope",system-ui,sans-serif;
  --k-font-body:"Manrope",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
  --k-font-hand:"Caveat","Segoe Print","Bradley Hand",cursive;
  --k-circle:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 60' preserveAspectRatio='none'%3E%3Cpath d='M16 36C9 18 42 5 74 7c29 2 45 15 39 31-6 15-41 20-71 16C17 50 6 41 12 27 17 17 33 11 48 9' fill='none' stroke='%23ce1126' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");
  --k-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 13.5c2.2 1.6 3.8 3.4 5 5.5C11.5 12 15.5 7 20.5 4' fill='none' stroke='%23ce1126' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ---------- Tous les espaces lisent les mêmes jetons ---------- */
html body,html body[data-course],html body[data-course="primary"],html body[data-course="college"],html body[data-role]{
  --paper:var(--k-paper)!important;--paper-strong:#fff!important;--ink:var(--k-ink)!important;--muted-ink:var(--k-muted)!important;--line:var(--k-line)!important;
  --course:var(--k-blue)!important;--course-deep:var(--k-blue-deep)!important;--accent:var(--k-blue)!important;--deep:var(--k-blue-deep)!important;
  --role:var(--k-blue)!important;--blue:var(--k-blue)!important;--navy:var(--k-slate)!important;
  --gold:var(--k-mark)!important;--signal:var(--k-mark)!important;--correction:var(--k-red)!important;
  --course-soft:var(--k-mark-soft)!important;--tint:var(--k-mark-soft)!important;--chalk:var(--k-mark-soft)!important;
}
html body[data-course="college"]{--course-soft:var(--k-slate-soft)!important;--tint:var(--k-slate-soft)!important;--chalk:var(--k-slate-soft)!important}

/* ---------- Papier ligné ---------- */
html body{
  background-color:var(--k-paper)!important;
  background-image:linear-gradient(to bottom,transparent 31px,var(--k-rule) 31px,var(--k-rule) 32px)!important;
  background-size:100% 32px!important;background-attachment:local!important;
  color:var(--k-ink);line-height:1.6
}

/* ---------- Typographie ---------- */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,button,input,select,textarea{font-family:var(--k-font-body)}
h1,h2,h3,.brand,.entry-brand,.kx-step-num{font-family:var(--k-font-display)!important;font-variation-settings:"opsz" 96}
h1{letter-spacing:-.03em;font-weight:800}
h2,h3{letter-spacing:-.012em;font-weight:700}
p,li{text-wrap:pretty}
h1,h2{text-wrap:balance}
.entry-kicker,.eyebrow{color:var(--k-red)!important;letter-spacing:.14em!important;font-weight:800!important}
.kx-hand{font-family:var(--k-font-hand);font-weight:700;color:var(--k-red);line-height:1.1;letter-spacing:0}
.kx-mark,.kx-hero h1 em,body[data-entry=workspace] #screen h1 em{font-style:normal;color:inherit!important;background:linear-gradient(100deg,transparent 0 1.5%,var(--k-mark) 1.5% 98%,transparent 98%) 0 88%/100% 46% no-repeat;padding:0 .08em;text-decoration:none!important;border:0!important;box-shadow:none!important}

/* ---------- Signature : 237 entouré au stylo rouge ---------- */
.brand,.entry-brand{color:var(--k-ink)!important;font-weight:800!important;letter-spacing:-.04em!important;text-decoration:none;font-size:clamp(1.6rem,2.4vw,2rem)!important}
.brand span,.entry-brand span{display:inline-block;color:var(--k-ink)!important;background:var(--k-circle) center/100% 100% no-repeat!important;padding:.06em .32em!important;margin-left:.1em;border:0!important;border-radius:0!important;font-size:inherit!important}
.brand::after{content:none!important}
.entry-brand i{display:none!important}
.brand small{display:block;font-family:var(--k-font-body);font-size:.68rem;letter-spacing:.16em;color:inherit;opacity:.7;margin-top:4px}

/* ---------- Accessibilité ---------- */
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--k-focus)!important;outline-offset:3px!important;border-radius:8px}
:where(button,.button,summary,select){min-height:44px}
:where(input[type=checkbox],input[type=radio]){min-width:20px;min-height:20px;accent-color:var(--k-blue)}
::placeholder{color:#6b7083;opacity:1}
::selection{background:var(--k-mark);color:var(--k-ink)}
.kx-skip{position:absolute;left:12px;top:-60px;z-index:2000;background:var(--k-ink);color:#fff;padding:12px 16px;border-radius:10px;font-weight:700;text-decoration:none}
.kx-skip:focus{top:12px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
body.kx-large{zoom:1.15}
@supports not (zoom:1){body.kx-large{font-size:118%}}

/* ---------- Boutons : le stylo bleu agit ---------- */
.entry-content button:not(.secondary):not(.entry-link):not(.entry-role):not([data-billing-period]):not(.entry-header-offers),
.entry-submit,#screen button.primary,#screen .hero button:not(.secondary){
  background:var(--k-blue)!important;color:#fff!important;border:0!important;border-radius:12px!important;font-weight:700;box-shadow:var(--k-ink-shadow);transition:transform .12s ease,box-shadow .12s ease
}
.entry-content button:not(.secondary):not(.entry-link):not(.entry-role):not([data-billing-period]):not(.entry-header-offers):hover,.entry-submit:hover{transform:translateY(1px);box-shadow:0 2px 0 var(--k-blue-deep)}
.entry-content button:not(.secondary):not(.entry-link):not(.entry-role):not([data-billing-period]):not(.entry-header-offers):active,.entry-submit:active{transform:translateY(3px);box-shadow:none}
.entry-content button.secondary,.kx-cta .secondary{background:#fff!important;color:var(--k-blue-deep)!important;border:2px solid var(--k-blue)!important;border-radius:12px!important;font-weight:700}
.entry-content button.secondary:hover{background:var(--k-blue-soft)!important}
body[data-entry=workspace] #screen button:not(.secondary):not(.remove):not([data-route]):not([data-work-route]):not(.summary-link):not(.close){box-shadow:var(--k-ink-shadow)}

/* ---------- Coin d'aide ---------- */
.kx-dock{position:fixed;right:16px;bottom:16px;z-index:1100;display:flex;gap:8px;align-items:center}
.kx-dock .klas-help-trigger{position:static;background:var(--k-slate);border:2px solid #fff;font:700 15px/1 var(--k-font-body);padding:13px 18px;min-height:48px;box-shadow:0 6px 20px rgba(23,58,48,.3)}
.kx-dock .klas-help-trigger:hover{background:var(--k-slate-2)}
.kx-textsize{min-width:48px;min-height:48px;border-radius:50%;border:2px solid #fff;background:#fff;color:var(--k-blue-deep);font:800 16px/1 var(--k-font-display);box-shadow:0 6px 20px rgba(20,27,46,.18);cursor:pointer}
.kx-textsize[aria-pressed=true]{background:var(--k-mark);color:var(--k-ink)}
main,#entry-root{padding-bottom:88px}
.klas-help-dialog{font-family:var(--k-font-body);color:var(--k-ink)}
.klas-help-dialog h2,.klas-help-dialog h3{font-family:var(--k-font-display)}
.klas-help-dialog button{background:var(--k-blue);min-height:44px}

/* ==========================================================================
   Accueil public et parcours d'entrée
   ========================================================================== */
body:not([data-entry=workspace]) .entry-header,
body:not([data-entry=workspace]) .entry-content,
body:not([data-entry=workspace]) .entry-footer{background:transparent!important;box-shadow:none!important;border:0!important}
.entry-header{flex-wrap:nowrap}
.entry-header .secondary{border:2px solid var(--k-ink)!important;color:var(--k-ink)!important;background:#fff!important;border-radius:12px!important}
.entry-header-offers{color:var(--k-ink)!important}
.entry-content{position:relative}
@media (min-width:980px){
  body:not([data-entry=workspace]) .entry-content::before{content:"";position:absolute;top:0;bottom:0;left:22px;width:2px;background:var(--k-margin);pointer-events:none}
}
.entry-panel h1,.entry-narrow h1{color:var(--k-ink)!important}

/* Héros : page claire, ruban national en tête */
.kx-hero{background:#fff!important;color:var(--k-ink);border:1px solid var(--k-line);border-radius:28px;padding:clamp(28px,5vw,64px)!important;margin-top:8px;position:relative;overflow:hidden;box-shadow:var(--k-shadow);
  background-image:radial-gradient(55% 60% at 100% 0,rgba(252,209,22,.16),transparent 70%),radial-gradient(50% 60% at 0 100%,rgba(0,122,94,.08),transparent 70%)!important}
.kx-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:10px;background:var(--k-flag)}
.kx-hero .entry-kicker{color:var(--k-red)!important}
.kx-hero h1{color:var(--k-ink)!important;font-size:clamp(2.5rem,4.6vw,4.2rem)!important;line-height:1!important}
.kx-hero h1 em{color:var(--k-ink)!important}
.kx-lead{font-size:1.15rem;line-height:1.65;color:var(--k-ink);max-width:36rem}
.kx-lead strong{color:var(--k-ink);font-weight:800;box-shadow:inset 0 -.38em 0 rgba(252,209,22,.6)}
.kx-hero .trial-caption{color:var(--k-muted)!important}
.kx-cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 10px;align-items:center}
.kx-cta button{margin:0!important;min-height:52px;padding:14px 22px!important;font-size:1rem}
.kx-hero .kx-note{display:block;margin:2px 0 0 4px;font-size:1.45rem;color:var(--k-red)}
.kx-trust{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:18px 0 0}
.kx-trust li{font-size:.875rem;font-weight:700;color:var(--k-blue-deep);background:var(--k-blue-soft);border-radius:999px;padding:6px 12px}
/* Photo scotchée sur la page */
.kx-hero figure{position:relative;transform:rotate(1.6deg);background:#fff;padding:12px 12px 56px;border-radius:6px;box-shadow:0 18px 40px rgba(20,27,46,.18);border:1px solid var(--k-line)}
.kx-hero figure::before,.kx-hero figure::after{content:"";position:absolute;width:96px;height:28px;background:rgba(252,209,22,.55);top:-12px;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.kx-hero figure::before{left:18px;transform:rotate(-8deg)}
.kx-hero figure::after{right:18px;transform:rotate(7deg)}
.kx-hero figure img{border-radius:3px!important;clip-path:none!important;mask:none!important;-webkit-mask:none!important;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.kx-hero figcaption{position:absolute!important;left:0;right:0;bottom:12px;background:none!important;box-shadow:none!important;transform:none!important;padding:0 16px!important;margin:0!important;text-align:center;font-family:var(--k-font-hand)!important;font-weight:700!important;font-size:1.75rem!important;color:var(--k-blue-deep)!important}

/* Sections sur papier */
.kx-section{margin:0 auto;padding:clamp(48px,7vw,88px) 0 0;max-width:1060px}
.kx-section > h2,.kx-method-head h2{font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.1;margin:.25em 0 .8em;max-width:28ch;color:var(--k-ink)}
.kx-section-intro{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.kx-icon{display:inline-grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--k-blue-soft);color:var(--k-blue-deep)}
.kx-icon svg{width:22px;height:22px}

.kx-pain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.kx-pain{background:var(--k-card);border:1px solid var(--k-line);border-radius:var(--k-radius-lg);padding:22px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--k-shadow)}
.kx-who{display:flex;align-items:center;gap:10px;margin:0;font-weight:800;color:var(--k-blue-deep)}
.kx-pain blockquote{margin:0;font-family:var(--k-font-display);font-weight:700;font-size:1.12rem;line-height:1.38;color:var(--k-ink)}
.kx-answer{margin:auto 0 0;padding:14px 14px 14px 44px;border-radius:12px;background:var(--k-mark-soft) var(--k-check) 12px 14px/22px 22px no-repeat;font-size:.97rem;line-height:1.55}
.kx-answer b{display:block;font-family:var(--k-font-hand);font-size:1.35rem;letter-spacing:0;text-transform:none;color:var(--k-red);margin-bottom:2px}

/* La méthode : une page d'exercice corrigée */
.kx-method{background:var(--k-card)!important;color:var(--k-ink);border:1px solid var(--k-line);border-radius:28px;padding:clamp(28px,5vw,56px)!important;margin-top:clamp(48px,7vw,88px);box-shadow:var(--k-shadow);position:relative;
  background-image:linear-gradient(to right,transparent 46px,var(--k-margin) 46px,var(--k-margin) 48px,transparent 48px),linear-gradient(to bottom,transparent 31px,var(--k-rule) 31px,var(--k-rule) 32px)!important;background-size:100% 100%,100% 32px!important}
.kx-method-head{max-width:42rem}
.kx-method .entry-kicker{color:var(--k-red)!important}
.kx-method-head p{color:var(--k-muted);font-size:1.05rem}
.kx-steps{list-style:none;padding:0;margin:30px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.kx-steps li{background:rgba(255,255,255,.88);border:1.5px dashed #c9cde0;border-radius:18px;padding:20px;position:relative}
.kx-step-num{display:inline-grid;place-items:center;width:52px;height:40px;background:var(--k-circle) center/100% 100% no-repeat;color:var(--k-red);font-weight:800;font-size:1.25rem}
.kx-steps h3{color:var(--k-ink);margin:12px 0 6px;font-size:1.22rem}
.kx-steps p{margin:0;color:var(--k-muted)}
.kx-steps li::after{content:"";position:absolute;right:16px;top:16px;width:26px;height:26px;background:var(--k-check) center/contain no-repeat;opacity:.9}
.kx-method .kx-demo{background:var(--k-blue)!important;color:#fff!important;border:0!important;box-shadow:var(--k-ink-shadow);min-height:50px;padding:12px 20px}

/* Ancrage local */
.kx-fit-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px}
.kx-fit-grid li{display:flex;gap:14px;align-items:flex-start;padding:18px 0;border-top:1px solid var(--k-line)}
.kx-fit-grid h3{margin:0 0 4px;font-size:1.08rem}
.kx-fit-grid p{margin:0;color:var(--k-muted)}

/* Parcours lycée sur l'accueil */
.kx-tracks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.kx-track{background:var(--k-card);border:1px solid var(--k-line);border-radius:var(--k-radius-lg);padding:22px;box-shadow:var(--k-shadow);display:flex;flex-direction:column;gap:10px}
.kx-track h3{font-size:1.2rem;margin:0}
.kx-track p{margin:0;color:var(--k-muted)}
.kx-track .kx-hand{font-size:1.4rem}
.kx-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.kx-chips span{font-size:.82rem;font-weight:800;color:var(--k-blue-deep);background:var(--k-blue-soft);border-radius:8px;padding:4px 8px}
.kx-track{border-top:8px solid var(--k-blue)!important}
.kx-tracks .kx-track:nth-child(2){border-top-color:var(--k-red)!important}
.kx-tracks .kx-track:nth-child(3){border-top-color:var(--k-mark)!important}
.kx-tracks .kx-track:nth-child(4){border-top:0!important;background-image:linear-gradient(#fff,#fff),var(--k-flag);background-origin:border-box;background-clip:padding-box,border-box;border-top:8px solid transparent!important}

/* Appel final */
.kx-final{text-align:center;padding-bottom:16px!important}
.kx-final h2{margin-inline:auto!important;max-width:22ch!important}
.kx-final p{color:var(--k-muted);max-width:40rem;margin:0 auto}
.kx-final .kx-cta{justify-content:center}
.kx-final .kx-hand{font-size:1.6rem;display:block;margin-bottom:4px}

/* Offres */
.entry-offer-featured{position:relative;border-color:var(--k-blue)!important}
.kx-badge{display:inline-block;margin-bottom:10px;background:var(--k-mark);color:var(--k-ink);font-weight:800;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 10px;border-radius:6px;transform:rotate(-2deg)}
.entry-offer-price{color:var(--k-blue-deep)!important}
.entry-periods button[aria-pressed=true]{background:var(--k-ink)!important;color:#fff!important;border-color:var(--k-ink)!important}
.entry-periods button{background:#fff!important;color:var(--k-ink)!important;border:2px solid var(--k-line)!important}

/* Mondes : primaire au surligneur, secondaire à l'ardoise */
.entry-world.primary-world{background:var(--k-mark)!important;border:0!important}
.entry-world.primary-world h2{color:var(--k-ink)!important}
.entry-world.secondary-world{background:var(--k-blue)!important;border:0!important}
.entry-world.secondary-world h2{color:#fff!important}
.entry-world.secondary-world .entry-world-meta span,.entry-world.secondary-world .entry-world-meta small{color:var(--k-mark)!important}
.entry-world-badges b{border-radius:8px!important}
.entry-world button{background:var(--k-blue)!important;color:#fff!important;box-shadow:var(--k-ink-shadow)}
.entry-world.secondary-world button{background:var(--k-mark)!important;color:var(--k-ink)!important;box-shadow:0 3px 0 #c9a400}
.entry-role-card{border-radius:18px!important;border:1.5px solid var(--k-line)!important;background:#fff!important}
.entry-role-card:hover,.entry-role-card:focus-visible{border-color:var(--k-blue)!important;background:var(--k-blue-soft)!important}
.entry-role-arrow{color:var(--k-blue)!important}
.entry-note{background:var(--k-mark-soft)!important;border:0!important;border-left:4px solid var(--k-mark)!important}
.entry-child{border-color:var(--k-line)!important;background:#fff!important}
.entry-child-group{border-color:var(--k-line)!important;background:rgba(255,255,255,.7)!important}
.entry-child-group::before{display:none!important}
.entry-child button{background:var(--k-blue)!important;box-shadow:var(--k-ink-shadow)}

@media (max-width:900px){
  .kx-pain-grid,.kx-steps,.kx-tracks{grid-template-columns:minmax(0,1fr)}
  .kx-fit-grid{grid-template-columns:minmax(0,1fr)}
  .kx-hero figure{transform:rotate(1deg)}
}
@media (max-width:560px){
  .entry-header{flex-wrap:wrap}
  .kx-cta{flex-direction:column;align-items:stretch}
  .kx-cta button{width:100%}
  .kx-lead{font-size:1.05rem}
  .kx-hero{border-radius:22px;margin-inline:-6px}
  .kx-method{background-image:linear-gradient(to bottom,transparent 31px,var(--k-rule) 31px,var(--k-rule) 32px)!important}
}
@media (min-width:561px){.kx-cta button{width:auto!important}}

/* ==========================================================================
   Espaces de travail
   ========================================================================== */
/* Barre latérale : page claire et ruban national vertical */
body[data-entry=workspace]>aside{background:#fff!important;color:var(--k-ink)!important;border-right:1px solid var(--k-line)!important;position:relative}
body[data-entry=workspace]>aside::after{content:"";position:absolute;top:0;bottom:0;right:-1px;width:6px;background:linear-gradient(180deg,#007a5e 0 33.34%,#ce1126 33.34% 66.67%,#fcd116 66.67% 100%)}
body[data-entry=workspace]>aside .brand,body[data-entry=workspace]>aside .brand span{color:var(--k-ink)!important}
body[data-entry=workspace]>aside .side-caption,body[data-entry=workspace]>aside .workspace-nav-title,body[data-entry=workspace]>aside .rail-nav-heading,body[data-entry=workspace]>aside .workspace-tool-group p{color:var(--k-muted)!important}
body[data-entry=workspace]>aside #nav button,body[data-entry=workspace]>aside summary{color:var(--k-ink)!important;background:transparent!important;border-color:transparent!important}
body[data-entry=workspace]>aside #nav button:hover{background:var(--k-blue-soft)!important}
body[data-entry=workspace]>aside #nav button.active,body[data-entry=workspace]>aside #nav button[aria-current=page]{background:var(--k-blue)!important;color:#fff!important;box-shadow:none}
body[data-entry=workspace]>aside #nav button.active::after{background:var(--k-mark)!important}
body[data-entry=workspace]>aside hr,body[data-entry=workspace]>aside .workspace-more{border-color:var(--k-line)!important}

body[data-entry=workspace] main h1{font-weight:800;color:var(--k-ink)}
body[data-entry=workspace] main h2{color:var(--k-ink)}
body[data-entry=workspace] #screen .card,body[data-entry=workspace] #screen section.card{background:#fff;border-color:var(--k-line)}
body[data-entry=workspace] .course-seal{font-family:var(--k-font-display);color:var(--k-red)!important;border:0!important;background:var(--k-circle) center/100% 100% no-repeat!important;padding:14px 22px!important}
body[data-entry=workspace] #save-status,body[data-entry=workspace] .demo-note{background:var(--k-mark-soft)!important;border-left:4px solid var(--k-mark)!important;color:var(--k-ink)!important}
body[data-entry=workspace] .tag{background:var(--k-blue-soft)!important;color:var(--k-blue-deep)!important}

/* Barre d'onglets mobile */
.kx-tabbar{display:none}
@media (max-width:700px){
  body[data-entry=workspace]>aside::after{top:auto;left:0;right:0;bottom:0;width:auto;height:5px;background:var(--k-flag)}
  body[data-entry=workspace] .kx-tabbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:1050;background:#fff;border-top:1px solid var(--k-line);box-shadow:0 -6px 20px rgba(20,27,46,.08);padding:6px 6px calc(6px + env(safe-area-inset-bottom))}
  .kx-tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:56px;padding:4px 2px;border:0;border-radius:12px;background:transparent;color:var(--k-muted);font:700 .74rem/1.15 var(--k-font-body);text-align:center}
  .kx-tabbar svg{width:22px;height:22px}
  .kx-tabbar button[aria-current=page]{color:var(--k-blue-deep);background:var(--k-mark-soft);box-shadow:inset 0 -3px 0 var(--k-blue)}
  body[data-entry=workspace] #nav > button.kx-mirrored{display:none!important}
  body[data-entry=workspace] #nav .workspace-nav-title{display:none}
  body[data-entry=workspace] main{padding-bottom:150px}
  body[data-entry=workspace] .kx-dock{bottom:calc(84px + env(safe-area-inset-bottom))}
  .kx-dock .klas-help-trigger{padding:12px 14px;font-size:14px}
}

html body .entry-content .kx-method .kx-demo{background:var(--k-blue)!important;color:#fff!important;border:0!important;box-shadow:var(--k-ink-shadow)}

/* En-tête public sur téléphone : une seule ligne nette */
@media (max-width:560px){
  html body .entry-header{display:grid!important;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:14px 16px!important}
  html body .entry-header label{order:0!important;width:auto!important;font-size:0!important;margin:0!important}
  html body .entry-header select{width:92px!important;max-width:92px;padding-right:22px!important;min-height:44px;font-size:.85rem!important}
  html body .entry-header .secondary{margin:0!important;padding:8px 12px!important;font-size:.9rem}
  html body .entry-header-offers{order:5;grid-column:1/-1;justify-self:start;padding:0 4px!important;min-height:44px!important}
  body[data-entry=welcome] .entry-header-offers{display:none!important}
  .brand,.entry-brand{font-size:1.55rem!important}
}
body[data-entry=workspace] .course-seal{white-space:nowrap}
html body .entry-content .entry-world.secondary-world button{background:var(--k-mark)!important;color:var(--k-ink)!important;box-shadow:0 3px 0 #c9a400}
@media (max-width:560px){
  html body .entry-header > .entry-brand{grid-column:1;grid-row:1}
  html body .entry-header > label{grid-column:2;grid-row:1;gap:0!important}
  html body .entry-header > button.secondary{grid-column:3;grid-row:1}
  html body .entry-header > .entry-header-offers{grid-column:1/-1;grid-row:2}
}


/* ==========================================================================
   Ordre national : vert, rouge, jaune
   ========================================================================== */
html body::before{content:"";position:fixed;top:0;left:0;right:0;height:5px;background:var(--k-flag);z-index:1200;pointer-events:none}
.kx-pain-grid .kx-pain:nth-child(1) .kx-icon{background:var(--k-blue-soft);color:var(--k-blue)}
.kx-pain-grid .kx-pain:nth-child(2) .kx-icon{background:var(--k-red-soft);color:var(--k-red)}
.kx-pain-grid .kx-pain:nth-child(3) .kx-icon{background:var(--k-mark-soft);color:#7a6200}
.kx-pain-grid .kx-pain:nth-child(1){border-top:6px solid var(--k-blue)}
.kx-pain-grid .kx-pain:nth-child(2){border-top:6px solid var(--k-red)}
.kx-pain-grid .kx-pain:nth-child(3){border-top:6px solid var(--k-mark)}
.kx-steps .kx-step-num{background:var(--k-blue)!important;color:#fff;border-radius:50%;width:44px;height:44px}
.kx-steps li:nth-child(2) .kx-step-num{background:var(--k-red)!important}
.kx-steps li:nth-child(3) .kx-step-num{background:var(--k-mark)!important;color:var(--k-ink)}
.kx-who{color:var(--k-ink)}
.kx-fit-grid li:nth-child(4n+1) .kx-icon{background:var(--k-blue-soft);color:var(--k-blue)}
.kx-fit-grid li:nth-child(4n+2) .kx-icon{background:var(--k-red-soft);color:var(--k-red)}
.kx-fit-grid li:nth-child(4n+3) .kx-icon{background:var(--k-mark-soft);color:#7a6200}
.entry-world.primary-world{background:var(--k-mark)!important}

/* ==========================================================================
   Cartable de l'enseignant
   ========================================================================== */
.tk{display:flex;flex-direction:column;gap:18px}
.tk h1{margin:.1em 0 .15em;font-size:clamp(2rem,4vw,3rem)}
.tk h2{font-size:1.25rem;margin:0 0 12px}
.tk h3{font-size:1.02rem;margin:0 0 6px}
.tk .muted{color:var(--k-muted)}
.tk-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.tk-lead{margin:0;color:var(--k-muted);max-width:60ch}
.tk-head-actions,.tk-row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.tk button{border-radius:12px;font-weight:700;padding:10px 16px;min-height:44px;border:0;background:var(--k-blue);color:#fff;cursor:pointer;box-shadow:var(--k-ink-shadow)}
.tk button.secondary{background:#fff;color:var(--k-blue-deep);border:2px solid var(--k-blue);box-shadow:none}
.tk button.secondary:hover{background:var(--k-blue-soft)}
.tk button.tk-danger{background:transparent;color:var(--k-red);border:1.5px solid var(--k-red-soft);box-shadow:none}
.tk button.tk-x{min-width:44px;padding:0;font-size:1.3rem}
.tk-link{all:unset;display:flex;flex-direction:column;gap:2px;cursor:pointer;width:100%;padding:8px 10px;border-radius:10px;box-sizing:border-box}
.tk-link:hover,.tk-link:focus-visible{background:var(--k-blue-soft)}
.tk-link span{color:var(--k-muted);font-size:.9rem}
.tk-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.tk-kpi{background:#fff;border:1px solid var(--k-line);border-top:6px solid var(--k-blue);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:2px}
.tk-kpi:nth-child(2){border-top-color:var(--k-red)}
.tk-kpi:nth-child(3){border-top-color:var(--k-mark)}
.tk-kpi strong{font-family:var(--k-font-display);font-size:2rem;line-height:1.1;font-variant-numeric:tabular-nums}
.tk-kpi span{font-weight:700}
.tk-kpi small{color:var(--k-muted)}
.tk-kpi.warn{background:var(--k-mark-soft)}
.tk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tk-card{background:#fff;border:1px solid var(--k-line);border-radius:18px;padding:20px;min-width:0}
.tk-tasks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.tk-task{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--k-line)}
.tk-task:first-child{border-top:0}
.tk-task p{margin:2px 0 0;color:var(--k-muted);font-size:.93rem}
.tk-check{width:26px;height:26px;border-radius:50%;border:2px solid var(--k-line);background:#fff}
.tk-task.is-done .tk-check{border-color:var(--k-blue);background:var(--k-blue) var(--k-check) center/16px no-repeat;filter:none}
.tk-task.is-done .tk-check{background:var(--k-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/16px no-repeat}
.tk-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:2px}
.tk-list li{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tk-list li > div{display:flex;flex-direction:column;padding:6px 0}
.tk-list li > div span{color:var(--k-muted);font-size:.9rem}
.tk-date{font-weight:800;color:var(--k-red);white-space:nowrap;font-variant-numeric:tabular-nums}
.tk-mini-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:8px 0 12px}
.tk-mini-stats div{background:var(--k-paper);border-radius:12px;padding:10px 12px}
.tk-mini-stats strong{display:block;font-family:var(--k-font-display);font-size:1.4rem;font-variant-numeric:tabular-nums}
.tk-mini-stats span{color:var(--k-muted);font-size:.85rem}
.tk-hist{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;align-items:end;height:150px;margin:6px 0 14px}
.tk-bar{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.tk-bar span{width:100%;max-width:64px;border-radius:8px 8px 3px 3px;background:var(--k-red);min-height:3px}
.tk-bar.b1 span{background:#e98a94}.tk-bar.b2 span{background:#5fae96}.tk-bar.b3 span{background:var(--k-blue)}
.tk-bar b{font-variant-numeric:tabular-nums}
.tk-bar small{color:var(--k-muted);font-size:.78rem;white-space:nowrap}
/* Élèves */
.tk-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between}
.tk-search{display:flex;flex-direction:column;gap:4px;font-weight:700;min-width:min(320px,100%)}
.tk-search input,.tk input,.tk select,.tk textarea{border:1.5px solid var(--k-line);border-radius:10px;padding:10px 12px;font:inherit;background:#fff;min-height:44px;box-sizing:border-box;width:100%}
.tk-chips{display:flex;flex-wrap:wrap;gap:6px}
.tk .tk-chips button{background:#fff;color:var(--k-ink);border:1.5px solid var(--k-line);box-shadow:none;padding:8px 14px;border-radius:999px;font-weight:700}
.tk .tk-chips button[aria-pressed=true]{background:var(--k-ink);color:#fff;border-color:var(--k-ink)}
.tk-table{display:flex;flex-direction:column;gap:6px}
.tk-student{background:#fff;border:1px solid var(--k-line);border-radius:14px}
.tk-student summary{display:grid;grid-template-columns:minmax(120px,1.4fr) 90px 70px 120px minmax(0,2fr);gap:12px;align-items:center;padding:12px 16px;cursor:pointer;list-style:none}
.tk-student summary::-webkit-details-marker{display:none}
.tk-student[open]{border-color:var(--k-blue);box-shadow:var(--k-shadow)}
.tk-name{font-weight:800}
.tk-avg{font-weight:800;font-variant-numeric:tabular-nums}
.tk-avg.low,.tk-results td.low{color:var(--k-red)}
.tk-avg.high,.tk-results td.high{color:var(--k-blue)}
.tk-abs{color:var(--k-muted);font-variant-numeric:tabular-nums}
.tk-last{color:var(--k-muted);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tk-status{font-size:.8rem;font-weight:800;padding:4px 10px;border-radius:999px;justify-self:start;background:var(--k-paper);color:var(--k-muted)}
.tk-status.s-suivre{background:var(--k-red-soft);color:var(--k-red)}
.tk-status.s-progres{background:var(--k-mark-soft);color:#6b5600}
.tk-status.s-felicitations{background:var(--k-blue-soft);color:var(--k-blue-deep)}
.tk-student-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:20px;padding:4px 16px 18px;border-top:1px solid var(--k-line)}
.tk-student-col{display:flex;flex-direction:column;gap:10px;padding-top:12px}
.tk-student-col label{display:flex;flex-direction:column;gap:4px;font-weight:700}
.tk-marks,.tk-notes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.tk-marks li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px dashed var(--k-line);padding-bottom:4px}
.tk-notes li{background:var(--k-paper);border-radius:10px;padding:8px 10px}
.tk-notes small{display:block;color:var(--k-red);font-weight:700}
.tk-note-form{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:8px}
.tk-add summary{font-weight:800;cursor:pointer;font-family:var(--k-font-display);font-size:1.08rem}
.tk-add[open] summary{margin-bottom:12px}
.tk-add textarea{margin-bottom:10px}
/* Appel */
.tk-appel{border:2px solid var(--k-blue)}
.tk-appel-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}
.tk-appel-head label{display:flex;flex-direction:column;gap:4px;font-weight:700;max-width:200px}
.tk-appel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px;margin:12px 0}
.tk .tk-pupil{background:#fff;color:var(--k-ink);border:2px solid var(--k-line);box-shadow:none;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;min-height:58px}
.tk .tk-pupil small{color:var(--k-blue);font-weight:700}
.tk .tk-pupil.is-absent{background:var(--k-red-soft);border-color:var(--k-red)}
.tk .tk-pupil.is-absent small{color:var(--k-red)}
.tk-appel-foot{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tk-appel-foot b{margin-right:auto;font-size:1.1rem}
/* Évaluations */
.tk-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end}
.tk-form label{display:flex;flex-direction:column;gap:4px;font-weight:700}
.tk-form .tk-wide{grid-column:span 2}
.tk-evals{display:flex;flex-direction:column;gap:12px}
.tk-eval{background:#fff;border:1px solid var(--k-line);border-radius:18px;padding:18px 20px}
.tk-eval h3{font-size:1.15rem;margin:8px 0 4px}
.tk-eval p{margin:0 0 10px;color:var(--k-muted)}
.tk-eval-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tk-eval-stats b{color:var(--k-ink)}
.tk-badge{font-size:.78rem;font-weight:800;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}
.tk-badge.ok{background:var(--k-blue-soft);color:var(--k-blue-deep)}
.tk-badge.warn{background:var(--k-red-soft);color:var(--k-red)}
.tk-badge.plan{background:var(--k-mark-soft);color:#6b5600}
.tk-grade{margin-top:14px;padding-top:14px;border-top:1px dashed var(--k-line)}
.tk-grade-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 16px;margin:10px 0 14px}
.tk-grade-grid label{display:grid;grid-template-columns:minmax(0,1fr) 84px;gap:8px;align-items:center;font-weight:600}
.tk-grade-grid input{text-align:center;font-weight:800;font-variant-numeric:tabular-nums}
.tk-grade-grid input:invalid{border-color:var(--k-red);background:var(--k-red-soft)}
.tk-results-panel{margin-top:14px;padding-top:14px;border-top:1px dashed var(--k-line)}
.tk-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tk-two h4{margin:0 0 4px}
.tk-scroll{overflow-x:auto;margin:10px 0}
.tk-results{border-collapse:collapse;width:100%;min-width:520px}
.tk-results th,.tk-results td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--k-line);vertical-align:middle}
.tk-results th{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--k-muted)}
.tk-results td:nth-child(2),.tk-results td:nth-child(3){font-variant-numeric:tabular-nums;font-weight:700}
.tk-results input{min-height:38px!important;padding:6px 10px!important}
/* Année */
.tk-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.tk-period-head{display:flex;justify-content:space-between;align-items:baseline}
.tk-period-head span{font-weight:800;color:var(--k-muted);font-variant-numeric:tabular-nums}
.tk-progress{height:10px;border-radius:999px;background:var(--k-paper);overflow:hidden;margin-bottom:12px}
.tk-progress span{display:block;height:100%;background:var(--k-flag);background-size:300px 100%;border-radius:999px}
.tk-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.tk-lessons li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 10px;align-items:center;padding:10px 0;border-top:1px solid var(--k-line)}
.tk-lessons li:first-child{border-top:0}
.tk-lesson-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.tk-lesson-check input{width:22px!important;min-height:22px!important;height:22px;margin-top:3px;accent-color:var(--k-blue);flex:none}
.tk-lesson-check small{display:block;color:var(--k-muted)}
.tk-lessons li.is-done b{text-decoration:line-through;text-decoration-color:var(--k-red);text-decoration-thickness:2px}
.tk-homework{grid-column:1/-1;min-height:40px!important}
/* Familles */
.tk-family{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px}
.tk-family label{display:flex;flex-direction:column;gap:4px;font-weight:700;margin-top:12px}
.tk-chips-wrap{margin-bottom:6px}
.tk-privacy{background:var(--k-mark-soft);border-radius:10px;padding:10px 12px;margin:14px 0 0;font-size:.93rem}
.tk-msg textarea{font-family:var(--k-font-body);line-height:1.5}
.tk-wa{display:inline-flex;align-items:center;min-height:44px;padding:10px 16px;border-radius:12px;border:2px solid #25d366;color:#0f5132;font-weight:800;text-decoration:none;background:#fff}
.tk-wa:hover{background:#e9fbef}
@media (max-width:1000px){.tk-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tk-form{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){
  .tk-grid,.tk-periods,.tk-family,.tk-student-body,.tk-two{grid-template-columns:minmax(0,1fr)}
  .tk-student summary{grid-template-columns:minmax(0,1fr) auto auto;row-gap:4px}
  .tk-student summary .tk-status{grid-column:1}
  .tk-student summary .tk-last{grid-column:1/-1}
}
@media (max-width:560px){
  .tk-form{grid-template-columns:minmax(0,1fr)}.tk-form .tk-wide{grid-column:auto}
  .tk-note-form{grid-template-columns:minmax(0,1fr)}
  .tk-task{grid-template-columns:auto minmax(0,1fr)}.tk-task > :last-child:not(div){grid-column:2}
  .tk-kpi strong{font-size:1.6rem}
  .tk-head-actions{width:100%}.tk-head-actions button{flex:1}
}
.tk .tk-link{background:transparent!important;color:var(--k-ink)!important;box-shadow:none!important;border:0!important;min-height:0;padding:8px 10px!important;text-align:left;font-weight:400}
.tk .tk-link:hover,.tk .tk-link:focus-visible{background:var(--k-blue-soft)!important}
.tk .tk-link b{font-weight:800}
.tk button.tk-danger{box-shadow:none!important}
.tk .tk-chips button,.tk .tk-pupil{box-shadow:none!important}

/* ==========================================================================
   DA premium · « École vivante »
   Surfaces nettes, profondeur douce, couleurs nationales en accents.
   Le caractère ludique monte ou descend selon l'âge (data-motion).
   ========================================================================== */
:root{--k-surface:#f7f6f1;--k-elev:0 1px 0 rgba(16,35,28,.04),0 14px 34px -16px rgba(16,35,28,.18);--k-elev-hover:0 1px 0 rgba(16,35,28,.04),0 22px 44px -18px rgba(16,35,28,.26);--k-ease:cubic-bezier(.2,.8,.2,1);--k-spring:cubic-bezier(.34,1.56,.64,1)}
html body{background-color:var(--k-surface)!important;background-image:radial-gradient(rgba(16,35,28,.055) 1px,transparent 1.2px)!important;background-size:22px 22px!important;background-attachment:fixed!important}
html body[data-entry=workspace]{background-image:radial-gradient(900px 420px at 105% -8%,rgba(252,209,22,.13),transparent 62%),radial-gradient(760px 420px at -8% 108%,rgba(0,122,94,.09),transparent 62%),radial-gradient(rgba(16,35,28,.045) 1px,transparent 1.2px)!important;background-size:auto,auto,22px 22px!important}
.tk-card,.tk-eval,.tk-kpi,.tk-student,.kx-pain,.kx-track,.kx-method,.entry-role-card{border-color:rgba(16,35,28,.08)!important;box-shadow:var(--k-elev)!important;border-radius:20px}
.tk-card,.tk-eval,.tk-kpi,.kx-pain,.kx-track,.entry-role-card{transition:transform .25s var(--k-ease),box-shadow .25s var(--k-ease)}
.kx-pain:hover,.kx-track:hover,.fk-learner:hover,.tk-kpi:hover{transform:translateY(-3px);box-shadow:var(--k-elev-hover)!important}
.tk button,.entry-content button,.kx-dock button{transition:transform .15s var(--k-ease),box-shadow .15s var(--k-ease),background-color .2s}
.tk button:not(.secondary):not(.tk-danger):not(.tk-link):not(.tk-pupil):not(.fk-mood-btn),.entry-content button:not(.secondary):not(.entry-link):not(.entry-role):not([data-billing-period]):not(.entry-header-offers){background-image:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0))!important}
.tk button:hover{transform:translateY(-1px)}
.tk button:active{transform:translateY(1px) scale(.98)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tk-kpi{border-top-width:4px!important;position:relative;overflow:hidden}
.tk-kpi::after{content:"";position:absolute;right:-24px;top:-24px;width:84px;height:84px;border-radius:50%;background:currentColor;opacity:.04}

/* Apparitions */
@keyframes kx-fade{from{opacity:0;transform:translateY(var(--kx-y,10px))}to{opacity:1;transform:none}}
@keyframes kx-bounce{0%{opacity:0;transform:translateY(18px) scale(.94)}60%{opacity:1;transform:translateY(-3px) scale(1.015)}100%{transform:none}}
.kx-in{animation:kx-fade .5s var(--k-ease) both;animation-delay:calc(var(--kx-i,0) * 55ms)}
body[data-motion=play] .kx-in{animation:kx-bounce .65s var(--k-spring) both;animation-delay:calc(var(--kx-i,0) * 70ms)}
body[data-motion=focus] .kx-in,body[data-motion=pro] .kx-in{--kx-y:6px;animation-duration:.35s;animation-delay:calc(var(--kx-i,0) * 35ms)}
/* Confettis et petites victoires */
.kx-confetti{position:fixed;inset:0;pointer-events:none;z-index:3000}
.kx-confetti i{position:fixed;width:8px;height:12px;border-radius:2px;transform:translate(-50%,-50%);animation:kx-burst 1.15s cubic-bezier(.15,.7,.3,1) forwards}
.kx-confetti i.star{width:16px;height:16px;border-radius:0;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
@keyframes kx-burst{0%{opacity:1;transform:translate(-50%,-50%) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy) + 80px)) rotate(var(--r))}}
@keyframes kx-pop{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}
.kx-pop{animation:kx-pop .4s var(--k-spring)}

/* Paliers : le primaire joue, le lycée se concentre */
body[data-motion=play] .tk-card,body[data-motion=play] .tk-kpi{border-radius:26px}
body[data-motion=play] .tk button{border-radius:999px!important}
body[data-motion=play] .tk h1::after{content:"";display:inline-block;width:.5em;height:.5em;margin-left:.25em;background:var(--k-mark);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);animation:kx-twinkle 2.6s ease-in-out infinite;vertical-align:.1em}
@keyframes kx-twinkle{0%,100%{transform:rotate(0) scale(1)}50%{transform:rotate(18deg) scale(1.2)}}
body[data-motion=focus] .tk-card,body[data-motion=focus] .tk-kpi,body[data-motion=focus] .tk-eval{border-radius:14px}
body[data-motion=focus] .tk button{border-radius:10px!important}
body[data-motion=focus] .tk-kpi{border-top-color:var(--k-ink)!important}
body[data-motion=focus] .tk-kpi:nth-child(2){border-top-color:var(--k-blue)!important}
body[data-motion=pro] .tk-card,body[data-motion=pro] .tk-kpi{border-radius:16px}

/* ==========================================================================
   Kits Parent · Élève · Accompagnateur
   ========================================================================== */
.fk-streak{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 24px;align-items:center}
.fk-streak > p{grid-column:1/-1;margin:0}
.fk-streak-n{display:flex;align-items:center;gap:12px}
.fk-streak-n strong{font-family:var(--k-font-display);font-size:2.6rem;line-height:1;display:block}
.fk-streak-n span{color:var(--k-muted);font-weight:700}
.fk-flame{width:38px;height:48px;background:radial-gradient(60% 55% at 50% 70%,#fcd116 0 45%,transparent 46%),linear-gradient(180deg,#ce1126,#f07a1a 60%,#fcd116);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;clip-path:polygon(50% 0,80% 30%,100% 60%,85% 92%,50% 100%,15% 92%,0 60%,20% 30%);transform-origin:50% 100%}
body[data-motion=play] .fk-flame,body[data-motion=lively] .fk-flame{animation:kx-flicker 1.6s ease-in-out infinite}
@keyframes kx-flicker{0%,100%{transform:scale(1) rotate(-2deg)}50%{transform:scale(1.06,1.1) rotate(2deg)}}
.fk-week{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;max-width:420px;justify-self:end;width:100%}
.fk-week li{display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:800;font-size:.8rem;color:var(--k-muted)}
.fk-week i{width:34px;height:34px;border-radius:50%;border:2px dashed rgba(16,35,28,.18);display:grid;place-items:center}
.fk-week li.on i{border:0;background:var(--k-blue) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M5 13l4 4L19 7' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.fk-week li.today i{outline:3px solid var(--k-mark);outline-offset:2px}
.fk-week li.today span{color:var(--k-red)}
body[data-motion=focus] .fk-week i{border-radius:8px}
/* Rituel */
.fk-ritual-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}
.fk-ritual-head h2{margin:4px 0 0}
.fk-steps{list-style:none;margin:16px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.fk-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;padding:12px;border-radius:14px;transition:background-color .3s}
.fk-steps li.is-current{background:var(--k-mark-soft);box-shadow:inset 4px 0 0 var(--k-mark)}
.fk-steps li.is-done h3{color:var(--k-muted);text-decoration:line-through;text-decoration-color:var(--k-blue)}
.fk-steps h3{margin:4px 0 2px;font-size:1.05rem}
.fk-steps p{margin:4px 0 0}
.fk-step-n{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;background:#fff;border:2px solid rgba(16,35,28,.15)}
.fk-steps li.is-current .fk-step-n{background:var(--k-ink);color:#fff;border-color:var(--k-ink)}
.fk-steps li.is-done .fk-step-n{background:var(--k-blue);color:#fff;border-color:var(--k-blue)}
.fk-ring{width:var(--s,96px);height:var(--s,96px);position:relative;flex:none}
.fk-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.fk-ring circle{fill:none;stroke-width:8}
.fk-ring .bg{stroke:rgba(16,35,28,.08)}
.fk-ring .fg{stroke:var(--k-blue);stroke-linecap:round;transition:stroke-dashoffset .5s linear}
.fk-ring b{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--k-font-display);font-size:calc(var(--s,96px) * .22);font-variant-numeric:tabular-nums}
.fk-ring.is-running .fg{stroke:url(#none);stroke:var(--k-red)}
body[data-motion=play] .fk-ring.is-running{animation:kx-breathe 2s ease-in-out infinite}
@keyframes kx-breathe{50%{transform:scale(1.04)}}
.fk-mood-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tk .fk-mood-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:#fff!important;color:var(--k-ink)!important;border:2px solid rgba(16,35,28,.1)!important;box-shadow:none!important;padding:12px 6px!important;border-radius:18px!important;font-size:.85rem}
.tk .fk-mood-btn span{font-size:2rem;line-height:1}
.tk .fk-mood-btn:hover{border-color:var(--k-mark)!important;transform:translateY(-3px) rotate(-2deg)}
.fk-ritual.is-done{background:linear-gradient(135deg,#fff 40%,var(--k-mark-soft))}
.fk-ritual-done{display:flex;gap:16px;align-items:center;margin-bottom:12px}
.fk-ritual-done h2{margin:0 0 4px}
.fk-ritual-done p{margin:0}
.fk-medal{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;font-size:2rem;color:#fff;background:conic-gradient(var(--k-blue) 0 33%,var(--k-red) 0 66%,var(--k-mark) 0);flex:none;box-shadow:inset 0 0 0 6px rgba(255,255,255,.55)}
body[data-motion=play] .fk-medal{animation:kx-bounce .8s var(--k-spring)}
/* Devoirs */
.fk-todo{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column}
.fk-todo li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--k-line)}
.fk-todo li:first-child{border-top:0}
.fk-todo label{display:flex;gap:10px;align-items:flex-start;cursor:pointer;min-width:0}
.fk-todo input{width:22px;height:22px;min-height:22px!important;flex:none;margin-top:2px;accent-color:var(--k-blue)}
.fk-todo b{margin-right:4px}
.fk-todo li.is-done span{color:var(--k-muted);text-decoration:line-through}
.fk-due{font-size:.82rem;font-weight:800;color:var(--k-muted);white-space:nowrap}
.fk-todo li.is-late .fk-due{color:var(--k-red)}
.fk-count{display:inline-grid;place-items:center;min-width:26px;height:26px;border-radius:999px;background:var(--k-paper);font-size:.85rem;margin-left:6px;vertical-align:middle}
.fk-plan{list-style:none;margin:10px 0 0;padding:0 0 0 14px;border-left:3px solid var(--k-mark);display:flex;flex-direction:column;gap:8px}
.fk-plan li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px}
.fk-plan time{font-weight:800;color:var(--k-red);font-size:.85rem}
.fk-form2{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.fk-form2 .tk-wide{grid-column:1/-1!important}
/* Barres de notes */
.fk-bars{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:10px}
.fk-bars li{display:grid;grid-template-columns:minmax(90px,1fr) 2fr 44px;gap:10px;align-items:center}
.fk-bars span{font-weight:700;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fk-bars b{text-align:right;font-variant-numeric:tabular-nums}
.fk-bar{height:12px;border-radius:999px;background:rgba(16,35,28,.07);overflow:hidden}
.fk-bar i{display:block;height:100%;width:var(--w);border-radius:999px;animation:kx-grow .9s var(--k-ease) both}
.fk-bar i.low{background:var(--k-red)}.fk-bar i.mid{background:var(--k-mark)}.fk-bar i.high{background:var(--k-blue)}
@keyframes kx-grow{from{width:0}}
.tk-marks b.low{color:var(--k-red)}.tk-marks b.high{color:var(--k-blue)}
.fk-goal-in{display:flex;align-items:center;gap:8px;font-weight:700}
.fk-goal-in input{max-width:110px;font-size:1.3rem!important;font-weight:800;text-align:center}
.fk-goal-res{font-size:1.05rem;margin:12px 0 0}
/* Réviser */
.fk-focus{display:flex;flex-direction:column;gap:12px}
.fk-focus label{display:flex;flex-direction:column;gap:4px;font-weight:700}
.fk-focus-ring{display:grid;place-items:center;padding:8px 0}
.fk-center{justify-content:center}
.fk-focus-count{text-align:center;color:var(--k-muted);margin:0}
.fk-exam-n{display:flex;align-items:baseline;gap:10px;margin:6px 0 12px}
.fk-exam-n strong{font-family:var(--k-font-display);font-size:3.2rem;line-height:1;color:var(--k-red)}
.fk-exam label,.fk-month{display:flex;flex-direction:column;gap:4px;font-weight:700}
/* Accompagnateur */
.fk-learner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.fk-learner{display:flex;flex-direction:column;gap:12px}
.fk-learner-top{display:flex;gap:12px;align-items:center}
.fk-learner-top h3{margin:0}
.fk-learner-top small{color:var(--k-muted)}
.fk-avatar{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:1.2rem;background:#fff;box-shadow:0 0 0 3px #fff,0 0 0 6px transparent;border:3px solid transparent;background-image:linear-gradient(#fff,#fff),conic-gradient(var(--k-blue) 0 33%,var(--k-red) 0 66%,var(--k-mark) 0);background-origin:border-box;background-clip:padding-box,border-box;flex:none}
.fk-progress-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--k-paper);border-radius:12px;padding:10px 12px}
.fk-progress-line b{font-variant-numeric:tabular-nums}
.fk-delta{margin-left:auto;font-weight:800;padding:2px 10px;border-radius:999px}
.fk-delta.up{background:var(--k-blue-soft);color:var(--k-blue-deep)}
.fk-delta.down{background:var(--k-red-soft);color:var(--k-red)}
.fk-log{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.fk-log li{display:grid;grid-template-columns:70px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--k-line)}
.fk-log li:first-child{border-top:0}
.fk-log time{font-weight:800;color:var(--k-red)}
.fk-log small{display:block;color:var(--k-muted)}
.fk-paid{display:flex;gap:8px;align-items:center;font-weight:700;cursor:pointer}
.fk-paid input{width:22px;height:22px;min-height:22px!important;accent-color:var(--k-blue)}
@media (max-width:860px){.fk-streak{grid-template-columns:minmax(0,1fr)}.fk-week{justify-self:stretch;max-width:none}}
@media (max-width:560px){.fk-form2{grid-template-columns:minmax(0,1fr)!important}.fk-ritual-head{flex-direction:column}.fk-mood-row{grid-template-columns:repeat(2,minmax(0,1fr))}.fk-week i{width:30px;height:30px}}
@media (prefers-reduced-motion:reduce){.fk-flame,.fk-ring,.tk h1::after,.fk-bar i{animation:none!important}}

/* ==========================================================================
   Bandeaux : un seul en-tête léger au-dessus de chaque écran
   ========================================================================== */
body[data-kit=on] #audience-context,
body[data-kit=on] .staff-role-label,
body[data-kit=on] .class-assessment-callout,
body[data-kit=on] .staff-banner,
body[data-kit=on] .entry-workspace-art{display:none!important}
body[data-entry=workspace] #workspace-identity{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 8px;font-size:.88rem;color:var(--k-muted)}
body[data-entry=workspace] #workspace-identity b,body[data-entry=workspace] #workspace-identity strong{color:var(--k-ink)}
body[data-entry=workspace] #save-status{display:inline-flex!important;align-items:center;gap:8px;width:auto!important;max-width:100%;margin:0 0 14px!important;padding:6px 12px!important;border:0!important;border-radius:999px!important;background:var(--k-mark-soft)!important;font-size:.82rem!important;line-height:1.35;box-shadow:none!important}
body[data-entry=workspace] #save-status::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--k-mark);flex:none;box-shadow:0 0 0 3px rgba(252,209,22,.3)}
body[data-entry=workspace] .family-perspective{display:flex!important;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:8px 8px 8px 16px!important;margin:0 0 12px!important;border-radius:16px!important;background:#fff!important;border:1px solid rgba(16,35,28,.08)!important;box-shadow:var(--k-elev)!important}
body[data-entry=workspace] .family-perspective p{margin:0;font-size:.92rem;color:var(--k-muted)}
body[data-entry=workspace] .family-perspective button{min-height:44px!important;padding:8px 14px!important;border-radius:999px!important;font-size:.9rem!important}

/* Corrections issues de l'audit */
.entry-kicker,.eyebrow{font-size:max(.78rem,12.5px)!important}
.entry-footer a,.legal-links a,footer nav a{display:inline-flex;align-items:center;min-height:44px}
.entry-brand,.brand{display:inline-flex;align-items:center;min-height:44px}
html body .entry-content .entry-world.secondary-world .entry-world-meta span,html body .entry-content .entry-world.secondary-world .entry-world-meta small{color:#fff!important}
.fk-name{font-size:1.1rem;margin:0}
.kx-skip-nav{position:absolute;left:0;top:0}
@media (max-width:560px){body[data-entry=welcome] .entry-header-offers{display:inline-flex!important}}
.tk-scroll{position:relative}
.sr{left:0;top:0}
.tk-eval-title{font-size:1.15rem;margin:8px 0 4px}
html body .entry-content .entry-world.secondary-world .entry-world-meta > *{opacity:1!important}
.entry-header-offers{min-height:44px!important}
@media (max-width:760px){html body .entry-header label{font-size:.85rem!important}html body .entry-header .kx-lang-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}
.entry-offer-label{font-size:max(.8rem,12.5px)!important}
.entry-world-meta span,.entry-world-meta small,.entry-world-badges b{font-size:max(.78rem,12.5px)!important}
.brand small{font-size:12px!important}
.language-choice,.language-choice select,#ui-language,#entry-language{font-size:max(.8rem,12.5px)!important;min-height:44px}
.kx-tabbar button{font-size:12px!important}
#mode,.pill{min-height:44px!important}.workspace-nav-title,.rail-nav-heading{font-size:12px!important}
html body .entry-header .secondary,html body .entry-header button{min-height:44px!important}
.primary-level-guide a{display:inline-flex;align-items:center;min-height:44px}
body[data-entry=workspace] main > header{margin-bottom:4px!important;padding-bottom:12px!important}body[data-entry=workspace] #workspace-identity{margin-top:0!important;padding-top:0!important}

/* ==========================================================================
   Assistant IA « Le relais »
   ========================================================================== */
.ai-spark{display:inline-block;width:16px;height:16px;flex:none;background:conic-gradient(from 45deg,var(--k-blue),var(--k-red),var(--k-mark),var(--k-blue));clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.kx-dock .ai-fab{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:12px 18px;border-radius:999px;border:2px solid #fff;background:var(--k-ink);color:#fff;font:700 15px/1 var(--k-font-body);box-shadow:0 8px 24px rgba(20,27,46,.28);cursor:pointer}
.kx-dock .ai-fab .ai-spark{width:18px;height:18px}
body[data-motion=play] .kx-dock .ai-fab .ai-spark,body[data-motion=lively] .kx-dock .ai-fab .ai-spark{animation:kx-twinkle 3s ease-in-out infinite}
.tk .ai-inline,.ai-mini{display:inline-flex;align-items:center;gap:8px;background:var(--k-ink)!important;color:#fff!important;box-shadow:none!important}
.ai-mini{margin-top:10px;min-height:40px;padding:8px 14px;border:0;border-radius:999px;font:700 .88rem/1.2 var(--k-font-body);cursor:pointer}
.ai-scrim{position:fixed;inset:0;z-index:2500;background:rgba(16,23,20,.42);display:flex;justify-content:flex-end;backdrop-filter:blur(2px)}
.ai-scrim[hidden]{display:none}
.ai-panel{width:min(560px,100%);height:100%;background:var(--k-surface,#f7f6f1);display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.2);animation:ai-in .35s var(--k-ease,ease) both}
@keyframes ai-in{from{transform:translateX(40px);opacity:0}}
body.ai-open{overflow:hidden}
.ai-head{display:flex;align-items:center;gap:12px;padding:16px 18px;background:#fff;border-bottom:1px solid var(--k-line);position:relative}
.ai-head::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--k-flag)}
.ai-head h2{margin:0;font-size:1.2rem}
.ai-head p{margin:2px 0 0;font-size:.85rem;color:var(--k-muted)}
.ai-logo{width:40px;height:40px;border-radius:12px;background:var(--k-ink);display:grid;place-items:center}
.ai-logo span{width:20px;height:20px;background:conic-gradient(from 45deg,#00a37d,#ff4d5e,#fcd116,#00a37d);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%)}
.ai-demo-tag{color:#6b5600;background:var(--k-mark-soft);padding:1px 8px;border-radius:999px}
.ai-x{margin-left:auto;width:44px;height:44px;border-radius:50%;border:0;background:var(--k-paper);font-size:1.5rem;cursor:pointer}
.ai-body{overflow-y:auto;padding:16px 18px 40px;display:flex;flex-direction:column;gap:16px}
.ai-ask{background:#fff;border:1px solid var(--k-line);border-radius:20px;padding:16px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--k-elev)}
.ai-tasks{display:flex;flex-wrap:wrap;gap:6px}
.ai-tasks button{min-height:40px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--k-line);background:#fff;font:700 .88rem/1.2 var(--k-font-body);color:var(--k-ink);cursor:pointer}
.ai-tasks button[aria-pressed=true]{background:var(--k-blue);border-color:var(--k-blue);color:#fff}
.ai-field{display:flex;flex-direction:column;gap:4px;font-weight:700;font-size:.92rem}
.ai-field input,.ai-field textarea,.ai-method textarea{border:1.5px solid var(--k-line);border-radius:12px;padding:10px 12px;font:inherit;font-weight:400;background:#fff;width:100%;box-sizing:border-box}
.ai-field textarea:focus,.ai-field input:focus{border-color:var(--k-blue)}
.ai-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ai-tool{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:72px;padding:8px;border-radius:14px;border:1.5px dashed rgba(16,35,28,.2);background:var(--k-paper);font:700 .82rem/1.2 var(--k-font-body);color:var(--k-ink);cursor:pointer;text-align:center}
.ai-tool svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-tool:hover{border-color:var(--k-blue);color:var(--k-blue-deep)}
.ai-tool.is-on{border-style:solid;border-color:var(--k-red);background:var(--k-red-soft);color:var(--k-red)}
.ai-tool.is-on svg{animation:ai-pulse 1s ease-in-out infinite}
@keyframes ai-pulse{50%{transform:scale(1.18)}}
.ai-thumbs{display:flex;gap:8px;flex-wrap:wrap}
.ai-thumbs figure{position:relative;margin:0}
.ai-thumbs img{width:96px;height:72px;object-fit:cover;border-radius:10px;border:1px solid var(--k-line)}
.ai-thumbs button{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;border:0;background:var(--k-ink);color:#fff;cursor:pointer}
.ai-method summary{cursor:pointer;font-weight:700;font-size:.9rem;color:var(--k-blue-deep);min-height:32px}
.ai-privacy{margin:0;font-size:.82rem;color:var(--k-muted)}
.ai-send{min-height:52px;border:0;border-radius:14px;background:var(--k-blue);color:#fff;font:800 1rem/1 var(--k-font-body);box-shadow:var(--k-ink-shadow);cursor:pointer}
.ai-send:disabled{opacity:.7;cursor:progress}
.ai-intro{background:#fff;border-radius:18px;padding:14px 16px;border:1px dashed var(--k-line)}
.ai-intro ul{margin:6px 0 0;padding-left:18px;color:var(--k-muted)}
.ai-loading{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px;color:var(--k-muted);text-align:center}
.ai-loading span{display:inline-block;width:12px;height:12px;border-radius:50%;margin:0 4px;animation:ai-dot 1.1s ease-in-out infinite}
.ai-loading span:nth-child(1){background:var(--k-blue)}.ai-loading span:nth-child(2){background:var(--k-red);animation-delay:.15s}.ai-loading span:nth-child(3){background:var(--k-mark);animation-delay:.3s}
.ai-loading{flex-direction:row;flex-wrap:wrap;justify-content:center}.ai-loading p{flex-basis:100%;margin:6px 0 0}
@keyframes ai-dot{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-8px);opacity:1}}
.ai-result{display:flex;flex-direction:column;gap:12px}
.ai-title{font-size:1.25rem;margin:4px 0 0}
.ai-demo-note{margin:0;background:var(--k-mark-soft);border-radius:12px;padding:10px 12px;font-size:.88rem}
.ai-card{background:#fff;border:1px solid var(--k-line);border-radius:18px;padding:14px 16px;box-shadow:var(--k-elev);animation:kx-fade .4s var(--k-ease,ease) both}
.ai-card header{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.ai-card h3{margin:0;font-size:1.02rem;flex:1}
.ai-card p{margin:6px 0}
.ai-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--k-paper);font-size:1.1rem}
.ai-card.core{border-left:5px solid var(--k-blue)}
.ai-card.way.w0{border-left:5px solid var(--k-blue)}.ai-card.way.w1{border-left:5px solid var(--k-red)}.ai-card.way.w2{border-left:5px solid var(--k-mark)}
.ai-card.read{background:var(--k-paper)}
.ai-speak{width:40px;height:40px;border-radius:50%;border:0;background:var(--k-blue-soft);color:var(--k-blue-deep);display:grid;place-items:center;cursor:pointer}
.ai-speak svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ai-list{margin:4px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.ai-list details summary{cursor:pointer;color:var(--k-blue-deep);font-weight:700;min-height:32px;display:flex;align-items:center}
.ai-steps{list-style:none;margin:0;padding:0 0 0 16px;border-left:3px solid var(--k-mark);display:flex;flex-direction:column;gap:10px}
.ai-steps time{margin-left:8px;font-size:.8rem;font-weight:800;color:var(--k-red)}
.ai-caution{margin:0;background:var(--k-red-soft);color:#7a1020;border-radius:12px;padding:10px 12px;font-size:.9rem}
.ai-follow{display:flex;flex-wrap:wrap;gap:8px}
.ai-follow button,.ai-follow a{min-height:44px;padding:8px 14px;border-radius:999px;border:1.5px solid var(--k-blue);background:#fff;color:var(--k-blue-deep);font:700 .9rem/1.2 var(--k-font-body);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.ai-follow .ai-primary{background:var(--k-blue);color:#fff}
.ai-follow .ai-wa{border-color:#25d366;color:#0f5132}
.ai-foot{margin:0;font-size:.8rem;color:var(--k-muted)}
.ai-pad{position:fixed;inset:0;z-index:2600;background:rgba(16,23,20,.6);display:grid;place-items:center;padding:16px}
.ai-pad-box{background:#fff;border-radius:20px;padding:16px;width:min(920px,100%);display:flex;flex-direction:column;gap:10px}
.ai-pad-box p{margin:0;font-weight:700}
.ai-pad canvas{width:100%;height:auto;aspect-ratio:900/560;border-radius:12px;border:1.5px solid var(--k-line);touch-action:none;cursor:crosshair}
.ai-pad-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.ai-pad-actions button{min-height:44px;padding:10px 16px;border-radius:12px;border:0;background:var(--k-blue);color:#fff;font-weight:700;cursor:pointer}
.ai-pad-actions .secondary{background:#fff;color:var(--k-ink);border:1.5px solid var(--k-line)}
@media (max-width:640px){
  .ai-scrim{align-items:flex-end}
  .ai-panel{height:92vh;width:100%;border-radius:22px 22px 0 0;animation-name:ai-up}
  @keyframes ai-up{from{transform:translateY(60px);opacity:0}}
  .kx-dock .ai-fab span:last-child{display:none}.kx-dock .ai-fab{padding:12px 14px}
}
@media (prefers-reduced-motion:reduce){.ai-panel,.ai-card,.ai-loading span,.ai-tool.is-on svg,.ai-fab .ai-spark{animation:none!important}}
.ai-panel .ai-x{color:var(--k-ink)!important;background:var(--k-paper)!important;box-shadow:none!important;padding:0!important;min-height:44px}
.ai-card header{border:0!important;padding:0!important;margin:0 0 6px!important;background:none!important;min-height:0!important;position:static!important;box-shadow:none!important}
.ai-head{margin:0!important}
.ai-tools .ai-tool{margin:0!important;height:100%;box-sizing:border-box}
.ai-panel button{box-shadow:none}
.ai-panel .ai-send{box-shadow:var(--k-ink-shadow)}
.ai-card > header{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;width:auto!important;max-width:none!important;grid-template-columns:none!important}.ai-card > header .ai-ic{flex:none}.ai-card > header h3{text-align:left}
.ai-result .ai-card{display:block!important;grid-template-columns:none!important}
.tk .ai-inline-sm,.ai-inline-sm{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px!important;border-radius:999px!important;border:0!important;background:var(--k-ink)!important;color:#fff!important;font:700 .88rem/1.2 var(--k-font-body);box-shadow:none!important;cursor:pointer}
.ai-tag{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--k-blue-soft);color:var(--k-blue-deep);font-weight:800;font-size:.72rem}
.ai-groups{display:flex;flex-direction:column;gap:10px}
.ai-group > span{display:block;font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--k-red);margin-bottom:6px}
.ai-data{margin:0;background:var(--k-blue-soft);color:var(--k-blue-deep);border-radius:12px;padding:8px 12px;font-size:.86rem;font-weight:700}
.ai-pupils{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.ai-pupils li{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:10px;padding:8px 0;border-top:1px solid var(--k-line)}
.ai-pupils li:first-child{border-top:0}
@media (max-width:560px){.ai-pupils li{grid-template-columns:1fr}}
.arch-lead{margin:-.2em 0 1em;font-size:1.05rem;color:var(--k-muted)}

/* ---------- Matières de l'enseignant (collège, lycée) ---------- */
.ts-box{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:6px 0 4px}
.ts-box label{display:grid;gap:6px;font-weight:600}
.ts-box select:disabled{opacity:.6;cursor:not-allowed}
.ts-help{display:block;font-weight:400;font-size:.86rem;color:var(--k-muted)}
.ts-modal{display:grid;gap:12px;min-width:0;max-width:100%}
.ts-modal .ts-box{grid-template-columns:1fr}
.ts-modal select{min-height:48px;height:auto;padding-block:10px;width:100%}
#modalbody .ts-modal p{max-width:none}
.ts-modal h2{margin:0}
.tk-subjects{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:-4px 0 16px;color:var(--k-muted)}
.tk-subjects b{color:var(--k-ink);background:var(--k-blue-soft);border-radius:999px;padding:3px 10px}
.tk-link{background:none;border:0;color:var(--k-blue-deep);text-decoration:underline;padding:6px 4px;min-height:auto;box-shadow:none;font-weight:600;cursor:pointer}
.tk-subjects.is-missing{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:var(--k-mark-soft);border:1px solid #f1d978;color:var(--k-ink)}
.tk-subjects.is-missing p{margin:0;flex:1 1 280px}
#entry-profile label[hidden],.ts-box[hidden]{display:none!important}
.tk-subjects .tk-link{flex:0 0 auto;width:auto;display:inline-block}

/* ---------- Compléter mon programme ---------- */
.tk-prog-lead{color:var(--k-muted);margin:.4rem 0 1rem;max-width:72ch}
.tk-prog-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:14px;background:var(--k-chalk);margin-bottom:14px;width:max-content;max-width:100%}
.tk-prog-tabs button{background:transparent;color:var(--k-ink);border:0;box-shadow:none;border-radius:10px;padding:10px 14px;min-height:44px;font-weight:600}
.tk-prog-tabs button[aria-selected="true"]{background:var(--k-card);color:var(--k-blue-deep);box-shadow:0 1px 3px rgba(20,27,46,.12)}
.tk-imp-drop{display:grid;gap:12px}
.tk-file{display:grid;gap:6px;padding:14px 16px;border:2px dashed var(--k-line);border-radius:14px;background:var(--k-card);font-weight:600}
.tk-file small{font-weight:400;color:var(--k-muted)}
.tk-imp-preview ol{display:grid;gap:8px;padding-left:1.4rem;margin:10px 0}
.tk-imp-item{display:flex;align-items:center;gap:10px}
.tk-imp-item input[type=checkbox]{width:22px;height:22px;flex:0 0 auto}
.tk-imp-title{flex:1;min-width:0}
.tk-imp-preview li small{display:block;color:var(--k-muted);margin:2px 0 0 32px}
.tk-src{display:inline-block;font-style:normal;font-size:.74rem;font-weight:700;border-radius:999px;padding:1px 8px;margin:0 0 2px 6px;vertical-align:middle}
.tk-src-moi{background:var(--k-blue-soft);color:var(--k-blue-deep)}
.tk-src-import{background:var(--k-mark-soft);color:#5c4a00}
.tk-src-ia{background:var(--k-red-soft);color:#8f0b1b}
.tk-course{margin:6px 0 2px 34px}
.tk-course summary{cursor:pointer;color:var(--k-blue-deep);font-weight:600;min-height:32px;display:flex;align-items:center}
.tk-course-text{white-space:pre-wrap;max-height:340px;overflow:auto;padding:12px 14px;border-radius:12px;background:var(--k-paper);border:1px solid var(--k-line);font-size:.95rem;line-height:1.55}
.tk-course-modal textarea{min-height:240px;width:100%}
@media (max-width:640px){.tk-prog-tabs{width:100%}.tk-prog-tabs button{flex:1 1 auto;padding:10px 8px;font-size:.9rem}.tk-course{margin-left:0}}
/* Leçon : titre sur toute la largeur, actions en dessous (3 boutons sans écraser le titre) */
.tk .tk-lessons li{grid-template-columns:minmax(0,1fr)}
.tk .tk-lessons li > .tk-row-actions{justify-content:flex-start;flex-wrap:wrap;gap:6px;padding-left:34px}
.tk .tk-lessons li > .tk-row-actions button{min-height:44px;padding:6px 12px;font-size:.88rem}
.tk .tk-lessons li > .tk-row-actions .tk-x{margin-left:auto}
.tk .tk-lessons .tk-homework{margin-left:34px;width:calc(100% - 34px)}
.tk-lesson-check b{margin-right:2px}
.tk .tk-prog-tabs button,.tk .tk-prog-tabs button:hover{box-shadow:none;border:0;transform:none}
.tk .tk-prog-tabs button[aria-selected="true"]{box-shadow:0 1px 3px rgba(20,27,46,.14)}
.tk .tk-lessons li > .tk-row-actions{flex-wrap:nowrap}
.tk .tk-prog-tabs button{border:0!important;box-shadow:none!important;background:transparent}
.tk .tk-prog-tabs button[aria-selected="true"]{background:var(--k-card)!important;box-shadow:0 1px 3px rgba(20,27,46,.14)!important}
@media (max-width:640px){.tk .tk-prog-tabs{display:grid;grid-template-columns:1fr}}

/* ---------- Visite guidée (première ouverture d'un espace) ---------- */
.kt-layer{position:fixed;inset:0;z-index:2147483000}
.kt-spot{position:fixed;border-radius:16px;box-shadow:0 0 0 4px var(--k-mark),0 0 0 9999px rgba(10,16,32,.62);pointer-events:none;transition:all .28s cubic-bezier(.2,.8,.2,1)}
.kt-tip{position:fixed;background:var(--k-card);color:var(--k-ink);border-radius:18px;padding:18px 20px 16px;box-shadow:0 18px 48px rgba(10,16,32,.35);border-top:5px solid transparent;border-image:var(--k-flag) 1;max-width:calc(100vw - 24px)}
.kt-center{background:rgba(10,16,32,.62)}
.kt-center .kt-tip{left:50%!important;top:50%!important;transform:translate(-50%,-50%);width:min(420px,calc(100vw - 32px))!important}
.kt-tip h2{font-size:1.15rem;margin:2px 0 6px}
.kt-tip p{margin:0 0 12px;line-height:1.5;color:var(--k-ink)}
.kt-count{font-size:.8rem!important;font-weight:700;color:var(--k-muted)!important;margin:0!important}
.kt-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.kt-actions button{min-height:44px;padding:8px 16px;border-radius:12px;font-weight:700}
.kt-skip{background:transparent!important;color:var(--k-muted)!important;border:0!important;box-shadow:none!important;text-decoration:underline}
.kt-next{background:var(--k-blue)!important;color:#fff!important;border:0!important}
@media (prefers-reduced-motion:reduce){.kt-spot{transition:none}}
.tk-file-inline{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-width:1px}
.tk-file-inline input{max-width:220px}
/* Visite guidée sur téléphone : bulle posée en haut ou en bas, boutons flottants masqués sauf s'ils sont présentés */
body[data-kt="on"] .ai-fab,body[data-kt="on"] .klas-help-trigger,body[data-kt="on"] .kx-textsize{visibility:hidden}
@media (max-width:759px){
  .kt-dock-top .kt-tip,.kt-dock-bottom .kt-tip{position:fixed;max-height:46vh;overflow:auto;padding:14px 16px 12px}
  .kt-tip h2{font-size:1.05rem}
  .kt-tip p{font-size:.95rem;margin-bottom:10px}
}

/* ---------- Repère « Où devrais-je en être ? » ---------- */
.tk-pace{border-left:5px solid var(--k-blue)}
.tk-pace-late{border-left-color:var(--k-red)}
.tk-pace-ahead{border-left-color:var(--k-mark)}
.tk-pace-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.tk-pace-head h2{margin:0}
.tk-pace-chip{font-weight:800;font-size:.85rem;padding:4px 12px;border-radius:999px;background:var(--k-blue-soft);color:var(--k-blue-deep)}
.tk-pace-late .tk-pace-chip{background:var(--k-red-soft);color:#8f0b1b}
.tk-pace-ahead .tk-pace-chip{background:var(--k-mark-soft);color:#5c4a00}
.tk-pace-line{font-size:1.02rem;line-height:1.55}
.tk-pace-line small{color:var(--k-muted);font-weight:600}
.tk-pace-box{background:var(--k-paper);border:1px solid var(--k-line);border-radius:14px;padding:12px 14px;margin:10px 0}
.tk-pace-box ul{margin:6px 0 10px 18px;padding:0;display:grid;gap:4px}
.tk-pace-note{font-size:.82rem;color:var(--k-muted);margin:10px 0 0}
.tk-starter{border-left:5px solid var(--k-mark)}
.tk-starter ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.tk-starter li{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--k-line)}
.tk-starter li:first-child{border-top:0}
.tk-starter li p{margin:2px 0 0;color:var(--k-muted)}
.tk-starter li.is-done b{text-decoration:line-through;text-decoration-color:var(--k-blue)}
.tk-starter li small{font-weight:700;color:var(--k-blue-deep)}
@media(max-width:560px){.tk-starter li{grid-template-columns:auto 1fr}.tk-starter li>button,.tk-starter li>small{grid-column:2}}
.fk-year-marker{font-weight:700;color:var(--k-blue-deep)}
/* Noms de matières longs (lycée technique) : sur deux lignes plutôt que coupés */
.fk-bars span{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
.tk-subjects .tk-link{min-height:44px;padding:10px 8px}
/* Mon année : une période ouverte (la période en cours), les autres repliées */
details.tk-period>summary{list-style:none;cursor:pointer;min-height:44px}
details.tk-period>summary::-webkit-details-marker{display:none}
details.tk-period>summary h2::before{content:'▸';display:inline-block;margin-right:8px;transition:transform .2s;color:var(--k-muted)}
details.tk-period[open]>summary h2::before{transform:rotate(90deg)}
details.tk-period:not([open]) .tk-progress{display:none}
.tk-now{font-size:.75rem;font-weight:800;background:var(--k-blue-soft);color:var(--k-blue-deep);padding:2px 8px;border-radius:999px;vertical-align:middle;margin-left:6px}
.tk-periods{align-items:start}
