:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#28243a;background:#f7f6fb;--primary:#6657d9;--primary-dark:#5142c1;--line:#e5e1ee;--muted:#777287;--danger:#b64052;--ok:#247b54}*{box-sizing:border-box}body{margin:0;background:#f7f6fb}a{text-decoration:none;color:inherit}.auth-bg{background:linear-gradient(160deg,#f4f0ff,#faf9ff 55%,#f1f5ff);min-height:100vh;padding-top:1px}.auth-card{width:min(440px,calc(100% - 32px));margin:8vh auto;background:#fff;padding:34px;border-radius:24px;box-shadow:0 18px 55px #372c6920}.auth-card h1{margin:8px 0}.auth-logo{width:54px;height:54px;border-radius:16px;background:var(--primary);display:grid;place-items:center;color:#fff;font-weight:900;font-size:25px}form{display:grid;gap:16px}label{display:grid;gap:7px;font-weight:650}input,select,textarea{font:inherit;padding:12px 13px;border:1px solid #d9d5e8;border-radius:12px;background:#fff;min-width:0}input:focus{outline:3px solid #6657d91b;border-color:#8a7de6}small,.subtle{color:var(--muted);font-size:.86rem}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;background:var(--primary);color:#fff;padding:12px 16px;border-radius:12px;font-weight:760;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--primary-dark)}.btn.secondary{background:#eeebfa;color:#4f45a3}.btn.small{padding:9px 11px;font-size:.86rem}.link{color:#5748c7}.alert,.notice,.warning{padding:12px 14px;border-radius:12px;margin:16px 0}.alert{background:#fff0f2;color:#8c3140}.notice{background:#edfaf3;color:#236a4c}.warning{background:#fff7df;color:#725b19}.nav{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1100px)/2));position:sticky;top:0;z-index:5}.brand{font-size:1.28rem;font-weight:900;color:#4f43ba}.nav-right{display:flex;gap:18px;align-items:center}.page{max-width:1100px;margin:0 auto;padding:32px 20px 60px}.hero,.section-head{display:flex;justify-content:space-between;align-items:center;gap:24px}.hero{background:linear-gradient(135deg,#ffffff,#f2efff);padding:28px;border:1px solid #e7e2fa;border-radius:24px}.hero h1,.section-head h1{margin:5px 0 8px}.eyebrow{text-transform:uppercase;letter-spacing:.11em;font-size:.73rem;font-weight:850;color:#7667d9}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:18px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;display:grid;gap:3px}.stat strong{font-size:1.65rem}.stat span{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:22px}.grid article,.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 30px #372c6908}.grid article h2{margin:8px 0}.card-link article{height:100%;transition:.18s transform,.18s box-shadow}.card-link:hover article{transform:translateY(-2px);box-shadow:0 14px 34px #372c6915}.card-icon{font-size:1.65rem}.card-link span{color:#5c4fc2;font-weight:700}.muted-card{opacity:.72}.section-head{margin-bottom:20px}.panel{margin-top:18px}.form-panel{max-width:820px}.form-grid{grid-template-columns:1fr 1fr}.wide{grid-column:1/-1}.field-title{display:block;font-weight:760;margin-bottom:10px}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.check{display:flex;grid-template-columns:none;gap:9px;align-items:center;border:1px solid var(--line);border-radius:13px;padding:11px}.check input{width:auto}.check span{display:grid}.actions{display:flex;gap:10px}.search{display:flex;align-items:center;gap:10px;grid-template-columns:none}.search input{flex:1}.table-wrap{overflow:auto;margin-top:18px}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:14px 12px;border-bottom:1px solid #eeeaf4;vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:#746e80}td small{display:block;margin-top:4px}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:.78rem;font-weight:780}.badge.ok{background:#e6f7ee;color:var(--ok)}.badge.danger{background:#feecef;color:var(--danger)}.row-actions{display:flex;gap:9px;align-items:flex-start;flex-wrap:wrap}.row-actions form{display:block}.mini{border:0;background:none;color:#5748c7;padding:0;font:inherit;font-size:.87rem;font-weight:700;cursor:pointer}.danger-text{color:var(--danger)}details{position:relative}summary{list-style:none}.reset-box{position:absolute;right:0;top:25px;width:250px;background:#fff;padding:12px;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 35px #332d4d24;z-index:3}.empty{text-align:center;padding:40px 10px;color:var(--muted)}@media(max-width:760px){.stats{grid-template-columns:1fr 1fr}.hero,.section-head{align-items:flex-start;flex-direction:column}.form-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr 1fr}.search{align-items:stretch;flex-direction:column}.nav-right span{display:none}}@media(max-width:480px){.stats,.check-grid{grid-template-columns:1fr}.page{padding:22px 14px}.nav{padding:0 14px}.auth-card{padding:26px}}

