
:root{--bg:#09070f;--bg2:#120b21;--panel:#130f1d;--panel2:#1b1430;--border:#3d2a67;--text:#f5eeff;--muted:#b8aad8;--accent:#9d72ff;--accent2:#c78cff;--accent-soft:#6f4bd8;--danger:#ff7fa7;--gold:#e1c58f}
*{box-sizing:border-box}
body{margin:0;background:radial-gradient(circle at 30% 0,#15251f 0,transparent 30%),var(--bg);color:var(--text);font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;min-height:100vh}
a{color:inherit;text-decoration:none}.topbar{height:64px;padding:0 22px;display:flex;align-items:center;border-bottom:1px solid var(--border);background:#141b21}.brand{font-weight:850;font-size:18px;margin-right:auto}.brand b{color:var(--accent)}nav{display:flex;gap:8px}nav a,.btn{padding:9px 13px;border:1px solid var(--border);border-radius:9px;background:var(--panel2);font-weight:650;cursor:pointer}.btn.primary{background:#16372d;border-color:#37715e}.btn.danger{background:#321d20;border-color:#70464c;color:#ffdfe2}.container{width:min(1120px,calc(100% - 30px));margin:34px auto}.hero,.card,.form-card{border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#172028,#11181e);padding:24px}.hero h1{font-size:40px;margin:0 0 8px}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.form-card{width:min(540px,100%);margin:40px auto}label{display:block;color:var(--muted);font-size:12px;margin:13px 0 6px}input,textarea{width:100%;padding:11px 12px;border-radius:9px;border:1px solid var(--border);background:#0d1419;color:var(--text);font-size:15px}textarea{min-height:90px}.actions{display:flex;gap:7px;flex-wrap:wrap}.alert{padding:11px 13px;border-radius:9px;margin:12px 0}.error{background:#2a181b;border:1px solid #71464d;color:#ffdfe2}.ok{background:#143027;border:1px solid #346d59;color:#dffff2}table{width:100%;border-collapse:collapse;margin-top:10px}th,td{padding:11px;border-bottom:1px solid var(--border);text-align:left;font-size:14px}th{font-size:11px;color:var(--muted);text-transform:uppercase}.badge{display:inline-block;padding:4px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px}.badge.prof{color:#a8e6d1;border-color:#39745f;background:#143027}.badge.student{color:#c8d3da}.group-link{padding:10px;border-radius:8px;background:#0d1419;border:1px solid var(--border);word-break:break-all}.small{font-size:12px;padding:7px 9px}@media(max-width:760px){.grid{grid-template-columns:1fr}.topbar{padding:0 10px}nav a{padding:8px;font-size:12px}}

.badge.draft{color:#d3dde3;background:#1b242b}
.badge.submitted{color:#ffe2a3;border-color:#7a6331;background:#2e2817}
.badge.reviewed{color:#a8e6d1;border-color:#39745f;background:#143027}
.comment{padding:13px 0;border-bottom:1px solid var(--border)}
.comment strong{display:inline-block;margin-right:9px}
.comment small{color:var(--muted)}
.comment p{margin:7px 0 0;line-height:1.5}

/* RuneCreator Site complet V5 — navigation retour */
.back-link{
  margin-right:10px;
  padding:9px 12px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#10171c;
  color:#cfe7df;
  font-weight:700;
  white-space:nowrap;
}
.back-link:hover{border-color:#4d6e61;background:#17251f;color:#effff9}
@media(max-width:760px){
  .back-link{padding:8px 9px;font-size:12px;margin-right:5px}
}


/* RuneCreator V6 — thème violet runique */
html,body{background:radial-gradient(circle at 18% 0%, rgba(157,114,255,.16), transparent 28%),radial-gradient(circle at 84% 10%, rgba(199,140,255,.12), transparent 26%),linear-gradient(180deg,#09070f 0%,#0d0a16 35%,#09070f 100%)!important}
body{position:relative;overflow-x:hidden}
body::before,body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1}
body::before{
  opacity:.72;
  background:
    radial-gradient(circle at 12% 18%, rgba(199,140,255,.30) 0 2px, transparent 3px),
    radial-gradient(circle at 78% 22%, rgba(157,114,255,.24) 0 1.8px, transparent 3px),
    radial-gradient(circle at 34% 72%, rgba(203,150,255,.18) 0 2px, transparent 3px),
    radial-gradient(circle at 88% 64%, rgba(157,114,255,.22) 0 2px, transparent 3px),
    radial-gradient(circle at 62% 84%, rgba(225,197,143,.13) 0 1.6px, transparent 3px),
    radial-gradient(circle at 18% 86%, rgba(199,140,255,.18) 0 1.8px, transparent 3px);
  animation:rcStarDrift 24s linear infinite;
}
body::after{
  opacity:.55;
  background:
    radial-gradient(circle at 50% 0%, rgba(111,75,216,.18), transparent 40%),
    repeating-linear-gradient(115deg, transparent 0 40px, rgba(159,120,255,.03) 40px 42px, transparent 42px 84px);
  animation:rcAura 12s ease-in-out infinite alternate;
}
@keyframes rcStarDrift{0%{transform:translateY(0)}50%{transform:translateY(-18px)}100%{transform:translateY(0)}}
@keyframes rcAura{0%{opacity:.38;filter:blur(0px)}100%{opacity:.7;filter:blur(2px)}}
.topbar{background:linear-gradient(180deg,rgba(25,17,43,.96),rgba(16,12,25,.96))!important;border-bottom:1px solid rgba(151,110,255,.32)!important;box-shadow:0 10px 30px rgba(77,33,120,.22)}
.brand{font-size:20px!important;letter-spacing:.02em;text-shadow:0 0 14px rgba(157,114,255,.28)}
.brand b{color:var(--accent2)!important;text-shadow:0 0 12px rgba(199,140,255,.38)}
nav a,.btn,.back-link{background:linear-gradient(180deg,rgba(36,25,63,.96),rgba(23,16,38,.96))!important;border-color:rgba(151,110,255,.28)!important;color:#f3edff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.02),0 0 0 rgba(0,0,0,0);transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease}
nav a:hover,.btn:hover,.back-link:hover{transform:translateY(-1px);border-color:rgba(199,140,255,.58)!important;box-shadow:0 0 18px rgba(121,74,255,.18),0 8px 22px rgba(0,0,0,.18);background:linear-gradient(180deg,rgba(53,37,94,.98),rgba(31,22,52,.98))!important}
.btn.primary{background:linear-gradient(180deg,rgba(124,84,255,.36),rgba(88,58,183,.26))!important;border-color:rgba(183,146,255,.55)!important;color:#fff4ff!important;box-shadow:0 0 18px rgba(124,84,255,.16)}
.btn.primary:hover{box-shadow:0 0 24px rgba(157,114,255,.28),0 10px 22px rgba(0,0,0,.24)}
.btn.danger{background:linear-gradient(180deg,rgba(92,27,62,.92),rgba(52,16,33,.94))!important;border-color:rgba(255,127,167,.35)!important;color:#ffe0ec!important}
.hero,.card,.form-card{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(27,18,48,.90),rgba(15,11,24,.94))!important;border-color:rgba(157,114,255,.22)!important;box-shadow:0 18px 40px rgba(0,0,0,.22), inset 0 1px 0 rgba(255,255,255,.03)}
.hero::before,.card::before,.form-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(125deg, transparent 0%, rgba(199,140,255,.07) 24%, transparent 45%, rgba(157,114,255,.04) 70%, transparent 100%)}
.hero h1,.hero h2,.card h3,.form-card h2{color:#faf6ff;text-shadow:0 0 12px rgba(157,114,255,.15)}
label,.muted,th,.comment small{color:#c3b6dd!important}
input,textarea,select{background:rgba(11,8,18,.94)!important;border-color:rgba(157,114,255,.22)!important;color:#f6efff!important;box-shadow:inset 0 0 18px rgba(125,82,236,.05)}
input:focus,textarea:focus,select:focus{outline:none;border-color:rgba(199,140,255,.55)!important;box-shadow:0 0 0 3px rgba(157,114,255,.14), inset 0 0 18px rgba(125,82,236,.08)}
.alert.ok{background:linear-gradient(180deg,rgba(61,31,104,.66),rgba(27,18,48,.76))!important;border-color:rgba(157,114,255,.35)!important;color:#f4ecff!important}
.alert.error,.error{background:linear-gradient(180deg,rgba(71,24,58,.82),rgba(45,15,32,.82))!important;border-color:rgba(255,127,167,.28)!important;color:#ffe2ef!important}
.badge{background:rgba(20,13,35,.75)!important;border-color:rgba(157,114,255,.20)!important;color:#eadfff!important}
.badge.prof{background:rgba(72,42,131,.35)!important;border-color:rgba(199,140,255,.4)!important;color:#f3e8ff!important}
.badge.student{background:rgba(30,21,52,.65)!important;color:#d6c8fa!important}
.badge.draft{background:rgba(31,24,51,.8)!important;color:#ded3ff!important;border-color:rgba(114,91,175,.3)!important}
.badge.submitted{background:rgba(85,56,144,.48)!important;color:#fff0c9!important;border-color:rgba(225,197,143,.34)!important}
.badge.reviewed{background:rgba(53,39,97,.58)!important;color:#ddcffd!important;border-color:rgba(199,140,255,.30)!important}
.group-link{background:rgba(11,8,18,.82)!important;border-color:rgba(157,114,255,.2)!important;color:#efe6ff!important}
.table,table{background:transparent}
.comment{border-bottom-color:rgba(157,114,255,.12)!important}


/* V7 — collaboration et présence */
.student-picker{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.student-chip{position:relative;margin:0}.student-chip input{position:absolute;opacity:0;pointer-events:none}.student-chip span{display:block;padding:9px 12px;border:1px solid rgba(157,114,255,.23);border-radius:999px;background:rgba(22,15,37,.8);cursor:pointer;transition:.16s}.student-chip input:checked+span{border-color:rgba(199,140,255,.62);background:rgba(103,70,180,.38);box-shadow:0 0 14px rgba(157,114,255,.15)}.student-chip input:disabled+span{opacity:.82;cursor:default}.live-pulse{display:inline-flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid rgba(199,140,255,.28);border-radius:999px;background:rgba(72,42,131,.22);font-size:12px}.live-pulse span,.live-dot{width:9px;height:9px;border-radius:50%;background:#c78cff;box-shadow:0 0 0 0 rgba(199,140,255,.55);animation:livePulse 1.7s infinite}@keyframes livePulse{70%{box-shadow:0 0 0 8px rgba(199,140,255,0)}100%{box-shadow:0 0 0 0 rgba(199,140,255,0)}}.live-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:10px}.live-user{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(157,114,255,.2);border-radius:12px;background:rgba(18,12,30,.76)}.live-user div{flex:1}.live-user small,.table-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}.live-user:hover{border-color:rgba(199,140,255,.48);box-shadow:0 0 18px rgba(157,114,255,.12)}


/* V7.3 — bibliothèque de projets */
.project-list{display:flex;flex-direction:column;gap:10px}
.project-row{display:flex;align-items:center;gap:16px;padding:15px;border:1px solid rgba(157,114,255,.16);border-radius:13px;background:linear-gradient(180deg,rgba(31,21,52,.72),rgba(16,11,27,.78));transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.project-row:hover{transform:translateY(-1px);border-color:rgba(199,140,255,.32);box-shadow:0 10px 26px rgba(0,0,0,.18),0 0 18px rgba(121,74,255,.08)}
.project-main{flex:1;min-width:0}.project-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.project-title-line strong{font-size:16px}.project-date{font-size:11px;color:var(--muted);margin-top:5px}.project-actions{justify-content:flex-end;align-items:center}.project-actions form{margin:0}.badge.privacy{color:#dccfff!important;border-color:rgba(157,114,255,.25)!important;background:rgba(75,50,130,.20)!important}.prof-projects-callout{border-color:rgba(199,140,255,.30)!important;box-shadow:0 0 24px rgba(121,74,255,.08)!important}
@media(max-width:760px){.project-row{align-items:flex-start;flex-direction:column}.project-actions{justify-content:flex-start}}


/* V7.4 — interface animée et couleurs améliorées */
:root{
  --bg:#080610;
  --bg2:#140d24;
  --panel:#150e23;
  --panel2:#221636;
  --border:#5f3db1;
  --text:#fbf7ff;
  --muted:#cbbce8;
  --accent:#a97cff;
  --accent2:#d49dff;
  --accent-soft:#7b54e8;
  --danger:#ff80b4;
  --success:#9cf1d0;
}
body{
  background:
    radial-gradient(circle at 12% -2%, rgba(130,84,255,.22), transparent 24%),
    radial-gradient(circle at 88% 8%, rgba(212,157,255,.17), transparent 24%),
    radial-gradient(circle at 50% 100%, rgba(97,41,183,.14), transparent 38%),
    linear-gradient(180deg,#080610 0%,#0e0919 45%,#07050d 100%)!important;
}
.topbar{
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
nav a,.btn,.back-link{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-radius:12px!important;
  background:linear-gradient(180deg,rgba(42,28,73,.96),rgba(21,14,37,.98))!important;
}
nav a::before,.btn::before,.back-link::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(120deg, transparent 0%, rgba(255,255,255,.08) 22%, transparent 45%, rgba(212,157,255,.10) 68%, transparent 100%);
  opacity:.75;
  pointer-events:none;
}
nav a:hover,.btn:hover,.back-link:hover{
  transform:translateY(-2px) scale(1.01);
}
nav a:active,.btn:active,.back-link:active{
  transform:translateY(1px) scale(.985)!important;
  box-shadow:0 0 0 rgba(0,0,0,0)!important;
}
.btn.primary{
  background:linear-gradient(180deg,rgba(154,105,255,.44),rgba(96,56,202,.30))!important;
}
.btn.danger{
  background:linear-gradient(180deg,rgba(100,25,61,.95),rgba(58,14,36,.98))!important;
}
.hero,.card,.form-card,.project-row{
  animation:uiCardIn .45s ease both;
}
.hero:hover,.card:hover,.form-card:hover{
  border-color:rgba(212,157,255,.30)!important;
  box-shadow:0 20px 46px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.03), 0 0 26px rgba(121,74,255,.10)!important;
}
.hero::after,.card::after,.form-card::after{
  content:"";
  position:absolute;
  inset:auto -20% 0 auto;
  width:220px;height:220px;
  background:radial-gradient(circle, rgba(169,124,255,.14) 0%, transparent 70%);
  pointer-events:none;
}
input,textarea,select{
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease, background .18s ease;
}
input:hover,textarea:hover,select:hover{
  border-color:rgba(192,142,255,.35)!important;
}
input:focus,textarea:focus,select:focus{
  transform:translateY(-1px);
}
.project-row{
  border-color:rgba(169,124,255,.18);
  background:linear-gradient(180deg,rgba(34,22,56,.76),rgba(15,10,27,.82));
}
.project-row strong{color:#fff6ff}
.project-row .btn.small{padding:8px 11px}
.ui-pressable{position:relative;overflow:hidden}
.ui-ripple{
  position:absolute;
  border-radius:999px;
  background:radial-gradient(circle, rgba(255,255,255,.34) 0%, rgba(212,157,255,.26) 42%, rgba(212,157,255,0) 72%);
  transform:scale(0);
  animation:uiRipple .62s ease-out forwards;
  pointer-events:none;
  mix-blend-mode:screen;
}
@keyframes uiRipple{0%{transform:scale(.1);opacity:.85}100%{transform:scale(1.7);opacity:0}}
@keyframes uiCardIn{0%{opacity:0;transform:translateY(12px) scale(.985)}100%{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){
  .hero,.card,.form-card,.project-row,.ui-ripple{animation:none!important}
  nav a,.btn,.back-link,input,textarea,select{transition:none!important}
}


/* V7.5 — gestion des élèves */
.student-admin-list{display:flex;flex-direction:column;gap:10px}
.student-admin-row{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid rgba(169,124,255,.18);border-radius:14px;background:linear-gradient(180deg,rgba(33,22,56,.78),rgba(15,10,27,.82));transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.student-admin-row:hover{transform:translateY(-1px);border-color:rgba(212,157,255,.34);box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 18px rgba(121,74,255,.08)}
.student-admin-row.is-suspended{opacity:.72;background:linear-gradient(180deg,rgba(48,22,42,.74),rgba(18,10,20,.84))}
.student-avatar{width:46px;height:46px;display:flex;align-items:center;justify-content:center;flex:none;border-radius:14px;background:linear-gradient(145deg,rgba(169,124,255,.46),rgba(92,55,189,.34));border:1px solid rgba(212,157,255,.36);font-weight:850;color:#fff;box-shadow:0 0 18px rgba(121,74,255,.14)}
.student-admin-main{flex:1;min-width:0}.student-admin-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}.student-admin-title strong{font-size:16px}.student-groups{font-size:11px;color:var(--muted);margin-top:5px}.student-admin-actions form{margin:0}.badge.suspended{color:#ffd3e5!important;border-color:rgba(255,128,180,.30)!important;background:rgba(105,30,68,.32)!important}
@media(max-width:760px){.student-admin-row{align-items:flex-start;flex-wrap:wrap}.student-admin-actions{width:100%}}


/* V7.7 — ajout d'élèves aux groupes */
.available-students{max-height:235px;overflow:auto;padding:10px;border:1px solid rgba(169,124,255,.16);border-radius:12px;background:rgba(10,7,18,.38)}
.manual-student-add{margin-top:18px;padding-top:16px;border-top:1px solid rgba(169,124,255,.14)}
.manual-student-add h4{margin:0 0 8px;font-size:13px;color:#e9dcff}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.badge.suspended{color:#ffd3e5!important;border-color:rgba(255,128,180,.30)!important;background:rgba(105,30,68,.32)!important}
@media(max-width:620px){.two-fields{grid-template-columns:1fr}}


/* V7.8 — connexion élève + validation Prof */
.nav-count{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;margin-left:6px;padding:0 6px;border-radius:999px;background:#d49dff;color:#190d2a;font-size:11px;font-weight:900;box-shadow:0 0 14px rgba(212,157,255,.34)}
.nav-validation-active{border-color:rgba(212,157,255,.58)!important;box-shadow:0 0 18px rgba(169,124,255,.18)!important}
.student-login-shell,.waiting-shell{min-height:calc(100vh - 130px);display:flex;align-items:center;justify-content:center}
.student-login-card,.waiting-card{width:min(560px,100%);text-align:left}
.login-rune{width:64px;height:64px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;border-radius:20px;background:linear-gradient(145deg,rgba(169,124,255,.42),rgba(92,55,189,.26));border:1px solid rgba(212,157,255,.38);font-size:34px;box-shadow:0 0 30px rgba(121,74,255,.15)}
.student-login-card h2,.waiting-card h2{text-align:center}
.student-login-card>p,.waiting-card>p{text-align:center}
.student-login-submit{width:100%;padding:12px 16px!important}
.login-info{display:flex;gap:10px;align-items:flex-start;margin-top:20px;padding:12px;border:1px solid rgba(169,124,255,.15);border-radius:12px;background:rgba(14,9,24,.48)}
.login-info span{color:#d49dff;font-size:18px}.login-info p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.waiting-card{text-align:center}
.waiting-orb{width:88px;height:88px;margin:0 auto 18px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(212,157,255,.42);background:radial-gradient(circle,rgba(169,124,255,.34),rgba(61,35,112,.18) 55%,rgba(12,8,21,.9));box-shadow:0 0 0 0 rgba(169,124,255,.34),0 0 36px rgba(121,74,255,.16);animation:waitingPulse 2s infinite}
.waiting-orb span{font-size:38px;color:#f7edff;text-shadow:0 0 15px rgba(212,157,255,.5)}
.waiting-orb.refused{animation:none;border-color:rgba(255,128,180,.35);background:radial-gradient(circle,rgba(128,37,79,.40),rgba(46,17,35,.72))}
.student-request-name{font-weight:800;font-size:18px;color:#f8f0ff}
.waiting-status{display:inline-flex;align-items:center;gap:9px;margin-top:14px;padding:9px 13px;border:1px solid rgba(212,157,255,.24);border-radius:999px;background:rgba(61,40,106,.28);color:#eadcff;font-size:12px}
.waiting-dot{width:9px;height:9px;border-radius:50%;background:#d49dff;box-shadow:0 0 0 0 rgba(212,157,255,.56);animation:livePulse 1.6s infinite}
.tiny-note{font-size:11px!important;color:var(--muted);margin-top:12px}
@keyframes waitingPulse{70%{box-shadow:0 0 0 13px rgba(169,124,255,0),0 0 36px rgba(121,74,255,.16)}100%{box-shadow:0 0 0 0 rgba(169,124,255,0),0 0 36px rgba(121,74,255,.16)}}
.validation-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}
.validation-count{min-width:105px;height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(212,157,255,.28);border-radius:18px;background:linear-gradient(145deg,rgba(114,70,207,.28),rgba(44,26,78,.28));font-size:32px;font-weight:900;color:#f8efff}
.validation-count span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:700}
.validation-list{display:flex;flex-direction:column;gap:10px}
.validation-row{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid rgba(169,124,255,.18);border-radius:14px;background:linear-gradient(180deg,rgba(33,22,56,.78),rgba(15,10,27,.82))}
.validation-main{flex:1;min-width:0}.validation-main strong{display:block;font-size:16px;margin-bottom:4px}.validation-main .badge{margin-top:7px}
.validation-actions form{margin:0}.validation-warning{margin:-4px 0 6px 60px;padding:8px 10px;border-left:3px solid #ff80b4;background:rgba(94,27,61,.18);font-size:11px;color:#f5cee0}.validation-warning a{text-decoration:underline;color:#ffd8ea}
.badge.request-new{color:#f0e4ff!important;border-color:rgba(212,157,255,.34)!important;background:rgba(104,65,187,.26)!important}
.empty-validation{text-align:center;padding:25px;color:var(--muted)}.empty-validation div{font-size:34px;color:#b68cff;margin-bottom:6px}
@media(max-width:760px){.validation-hero,.validation-row{align-items:flex-start;flex-direction:column}.validation-count{width:100%;height:72px}.validation-actions{width:100%}.validation-warning{margin-left:0}}


/* V7.9 — catégories projets groupe / privé */
.project-filter-card{border-color:rgba(169,124,255,.24)!important}
.project-filter-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.project-filter-form>div:first-child{flex:1;min-width:250px}
.project-filter-form select{width:100%}
.filter-actions{display:flex;gap:7px;align-items:center}
.project-category{border-radius:18px}
.project-category-head{display:flex;align-items:center;gap:13px;padding:16px 18px;border:1px solid;border-bottom:0;border-radius:17px 17px 0 0}
.project-category-head h2{margin:0 0 3px;font-size:20px}.project-category-head p{margin:0;font-size:12px}
.project-category-head>div:nth-child(2){flex:1}
.category-icon{width:43px;height:43px;display:flex;align-items:center;justify-content:center;border-radius:14px;font-size:19px;font-weight:900}
.category-count{min-width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:999px;font-weight:850;font-size:14px}
.project-category-body{margin:0!important;border-radius:0 0 17px 17px!important}
.project-category-group .project-category-head{background:linear-gradient(135deg,rgba(48,82,136,.42),rgba(35,42,93,.34));border-color:rgba(104,168,255,.32)}
.project-category-group .project-category-head p{color:#b9d4f6}
.project-category-group .category-icon{background:rgba(62,127,208,.28);border:1px solid rgba(117,183,255,.36);color:#9ed1ff;box-shadow:0 0 18px rgba(72,145,239,.12)}
.project-category-group .category-count{background:rgba(57,107,173,.30);border:1px solid rgba(117,183,255,.30);color:#cce6ff}
.project-category-private .project-category-head{background:linear-gradient(135deg,rgba(87,47,139,.45),rgba(57,29,93,.38));border-color:rgba(212,157,255,.32)}
.project-category-private .project-category-head p{color:#d9c4ee}
.project-category-private .category-icon{background:rgba(142,77,211,.26);border:1px solid rgba(212,157,255,.34);color:#e1bbff;box-shadow:0 0 18px rgba(169,124,255,.12)}
.project-category-private .category-count{background:rgba(117,65,178,.28);border:1px solid rgba(212,157,255,.28);color:#efd9ff}
.project-row{position:relative;overflow:hidden}
.project-type-strip{position:absolute;left:0;top:0;bottom:0;width:4px}
.project-row.project-group{background:linear-gradient(180deg,rgba(24,37,66,.78),rgba(12,18,34,.84))!important;border-color:rgba(91,151,224,.23)!important}
.project-row.project-group:hover{border-color:rgba(117,183,255,.42)!important;box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 20px rgba(72,145,239,.10)!important}
.project-row.project-group .project-type-strip{background:linear-gradient(180deg,#80c4ff,#527ee5)}
.project-row.project-private{background:linear-gradient(180deg,rgba(39,24,62,.82),rgba(18,12,31,.86))!important;border-color:rgba(169,124,255,.22)!important}
.project-row.project-private:hover{border-color:rgba(212,157,255,.38)!important;box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 20px rgba(169,124,255,.10)!important}
.project-row.project-private .project-type-strip{background:linear-gradient(180deg,#d49dff,#9465ee)}
.badge.privacy-group{color:#d9edff!important;border-color:rgba(117,183,255,.34)!important;background:rgba(48,103,173,.28)!important}
.badge.privacy-private{color:#efdfff!important;border-color:rgba(212,157,255,.34)!important;background:rgba(115,62,178,.28)!important}
@media(max-width:700px){.project-filter-form{align-items:stretch;flex-direction:column}.filter-actions{width:100%}.project-category-head{align-items:flex-start}.category-count{margin-left:auto}}
