/* PROSCIENSE — feuille de style (compacte, responsive) */
:root{--p:#0a66c2;--p2:#004182;--pl:#e8f1fb;--bg:#f4f2ee;--card:#fff;--tx:#1d2226;--mu:#666;--bd:#e0dfdc;--ok:#057642;--err:#cc1016;--warn:#b24020;--r:8px;--sh:0 0 0 1px rgba(0,0,0,.08);--sh2:0 4px 16px rgba(0,0,0,.15);--hd:52px}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--tx);font:14px/1.42 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;min-height:100vh}
body.noscroll{overflow:hidden}
a{color:inherit;text-decoration:none}a:hover{color:var(--p)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
img{max-width:100%;display:block}
h1{font-size:20px;line-height:1.25;font-weight:600}h2{font-size:17px;font-weight:600}h3{font-size:15px;font-weight:600}
small{font-size:12px;display:block}
.ic{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.xs{width:13px;height:13px;vertical-align:-2px;display:inline}
.muted{color:var(--mu)}.sm{font-size:13px}.xs{font-size:12px}.c-red{color:var(--err)}.c-blue{color:var(--p)}.c-green{color:var(--ok)}.c-orange{color:#c37d16}
.row{display:flex;align-items:center}.gap{gap:8px}.wrap{flex-wrap:wrap}.end{justify-content:flex-end}.center{justify-content:center;text-align:center}.grow{flex:1;min-width:0}
.mt{margin-top:12px}.mt-s{margin-top:4px}.mb{margin-bottom:10px}.pad{padding:14px 16px}.full{width:100%}
.clamp1,.clamp2{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.clamp1{-webkit-line-clamp:1}.clamp2{-webkit-line-clamp:2}
.clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}

/* boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;border-radius:16px;background:var(--p);color:#fff;font-weight:600;font-size:14px;white-space:nowrap;transition:background .15s}
.btn:hover{background:var(--p2);color:#fff}.btn:disabled{opacity:.5;cursor:default}
.btn .ic{width:16px;height:16px}
.btn.sm{height:28px;padding:0 12px;font-size:13px}.btn.xs{height:24px;padding:0 10px;font-size:12px}.btn.lg{height:44px;padding:0 22px;font-size:15px;border-radius:22px}
.btn.outline{background:transparent;color:var(--p);box-shadow:inset 0 0 0 1px var(--p)}.btn.outline:hover{background:var(--pl);box-shadow:inset 0 0 0 2px var(--p)}
.btn.ghost{background:transparent;color:var(--mu);box-shadow:inset 0 0 0 1px #b6b6b6}.btn.ghost:hover{background:#f3f3f3;color:var(--tx)}
.btn.danger{background:var(--err)}.btn.danger:hover{background:#a00}.danger-t{color:var(--err)!important}
.btn.full{width:100%}
.link{color:var(--p);font-weight:600;display:inline-flex;align-items:center;gap:4px}.link:hover{text-decoration:underline}.link.sm{font-size:13px}.link.xs{font-size:12px;font-weight:500;color:var(--mu)}
.icon-btn{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;color:var(--mu);flex:none}.icon-btn:hover{background:#ebebeb;color:var(--tx)}.icon-btn.light{color:#fff}.icon-btn.light:hover{background:rgba(255,255,255,.2)}
.chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:15px;box-shadow:inset 0 0 0 1px #8c8c8c;font-weight:600;font-size:13px;color:#444;background:#fff}
.chip:hover{background:#f3f3f3}.chip.on{background:var(--ok);color:#fff;box-shadow:none}.chip.st{box-shadow:none;background:#eef3f8;font-weight:500;height:26px}.chip.ok{box-shadow:none;background:#e6f4ea;color:var(--ok);height:26px}
.chip.ck{font-weight:500;cursor:pointer;height:28px}.chip.ck input{width:14px;height:14px;accent-color:var(--ok)}.chip.ck:has(input:checked){background:#e6f4ea;box-shadow:inset 0 0 0 1px var(--ok);color:var(--ok)}
.chip .ic{width:16px;height:16px}.chips{display:flex;flex-wrap:wrap;gap:6px}

/* formulaires */
.form{display:flex;flex-direction:column;gap:10px}
.fld{display:flex;flex-direction:column;gap:3px;min-width:0}.fld>span{font-size:13px;color:var(--mu);font-weight:500}
input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{width:100%;border:1px solid #8c8c8c;border-radius:4px;padding:6px 10px;background:#fff;min-height:34px;font-size:14px}
textarea{resize:vertical;min-height:60px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--p);outline-offset:-1px;border-color:transparent}
textarea.big{border:0;padding:4px 0;font-size:16px;min-height:120px}textarea.big:focus{outline:0}
.mini-sel{min-height:24px!important;height:24px;padding:0 6px!important;border-radius:12px!important;font-size:12px!important;width:auto!important;margin-top:2px}
.g-2,.g-3,.g-4{display:grid;gap:10px}.g-2{grid-template-columns:1fr 1fr}.g-3{grid-template-columns:repeat(3,1fr)}.g-4{grid-template-columns:repeat(4,1fr)}
.chk{display:flex;align-items:center;gap:8px;font-size:13px;cursor:pointer}.chk input{width:16px;height:16px;accent-color:var(--p)}
.pw{position:relative}.pw .link{position:absolute;right:10px;top:7px;font-size:13px}
.swatch{width:26px;height:26px;border-radius:50%;cursor:pointer;display:grid;place-items:center}.swatch input{appearance:none;width:10px;height:10px;border-radius:50%}.swatch input:checked{background:#fff}

/* en-tête */
.hd{position:sticky;top:0;z-index:40;background:#fff;border-bottom:1px solid var(--bd);height:var(--hd)}
.hd-in{max-width:1128px;margin:auto;height:100%;display:flex;align-items:center;gap:8px;padding:0 12px}
.logo{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--p);letter-spacing:.3px}.logo:hover{color:var(--p)}
.logo-m{width:34px;height:34px;border-radius:6px;background:var(--p);color:#fff;display:grid;place-items:center;font-weight:800;font-size:20px;flex:none}
.logo-t{font-size:17px}.logo.center{justify-content:center;margin-bottom:12px}
.hd .logo-t{display:none}
.srch{position:relative;width:280px;flex:none}.srch .ic{position:absolute;left:10px;top:8px;width:17px;height:17px;color:var(--mu)}
.srch input{background:#edf3f8!important;border:0!important;height:34px;padding-left:34px!important;border-radius:4px!important}
.nvs{display:flex;margin-left:auto;height:100%}
.nv{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:76px;padding:0 4px;color:var(--mu);font-size:12px;height:100%;border-bottom:2px solid transparent}
.nv:hover{color:var(--tx)}.nv.on{color:var(--tx);border-bottom-color:var(--tx)}
.nv .ic{width:22px;height:22px}.nv .av{margin-bottom:0}.nv span{white-space:nowrap;margin-top:1px}
.nv.apps{border-left:1px solid var(--bd)}
.bd{position:absolute;top:4px;left:calc(50% + 4px);background:var(--err);color:#fff;font-style:normal;font-size:11px;font-weight:700;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px}
.hd-pub{display:flex;gap:16px;margin-left:16px;font-weight:600;color:var(--mu)}

/* mise en page */
.main{min-height:calc(100vh - var(--hd))}
.page{max-width:1128px;margin:0 auto;padding:20px 12px 40px}
.page.g3{display:grid;grid-template-columns:225px minmax(0,1fr) 300px;gap:20px;align-items:start}
.page.g2{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.page.g2l{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
.col-l,.col-r{display:flex;flex-direction:column;gap:8px;position:sticky;top:calc(var(--hd) + 20px)}
.col-c{display:flex;flex-direction:column;gap:8px;min-width:0}
.page.full{padding-top:20px}

/* cartes */
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px 0}
.card-b{padding:10px 16px 14px}
.card.flush .card-b{padding:0}.card.flush .card-h{padding-bottom:10px}
.space-h{padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:24px 10px;color:var(--mu)}
.empty .ic{width:44px;height:44px;stroke-width:1.2;color:#a5a5a5}.empty b{color:var(--tx);font-size:15px}.empty p{font-size:13px;max-width:360px}
.tabs{display:flex;gap:2px;background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow-x:auto;scrollbar-width:none;padding:0 6px}
.tabs::-webkit-scrollbar{display:none}
.tabs button{padding:11px 12px;font-weight:600;color:var(--mu);white-space:nowrap;border-bottom:2px solid transparent;font-size:14px}
.tabs button:hover{color:var(--tx);background:#f6f6f6}.tabs button.on{color:var(--ok);border-bottom-color:var(--ok)}
.tabs i{font-style:normal;background:#eef3f8;color:var(--mu);font-size:11px;padding:1px 6px;border-radius:8px;margin-left:3px}
.card .tabs{box-shadow:none;border-bottom:1px solid var(--bd);border-radius:0}
.kpis{display:flex;padding:4px 0}.kpis>*{flex:1;text-align:center;padding:10px 6px;border-right:1px solid var(--bd)}.kpis>*:last-child{border:0}
.kpis b{font-size:20px;display:block;color:var(--p)}.kpis small{color:var(--mu)}.kpis a:hover{background:#f6f6f6;color:inherit}
.bar{height:6px;background:#e9e9e9;border-radius:3px;overflow:hidden;margin:6px 0}.bar i{display:block;height:100%;background:var(--ok);border-radius:3px}
hr{border:0;border-top:1px solid var(--bd);margin:6px 0}
.quote{background:#f6f7f8;border-left:3px solid var(--p);padding:10px 12px;border-radius:4px;margin:8px 0;font-size:13px}
.fb{background:#f3f8f3;padding:6px 10px;border-radius:4px;margin-top:6px}
.dl{display:grid;grid-template-columns:minmax(120px,38%) 1fr;gap:6px 12px;font-size:13px;margin-bottom:8px}.dl dt{color:var(--mu)}.dl dd{word-break:break-word}
.ul{padding-left:18px;font-size:13px;line-height:1.8}
.tbl-w{overflow-x:auto}.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl th,.tbl td{padding:7px 8px;border-bottom:1px solid var(--bd);text-align:left;vertical-align:top}.tbl th{color:var(--mu);font-weight:600;font-size:12px;white-space:nowrap}
.faq{border-bottom:1px solid var(--bd);padding:10px 0}.faq summary{font-weight:600;cursor:pointer}.faq p{margin-top:6px}
.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px;font-size:12px;color:var(--mu);padding:8px 4px}.foot-links a:hover{color:var(--p);text-decoration:underline}
.back{margin-bottom:2px}

/* avatars & personnes */
.av{border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-weight:600;overflow:hidden;flex:none}.av img{width:100%;height:100%;object-fit:cover}
.av:hover{color:#fff;filter:brightness(.95)}
.avs{display:flex;margin-top:6px}.avs .av{margin-right:-6px;box-shadow:0 0 0 2px #fff}.avs.wrap{flex-wrap:wrap;gap:6px}.avs.wrap .av{margin:0}
.plink{font-weight:600;color:var(--tx)}.plink:hover{color:var(--p);text-decoration:underline}
.rtag{display:inline-block;font-size:11px;font-weight:600;padding:0 6px;border-radius:8px;vertical-align:1px;line-height:17px}
.rtag.gr{background:#fff4e5;color:#9a4b00}.rtag.fn{background:#f0f2f5;color:#4b5563;font-weight:500}
.r-Etudiant{background:#e7f3ff;color:#0a66c2}.r-Enseignant{background:#e6f4ea;color:#057642}.r-Chercheur{background:#f3e8ff;color:#7c3aed}.r-Personnel{background:#eef1f4;color:#374151}
.ktag{display:inline-block;font-size:11px;font-weight:600;padding:0 6px;border-radius:8px;background:#eef3f8;color:#555;line-height:17px}
.k-question{background:#fff4e5;color:#b25c00}.k-annonce{background:#fdecec;color:#b42318}.k-publication{background:#f3e8ff;color:#7c3aed}
.prow{display:flex;align-items:center;gap:10px;padding:8px 0}.prow+.prow{border-top:1px solid #f0f0f0}
.prow .btn{margin-top:4px}.prow .row .btn{margin-top:0}
.plist{max-height:55vh;overflow:auto;margin-top:8px}.sm-list{max-height:180px;border:1px solid var(--bd);border-radius:4px;padding:6px 10px}.sm-list .chk{padding:3px 0}
.item{display:flex;gap:10px;align-items:flex-start;padding:10px 0}.item+.item,.row+.row>.item{border-top:1px solid #f0f0f0}
.item-i{width:40px;height:40px;border-radius:6px;background:var(--p);color:#fff;display:grid;place-items:center;flex:none}.item-i.big{width:52px;height:52px}
.item-i.ext{background:#eef3f8;color:#444;font-size:11px;font-weight:700}
.obox{width:40px;height:40px;border-radius:6px;background:#eef3f8;color:var(--p);display:grid;place-items:center;flex:none}
.dbox{width:44px;height:46px;border-radius:6px;background:#fff;box-shadow:inset 0 0 0 1px var(--bd);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--err);text-transform:uppercase;font-weight:600;flex:none;line-height:1.1}
.dbox b{font-size:18px;color:var(--tx)}.dbox.big{width:54px;height:56px}
.evmini{display:flex;gap:10px;align-items:center;padding:7px 0}.evmini b{font-size:13px}.evmini:hover b{color:var(--p);text-decoration:underline}

/* fil */
.pmini{text-align:center}
.pm-cover{display:block;height:56px;background:linear-gradient(120deg,#a0b4b7,#d9c9a6) center/cover}
.pm-av{margin-top:-34px;display:flex;justify-content:center}.pm-av .av{box-shadow:0 0 0 2px #fff}
.pm-name{display:block;font-weight:600;font-size:16px;margin-top:6px;padding:0 12px}.pm-name:hover{text-decoration:underline}
.pm-head{font-size:12px;color:var(--mu);padding:2px 12px}.pm-uni{display:flex;align-items:center;justify-content:center;gap:4px;font-size:12px;color:var(--mu);padding:4px 12px 10px}.pm-uni .ic{width:14px}
.pm-stats{border-top:1px solid var(--bd);padding:8px 0;text-align:left}.pm-stats a{display:flex;justify-content:space-between;padding:3px 12px;font-size:12px;color:var(--mu);font-weight:600}.pm-stats a:hover{background:#f3f3f3}.pm-stats b{color:var(--p)}
.pm-link{display:flex;align-items:center;gap:6px;border-top:1px solid var(--bd);padding:10px 12px;font-size:12px;font-weight:600}.pm-link .ic{width:16px}.pm-link:hover{background:#f3f3f3}
.sc{padding:8px 0}.sc a{display:flex;align-items:center;gap:10px;padding:7px 14px;font-size:13px;font-weight:600;color:#444}.sc a:hover{background:#f3f3f3;color:var(--tx)}.sc a.on{color:var(--p);background:var(--pl)}
.sc a .ic{width:18px;height:18px;color:var(--mu)}.sc a b{font-size:12px;color:var(--mu)}
.sc-h{font-size:12px;color:var(--mu);font-weight:600;padding:8px 14px 4px}.sc-more{color:var(--p)!important;border-top:1px solid var(--bd);margin-top:4px}
.comp{padding:12px 16px 4px}.comp-in{flex:1;text-align:left;height:46px;border-radius:23px;box-shadow:inset 0 0 0 1px #8c8c8c;padding:0 16px;color:var(--mu);font-weight:600;font-size:14px}.comp-in:hover{background:#f3f3f3}
.comp-acts{display:flex;justify-content:space-around;margin-top:4px}.comp-acts button{display:flex;align-items:center;gap:6px;padding:10px 8px;border-radius:4px;font-weight:600;color:var(--mu);font-size:13px}.comp-acts button:hover{background:#f3f3f3}
.post-h{display:flex;gap:8px;padding:12px 16px 0;align-items:flex-start}.post-h small{line-height:1.3}
.mutedlink:hover{color:var(--p);text-decoration:underline}
.post-t{padding:8px 16px 0;white-space:normal;word-wrap:break-word;font-size:14px}.post-t a{color:var(--p);font-weight:600}
.card-b .post-t,.shared .post-t,.pad .post-t{padding:4px 0}
.more-btn{margin:0 16px;float:right}
.post-img{width:100%;margin-top:8px;max-height:520px;object-fit:cover;cursor:zoom-in}
.att{display:flex;align-items:center;gap:8px;margin:8px 16px 0;padding:10px 12px;border:1px solid var(--bd);border-radius:6px;font-weight:600;font-size:13px;background:#fafafa}.att span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.att:hover{background:#f0f6fc}
.att.sm{margin:6px 0 0;padding:6px 8px;background:rgba(255,255,255,.6)}
.card-b .att,.modal .att,.asg .att{margin:8px 0 0}
.shared{margin:8px 16px 0;border:1px solid var(--bd);border-radius:6px;padding:0 0 10px}.shared .post-h{padding:10px 12px 0}.shared .post-t{padding:6px 12px 0}.shared .link{margin:6px 12px 0}
.modal .shared{margin:8px 0}
.post-c{display:flex;align-items:center;gap:8px;padding:8px 16px;font-size:12px;color:var(--mu)}.post-c .link{color:var(--mu);font-weight:400;font-size:12px}.post-c .link:hover{color:var(--p)}
.lk{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--p);color:#fff}.lk .ic{width:10px;height:10px;stroke-width:2.5}
.post-a{display:flex;border-top:1px solid var(--bd);margin:0 12px;padding:2px 0}.post-a button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 4px;border-radius:4px;font-weight:600;color:var(--mu);font-size:14px}
.post-a button:hover{background:#f3f3f3;color:var(--tx)}.post-a button.on{color:var(--p)}.post-a button.on .ic{fill:rgba(10,102,194,.15)}
.coms{padding:0 16px 10px}.coms>.link{margin:4px 0}
.com{display:flex;gap:8px;margin-top:10px}.com-b{flex:1;min-width:0}.com-bub{background:#f2f2f2;border-radius:0 8px 8px 8px;padding:8px 12px;font-size:13px}.com-a{display:flex;gap:12px;padding:2px 12px}
.com-f{display:flex;align-items:center;gap:8px;margin-top:10px}.com-f input{border-radius:18px!important;height:36px}
.post .coms:empty{display:none}

/* profil */
.prof-cover{height:180px;background:linear-gradient(120deg,#9db4c0,#c9b79c) center/cover;position:relative}
.cover-btn,.av-btn{position:absolute;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--p);cursor:pointer;box-shadow:var(--sh2)}
.cover-btn{top:12px;right:12px}.av-btn{bottom:6px;right:6px}
.prof-b{padding:0 20px 18px;position:relative}
.prof-av{position:relative;width:136px;margin-top:-88px}.prof-av .av{box-shadow:0 0 0 4px #fff}
.prof-edit{position:absolute;right:16px;top:12px}
.prof-b h1{margin-top:8px;font-size:22px}.prof-head{font-size:15px;margin:2px 0 4px}
.item .icon-btn{margin-left:auto}

/* réseau */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.pcard{border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;padding-bottom:12px;gap:2px}
.pc-cover{height:56px;width:100%;background:linear-gradient(120deg,#a0b4b7,#d9c9a6) center/cover}
.pcard .av{margin-top:-36px;box-shadow:0 0 0 2px #fff}.pc-n{font-weight:600;margin-top:4px;padding:0 8px}.pcard small{padding:0 10px}.pcard .btn{margin-top:8px}

/* messagerie */
.inbox{display:grid;grid-template-columns:320px 1fr;height:calc(100vh - var(--hd) - 40px);min-height:420px}
.inbox-l{border-right:1px solid var(--bd);display:flex;flex-direction:column;min-height:0}
.inbox-h{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 6px 16px}.inbox-s{padding:4px 12px 8px;border-bottom:1px solid var(--bd)}
.inbox-s input{background:#edf3f8!important;border:0!important}
.cv-list{overflow:auto;flex:1}
.cv{display:flex;align-items:center;gap:10px;padding:10px 14px;border-left:3px solid transparent;position:relative}.cv:hover{background:#f3f3f3;color:inherit}.cv.on{background:#edf3f8;border-left-color:var(--ok)}
.cv.unread b,.cv.unread small{color:var(--tx);font-weight:700}.dot{width:10px;height:10px;border-radius:50%;background:var(--p);flex:none}
.inbox-c{display:flex;flex-direction:column;min-height:0;min-width:0}.empty-c{justify-content:center}
.chat-h{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--bd)}
.chat-b{flex:1;overflow:auto;padding:12px 16px;display:flex;flex-direction:column;gap:6px}
.chat-intro{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 0 16px;text-align:center}
.day-sep{text-align:center;margin:8px 0;font-size:12px;color:var(--mu)}
.msg{display:flex;flex-direction:column;align-items:flex-start;max-width:78%}.msg.me{align-self:flex-end;align-items:flex-end}
.bub{background:#f2f2f2;padding:8px 12px;border-radius:14px 14px 14px 4px;font-size:14px;word-wrap:break-word;max-width:100%}.msg.me .bub{background:var(--p);color:#fff;border-radius:14px 14px 4px 14px}
.msg.me .bub a{color:#fff;text-decoration:underline}.bub img{max-width:240px;border-radius:8px;margin-top:4px;cursor:zoom-in}
.msg small{padding:1px 4px}
.chat-f{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--bd)}.chat-f textarea{min-height:38px;max-height:140px;border-radius:18px;padding:8px 14px}
.only-m{display:none}

/* notifications */
.notif{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 0;border-bottom:1px solid var(--bd)}.notif.unread{background:#e7f1fb}
.notif-a{flex:1;display:flex;align-items:center;gap:12px;padding:10px 0 10px 16px;min-width:0}.notif-a:hover{color:inherit}.notif:hover{background:#f6f6f6}.notif.unread:hover{background:#dcebf9}

/* espaces / cours */
.space-h h1{font-size:19px}
.cgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ccard{border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;background:#fff;text-align:left}
.cc-top{display:block;padding:12px 14px;color:#fff;min-height:76px}.cc-top:hover{color:#fff;filter:brightness(1.05)}.cc-top b{font-size:15px;display:block;line-height:1.25}.cc-top small{opacity:.9;margin-top:4px}
.cc-b{display:flex;align-items:center;gap:8px;padding:10px 14px}.cc-f{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:8px 14px;border-top:1px solid var(--bd);margin-top:auto}
.ccard.add{align-items:center;justify-content:center;gap:4px;min-height:170px;border-style:dashed;color:var(--mu);text-align:center;padding:10px}.ccard.add .ic{width:32px;height:32px;color:var(--p)}.ccard.add:hover{background:#f7fafd}
.croom-band{background:var(--cc);color:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:flex-start;min-height:110px;background-image:linear-gradient(135deg,rgba(255,255,255,.12),rgba(0,0,0,.12))}
.croom-band h1{font-size:22px;margin:4px 0}.croom-band small{opacity:.9}
.croom-m{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 16px}
.code{font-size:13px;display:inline-flex;align-items:center;gap:4px;background:#eef3f8;padding:2px 4px 2px 10px;border-radius:14px}.code b{letter-spacing:1px}
.asg{padding:12px 0;border-bottom:1px solid #f0f0f0}.asg:last-child{border:0}.asg>p{margin:6px 0 0 50px}.asg .att,.asg .fb{margin-left:50px}
.att-list{border:1px solid var(--bd);border-radius:6px;max-height:320px;overflow:auto}.att-list .chk{padding:6px 10px;border-bottom:1px solid #f0f0f0}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center;font-size:12px}.cal b{color:var(--mu);font-weight:600;padding:2px 0}
.cal span{height:28px;width:28px;margin:auto;border-radius:50%;display:grid;place-items:center}.cal .today{background:var(--p);color:#fff;font-weight:700}.cal .mark{background:#e6f4ea;color:var(--ok);font-weight:700}.cal .today.mark{background:var(--p);color:#fff}

/* événements, groupes, universités */
.egrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.evcard{border:1px solid var(--bd);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.ev-top{height:90px;background:linear-gradient(120deg,#0a66c2,#378fe9) center/cover;display:flex;align-items:flex-end;padding:8px}
.ev-b{padding:10px 12px;display:flex;flex-direction:column;gap:3px;flex:1}.ev-b .btn{margin-top:auto;align-self:flex-start}.ev-b b{font-size:14px}
.ev-hero,.g-hero{height:150px;background:linear-gradient(120deg,#0a66c2,#378fe9) center/cover}.g-hero{height:110px;background:linear-gradient(120deg,#057642,#5aa96f)}.g-hero.uni{background:linear-gradient(120deg,#073f70,#0b5fa5 60%,#14a6a6)}
.ugrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.ucard{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:14px;display:flex;flex-direction:column;gap:3px}.ucard:hover{box-shadow:var(--sh2);color:inherit}.ucard b{font-size:14px}
.u-logo{width:44px;height:44px;border-radius:8px;background:#073f70;color:#fff;display:grid;place-items:center;font-weight:800;margin-bottom:6px}.u-logo.alt{background:#0f8a6c}.sec-h{padding:4px 2px 0}.prof-tags{margin:2px 0}.prof-tags .rtag{margin-right:2px}
.u-logo.big{width:72px;height:72px;font-size:24px;margin-top:-50px;box-shadow:0 0 0 3px #fff}

/* menus, modales, toasts */
.pop{position:absolute;z-index:60;background:#fff;border-radius:8px;box-shadow:var(--sh2),var(--sh);min-width:230px;max-width:320px;padding:6px 0}
.pop button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 14px;font-size:14px;color:#333}.pop button:hover{background:#f3f3f3}.pop button.danger{color:var(--err)}
.pop .ic{width:18px;height:18px;color:var(--mu)}.pop hr{margin:4px 0}
.pm-u{display:flex;gap:10px;align-items:center}.pm-u small{color:var(--mu);font-weight:400}
.modal-wrap{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.55);display:flex;align-items:flex-start;justify-content:center;padding:6vh 12px 12px;overflow:auto}
.modal{background:#fff;border-radius:10px;width:100%;max-width:560px;box-shadow:var(--sh2);animation:pop .15s ease-out}.modal.wide{max-width:760px}
@keyframes pop{from{transform:translateY(10px);opacity:0}}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--bd);font-size:16px}
.modal-b{padding:14px 16px 16px;max-height:78vh;overflow:auto}
#toasts{position:fixed;left:16px;bottom:16px;z-index:90;display:flex;flex-direction:column;gap:8px}
.toast{background:#1d2226;color:#fff;padding:10px 16px;border-radius:6px;box-shadow:var(--sh2);font-size:14px;max-width:360px;transition:.3s;border-left:4px solid var(--ok)}.toast.err{border-left-color:var(--err)}.toast.out{opacity:0;transform:translateY(8px)}
.boot{height:100vh;display:grid;place-items:center}.boot .logo-m{width:56px;height:56px;font-size:30px;animation:pulse 1s infinite alternate}
@keyframes pulse{to{opacity:.4}}

/* accueil public & authentification */
.land{max-width:1128px;margin:auto;padding:24px 16px}
.land-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:30px;align-items:center;padding:24px 0 36px}
.land-txt h1{font-size:40px;font-weight:300;color:#8f5849;line-height:1.15;margin-bottom:14px}
.land-txt p{font-size:16px;color:#444;margin-bottom:20px;max-width:560px}
.demo-box{margin-top:22px;padding:12px 14px;background:#fff;border-radius:var(--r);box-shadow:var(--sh);display:inline-flex;flex-direction:column;gap:8px}
.art-stack{display:flex;flex-direction:column;gap:12px;padding:20px}
.art-card{display:flex;align-items:center;gap:10px;background:#fff;padding:12px 14px;border-radius:12px;box-shadow:var(--sh2);transform:translateX(calc(var(--i,0) * 22px))}.art-card>div{flex:1}.art-card small{color:var(--mu)}
.art-card.wide{background:var(--p);color:#fff}.art-card.wide small{color:#dbe9f8}.art-card.wide .btn{background:#fff;color:var(--p)}
.land-feat{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.feat{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:16px}.feat .ic{width:28px;height:28px;color:var(--p);margin-bottom:6px}.feat b{display:block;font-size:15px;margin-bottom:4px}.feat p{font-size:13px;color:var(--mu)}
.land-uni{margin:28px 0 12px}.land-uni h2{margin-bottom:10px}.uni-strip{display:flex;flex-wrap:wrap;gap:6px}.uni-strip a{background:#fff;box-shadow:var(--sh);border-radius:16px;padding:5px 12px;font-size:13px;font-weight:600;color:#444}.uni-strip a:hover{color:var(--p)}
.auth{min-height:calc(100vh - var(--hd));display:flex;justify-content:center;padding:28px 12px}
.auth-card{background:#fff;border-radius:var(--r);box-shadow:var(--sh2);padding:24px;width:100%;max-width:400px;align-self:flex-start}.auth-card.wide{max-width:640px}
.auth-card h1{font-size:24px;margin-bottom:2px}.auth-card>.muted{margin-bottom:14px}.auth-card .form{margin-top:12px}
.sep{display:flex;align-items:center;gap:8px;color:var(--mu);font-size:12px;margin:16px 0 10px}.sep:before,.sep:after{content:"";flex:1;border-top:1px solid var(--bd)}
.role-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}
.role-pick button{border:1px solid var(--bd);border-radius:8px;padding:10px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}.role-pick button .ic{color:var(--p);width:24px;height:24px}
.role-pick button.on{border-color:var(--p);box-shadow:inset 0 0 0 1px var(--p);background:var(--pl)}.role-pick small{color:var(--mu)}

/* navigation mobile */
.mnav{display:none}

/* ---------- responsive ---------- */
@media (max-width:1100px){.nv{min-width:64px}.srch{width:220px}}
@media (max-width:991px){
  .page.g3{grid-template-columns:200px minmax(0,1fr)}.page.g3 .col-r{display:none}
  .page.g2,.page.g2l{grid-template-columns:minmax(0,1fr) 260px}.page.g2l{grid-template-columns:240px minmax(0,1fr)}
  .nv>span:not(.av){display:none}.nv{min-width:52px}.srch{flex:1;width:auto}
  .land-hero{grid-template-columns:1fr}.land-art{display:none}.land-feat{grid-template-columns:1fr 1fr}
}
@media (max-width:800px){
  :root{--hd:48px}
  body{padding-bottom:58px}
  .page{padding:8px 0 20px}
  .page.g3,.page.g2,.page.g2l{display:flex;flex-direction:column;gap:8px;align-items:stretch}
  .col-l,.col-r{position:static}
  .page.g3 .col-l{display:none}
  .page.g2 .col-r .card:not(:first-child){display:none}
  .page.g2l .col-l{order:0}
  .card{border-radius:0}.tabs{border-radius:0}
  .nvs .nv:not(.me-btn):not(.apps){display:none}.nv{min-width:44px}.nv.apps{border:0}
  .hd-in{gap:6px;padding:0 8px}
  .mnav{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:#fff;border-top:1px solid var(--bd);z-index:45;padding-bottom:env(safe-area-inset-bottom)}
  .mnav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;color:var(--mu);position:relative}
  .mnav a.on{color:var(--tx);box-shadow:inset 0 2px 0 var(--tx)}.mnav .ic{width:22px;height:22px}
  .mnav .bd{top:4px}
  .inbox{grid-template-columns:1fr;height:calc(100vh - var(--hd) - 72px);border-radius:0}
  .inbox.has-chat .inbox-l{display:none}.inbox:not(.has-chat) .inbox-c{display:none}.only-m{display:inline-grid}
  .prof-cover{height:110px}.prof-av{width:96px;margin-top:-56px}.prof-av .av{width:96px!important;height:96px!important;font-size:36px!important}.prof-b{padding:0 14px 14px}.prof-b h1{font-size:19px}
  .kpis{flex-wrap:wrap}.kpis>*{min-width:33%;border-bottom:1px solid var(--bd)}
  .g-3,.g-4{grid-template-columns:1fr 1fr}
  .land-txt h1{font-size:28px}.land-feat{grid-template-columns:1fr}
  .modal-wrap{padding:0;align-items:stretch}.modal{border-radius:0;max-width:none!important;min-height:100%}.modal-b{max-height:none}
  .post-a button span{font-size:13px}
  .croom-band{min-height:90px;padding:14px}.croom-band h1{font-size:19px}
  .space-h{padding:12px}
  #toasts{bottom:68px;left:8px;right:8px}.toast{max-width:none}
  .msg{max-width:88%}
  .dl{grid-template-columns:1fr}.dl dt{margin-top:4px}
  .asg>p,.asg .att,.asg .fb{margin-left:0}
  .prow{flex-wrap:wrap}.prow>.grow{flex-basis:calc(100% - 60px)}.prow>.row:last-child,.prow>.btn:last-child,.prow>span:last-child{margin-left:54px}
  .g2l .col-l .sc{display:flex;overflow-x:auto;padding:4px 6px;scrollbar-width:none}.g2l .col-l .sc a{white-space:nowrap;padding:6px 10px;border-radius:16px}.g2l .col-l .sc-h,.g2l .col-l .foot-links{display:none}
  .hd-pub{display:none}
}
@media (max-width:480px){
  .g-2{grid-template-columns:1fr}
  .post-a button span{display:none}
  .comp-acts button{font-size:12px;padding:8px 4px}
  .pgrid{grid-template-columns:1fr 1fr}
  .cgrid,.egrid{grid-template-columns:1fr}
  .role-pick{grid-template-columns:1fr 1fr}
  .auth-card{padding:18px;box-shadow:none;background:transparent}
  .srch input::placeholder{font-size:13px}
}
.col-r .prow{flex-wrap:wrap}.col-r .prow>.grow{flex-basis:calc(100% - 60px)}.col-r .prow>.btn:last-child,.col-r .prow>.row:last-child{margin-left:54px}

/* v5 : vérifications, responsables, communiqués, scolarité */
.vchk{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:var(--p);color:#fff;vertical-align:-2px}.vchk .ic{width:10px;height:10px;stroke-width:3}
.vtag{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;padding:0 7px;border-radius:9px;line-height:18px;background:#e6f4ea;color:var(--ok);vertical-align:1px}.vtag.ad{background:#e8f1fb;color:var(--p)}
.rtag.adm{background:#073f70;color:#fff}
.warn{background:#fff4e5;color:#7a3b00;border-radius:var(--r);font-size:13px}.warn .ic{width:16px;height:16px;vertical-align:-3px}
.hp{position:absolute!important;left:-9999px!important;height:1px;width:1px;opacity:0}
.ph-ph{width:96px;height:96px;border-radius:50%;background:#eef3f8;display:grid;place-items:center;margin:0 auto 10px;color:var(--p)}.ph-ph .ic{width:40px;height:40px}
.modal .center p{margin:6px 0}
.comm-doc .comm-head{background:#073f70;color:#fff;padding:10px 16px;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}
.comm-doc h2{font-size:13px;letter-spacing:3px;color:var(--mu)}.comm-doc h1{margin:4px 0 8px}
.sign{margin-top:18px;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.chip.err{box-shadow:none;background:#fdecec;color:var(--err);height:26px}
.chat-card .msg{margin-bottom:8px}
.xs{font-size:12px}

/* v6 : premium & tarifs */
.ptag{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#c37d16;color:#fff;vertical-align:-2px}.ptag .ic{width:10px;height:10px;fill:#fff}
.vtag.pm{background:#fff4e5;color:#9a4b00}.vtag.pm .ic{fill:#c37d16}
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.plans.two{grid-template-columns:1fr 1fr}
.plan{background:#fff;border-radius:var(--r);box-shadow:var(--sh);padding:16px;display:flex;flex-direction:column;gap:6px;position:relative}
.plan.hl{box-shadow:0 0 0 2px var(--p)}.plan-tag{position:absolute;top:-10px;right:12px;background:var(--p);color:#fff;font-size:11px;font-weight:700;padding:2px 8px;border-radius:9px}
.plan-n{font-size:15px}.plan-p{font-size:22px;font-weight:700;color:var(--p)}.plan-p small{font-size:12px;color:var(--mu);font-weight:400}
.plan .btn{margin-top:auto}
.feat-l{list-style:none;font-size:13px;display:flex;flex-direction:column;gap:4px;margin:4px 0 10px}.feat-l li{display:flex;gap:6px;align-items:flex-start}.feat-l .ic{color:var(--ok);margin-top:3px}
.feat-box{box-shadow:0 0 0 1px #f0c36d,var(--sh)}.feat-box .card-h h3 .ic{fill:#c37d16;color:#c37d16}
.avs.blur .av{filter:blur(3px)}
.pay-sum{display:flex;justify-content:space-between;background:#f6f7f8;padding:10px 12px;border-radius:6px}
.paym input{display:none}.op{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:8px;font-weight:700;cursor:pointer;box-shadow:inset 0 0 0 1px var(--bd);color:#555}
.paym input:checked+.op.mtn{background:#ffcc00;color:#1d2226;box-shadow:none}.paym input:checked+.op.orange{background:#ff7900;color:#fff;box-shadow:none}
.pm-up{color:#9a4b00!important;font-weight:600}.pm-up .ic{color:#c37d16!important}
@media (max-width:800px){.plans,.plans.two{grid-template-columns:1fr}.plan{border-radius:0}}

/* v7 : application installable */
.app-hero{display:flex;align-items:center;gap:14px;padding:16px;flex-wrap:wrap}.app-hero>.grow{flex:1 1 220px}
@media (max-width:800px){.app-hero>.btn{flex:1 1 100%}}.app-hero img{border-radius:16px;box-shadow:var(--sh2)}
.steps{padding-left:20px;font-size:14px;line-height:1.9}
.inst-chip{margin-bottom:12px;box-shadow:inset 0 0 0 1px var(--p);color:var(--p)}
.pwa-banner{position:fixed;left:8px;right:8px;bottom:64px;z-index:46;background:#fff;border-radius:12px;box-shadow:var(--sh2),var(--sh);display:flex;align-items:center;gap:10px;padding:10px 10px 10px 12px;animation:pop .2s}
.pwa-banner img{border-radius:8px}.pwa-banner small{color:var(--mu)}
@media (display-mode: standalone){.hd{padding-top:env(safe-area-inset-top)}}