/* CentPas V0.3 */
.formation-grid{display:grid;gap:20px}.formation-panel{padding:26px}.formation-title{display:flex;gap:16px;align-items:center}.formation-title h2{margin:0 0 4px}.formation-title p{margin:0;color:var(--muted)}.course-big-icon{width:54px;height:54px;border-radius:16px;background:#f0edff;display:grid;place-items:center;font-size:1.65rem}.level-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:20px}.level-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;display:grid;gap:5px;transition:.18s}.level-card:hover{transform:translateY(-2px);box-shadow:0 10px 28px #372c6912}.level-card span{color:var(--muted);font-size:.85rem}.level-card em{font-style:normal;color:var(--primary);font-weight:700;margin-top:5px}.node-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:15px;margin-top:20px}.node-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;min-height:130px}.node-card h2{margin:5px 0}.node-card p{color:var(--muted);margin:0}.node-kind{text-transform:uppercase;letter-spacing:.07em;font-size:.68rem;font-weight:850;color:#7b70cc}.lock-pill{border-radius:999px;padding:7px 10px;font-size:.76rem;font-weight:780;white-space:nowrap}.lock-pill.open{background:#e8f8ef;color:#247b54}.lock-pill.locked{background:#fff0f1;color:#a83b4c}.compact-panel{padding:16px 20px}.inline-add{display:flex;grid-template-columns:none;flex-direction:row;gap:10px;align-items:center}.inline-add input{flex:1}.simple-list{display:grid}.simple-list>a{display:flex;justify-content:space-between;align-items:center;padding:13px 4px;border-bottom:1px solid #eeeaf4}.simple-list span{display:grid}.simple-list small{margin-top:3px}.content-list{display:grid;gap:10px}.content-row{border:1px solid var(--line);border-radius:13px;padding:14px;display:flex;justify-content:space-between;gap:15px}.content-row small{display:block;margin-top:4px}.content-row p{margin:8px 0 0}.sep{border:0;border-top:1px solid var(--line);margin:22px 0}.legend{display:flex;gap:16px;flex-wrap:wrap;color:var(--muted);margin-bottom:15px}.access-table-wrap{overflow:auto}.access-table th small{display:block;text-transform:none;letter-spacing:0;margin-top:4px}.access-form{display:block}.access-form select{min-width:185px;padding:8px}.section-title{margin-top:28px}.student-nodes .node-card{align-items:center}.node-card.is-locked{background:#fbfafc;opacity:.68}.lesson-content{display:grid;gap:14px}.student-content{padding-bottom:15px;border-bottom:1px solid var(--line)}.student-content:last-child{border-bottom:0}.student-content h3{margin-top:0}.content-body{line-height:1.7}.form-grid{display:grid;gap:16px}.form-grid textarea{width:100%;resize:vertical}
@media(max-width:700px){.inline-add{flex-direction:column;align-items:stretch}.node-card{flex-direction:column}.formation-panel{padding:20px}.access-form select{min-width:150px}}

/* CentPas V0.3.1 */
.tabs{display:flex;gap:8px;margin:0 0 14px}.tab{padding:10px 16px;border-radius:12px;background:#ece9f7;color:#625a76;font-weight:750}.tab.active{background:var(--primary);color:#fff}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.group-card{border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.group-card h2{margin:5px 0}.group-card p{color:var(--muted);margin:0 0 12px}.group-actions{display:grid;gap:8px;justify-items:end}.member-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;max-height:390px;overflow:auto;padding:2px}.member-check{display:flex;grid-template-columns:none;align-items:center;gap:10px;border:1px solid var(--line);padding:10px;border-radius:13px}.member-check input{width:auto}.member-check>span:last-child{display:grid}.avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;display:inline-grid;place-items:center;flex:0 0 auto;background:#eeeafd;color:#5145b8;font-weight:850}.avatar.large{width:84px;height:84px;font-size:1.25rem}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.initials{background:linear-gradient(135deg,#ece9ff,#f6f4ff)}.student-cell{display:flex;gap:10px;align-items:center}.student-cell>span:last-child{display:grid}.profile-editor{display:flex;align-items:center;gap:18px;border:1px solid var(--line);border-radius:16px;padding:15px}.profile-editor>label{flex:1}.inline-check{display:flex;grid-template-columns:none;align-items:center;gap:8px;font-weight:600}.inline-check input{width:auto}.editable-node{padding:0;display:block;overflow:hidden}.node-main{display:flex;justify-content:space-between;gap:15px;padding:20px}.node-tools{border-top:1px solid var(--line);padding:10px 16px;display:flex;justify-content:flex-end;gap:13px;align-items:center}.node-tools form{display:flex;grid-template-columns:none;gap:10px}.managed-list{display:grid}.managed-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid #eeeaf4}.managed-row>a{flex:1;display:grid}.managed-row small{margin-top:3px}.wrap-add{flex-wrap:wrap}.wrap-add .inline-check{flex:1 1 320px}.warning code{background:#fff3c8;padding:2px 5px;border-radius:5px}@media(max-width:700px){.group-card,.profile-editor,.managed-row{flex-direction:column;align-items:stretch}.group-actions{display:flex;flex-wrap:wrap;justify-items:initial}.node-tools{justify-content:flex-start}.member-grid{grid-template-columns:1fr}}


/* CentPas V0.3.2 — accueil, inscription et connexion élèves */
.public-bg,.student-auth-bg{min-height:100vh;background:radial-gradient(circle at 85% 15%,#eeeaff 0,#f8f7fc 33%,#f8f7fc 100%)}.public-nav,.auth-public-nav{height:74px;display:flex;align-items:center;justify-content:space-between;max-width:1180px;margin:auto;padding:0 24px}.public-nav-actions{display:flex;gap:10px}.public-shell{max-width:1180px;margin:auto;padding:45px 24px 80px}.public-hero{min-height:620px;display:grid;grid-template-columns:1.12fr .88fr;align-items:center;gap:70px}.public-copy h1{font-size:clamp(2.7rem,5.5vw,5.25rem);line-height:.98;letter-spacing:-.055em;margin:16px 0 24px}.public-copy>p{font-size:1.13rem;line-height:1.7;color:#625d70;max-width:660px}.public-cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.public-main-btn{padding-inline:22px}.public-note{font-size:.86rem!important;margin-top:16px;color:#817b8d!important}.public-preview{display:flex;justify-content:center}.preview-phone{width:330px;background:#fff;border:8px solid #28243a;border-radius:38px;padding:25px 18px 18px;box-shadow:0 35px 80px #4f46752e;transform:rotate(1.4deg)}.preview-top{display:flex;justify-content:space-between;font-size:.78rem;color:#716b7f;margin-bottom:28px}.preview-greeting{font-size:1.55rem;font-weight:850}.preview-sub{color:var(--muted);margin:5px 0 20px}.preview-card{border:1px solid var(--line);border-radius:18px;padding:17px;margin:11px 0;display:grid;gap:7px}.preview-card.purple{background:linear-gradient(135deg,#6957db,#5140bc);color:#fff;border:0}.preview-card small{opacity:.78}.preview-card strong{font-size:1.12rem}.preview-progress{height:6px;border-radius:8px;background:#ffffff38;overflow:hidden}.preview-progress i{display:block;height:100%;background:#fff;border-radius:8px}.preview-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.preview-row div{background:#f7f6fb;border-radius:13px;padding:11px 4px;text-align:center;display:grid;gap:4px}.preview-row b{font-size:1.25rem}.preview-row small{font-size:.68rem;color:#777287}.student-auth-shell{min-height:calc(100vh - 74px);display:grid;place-items:center;padding:30px 20px 70px}.student-auth-card{width:min(475px,100%);background:#fff;padding:36px;border:1px solid #e7e2f0;border-radius:28px;box-shadow:0 25px 70px #40376417}.register-card{width:min(720px,100%)}.auth-heading{text-align:center;margin-bottom:25px}.auth-heading .auth-logo{margin:0 auto 15px}.auth-heading h1{font-size:2.2rem;margin:7px 0}.auth-heading p{color:var(--muted);line-height:1.55;margin:0}.auth-submit,.full-btn{width:100%;padding:14px 18px}.auth-divider{display:flex;align-items:center;gap:12px;color:#958fa0;font-size:.8rem;margin:22px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.auth-help{text-align:center;color:var(--muted);font-size:.84rem;line-height:1.5;margin:17px 0 0}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.registration-consent{display:flex;grid-template-columns:none;align-items:flex-start;gap:10px;font-size:.86rem;font-weight:550}.registration-consent input{width:auto;margin-top:2px}.registration-success{text-align:center;padding:18px 5px 4px}.success-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#e7f8ef;color:#247b54;font-size:1.8rem;font-weight:900;margin:0 auto 16px}.registration-success h2{font-size:1.6rem;margin:0 0 10px}.registration-success p{color:var(--muted);line-height:1.6;margin:0 auto 22px;max-width:480px}.attention-stat{border-color:#f0dfaa;background:#fffbef}.registration-admin-list{padding:6px 20px}.registration-request-row{display:grid;grid-template-columns:auto 1.4fr 1.2fr .8fr auto;gap:16px;align-items:center;padding:17px 5px;border-bottom:1px solid #eeeaf4}.registration-request-row:last-child{border-bottom:0}.request-person,.request-path,.request-date{display:grid;gap:3px}.request-person span,.request-date span,.request-path small{color:var(--muted);font-size:.84rem}.request-actions{display:flex;gap:8px}.request-actions form{display:block}.danger-soft{color:var(--danger)!important}.tabs .tab b{margin-left:5px;background:#fff3;padding:2px 6px;border-radius:999px}
@media(max-width:850px){.public-hero{grid-template-columns:1fr;min-height:auto;text-align:center}.public-copy>p{margin-inline:auto}.public-cta{justify-content:center}.public-preview{margin-top:10px}.registration-request-row{grid-template-columns:auto 1fr}.request-path,.request-date,.request-actions{grid-column:2}.request-actions{justify-content:flex-start}}
@media(max-width:560px){.public-nav,.auth-public-nav{padding:0 16px}.public-nav .btn.secondary{display:none}.public-shell{padding:24px 16px 60px}.public-copy h1{font-size:2.9rem}.preview-phone{width:min(315px,94vw)}.student-auth-card{padding:27px 20px;border-radius:22px}.two-fields{grid-template-columns:1fr}.auth-public-nav .link{font-size:.9rem}.registration-request-row{grid-template-columns:1fr}.registration-request-row>.avatar{display:none}.request-path,.request-date,.request-actions{grid-column:1}}

/* CentPas — éditeur pédagogique par blocs */
.lesson-builder{padding:28px}.builder-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.builder-head h2{margin:5px 0}.builder-head p{margin:0;color:var(--muted)}.block-count{background:#f0edff;color:#5c49bf;border-radius:999px;padding:7px 11px;font-size:.8rem;font-weight:800}.builder-empty{border:1px dashed #cfc8e4;border-radius:16px;padding:24px;text-align:center;background:#faf9fd;margin:12px 0 22px}.builder-empty p{color:var(--muted);margin-bottom:0}.pedagogical-blocks{display:grid;gap:12px}.pedagogical-block{display:grid;grid-template-columns:38px 1fr auto;gap:14px;border:1px solid #e6e1ee;border-radius:17px;padding:17px;background:#fff;align-items:start}.pedagogical-block.editing{border-color:#9c8ee8;box-shadow:0 0 0 3px #6d5bd01a}.block-number{width:32px;height:32px;border-radius:10px;background:#f1eff8;display:grid;place-items:center;font-weight:850;color:#6a6178}.block-main{min-width:0}.block-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.block-type{font-size:.78rem;font-weight:800;color:#5d4bc0;background:#f0edff;border-radius:999px;padding:5px 9px}.block-preview{color:#554f60;line-height:1.6;margin:11px 0 0}.block-url{display:block;color:#80788e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:8px}.block-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.block-tools form{display:flex;gap:4px}.block-tools .mini{text-decoration:none}.block-edit-form{margin-top:18px;padding-top:18px;border-top:1px solid #eeeaf4;display:grid;grid-template-columns:1fr 1fr;gap:14px}.block-edit-form .wide{grid-column:1/-1}.block-add-form{margin-top:12px}.lesson-builder h3{margin-bottom:8px}
@media(max-width:760px){.pedagogical-block{grid-template-columns:34px 1fr}.block-tools{grid-column:2;justify-content:flex-start}.block-edit-form{grid-template-columns:1fr}.builder-head{display:block}.block-count{display:inline-block;margin-top:10px}}
