:root{--bleu:#0b5cff;--bleu2:#e8f0ff;--fond:#f6f8fb;--txt:#1b1f24;--gris:#5f6875;--ligne:#e3e7ee;--rouge:#d93025;--vert:#188038}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;color:var(--txt);background:var(--fond);font-size:15px}
button{font:inherit;cursor:pointer;border:0;border-radius:10px;padding:9px 16px;background:var(--bleu2);color:var(--bleu);font-weight:600}
button.p{background:var(--bleu);color:#fff}button.r{background:#fde8e6;color:var(--rouge)}button:disabled{opacity:.5;cursor:default}
input,textarea{font:inherit;width:100%;padding:11px 12px;border:1px solid var(--ligne);border-radius:10px;background:#fff;color:var(--txt)}
input:focus,textarea:focus{outline:2px solid var(--bleu);border-color:transparent}
::-webkit-scrollbar{width:12px}::-webkit-scrollbar-thumb{background:#c9ced6;border-radius:8px;border:3px solid transparent;background-clip:content-box}
.centre{min-height:100%;display:flex;align-items:center;justify-content:center;padding:20px}
.carte{background:#fff;border-radius:18px;box-shadow:0 6px 30px #0b1f4a14;padding:32px;width:100%;max-width:420px}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:20px}.logo img{width:36px;height:36px}
.carte h1{font-size:22px;margin:18px 0 6px}.carte p.s{color:var(--gris);margin:0 0 18px}
.champ{margin:10px 0}.champ label{display:block;font-size:13px;color:var(--gris);margin-bottom:4px}
.suffixe{display:flex;align-items:center;gap:6px}.suffixe span{color:var(--gris);white-space:nowrap}
.msg{padding:10px 12px;border-radius:10px;margin:10px 0;font-size:14px}.msg.e{background:#fde8e6;color:var(--rouge)}.msg.o{background:#e6f4ea;color:var(--vert)}
.lien{color:var(--bleu);background:none;padding:0;font-weight:600}
.app{display:grid;grid-template-columns:240px 380px 1fr;grid-template-rows:60px 1fr;height:100vh}
header{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding:0 16px;background:#fff;border-bottom:1px solid var(--ligne)}
header .rech{flex:1;max-width:640px}header .rech input{background:var(--fond);border:0}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--bleu);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700}
nav{padding:12px;overflow:auto}nav button.ecrire{width:100%;padding:14px;margin-bottom:12px;background:var(--bleu);color:#fff;border-radius:14px}
nav a{display:flex;justify-content:space-between;padding:9px 14px;border-radius:0 20px 20px 0;color:var(--txt);text-decoration:none;cursor:pointer}
nav a.on{background:var(--bleu2);color:var(--bleu);font-weight:700}nav a b{font-size:13px}
.liste{background:#fff;border-left:1px solid var(--ligne);border-right:1px solid var(--ligne);overflow:auto}
.item{padding:12px 16px;border-bottom:1px solid var(--ligne);cursor:pointer}.item:hover{background:#f3f6fb}.item.on{background:var(--bleu2)}
.item .l1{display:flex;justify-content:space-between;gap:8px}.item .de{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item .d{color:var(--gris);font-size:12px;white-space:nowrap}
.item .obj{margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item .ext{color:var(--gris);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.item.nonlu .de,.item.nonlu .obj{font-weight:700}
.vide{color:var(--gris);text-align:center;padding:40px 20px}
.lecture{overflow:auto;background:#fff;padding:24px}.lecture h2{margin:0 0 12px;font-size:22px}
.meta{display:flex;justify-content:space-between;gap:10px;color:var(--gris);font-size:14px;border-bottom:1px solid var(--ligne);padding-bottom:12px;margin-bottom:12px}
.outils{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.alerte{background:#fff4e5;color:#8a4b00;padding:10px 12px;border-radius:10px;margin-bottom:12px;font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px}
iframe.corps{width:100%;border:0;min-height:60vh}pre.corps{white-space:pre-wrap;font-family:inherit;margin:0}
.pj{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.pj a{border:1px solid var(--ligne);border-radius:10px;padding:8px 12px;text-decoration:none;color:var(--txt);font-size:14px}.pj a.dang{border-color:var(--rouge);color:var(--rouge)}
.fenetre{position:fixed;right:24px;bottom:0;width:560px;max-width:100vw;background:#fff;border-radius:14px 14px 0 0;box-shadow:0 8px 40px #0003;display:flex;flex-direction:column;z-index:20}
.fenetre .t{background:#1b2a4a;color:#fff;padding:10px 14px;border-radius:14px 14px 0 0;display:flex;justify-content:space-between}.fenetre .t button{background:none;color:#fff;padding:0 6px}
.fenetre .c{padding:10px 14px;display:flex;flex-direction:column;gap:8px}.fenetre textarea{min-height:240px;resize:vertical}
.voile{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:30;padding:16px}
.dialogue{background:#fff;border-radius:16px;padding:24px;max-width:520px;width:100%;max-height:90vh;overflow:auto}
.dialogue h3{margin-top:0}.reglage{border:1px solid var(--ligne);border-radius:12px;padding:14px;margin:10px 0}
.retour{display:none}
@media(max-width:900px){.app{grid-template-columns:1fr;grid-template-rows:56px 1fr}nav{display:none}nav.ouvert{display:block;position:fixed;top:56px;left:0;bottom:0;width:260px;background:#fff;z-index:10;box-shadow:4px 0 20px #0002}
.liste,.lecture{grid-column:1}.app.lit .liste{display:none}.app:not(.lit) .lecture{display:none}.retour{display:inline-block}.menu{display:inline-block!important}.fenetre{right:0;width:100vw}}
.menu{display:none;background:none;font-size:22px;padding:4px 8px;color:var(--txt)}
.logo{white-space:nowrap}
@media(max-width:900px){header{gap:8px;padding:0 8px}header .logo{font-size:0;gap:0}header .rech{min-width:0}#bReg{padding:8px 10px}}
/* ===== Page d'accueil — style prestige ===== */
.accueil{position:relative;min-height:100vh;min-height:100dvh;background:#0a1220 url(/fond.jpg) 30% 4%/cover no-repeat;justify-content:flex-end;padding:32px 6vw;overflow:hidden;--or:#e2b866;--or2:#f5dca0}
.accueil .voile{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,#0a122000 28%,#0a1220b8 58%,#0a1220ee 100%),linear-gradient(0deg,#0a1220b0 0%,#0a122000 35%);pointer-events:none}
.accueil .colonne{position:relative;z-index:1;width:100%;max-width:430px;display:flex;flex-direction:column;gap:22px;animation:apparait .9s ease-out both}
@keyframes apparait{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.accueil .hero{color:#fff}
.accueil .hero .sur{display:inline-block;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--or2);border-bottom:1px solid #e2b86680;padding-bottom:6px}
.accueil .hero h2{font-family:"Didot","Bodoni MT","Playfair Display",Georgia,"Times New Roman",serif;font-weight:500;font-size:44px;line-height:1.08;margin:14px 0 10px;text-shadow:0 2px 18px #0008}
.accueil .hero p{margin:0;color:#e9e4d8;font-size:15px;text-shadow:0 1px 8px #000a}
.accueil .carte{background:linear-gradient(160deg,#141d2fd9,#0c1424e6);color:#f3efe6;border:1px solid #e2b86640;border-radius:22px;backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 24px 60px #000a,inset 0 1px 0 #ffffff14;padding:30px 30px 22px}
.accueil .logo{color:#fff;letter-spacing:.04em}
.accueil .logo img{filter:drop-shadow(0 4px 10px #0b5cff66)}
.accueil .carte h1{font-family:"Didot","Bodoni MT","Playfair Display",Georgia,serif;font-weight:500;font-size:28px;color:#fff;margin-top:20px}
.accueil .carte p.s{color:#c9c2b2}
.accueil .champ label{color:#d8cfbb;letter-spacing:.02em}
.accueil input{background:#ffffff0f;border:1px solid #ffffff26;color:#fff;border-radius:12px;padding:13px 14px;transition:border-color .2s,background .2s}
.accueil input::placeholder{color:#ffffff66}
.accueil input:focus{outline:none;border-color:var(--or);background:#ffffff17;box-shadow:0 0 0 3px #e2b86633}
.accueil .suffixe span{color:#d8cfbb}
.accueil button.p{background:linear-gradient(135deg,#f5dca0,#d9a94e 55%,#b9842f);color:#1a1205;font-weight:700;letter-spacing:.03em;padding:13px 16px;border-radius:12px;box-shadow:0 8px 24px #d9a94e55;transition:transform .15s,box-shadow .15s}
.accueil button.p:hover{transform:translateY(-1px);box-shadow:0 12px 30px #d9a94e77}
.accueil .lien{color:var(--or2)}
.accueil a{color:#cfc6b3}
.accueil .msg.e{background:#5c1a1a;color:#ffd6d1}.accueil .msg.o{background:#163d25;color:#c9f2d4}
.accueil .badges{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px;padding-top:14px;border-top:1px solid #ffffff1a}
.accueil .badges span{font-size:11px;color:#e9dcc0;border:1px solid #e2b86655;border-radius:999px;padding:4px 10px;background:#e2b86612}
.accueil .credit{position:absolute;z-index:1;left:16px;bottom:10px;color:#fff;font-size:11px;letter-spacing:.04em;opacity:.85;text-shadow:0 1px 3px #000a}
@media (max-width:700px){
 .accueil{display:block;background:#0a1220;padding:46vh 14px 40px;overflow:visible}
 .accueil .voile{bottom:auto;height:66vh;background:linear-gradient(180deg,#0a122000 45%,#0a1220c0 75%,#0a1220 100%),url(/fond.jpg) 40% 6%/cover no-repeat}
 .accueil .colonne{margin:0 auto;gap:16px}
 .accueil .hero{text-align:center}.accueil .hero h2{font-size:30px;margin:10px 0 6px}.accueil .hero p{font-size:13px}
 .accueil .carte{padding:24px 20px 18px}
 .accueil .credit{position:static;text-align:center;margin-top:18px}
}
.suffixe input{flex:1;min-width:0}.accueil .suffixe span{font-size:14px}
/* ===== Interface « Terre vue de l'espace » ===== */
.app{--txt:#eef2f8;--gris:#a9b4c6;--ligne:#ffffff1c;--bleu:#5aa2ff;--bleu2:#5aa2ff26;--or:#e2b866;--or2:#f5dca0;--verre:#0b1424b8;
 color:var(--txt);background:#000 url(/terre.jpg) right -6vh center/auto 112vh no-repeat;position:relative}
.app::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
 background:radial-gradient(1200px 700px at 78% 50%,#0000 40%,#000a 100%),linear-gradient(90deg,#000c 0%,#0006 38%,#0000 65%)}
.app>*{position:relative;z-index:1}
.app header{background:#050a14a6;border-bottom:1px solid var(--ligne);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3)}
.app header .logo{color:#fff;letter-spacing:.04em}
.app header .rech input{background:#ffffff12;color:#fff;border:1px solid #ffffff1f;border-radius:999px;padding:10px 18px}
.app header .rech input::placeholder{color:#ffffff80}
.app header .rech input:focus{outline:none;border-color:var(--or);box-shadow:0 0 0 3px #e2b86630}
.app .avatar{background:linear-gradient(135deg,#f5dca0,#c8923a);color:#1a1205;box-shadow:0 0 0 2px #ffffff30}
.app button{background:#ffffff14;color:#e7eefb;border:1px solid #ffffff1a;transition:background .15s,transform .15s}
.app button:hover{background:#ffffff24}
.app button.p,.app nav button.ecrire{background:linear-gradient(135deg,#f5dca0,#d9a94e 55%,#b9842f);color:#1a1205;border:0;box-shadow:0 8px 24px #d9a94e40}
.app button.r{background:#ff5a4a22;color:#ffb3aa;border-color:#ff5a4a44}
.app .menu{background:none;border:0;color:#fff}
.app nav{background:#050a1466;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.app nav a{color:#dfe6f2}
.app nav a:hover{background:#ffffff10}
.app nav a.on{background:linear-gradient(90deg,#e2b86633,#e2b86610);color:var(--or2);box-shadow:inset 3px 0 0 var(--or)}
.app .liste{background:var(--verre);border-color:var(--ligne);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2)}
.app .item{border-color:#ffffff12}
.app .item:hover{background:#ffffff0d}
.app .item.on{background:#5aa2ff22;box-shadow:inset 3px 0 0 var(--bleu)}
.app .item.nonlu .de,.app .item.nonlu .obj{color:#fff}
.app .lecture{background:#08101ecc;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.app .lecture h2{color:#fff;font-family:"Didot","Bodoni MT","Playfair Display",Georgia,serif;font-weight:500;font-size:26px}
.app iframe.corps{background:#fff;border-radius:14px}
.app .pj a{color:#e7eefb;border-color:#ffffff2a;background:#ffffff0d}
.app .alerte{background:#e2b86622;color:var(--or2)}
.app .vide{color:#c4cede}
.app input,.app textarea{background:#ffffff10;color:#fff;border-color:#ffffff24}
.app input::placeholder,.app textarea::placeholder{color:#ffffff70}
.app input:focus,.app textarea:focus{outline:none;border-color:var(--or)}
.fenetre{background:#0b1424f2;color:#eef2f8;border:1px solid #ffffff22;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.fenetre .t{background:linear-gradient(90deg,#132443,#0b1424)}
.fenetre input,.fenetre textarea{background:#ffffff10;color:#fff;border-color:#ffffff24}
.fenetre input::placeholder,.fenetre textarea::placeholder{color:#ffffff70}
.fenetre button.p{background:linear-gradient(135deg,#f5dca0,#d9a94e 55%,#b9842f);color:#1a1205}
.fenetre button{background:#ffffff14;color:#e7eefb}
.dialogue{background:#0b1424f5;color:#eef2f8;border:1px solid #ffffff22}
.dialogue .reglage{border-color:#ffffff22}.dialogue input{background:#ffffff10;color:#fff;border-color:#ffffff24}
.dialogue button{background:#ffffff14;color:#e7eefb}.dialogue button.p{background:linear-gradient(135deg,#f5dca0,#d9a94e 55%,#b9842f);color:#1a1205}
.dialogue a{color:var(--or2,#f5dca0)}
@media(max-width:900px){
 .app{background-position:center 60px;background-size:150vw auto}
 .app::before{background:linear-gradient(180deg,#0000 0%,#0008 30%,#000c 100%)}
 .app nav.ouvert{background:#08101ef2}
 .app .liste{background:#0b1424b0}
}
/* plus de transparence pour laisser voir la Terre */
.app::before{background:radial-gradient(1200px 700px at 78% 50%,#0000 45%,#0007 100%),linear-gradient(90deg,#0009 0%,#0003 35%,#0000 60%)}
.app .liste{background:#07101e8c;backdrop-filter:blur(6px) saturate(1.2);-webkit-backdrop-filter:blur(6px) saturate(1.2)}
.app .lecture{background:#050b1666;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);text-shadow:0 1px 3px #000}
.app nav{background:#050a1440;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
@media(max-width:900px){.app{background-position:center 70px;background-size:175vw auto}.app::before{background:linear-gradient(180deg,#0000 0%,#0004 45%,#000a 100%)}.app .liste{background:#07101e73}}
.app iframe.corps{min-height:45vh;box-shadow:0 20px 50px #0008}
/* ===== Fenêtre de rédaction compacte ===== */
.fenetre{width:600px;max-height:min(680px,calc(100vh - 70px));border-radius:16px 16px 0 0;overflow:hidden}
.fenetre .t{align-items:center;gap:10px;padding:8px 10px 8px 14px;border-radius:0}
.fenetre .t b{flex:1;font-size:15px;font-weight:600}
.fenetre .t .x{background:none;border:0;color:#fff;font-size:16px;padding:6px 8px;order:2}
.fenetre .t #wGo{order:1;padding:8px 18px;border-radius:999px;font-weight:700;border:0}
.fenetre .c{padding:0;gap:0;flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column}
.fenetre .ligne{display:flex;align-items:center;gap:10px;padding:0 16px;border-bottom:1px solid #ffffff14;min-height:46px}
.fenetre .ligne span{color:#ffffff80;font-size:14px;min-width:42px}
.fenetre .ligne input{flex:1;background:none!important;border:0!important;padding:12px 0;font-size:16px;color:#fff;box-shadow:none!important;outline:none}
.fenetre .lien{background:none!important;border:0!important;color:#f5dca0!important;font-size:14px;padding:6px}
.fenetre textarea{flex:1;min-height:180px;background:none!important;border:0!important;padding:14px 16px;font-size:16px;line-height:1.55;resize:none;outline:none;box-shadow:none!important;color:#fff}
.fenetre .pjs{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px}.fenetre .pjs:empty{display:none}
.fenetre .pjs span{background:#ffffff14;border:1px solid #ffffff22;border-radius:999px;padding:4px 10px;font-size:13px}
.fenetre #wM{padding:0 16px}.fenetre #wM:empty{display:none}
.fenetre .bas{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid #ffffff14;background:#050a14aa}
.fenetre .bas .esp{flex:1}
.fenetre .joindre{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:#e7eefb;padding:8px 12px;border-radius:10px;background:#ffffff10;border:1px solid #ffffff1a;font-size:14px}
.fenetre .joindre:hover{background:#ffffff20}
@media(max-width:900px){.fenetre{position:fixed;inset:0 0 auto 0;top:0;width:100vw;height:100dvh;max-height:none;border-radius:0;border:0}
 .fenetre textarea{min-height:100px}}
.fenetre .ligne[hidden]{display:none}
/* ===== Bouclier WJF ===== */
.bv{display:inline-block;font-size:11px;font-weight:700;padding:1px 7px;border-radius:999px;margin-right:4px;vertical-align:1px}
.bv.att{background:#ffb02e26;color:#ffcf7a;border:1px solid #ffb02e55}.bv.dang{background:#ff4d4d26;color:#ff9c9c;border:1px solid #ff4d4d66}
.puce{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:6px;margin:2px 0 10px}
.puce.ok{background:#2ecc7126;color:#8ff0b5;border:1px solid #2ecc7155}.puce.att{background:#ffb02e26;color:#ffcf7a;border:1px solid #ffb02e55}.puce.dang{background:#ff4d4d26;color:#ff9c9c;border:1px solid #ff4d4d66}
.bandeau{border-radius:12px;padding:12px 16px;margin:0 0 12px;font-size:14px;line-height:1.45}
.bandeau ul{margin:6px 0 6px 18px;padding:0}.bandeau small{opacity:.85}
.bandeau.att{background:#ffb02e1f;border:1px solid #ffb02e66;color:#ffe2a8}.bandeau.dang{background:#ff4d4d1f;border:1px solid #ff4d4d77;color:#ffc9c9}
.pj .bloquee{display:inline-block;padding:8px 12px;border-radius:10px;background:#ff4d4d1f;border:1px solid #ff4d4d66;color:#ffc9c9;font-size:14px}
