:root{--bg: #faf6f0;--surface: #ffffff;--text: #24211d;--muted: #6b645b;--border: #e4dccf;--primary: #b4532a;--primary-dark: #8f3f1e;--accent: #1f5f4a;--accent-soft: #e3f1ec;--danger: #a12b2b;--danger-soft: #fbe9e7;--info-soft: #fdf1dc;--radius: 12px}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.5}h1{font-size:1.7rem;margin:0 0 .5rem;line-height:1.2}h2{font-size:1.2rem;margin:0 0 .75rem}h3{font-size:1.05rem;margin:.5rem 0 .25rem}p{margin:0 0 .75rem}ul,ol{margin:0 0 .75rem;padding-left:1.25rem}section{margin-bottom:1.5rem}.app{min-height:100vh;display:flex;flex-direction:column}.header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header-inner{max-width:1080px;margin:0 auto;padding:.6rem 1rem;display:flex;align-items:center;gap:.75rem 1.25rem;flex-wrap:wrap}.brand{font-weight:800;font-size:1.25rem;color:var(--accent);text-decoration:none;letter-spacing:.02em}.brand span{color:var(--primary)}.nav{display:flex;gap:.25rem;flex-wrap:wrap;flex:1}.nav a{color:var(--text);text-decoration:none;padding:.4rem .7rem;border-radius:8px;font-weight:500}.nav a:hover{background:var(--bg)}.nav a.active{background:var(--accent-soft);color:var(--accent)}.header-user{display:flex;align-items:center;gap:.6rem;font-size:.9rem;color:var(--muted)}.main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:1.5rem 1rem 3rem}.footer{text-align:center;padding:1rem;font-size:.85rem;color:var(--muted);border-top:1px solid var(--border)}.narrow{max-width:620px;margin:0 auto}.stack>*+*{margin-top:1.25rem}.grid{display:grid;gap:1rem;margin-bottom:1rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem}.narrow>.card{margin-bottom:1rem}.muted{color:var(--muted)}.small{font-size:.875rem}.link{color:var(--primary-dark);font-weight:600}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;color:var(--primary);font-weight:700}.hero{padding:2rem 0 1.5rem}.hero h1{font-size:2.3rem;color:var(--accent)}.lead{font-size:1.1rem;max-width:46rem}.steps li{margin-bottom:.35rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem 1rem;min-height:44px;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}.btn:hover{border-color:var(--muted)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark);border-color:var(--primary-dark)}.btn-danger{color:var(--danger);border-color:#e2b9b5}.btn-ghost{background:transparent}.btn-small{min-height:34px;padding:.3rem .7rem;font-size:.875rem}.actions{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.75rem}.section-head h1,.section-head h2{margin:0}.form{display:flex;flex-direction:column;gap:.9rem}.form h2{margin:.4rem 0 0}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem}label{display:flex;flex-direction:column;gap:.3rem;font-weight:600;font-size:.92rem}input,select,textarea{font:inherit;padding:.6rem .7rem;min-height:44px;border:1px solid #cfc5b5;border-radius:10px;background:#fff;color:var(--text);width:100%}input:focus,select:focus,textarea:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(31,95,74,.35);outline-offset:1px}.hint{font-weight:400;font-size:.82rem;color:var(--muted)}.checkbox{flex-direction:row;align-items:flex-start;gap:.6rem;font-weight:400}.checkbox input{width:22px;min-height:22px;height:22px;margin-top:.15rem;flex:none}.stepper{color:var(--muted);font-weight:600}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:.9rem;margin-bottom:1rem}.choice,.demo-account{display:flex;flex-direction:column;gap:.3rem;text-align:left;font:inherit;cursor:pointer;padding:1rem;border-radius:var(--radius);border:2px solid var(--border);background:var(--surface);color:var(--text)}.choice:hover,.demo-account:hover{border-color:var(--primary)}.choice span,.demo-account span{color:var(--muted);font-size:.9rem}.demo-list{display:grid;gap:.6rem}.demo-account:disabled{opacity:.6;cursor:wait}.alert{padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem;display:flex;gap:1rem;justify-content:space-between;align-items:center;flex-wrap:wrap}.alert ul{margin:.4rem 0 0}.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid #efc4bf}.alert-success{background:var(--accent-soft);color:#154737;border:1px solid #bcdccf}.alert-info{background:var(--info-soft);color:#6b4a12;border:1px solid #f0d9ab}.state{padding:1.5rem;text-align:center;color:var(--muted)}.state-empty{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);margin-bottom:1rem}.state-empty strong{display:block;color:var(--text);margin-bottom:.25rem}.spinner{display:inline-block;width:1rem;height:1rem;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite;vertical-align:-2px;margin-right:.4rem}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation:none}}.tag{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.8rem;font-weight:600;background:#f0eadf;color:#554d42;white-space:nowrap}.tag-planifiee{background:#e6eefb;color:#23457f}.tag-realisee{background:var(--info-soft);color:#7a5410}.tag-validee,.tag-p-validee{background:var(--accent-soft);color:#154737}.tag-annulee,.tag-p-absent{background:var(--danger-soft);color:var(--danger)}.tag-kind-mentorat{background:#f3e6f5;color:#6a2c75}.tag-kind-formation{background:#fbe8dc;color:var(--primary-dark)}.session-head{display:flex;gap:.4rem;flex-wrap:wrap}.meta{margin:.6rem 0 0;display:grid;gap:.3rem}.meta div{display:grid;grid-template-columns:6.5rem 1fr;gap:.5rem;font-size:.92rem}.meta dt{color:var(--muted)}.meta dd{margin:0}.session-actions{margin-top:.9rem;display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;justify-content:space-between}.list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}.list-item{display:flex;align-items:center;gap:.75rem 1rem;flex-wrap:wrap}.list-item>div:first-child{flex:1;min-width:200px}.list-item p{margin:0}.points{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem;align-items:center;border-left:6px solid var(--accent)}.points p{margin:0 0 .3rem}.points-value{font-size:2.4rem;font-weight:800;color:var(--accent);line-height:1.1;font-variant-numeric:tabular-nums}.points-value span{font-size:1rem;font-weight:600;color:var(--muted)}.progress{height:12px;background:#ece5d8;border-radius:999px;overflow:hidden;margin:.4rem 0}.progress-bar{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.badge-chip{display:inline-block;margin:.2rem .4rem .2rem 0;padding:.15rem .6rem;border-radius:999px;background:#fff3c9;color:#6b4a00;font-weight:700;font-size:.85rem}.points-chip{font-weight:700;color:var(--accent)}.badges-line{margin-top:.4rem}.stat{text-align:center;color:var(--muted);font-size:.9rem}.stat span{display:block;font-size:2rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}.badge-card{display:flex;gap:1rem;align-items:flex-start}.badge-card h3{margin-top:0}.badge-icon{font-size:2.4rem;line-height:1;color:#c9c0b0}.badge-card.earned{border-color:#e4c35a;background:#fffaea}.badge-card.earned .badge-icon{color:#d19a00}.table-wrap{overflow-x:auto;padding:0}table{width:100%;border-collapse:collapse;font-size:.93rem}th,td{text-align:left;padding:.65rem .9rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:.85rem}tbody tr:last-child td{border-bottom:none}tfoot td{font-weight:700;border-top:2px solid var(--border);border-bottom:none}.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}@media (max-width: 720px){.header{position:static}.header-inner{justify-content:space-between}.nav{order:3;flex:1 0 100%;flex-wrap:nowrap;overflow-x:auto}.nav a{white-space:nowrap}.hero h1{font-size:1.8rem}.header-user span{display:none}.meta div{grid-template-columns:1fr;gap:0}}
