/* Forum WAVE CNTRL — même identité que l'app et l'accueil du site : fond nuit, néons ambre / rose, titres Oswald. */
:root { --bg:#0a0510; --bg2:#150a24; --card:rgba(255,255,255,.055); --line:rgba(255,255,255,.12); --ink:#f7f2ff; --muted:#b9acd0;
  --accent:#f5c542; --hot:#ff2e9a; --cyan:#19d1c3; --ok:#52f2a8; --bad:#ff6b5c; }
* { box-sizing:border-box; }
html { color-scheme:dark; }
body { margin:0; background:var(--bg) url(../img/wall.jpg) center top/460px repeat fixed; color:var(--ink);
  font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; min-height:100vh; display:flex; flex-direction:column; }
body::before { content:""; position:fixed; inset:0; z-index:-1;
  background:radial-gradient(60% 40% at 50% 0%, rgba(255,46,154,.22), transparent 70%), linear-gradient(180deg, rgba(10,5,16,.86), var(--bg) 70%); }
a { color:var(--accent); text-decoration:none; } a:hover { text-decoration:underline; }
a:focus-visible, button:focus-visible, .inp:focus-visible { outline:3px solid var(--accent); outline-offset:2px; border-radius:8px; }
.muted { color:var(--muted); } .mono { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; }

/* En-tête */
.fh { position:sticky; top:0; z-index:10; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; padding:.7rem max(4vw,calc((100vw - 1100px)/2));
  background:rgba(10,5,16,.82); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.wordmark { font:700 1.35rem/1 Oswald,sans-serif; letter-spacing:.18em; color:#fff; text-transform:uppercase; }
.wordmark span { color:var(--accent); text-shadow:0 0 14px rgba(245,197,66,.6); }
.fnav { display:flex; gap:1.1rem; align-items:center; margin-inline-start:auto; font:600 .8rem/1 Oswald,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.fnav a { color:var(--muted); } .fnav a:hover { color:#fff; text-decoration:none; }
.who { display:flex; align-items:center; gap:.5rem; }
.me { font-weight:600; }
.chip { font:600 .8rem/1 system-ui,sans-serif; padding:.5rem .8rem; border-radius:999px; border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer; min-height:36px; display:inline-flex; align-items:center; }
.chip:hover { border-color:var(--accent); text-decoration:none; } .chip.hot { background:linear-gradient(90deg,var(--accent),var(--hot)); color:#1a0b22; border-color:transparent; }
.chip[disabled] { opacity:.4; cursor:default; }

/* Contenu */
.fmain { flex:1; width:100%; max-width:1100px; margin:0 auto; padding:2rem 4vw 4rem; }
.view.narrow { max-width:680px; margin-inline:auto; }
h1, h2 { font-family:Oswald,"Arial Narrow",sans-serif; text-transform:uppercase; letter-spacing:.01em; }
h1 { font-size:clamp(2rem,5vw,3.4rem); line-height:1; margin:.2rem 0 .8rem; }
h1.ttl { font-size:clamp(1.5rem,3.6vw,2.4rem); text-transform:none; }
.hero h1 { background:linear-gradient(90deg,#fff 30%,var(--accent) 70%,var(--hot)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.lead { font-size:1.1rem; color:var(--muted); max-width:56ch; margin:0 0 1.2rem; }
h2.sec { font-size:1rem; letter-spacing:.2em; color:var(--accent); margin:2rem 0 .8rem; }
.headrow { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.crumb { color:var(--muted); font-size:.9rem; margin:0 0 .4rem; }

.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:.65rem 1.3rem; border-radius:999px; border:0; cursor:pointer;
  font:700 .95rem/1 system-ui,sans-serif; color:#1a0b22; background:linear-gradient(90deg,var(--accent),var(--hot)); }
.btn:hover { filter:brightness(1.08); text-decoration:none; } .btn[disabled] { opacity:.5; }
.lnk { background:none; border:0; padding:.35rem .5rem; color:var(--muted); font:inherit; font-size:.85rem; cursor:pointer; min-height:32px; }
.lnk:hover { color:var(--accent); } .lnk.ok { color:var(--ok); }

/* Catégories */
.cats { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; }
.cat { display:flex; flex-direction:column; gap:.3rem; padding:1.1rem 1.2rem; border-radius:18px; background:var(--card); border:1px solid var(--line); color:var(--ink); }
.cat:hover { border-color:var(--accent); text-decoration:none; transform:translateY(-2px); transition:transform .15s; }
.cname { font:600 1.15rem/1.2 Oswald,sans-serif; letter-spacing:.04em; text-transform:uppercase; }
.cdesc { color:var(--muted); font-size:.92rem; } .cmeta { color:var(--accent); font-size:.8rem; margin-top:auto; }

/* Listes de sujets */
.tlist { display:flex; flex-direction:column; gap:.5rem; }
.trow { display:flex; align-items:center; gap:.9rem; padding:.8rem 1rem; border-radius:16px; background:var(--card); border:1px solid var(--line); color:var(--ink); }
.trow:hover { border-color:var(--accent); text-decoration:none; } .trow.pinned { border-color:rgba(245,197,66,.45); }
.tmain { display:flex; flex-direction:column; min-width:0; flex:1; }
.ttitle { font-weight:600; overflow-wrap:anywhere; } .tmeta { color:var(--muted); font-size:.85rem; }
.treplies { min-width:3rem; text-align:center; color:var(--muted); font-size:.8rem; } .treplies b { display:block; font:700 1.2rem/1 Oswald,sans-serif; color:var(--ink); }
.tag { display:inline-block; font:700 .65rem/1 system-ui,sans-serif; padding:.25rem .45rem; border-radius:6px; margin-inline-end:.4rem; background:rgba(255,255,255,.12); letter-spacing:.04em; text-transform:uppercase; vertical-align:middle; }
.tag.warn { background:rgba(245,197,66,.2); color:var(--accent); } .tag.hot { background:var(--hot); color:#fff; }
.av { display:inline-flex; align-items:center; justify-content:center; flex:none; width:38px; height:38px; border-radius:12px; color:#fff; font:700 .95rem/1 Oswald,sans-serif; letter-spacing:.04em; text-shadow:0 1px 3px rgba(0,0,0,.4); box-shadow:inset 0 0 0 1px rgba(255,255,255,.25); }

/* Messages */
.post { display:flex; gap:.9rem; margin:.8rem 0; padding:1rem; border-radius:18px; background:var(--card); border:1px solid var(--line); }
.post.pend { border-style:dashed; border-color:rgba(245,197,66,.5); }
.pbox { min-width:0; flex:1; } .pmeta { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin-bottom:.4rem; }
.body { overflow-wrap:anywhere; } .body a { text-decoration:underline; }
.pact { display:flex; flex-wrap:wrap; gap:.2rem; margin-top:.6rem; }
.pager { display:flex; justify-content:center; align-items:center; gap:1rem; margin:1.4rem 0; }
.modbar { display:flex; gap:.5rem; margin:.4rem 0 1rem; }

/* Formulaires */
.compose { margin-top:1.4rem; padding:1rem; border-radius:18px; background:var(--card); border:1px solid var(--line); }
.inp { width:100%; padding:.75rem .9rem; border-radius:14px; border:1px solid var(--line); background:rgba(0,0,0,.35); color:var(--ink); font:inherit; min-height:44px; }
textarea.inp { resize:vertical; } .lbl { display:block; margin:1rem 0 .3rem; font-weight:600; } .hint { color:var(--muted); font-size:.85rem; margin:.3rem 0 0; }
.row { display:flex; gap:.6rem; align-items:center; margin-top:.9rem; flex-wrap:wrap; }
.note { padding:.7rem .9rem; border-radius:12px; background:rgba(255,255,255,.07); } .note.warn { background:rgba(245,197,66,.14); border:1px solid rgba(245,197,66,.4); }
.keybox { padding:1.1rem; border-radius:14px; background:#000; border:2px dashed var(--accent); font-size:clamp(1rem,4vw,1.5rem); letter-spacing:.06em; text-align:center; word-break:break-all; user-select:all; }
.search { margin:1.2rem 0; } .search .tlist { margin-top:.6rem; }
.rules { padding-inline-start:1.3rem; } .rules li { margin:.45rem 0; }

.toast { position:fixed; left:50%; bottom:1.5rem; transform:translateX(-50%); z-index:50; max-width:90vw; padding:.8rem 1.2rem; border-radius:14px; background:#1c0f2e; border:1px solid var(--accent); box-shadow:0 10px 40px rgba(0,0,0,.5); }
.toast.bad { border-color:var(--bad); } .toast.ok { border-color:var(--ok); }
.ff { padding:1.4rem 4vw 2rem; text-align:center; color:var(--muted); font-size:.85rem; border-top:1px solid var(--line); background:rgba(10,5,16,.7); }
.ff .sep { margin:0 .4rem; }

@media (max-width:640px) {
  .fh { gap:.5rem; padding:.6rem 4vw; } .fnav { order:3; width:100%; margin:0; justify-content:space-between; }
  .who { margin-inline-start:auto; } .post { padding:.8rem; gap:.6rem; } .av { width:34px !important; height:34px !important; }
}
@media (prefers-reduced-motion: reduce) { * { transition:none !important; } }

/* Champ piège anti-robots du formulaire d'inscription : hors de l'écran (pas display:none, que certains robots repèrent). */
.hp { position:absolute; left:-10000px; top:auto; width:1px; height:1px; overflow:hidden; opacity:0; }
