:root{
  --bg:#f6f1e9;
  --paper:#fffdf9;
  --paper-2:#fbf8f2;
  --ink:#17202b;
  --muted:#707b8c;
  --line:rgba(37,47,67,.10);
  --teal:#42c9bd;
  --teal-dark:#149b91;
  --blue:#687df0;
  --violet:#785eea;
  --amber:#e8b65a;
  --green:#22a98b;
  --shadow:0 26px 60px rgba(82,72,55,.12), 0 4px 18px rgba(82,72,55,.06);
  --shadow-soft:0 16px 35px rgba(82,72,55,.08);
  --radius:24px;
  --font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--font);
  color:var(--ink);
  min-height:100vh;
  background:
    radial-gradient(circle at 16% 12%, rgba(112,211,197,.24), transparent 32%),
    radial-gradient(circle at 75% 2%, rgba(138,118,244,.16), transparent 34%),
    linear-gradient(135deg,#f7f1e9 0%, #fbf8f2 45%, #f1fbf8 100%);
  overflow-x:hidden;
}
button,input,a{font:inherit}
button{cursor:pointer}
a{text-decoration:none;color:inherit}
.grain{position:fixed;inset:0;pointer-events:none;opacity:.28;background-image:radial-gradient(rgba(31,37,49,.08) .55px,transparent .55px);background-size:5px 5px;z-index:3;mix-blend-mode:multiply}.ambient{position:fixed;pointer-events:none;border-radius:999px;filter:blur(50px);opacity:.38;z-index:0;animation:drift 12s ease-in-out infinite alternate}.ambient-a{width:460px;height:460px;background:#bff3e8;top:10%;left:18%}.ambient-b{width:540px;height:540px;background:#d8ccff;right:-12%;bottom:10%;animation-delay:-5s}@keyframes drift{to{transform:translate3d(38px,-22px,0) scale(1.06)}}
.app{position:relative;z-index:2;display:grid;grid-template-columns:264px minmax(0,1fr);gap:20px;width:min(1600px,100%);margin:0 auto;padding:18px}.sidebar{min-height:calc(100vh - 36px);position:sticky;top:18px;padding:24px 18px;border:1px solid var(--line);border-radius:30px;background:rgba(255,253,249,.70);box-shadow:var(--shadow-soft);backdrop-filter:blur(24px);display:flex;flex-direction:column}.logo{width:42px;height:42px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin:4px 0 34px 10px}.logo-dot{border-radius:8px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}.one{background:#83e0d4}.two{background:#8296f7}.three{background:#c2b7ff}.four{background:#83d7fa}.nav{display:grid;gap:8px}.nav-link{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;color:#566174;font-weight:650;transition:.25s ease}.nav-link svg{width:22px;height:22px}.nav-link:hover,.nav-link.active{color:#4f67e8;background:linear-gradient(135deg,rgba(108,126,242,.12),rgba(85,212,197,.08));transform:translateX(3px)}.semester-card,.progress-card.compact{margin-top:auto;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.68);box-shadow:var(--shadow-soft);padding:15px}.semester-card{display:grid;grid-template-columns:42px 1fr 32px;gap:12px;align-items:center;margin-bottom:14px}.semester-card strong{display:block;font-size:14px}.semester-card small,.progress-card small{color:var(--muted)}.semester-icon,.icon-btn,.bubble,.workshop-icon,.rec-icon{display:grid;place-items:center}.semester-icon{width:42px;height:42px;border-radius:14px;background:#f6f5ff;color:#6b7bf2}.icon-btn{position:relative;border:0;background:transparent;width:42px;height:42px;border-radius:14px;color:#374257}.icon-btn:hover{background:#f3f4fb}.notification i{position:absolute;top:3px;right:2px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border-radius:999px;background:#687df0;color:#fff;font-size:11px;font-style:normal;font-weight:800}.progress-card.compact p{font-weight:750;margin:0 0 16px}.ring-progress{width:82px;height:82px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) calc(var(--value)*1%), #ecedf1 0);position:relative}.ring-progress:after{content:"";position:absolute;inset:7px;border-radius:50%;background:#fffdf9}.ring-progress span{position:relative;z-index:1;font-size:21px;font-weight:780}.progress-card.compact small{display:block;text-align:center}.link-btn{border:0;background:transparent;color:#566fe8;font-weight:720;padding:0;margin-top:14px}.link-btn span{transition:.25s}.link-btn:hover span{margin-left:4px}.workspace{min-width:0;padding:10px 0 0}.topbar{display:grid;grid-template-columns:1fr minmax(320px,420px) auto;gap:22px;align-items:center;margin-bottom:24px}.hello h1{font-size:24px;letter-spacing:-.03em;margin:0 0 5px}.hello p{margin:0;color:#4c586a;font-weight:550}.search{height:52px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.64);box-shadow:var(--shadow-soft);display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:0 16px;color:#737d8d}.search input{border:0;outline:0;background:transparent;color:var(--ink);min-width:0}.search kbd{border:1px solid var(--line);background:#f7f7fa;border-radius:9px;padding:3px 8px;font-size:12px;color:#737d8d}.top-actions{display:flex;gap:10px;align-items:center}.avatar{border:0;width:52px;height:52px;border-radius:19px;background:linear-gradient(135deg,#1c2636,#586cf1);color:white;font-weight:900;box-shadow:0 14px 26px rgba(78,91,217,.24)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.95fr);gap:20px}.card{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(255,255,255,.76),rgba(255,252,247,.58));box-shadow:var(--shadow);backdrop-filter:blur(22px);overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.card h2{font-size:20px;letter-spacing:-.03em;margin:0}.micro{margin:7px 0 0;color:var(--muted);font-size:13px}.compact-head{align-items:center}.status{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800;background:#e9fbf6;color:#178b7f}.status i,.twin-footer i{width:8px;height:8px;border-radius:50%;background:var(--teal);display:inline-block;box-shadow:0 0 0 5px rgba(66,201,189,.16)}.right-stack{display:grid;gap:20px}.twin-card{min-height:548px;padding:26px}.twin-orbit{width:min(560px,100%);aspect-ratio:1;margin:0 auto;position:relative}.orbit-backdrop{position:absolute;inset:18%;border-radius:50%;background:radial-gradient(circle,rgba(97,221,209,.20),rgba(135,153,246,.06) 48%,transparent 70%);filter:blur(2px)}.orbit{position:absolute;border-radius:50%;inset:0;margin:auto;pointer-events:none}.outer{width:74%;height:74%;border:2px solid rgba(125,141,242,.28);animation:orbitFloat 7s ease-in-out infinite}.middle{width:52%;height:52%;border:2px solid rgba(66,201,189,.30);animation:orbitFloat 7s ease-in-out infinite reverse}.dashed{width:34%;height:34%;border:2px dashed rgba(88,104,114,.22);animation:spin 18s linear infinite}.inner{width:18%;height:18%;border:1px solid rgba(104,125,240,.20);background:rgba(236,252,249,.55)}.avatar-core{position:absolute;inset:0;margin:auto;width:92px;height:92px;border-radius:50%;display:grid;place-items:center;color:#7081f2;background:radial-gradient(circle,#f7ffff 0,#eafdfa 68%,rgba(234,253,250,.4));box-shadow:inset 0 1px 0 white,0 0 0 18px rgba(104,125,240,.05)}.avatar-core svg{width:52px;height:52px}.orbit-dot{position:absolute;width:14px;height:14px;border-radius:50%;background:#66cec4;box-shadow:0 0 0 8px rgba(66,201,189,.14)}.dot-a{left:27%;top:31%;animation:dotPulse 2.5s ease-in-out infinite}.dot-b{right:28%;top:20%;animation:dotPulse 2.7s ease-in-out infinite .4s}.dot-c{right:29%;bottom:23%;animation:dotPulse 3s ease-in-out infinite .7s}.skill-node{position:absolute;border:0;background:transparent;display:grid;place-items:center;gap:8px;transform:translate(-50%,-50%);color:#17202b}.skill-node span{width:66px;height:66px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.84);box-shadow:0 10px 26px rgba(46,55,74,.14),inset 0 1px 0 white;border:1px solid rgba(27,35,50,.07);transition:.25s ease}.skill-node svg{width:40px;height:40px;stroke-width:2.4px}.skill-node b{white-space:nowrap;border-radius:999px;padding:8px 14px;background:rgba(255,255,255,.76);box-shadow:0 8px 18px rgba(46,55,74,.08);font-size:13px}.skill-node.top{left:50%;top:14%}.skill-node.right{left:84%;top:40%}.skill-node.left{left:16%;top:40%}.skill-node.bottom-left{left:28%;top:78%}.skill-node.bottom-right{left:72%;top:78%}.skill-node.active span,.skill-node:hover span{background:#151b26;color:white;transform:translateY(-2px) scale(1.04)}.skill-node.active b{background:#f6e8bf;color:#64481b}.twin-footer{display:flex;justify-content:space-between;align-items:center;margin-top:-6px;color:#6b7584;font-size:13px}.twin-footer span{display:flex;align-items:center;gap:10px}.today-card,.skills-card{padding:24px}.mini-ring{width:52px;height:52px;border-radius:50%;border:2px solid var(--teal);display:grid;place-items:center;color:#128b7f;font-weight:800}.task{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:center;padding:13px 14px;border:1px solid var(--line);border-radius:15px;background:rgba(255,255,255,.58);margin:10px 0}.task input{display:none}.task-check{width:22px;height:22px;border-radius:50%;border:2px solid #97a0ad;display:block;position:relative}.task input:checked+.task-check{background:var(--green);border-color:var(--green)}.task input:checked+.task-check:after{content:"";position:absolute;width:8px;height:4px;border-left:2px solid white;border-bottom:2px solid white;transform:rotate(-45deg);left:5px;top:6px}.task.done em{text-decoration:line-through;color:#7c8490}.task em{font-style:normal;font-size:14px}.tag{border-radius:8px;padding:5px 8px;font-size:11px}.green{background:#e7f8f2;color:#168d7b}.purple{background:#f1ecff;color:#775be7}.amber{background:#fff1d6;color:#a46c17}.skill-row{display:grid;grid-template-columns:40px minmax(105px,1fr) 160px 42px;gap:12px;align-items:center;margin:17px 0}.bubble{width:34px;height:34px;border-radius:13px;background:#eef2ff;color:#6478ef}.skill-row strong{font-size:15px}.skill-row i{height:6px;border-radius:999px;background:#eceef2;overflow:hidden}.skill-row em{display:block;width:calc(var(--score)*1%);height:100%;background:linear-gradient(90deg,var(--teal),#6aa5f4);border-radius:inherit;animation:barGrow 1.2s ease both}.skill-row b{color:#687386;font-size:13px}.rhythm-card{grid-column:1/2;padding:24px}.chart-wrap{display:grid;grid-template-columns:1fr 118px;gap:18px;align-items:center}.line-chart{width:100%;height:auto}.grid-lines path{stroke:rgba(43,54,73,.08);stroke-width:1}.chart-area{fill:url(#area)}.chart-line{fill:none;stroke:var(--teal);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 8px 10px rgba(66,201,189,.22))}.points circle{fill:var(--teal);stroke:#fff;stroke-width:3}.labels text{font-size:12px;fill:#788394}.chart-stats{border-left:1px solid var(--line);padding-left:20px;display:grid;gap:4px}.chart-stats strong{font-size:25px;color:#15988d}.chart-stats span{font-size:13px;color:var(--muted);margin-bottom:12px}.select-btn{border:1px solid var(--line);background:rgba(255,255,255,.62);border-radius:12px;padding:9px 12px;display:flex;align-items:center;gap:6px;color:#626c7d}.workshop-card{padding:24px;display:grid;grid-template-columns:66px 1fr;gap:18px;align-items:center}.workshop-icon{width:62px;height:62px;border-radius:22px;background:#f1edff;color:#6b63ec}.workshop-card p,.pathway-card p{margin:0 0 6px;font-weight:780}.workshop-card small,.pathway-card small{display:block;color:var(--muted);margin-top:4px}.meta-line{display:flex;align-items:center;gap:7px;color:#647083;font-size:13px;margin-top:8px}.outline-btn{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.60);height:43px;font-weight:720;color:#263143}.recommendations-card{grid-column:1/2;padding:24px}.recommendations{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:14px}.recommendation{border:1px solid var(--line);background:rgba(255,255,255,.60);border-radius:16px;min-height:82px;padding:12px;display:grid;grid-template-columns:38px 1fr 24px;grid-template-rows:auto auto;gap:2px 10px;text-align:left;align-items:center;transition:.25s ease}.recommendation:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.recommendation strong{font-size:13px}.recommendation small{color:var(--muted)}.recommendation i{grid-row:1/3;grid-column:3;font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f3f5f8}.rec-icon{grid-row:1/3;width:38px;height:38px;border-radius:12px;color:#fff}.rec-icon.purple{background:linear-gradient(135deg,#8067ed,#5e74f2)}.rec-icon.blue{background:linear-gradient(135deg,#3f7df3,#2f5de1)}.rec-icon.violet{background:linear-gradient(135deg,#8f67ec,#7358d9)}.pathway-card{padding:24px;display:grid;grid-template-columns:1fr 190px;align-items:center}.pathway-card p{display:flex;align-items:center;gap:8px}.pathway-art{height:130px;position:relative}.pathway-art i{position:absolute;bottom:22px;width:18px;border-radius:999px;background:linear-gradient(180deg,#82caff,#b6adff)}.pathway-art i:nth-child(1){height:46px;left:22px}.pathway-art i:nth-child(2){height:70px;left:52px}.pathway-art i:nth-child(3){height:94px;left:82px}.pathway-art span{position:absolute;right:12px;top:18px;width:86px;height:86px;border-radius:50%;display:grid;place-items:center;color:#8172ee;border:2px solid rgba(129,114,238,.26);background:rgba(255,255,255,.45)}.pathway-art svg{width:54px;height:54px}.toast{position:fixed;z-index:30;right:28px;bottom:28px;max-width:420px;background:#17202b;color:#fff;border-radius:18px;padding:14px 18px;box-shadow:0 18px 45px rgba(23,32,43,.24);transform:translateY(18px);opacity:0;transition:.25s ease}.toast.show{transform:translateY(0);opacity:1}.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}.reveal.visible{opacity:1;transform:none}@keyframes spin{to{transform:rotate(360deg)}}@keyframes orbitFloat{50%{transform:translateY(-5px) scale(1.01)}}@keyframes dotPulse{50%{transform:scale(1.22);box-shadow:0 0 0 13px rgba(66,201,189,.10)}}@keyframes barGrow{from{width:0}}@media (max-width:1180px){.app{grid-template-columns:1fr}.sidebar{position:relative;min-height:auto}.nav{grid-template-columns:repeat(4,1fr)}.semester-card,.progress-card.compact{margin-top:18px}.dashboard-grid{grid-template-columns:1fr}.right-stack{grid-template-columns:1fr 1fr}.pathway-card{grid-column:auto}.topbar{grid-template-columns:1fr}.search{max-width:520px}.recommendations-card,.rhythm-card{grid-column:auto}}@media (max-width:760px){.app{padding:10px}.sidebar{display:none}.dashboard-grid,.right-stack,.chart-wrap,.recommendations,.pathway-card{grid-template-columns:1fr}.twin-card{padding:18px;min-height:450px}.twin-orbit{transform:scale(.92);margin:-20px auto}.skill-node span{width:54px;height:54px}.skill-node b{font-size:11px;padding:6px 10px}.top-actions{justify-content:flex-start}.chart-stats{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:16px}.skill-row{grid-template-columns:34px 1fr 78px 38px}.pathway-art{display:none}}

/* --- Page professeur --- */
.switch-link{height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.64);color:#5265df;font-weight:800;padding:0 14px;box-shadow:var(--shadow-soft);white-space:nowrap}.switch-link:hover{transform:translateY(-1px);background:#fff}.risk-compact .ring-progress{background:conic-gradient(var(--amber) calc(var(--value)*1%), #ecedf1 0)}.prof-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.95fr);gap:20px}.prof-hero{padding:26px;min-height:548px}.teacher-radar{height:360px;position:relative;margin:18px 0 12px;border-radius:28px;background:radial-gradient(circle at center,rgba(104,125,240,.11),rgba(101,216,204,.08) 44%,transparent 66%)}.radar-ring{position:absolute;border-radius:50%;inset:0;margin:auto;border:1.6px solid rgba(104,125,240,.18)}.radar-ring.r1{width:78%;height:78%}.radar-ring.r2{width:54%;height:54%;border-color:rgba(66,201,189,.26)}.radar-ring.r3{width:30%;height:30%;border-style:dashed;border-color:rgba(88,104,114,.22);animation:spin 22s linear infinite}.radar-core{position:absolute;inset:0;margin:auto;width:118px;height:118px;border-radius:50%;display:grid;place-items:center;align-content:center;background:linear-gradient(145deg,#ffffff,#eefdfa);box-shadow:0 0 0 22px rgba(66,201,189,.08),inset 0 1px 0 #fff;color:#17202b}.radar-core strong{font-size:34px;line-height:1}.radar-core span{font-size:12px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.radar-node{position:absolute;border:1px solid var(--line);background:rgba(255,255,255,.78);border-radius:18px;box-shadow:var(--shadow-soft);min-width:142px;padding:10px 12px;display:grid;grid-template-columns:36px 1fr;gap:8px;text-align:left;align-items:center;color:#1b2535;transition:.25s ease}.radar-node:hover,.radar-node.active{transform:translateY(-4px);background:#17202b;color:#fff}.radar-node span{grid-row:1/3;width:36px;height:36px;border-radius:13px;background:#f2f0ff;color:#6977ef;display:grid;place-items:center}.radar-node svg{width:20px;height:20px}.radar-node b{font-size:13px}.radar-node em{font-size:12px;color:var(--muted);font-style:normal}.radar-node:hover em,.radar-node.active em{color:rgba(255,255,255,.72)}.radar-node.n1{left:5%;top:10%}.radar-node.n2{right:4%;top:18%}.radar-node.n3{left:8%;bottom:15%}.radar-node.n4{right:7%;bottom:14%}.radar-node.n5{left:50%;bottom:2%;transform:translateX(-50%)}.radar-node.n5:hover{transform:translateX(-50%) translateY(-4px)}.teacher-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.teacher-kpis div{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.62);padding:14px;text-align:center}.teacher-kpis strong{display:block;font-size:24px;color:#15988d}.teacher-kpis span{font-size:12px;color:var(--muted);font-weight:750}.priority-card,.prof-skills,.intervention-card{padding:24px}.student-list{display:grid;gap:10px;margin-top:14px}.student-row{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.62);display:grid;grid-template-columns:42px 1fr auto;grid-template-rows:auto auto;gap:2px 12px;align-items:center;text-align:left;padding:12px;transition:.25s ease}.student-row:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.student-avatar{grid-row:1/3;width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(135deg,#eefdfa,#f0edff);color:#5265df;font-weight:900}.student-row strong{font-size:14px}.student-row em{font-style:normal;color:var(--muted);font-size:12px}.student-row b{grid-row:1/3;grid-column:3;border-radius:999px;padding:7px 9px;font-size:11px;background:#edf7f4;color:#168d7b}.student-row.high b{background:#fff1d6;color:#a46c17}.student-row.medium b{background:#f1ecff;color:#775be7}.prof-activity{grid-column:1/2}.interventions{display:grid;gap:12px;margin-top:14px}.intervention{border:1px solid var(--line);background:rgba(255,255,255,.62);border-radius:18px;padding:14px;display:grid;grid-template-columns:42px 1fr;gap:12px;text-align:left;align-items:center;transition:.25s ease}.intervention:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.intervention span{grid-row:1/3;width:42px;height:42px;border-radius:15px;display:grid;place-items:center;background:#f1edff;color:#6b63ec}.intervention strong{font-size:14px}.intervention small{color:var(--muted)}.prof-next{min-height:236px}.prof-pathway{grid-column:2/3}@media (max-width:1180px){.prof-grid{grid-template-columns:1fr}.prof-pathway{grid-column:auto}.teacher-kpis{grid-template-columns:repeat(2,1fr)}}@media (max-width:760px){.prof-grid{grid-template-columns:1fr}.teacher-radar{height:560px}.radar-node{left:50%!important;right:auto!important;transform:translateX(-50%)!important}.radar-node:hover,.radar-node.active{transform:translateX(-50%) translateY(-3px)!important}.radar-node.n1{top:8%}.radar-node.n2{top:24%}.radar-node.n3{bottom:auto;top:40%}.radar-node.n4{bottom:auto;top:56%}.radar-node.n5{bottom:auto;top:72%}.teacher-kpis{grid-template-columns:1fr}.student-row{grid-template-columns:42px 1fr}.student-row b{grid-column:2;grid-row:auto;width:max-content;margin-top:6px}.switch-link{height:38px;padding:0 10px}}


/* --- Pages ajoutées : contenus étudiant/prof --- */
.icon-btn span[data-icon], .semester-icon span, .top-actions .icon-btn > span{width:22px;height:22px;display:grid;place-items:center}.icon-btn svg,.semester-icon svg,.top-actions svg{width:22px;height:22px;display:block}.page-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px}.page-hero,.side-panel,.page-wide{padding:26px}.page-wide{grid-column:1/-1}.course-list,.event-list,.mini-stack,.resource-grid,.cohort-grid{display:grid;gap:12px;margin-top:18px}.course-card,.event-card,.mini-stack button,.resource-grid button,.cohort-card{border:1px solid var(--line);background:rgba(255,255,255,.62);border-radius:18px;padding:16px;text-align:left;display:grid;align-items:center;gap:12px;transition:.25s ease}.course-card,.event-card{grid-template-columns:48px 1fr auto}.course-card span,.event-card span,.resource-grid span{width:48px;height:48px;border-radius:17px;display:grid;place-items:center;background:#f1edff;color:#6b63ec}.course-card svg,.event-card svg,.resource-grid svg{width:25px;height:25px}.course-card:hover,.event-card:hover,.mini-stack button:hover,.resource-grid button:hover,.cohort-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft);background:#fff}.course-card strong,.event-card strong,.mini-stack strong,.resource-grid strong,.cohort-card strong{display:block;font-size:15px}.course-card small,.event-card small,.mini-stack small,.resource-grid small,.cohort-card span{display:block;color:var(--muted);margin-top:4px}.course-card b,.event-card b,.cohort-card b{border-radius:999px;padding:7px 10px;background:#e7f8f2;color:#168d7b;font-size:12px}.course-card.strong,.event-card.featured,.cohort-card.featured{background:linear-gradient(135deg,rgba(102,216,204,.16),rgba(129,114,238,.10))}.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.timeline div{border:1px solid var(--line);border-radius:18px;padding:15px;background:rgba(255,255,255,.62);min-height:90px}.timeline b{display:grid;place-items:center;width:34px;height:34px;border-radius:13px;background:#f1edff;color:#6b63ec;margin-bottom:12px}.timeline .done b{background:#e7f8f2;color:#168d7b}.timeline .active{box-shadow:0 16px 34px rgba(66,201,189,.16);border-color:rgba(66,201,189,.34)}.checklist{display:grid;gap:12px;margin-top:18px}.checklist label{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:rgba(255,255,255,.62);font-weight:650}.pill-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.pill-cloud span{padding:10px 13px;border-radius:999px;background:rgba(241,237,255,.86);color:#5d63d9;font-weight:750}.resource-grid{grid-template-columns:repeat(2,1fr)}.resource-grid button{grid-template-columns:48px 1fr}.project-board{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}.project-board div{border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.45);padding:14px}.project-board h3{margin:0 0 12px}.project-board button{display:block;width:100%;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.68);padding:11px;margin:8px 0;text-align:left}.team-list{display:flex;gap:10px;margin:20px 0}.team-list span{width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#eefdfa,#f0edff);color:#5265df;font-weight:900}.cohort-grid{grid-template-columns:repeat(3,1fr)}.cohort-card{min-height:130px}.analytics-kpis{margin-top:18px}.analytics-chart{margin-top:20px}.side-panel .skill-row{grid-template-columns:34px 1fr 80px 38px}@media (max-width:1180px){.page-grid{grid-template-columns:1fr}.page-wide{grid-column:auto}.cohort-grid{grid-template-columns:1fr}}@media (max-width:760px){.timeline,.resource-grid,.project-board{grid-template-columns:1fr}.course-card,.event-card{grid-template-columns:44px 1fr}.course-card b,.event-card b{grid-column:2;width:max-content}}


/* --- Actions réalisables & état local temporaire --- */
.state-note{display:inline-flex;align-items:center;gap:6px;margin-top:8px;color:#168d7b;font-size:12px;font-weight:800;background:rgba(231,248,242,.82);border:1px solid rgba(66,201,189,.22);border-radius:999px;padding:7px 10px;width:max-content;max-width:100%}.state-note::before{content:'•';font-size:18px;line-height:0;color:#42c9bd}.event-card.actionable{grid-template-columns:48px 1fr auto}.compact-action{min-width:104px;height:40px;padding:0 14px}.state-panel{margin-top:18px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(239,253,249,.58));padding:14px;display:grid;gap:6px}.state-panel strong{font-size:13px;color:var(--ink)}.state-panel span{color:var(--muted);font-size:13px;font-weight:750}.mini-action{grid-row:1/3;grid-column:3;border:0;border-radius:999px;padding:8px 12px;background:#17202b;color:#fff;font-weight:850;cursor:pointer;box-shadow:var(--shadow-soft);transition:.25s ease}.mini-action:hover{transform:translateY(-1px);background:#28314a}.student-row.resolved{opacity:.82;background:rgba(231,248,242,.72)!important;border-color:rgba(66,201,189,.28)}.student-row.resolved .mini-action{background:#e7f8f2;color:#168d7b}.student-row.resolved .mini-action::after{content:' ✓'}a.outline-btn{text-decoration:none}.ring-progress,.mini-ring,.notification i{transition:.25s ease}.pulse-update{animation:pulseUpdate .72s ease both}@keyframes pulseUpdate{0%{transform:scale(1)}45%{transform:scale(1.08);filter:brightness(1.08)}100%{transform:scale(1)}}@media (max-width:760px){.event-card.actionable{grid-template-columns:44px 1fr}.compact-action,.mini-action{grid-column:2;width:max-content}.mini-action{grid-row:auto;margin-top:8px}}


/* --- v4 : planètes orbitales + actions de démo enrichies --- */
.orbit-planet{position:absolute;inset:0;margin:auto;width:74%;height:74%;border-radius:50%;pointer-events:none;animation:planetSpin 13s linear infinite;z-index:3}.orbit-planet span{position:absolute;left:50%;top:-6px;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff,#63d7cb 42%,#4e69ed 100%);box-shadow:0 0 0 8px rgba(99,215,203,.10),0 14px 28px rgba(80,100,238,.20)}.orbit-planet.planet-b{width:52%;height:52%;animation-duration:10.5s;animation-direction:reverse}.orbit-planet.planet-b span{width:13px;height:13px;background:radial-gradient(circle at 35% 35%,#fff,#f4d689 45%,#7f6df0 100%);box-shadow:0 0 0 7px rgba(244,214,137,.12),0 12px 22px rgba(127,109,240,.18)}.orbit-planet.planet-c{width:34%;height:34%;animation-duration:8.5s}.orbit-planet.planet-c span{width:10px;height:10px;background:radial-gradient(circle at 35% 35%,#fff,#a0f2d7 45%,#42bba8 100%)}.orbit-planet.planet-d{width:74%;height:74%;animation-duration:18s;animation-delay:-5s;animation-direction:reverse}.orbit-planet.planet-d span{top:auto;bottom:-4px;width:11px;height:11px;background:radial-gradient(circle at 35% 35%,#fff,#c9c1ff 42%,#6579ef 100%)}@keyframes planetSpin{to{transform:rotate(360deg)}}
.action-done,.student-row.resolved,.event-card.action-done,.course-card.action-done,.resource-grid button.action-done,.project-board button.action-done,.mini-stack button.action-done{border-color:rgba(66,201,189,.34)!important;background:linear-gradient(135deg,rgba(231,248,242,.82),rgba(255,255,255,.64))!important}.action-done b,.student-row.resolved b{background:#e7f8f2!important;color:#168d7b!important}.hidden-action{display:none!important}.hidden-action.visible{display:block!important}.demo-state-card{padding:22px}.demo-state-card h2{font-size:18px}.state-value{font-weight:900;color:#168d7b}.top-actions .notification span[data-icon]{display:grid;place-items:center}.top-actions .notification span[data-icon] svg{width:22px;height:22px;display:block}.task-auto-done{border-color:rgba(66,201,189,.34)!important;background:rgba(231,248,242,.72)!important}.task-auto-done em{text-decoration:line-through;color:#7c8490}.resource-grid button small,.mini-stack button small,.event-card small,.course-card small{transition:.25s ease}


/* v5 — vue Direction / Impact */
.direction-grid{grid-template-columns:1.35fr .65fr;}
.direction-hero{background:linear-gradient(135deg, rgba(255,255,255,.92), rgba(238,250,246,.86));}
.direction-kpis div strong{font-size:clamp(1.8rem, 3.2vw, 3.4rem);}
.impact-equation{margin-top:22px;display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:24px;background:rgba(255,255,255,.72);box-shadow:inset 0 0 0 1px rgba(91,113,178,.12);color:var(--ink);}
.impact-equation span{width:42px;height:42px;border-radius:16px;background:rgba(106,216,204,.16);display:grid;place-items:center;color:var(--teal);}
.impact-equation strong{font-size:1.05rem;}
.impact-equation i{font-style:normal;color:var(--muted);}
.impact-equation b{font-size:1.25rem;color:var(--purple);}
.impact-equation em{font-style:normal;color:var(--muted);}
.direction-board button{min-height:72px;text-align:left;}
.direction-board button strong{display:block;font-size:1.35rem;color:var(--teal-strong);margin-bottom:4px;}
.finance-timeline div b{min-width:54px;}
@media (max-width: 1100px){.direction-grid{grid-template-columns:1fr}.impact-equation{flex-wrap:wrap}}


/* --- v6 : planning intelligent & passerelles --- */
.week-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin:22px 0}.day{border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.62);padding:14px;text-align:left;min-height:84px;transition:.25s ease}.day strong{display:block;font-size:16px;margin-bottom:6px}.day span{color:var(--muted);font-size:12px;font-weight:750}.day.active{border-color:rgba(66,201,189,.38);background:linear-gradient(135deg,rgba(231,248,242,.9),rgba(255,255,255,.64));box-shadow:0 18px 34px rgba(66,201,189,.14)}.day.done{opacity:.86}.smart-agenda{display:grid;gap:12px}.agenda-line{display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:20px;background:rgba(255,255,255,.66);padding:15px}.agenda-line.priority{background:linear-gradient(135deg,rgba(241,237,255,.9),rgba(232,250,246,.72));border-color:rgba(104,125,240,.18)}.agenda-line b{color:#566fe8}.agenda-line strong{display:block}.agenda-line small{display:block;color:var(--muted);margin-top:4px}.agenda-line button{border:0;border-radius:999px;padding:10px 14px;background:#17202b;color:#fff;font-weight:850}.agenda-line button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.pathway-map{display:grid;grid-template-columns:1fr 40px 1fr 40px 1fr;align-items:center;gap:10px;margin-top:22px}.pathway-map>i{height:2px;background:linear-gradient(90deg,var(--teal),var(--violet));opacity:.5}.path-step{border:1px solid var(--line);border-radius:22px;background:rgba(255,255,255,.64);padding:18px;min-height:120px}.path-step b{display:block;font-size:16px;margin-bottom:8px}.path-step span{color:var(--muted);font-size:13px;font-weight:700}.path-step.done{background:rgba(231,248,242,.72)}.path-step.active{border-color:rgba(66,201,189,.34);box-shadow:0 18px 34px rgba(66,201,189,.12)}.pathway-kpis{margin-top:20px}.compact-kpis{grid-template-columns:repeat(2,1fr);margin:18px 0}.top-actions a.icon-btn{display:grid;place-items:center}.top-actions a.icon-btn svg{width:22px;height:22px}@media (max-width:900px){.week-strip,.pathway-map{grid-template-columns:1fr}.pathway-map>i{height:24px;width:2px;margin:auto}.agenda-line{grid-template-columns:1fr}.agenda-line b{font-size:13px}}
