/* /apps/NexusHub/public/assets/forum.css
   Reuses the site's existing dark palette and header/button patterns
   (root index.php, login_system/admin_style.css) so the forum looks
   like it shipped with the rest of the project. Dark-only, matching
   the rest of the site — no light mode toggle. */

*{margin:0;padding:0;box-sizing:border-box;}
:root{
  --bg:#0b0b0b; --surface:#141414; --line:#1e1e1e;
  --text:#e8e8e8; --dim:#666; --accent:#bc0602;
  --card:#161616; --up:#ff5a4e; --down:#4e8bff;
}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',system-ui,sans-serif;
  background:var(--bg); color:var(--text);
  min-height:100vh; -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
button, input, textarea, select{font-family:inherit;}

/* ---------- shared header (matches root index.php) ---------- */
.top{
  position:sticky;top:0;left:0;right:0;z-index:90;
  height:56px;display:flex;align-items:center;justify-content:space-between;
  padding:0 clamp(1rem,4vw,3rem);
  background:rgba(11,11,11,.92);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--line);
}
.top-logo{display:flex;align-items:center;gap:10px;font-weight:600;font-size:.95rem;}
.top-logo img{width:28px;height:28px;border-radius:8px;}
.top-right{display:flex;align-items:center;gap:16px;}
.top-link{font-size:.82rem;color:var(--dim);transition:color .15s;}
.top-link:hover, .top-link.nh-active{color:var(--text);}
.top-btn{
  font-size:.8rem;font-weight:600;padding:6px 16px;border-radius:8px;
  border:1px solid var(--line);background:transparent;color:var(--text);
  cursor:pointer;transition:all .2s;
}
.top-btn:hover{border-color:#333;background:#181818;}
.top-btn.fill{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 16px rgba(188,6,2,.3);}
.top-btn.fill:hover{filter:brightness(1.2);box-shadow:0 0 24px rgba(188,6,2,.45);}
.top-btn.small{padding:4px 10px;font-size:.75rem;}
.top-btn:disabled{opacity:.5;cursor:not-allowed;}

.avatar-wrap{position:relative;}
.avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;cursor:pointer;border:1.5px solid var(--line);transition:all .25s;}
.avatar:hover{border-color:var(--accent);transform:scale(1.08);}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;}
.avatar-letter{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#1a1a1a;font-weight:600;font-size:.7rem;color:var(--dim);}
.drop{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;min-width:180px;padding:4px;box-shadow:0 12px 36px rgba(0,0,0,.6);z-index:100;}
.drop.open{display:block;}
.drop a{display:block;padding:7px 12px;border-radius:7px;font-size:.82rem;color:var(--dim);transition:all .12s;}
.drop a:hover{color:var(--text);background:rgba(255,255,255,.04);padding-left:16px;}
.drop-line{height:1px;background:var(--line);margin:3px 8px;}

.foot{padding:2rem;text-align:center;font-size:.78rem;color:var(--dim);}
.foot a{color:var(--dim);}
.foot a:hover{color:var(--text);}

@media (max-width:700px){ .hide-sm{display:none!important;} }

/* ---------- forum layout: left / center / right ---------- */
.nh-main{max-width:1200px;margin:0 auto;padding:1.5rem clamp(1rem,4vw,2rem) 4rem;}
.nh-layout{display:grid;grid-template-columns:220px minmax(0,1fr) 280px;gap:1.5rem;align-items:start;}
@media (max-width:980px){ .nh-layout{grid-template-columns:minmax(0,1fr) 280px;} .nh-side-left{display:none;} }
@media (max-width:700px){ .nh-layout{grid-template-columns:minmax(0,1fr);} .nh-side-right{display:none;} }

.nh-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:.9rem;}
.nh-side-title{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--dim);padding:0 .3rem;}
.nh-side-link{display:block;padding:8px 10px;border-radius:8px;font-size:.85rem;color:var(--text);}
.nh-side-link:hover{background:var(--surface);}
.nh-side-link.nh-active{background:rgba(188,6,2,.14);color:var(--text);}

.nh-panel{background:var(--card);border:1px solid #262626;border-radius:14px;padding:14px;}

/* ---------- sort tabs ---------- */
.nh-tabs{display:flex;gap:6px;margin-bottom:1rem;}
.nh-tab{padding:6px 14px;border-radius:20px;font-size:.8rem;font-weight:600;color:var(--dim);border:1px solid var(--line);}
.nh-tab:hover{color:var(--text);border-color:#333;}
.nh-tab.nh-active{background:var(--accent);border-color:var(--accent);color:#fff;}

/* ---------- post card ---------- */
.nh-card{
  display:flex;gap:12px;padding:12px;background:var(--card);
  border:1px solid #262626;border-radius:14px;margin-bottom:12px;
  transition:box-shadow .2s ease, transform .2s ease, border-color .2s ease;
}
.nh-card:hover{border-color:rgba(188,6,2,.25);box-shadow:0 6px 24px rgba(0,0,0,.3);}
.nh-card-body{flex:1;min-width:0;}
.nh-card-meta{font-size:.78rem;color:var(--dim);display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:4px;}
.nh-dim{color:var(--dim);}
.nh-community-link{font-weight:600;color:var(--text);}
.nh-community-link:hover{color:var(--accent);}
.nh-author-link:hover{color:var(--text);}
.badge-icon{width:16px;height:16px;vertical-align:middle;margin:0 1px;}
.nh-card-title{display:block;font-size:1.05rem;font-weight:600;color:var(--text);margin-bottom:6px;line-height:1.35;}
.nh-card-title:hover{color:var(--accent);}
.nh-card-media img{max-width:100%;max-height:420px;border-radius:10px;display:block;margin:6px 0;}
.nh-card-link{display:inline-block;font-size:.82rem;color:var(--accent);margin:4px 0;word-break:break-all;}
.nh-card-actions{margin-top:6px;}
.nh-card-action{font-size:.78rem;color:var(--dim);padding:4px 8px;border-radius:6px;}
.nh-card-action:hover{color:var(--text);background:rgba(255,255,255,.04);}

/* ---------- vote widget ---------- */
.nh-vote{display:flex;flex-direction:column;align-items:center;gap:2px;padding-top:2px;width:34px;flex-shrink:0;}
.nh-vote-btn{background:none;border:none;color:var(--dim);font-size:.7rem;cursor:pointer;padding:3px;line-height:1;border-radius:4px;}
.nh-vote-btn:hover{background:rgba(255,255,255,.06);color:var(--text);}
.nh-vote-btn.nh-vote-active-up{color:var(--up);}
.nh-vote-btn.nh-vote-active-down{color:var(--down);}
.nh-vote-score{font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums;}

/* ---------- single post page ---------- */
.nh-post{background:var(--card);border:1px solid #262626;border-radius:14px;padding:18px;margin-bottom:1.2rem;}
.nh-post-title{font-size:1.5rem;font-weight:700;line-height:1.3;margin:.4rem 0;text-wrap:balance;}
.nh-post-body{font-size:.95rem;line-height:1.6;margin:.8rem 0;}
.nh-post-body p{margin-bottom:.8rem;}
.nh-post-body pre{background:#0d0d0d;border:1px solid var(--line);border-radius:8px;padding:10px;overflow-x:auto;font-size:.82rem;}
.nh-post-body code{background:#0d0d0d;padding:1px 5px;border-radius:4px;font-size:.85em;}
.nh-post-body blockquote{border-left:3px solid var(--line);padding-left:12px;color:var(--dim);}
.nh-post-body ul, .nh-post-body ol{padding-left:1.4rem;margin-bottom:.8rem;}
.nh-post-body a{color:var(--accent);text-decoration:underline;}
.nh-post-media img{max-width:100%;border-radius:10px;margin:.6rem 0;}
.nh-post-actions{display:flex;gap:8px;align-items:center;margin-top:.8rem;}

/* ---------- comments ---------- */
.nh-comment{border-left:2px solid var(--line);padding-left:12px;margin-top:12px;}
.nh-comment-meta{font-size:.78rem;color:var(--dim);display:flex;flex-wrap:wrap;align-items:center;gap:4px;}
.nh-comment-body{font-size:.9rem;line-height:1.55;margin:.3rem 0;}
.nh-comment-footer{display:flex;align-items:center;gap:10px;}
.nh-comment-footer .nh-vote{flex-direction:row;width:auto;gap:6px;}
.nh-comment-actions{display:flex;gap:10px;}
.nh-comment-action{font-size:.76rem;color:var(--dim);}
.nh-comment-action:hover{color:var(--text);}
.nh-reply-form{margin-top:8px;display:flex;flex-direction:column;gap:6px;max-width:500px;}
.nh-reply-form[hidden]{display:none;}
.nh-comment-children{margin-left:0;}

/* ---------- forms ---------- */
.nh-field{margin-bottom:1rem;}
.nh-field label{display:block;font-size:.8rem;color:var(--dim);margin-bottom:5px;}
.nh-input, .nh-textarea, .nh-select{
  width:100%;background:#0d0d0d;border:1px solid var(--line);border-radius:8px;
  padding:9px 11px;color:var(--text);font-size:.9rem;
}
.nh-input:focus, .nh-textarea:focus, .nh-select:focus{outline:none;border-color:var(--accent);}
textarea.nh-textarea{resize:vertical;min-height:120px;}
.nh-reply-form textarea{
  width:100%;background:#0d0d0d;border:1px solid var(--line);border-radius:8px;
  padding:8px 10px;color:var(--text);font-size:.85rem;resize:vertical;
}
.nh-form-row{display:flex;gap:8px;}
.nh-hint{font-size:.76rem;color:var(--dim);margin-top:4px;}
.nh-error{background:rgba(188,6,2,.12);border:1px solid rgba(188,6,2,.35);color:#ff8a84;padding:10px 12px;border-radius:8px;font-size:.85rem;margin-bottom:1rem;}
.nh-success{background:rgba(50,210,150,.1);border:1px solid rgba(50,210,150,.3);color:#32d296;padding:10px 12px;border-radius:8px;font-size:.85rem;margin-bottom:1rem;}

.nh-type-tabs{display:flex;gap:6px;margin-bottom:1rem;}
.nh-type-tab{padding:7px 16px;border-radius:8px;border:1px solid var(--line);color:var(--dim);font-size:.85rem;cursor:pointer;background:transparent;}
.nh-type-tab.nh-active{border-color:var(--accent);color:var(--text);background:rgba(188,6,2,.1);}
.nh-type-panel[hidden]{display:none;}

/* ---------- community header / sidebar ---------- */
.nh-community-banner{width:100%;height:120px;object-fit:cover;border-radius:14px 14px 0 0;background:var(--surface);}
.nh-community-header{display:flex;align-items:center;gap:14px;padding:14px;background:var(--card);border:1px solid #262626;border-radius:0 0 14px 14px;margin-bottom:1.2rem;}
.nh-community-header.nh-no-banner{border-radius:14px;}
.nh-community-icon{width:56px;height:56px;border-radius:50%;object-fit:cover;background:#0d0d0d;border:2px solid var(--bg);flex-shrink:0;}
.nh-community-icon-letter{width:56px;height:56px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.3rem;flex-shrink:0;}
.nh-community-titlebar{flex:1;min-width:0;}
.nh-community-titlebar h1{font-size:1.2rem;}
.nh-community-titlebar .nh-dim{font-size:.82rem;}

.nh-user-card{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;transition:background .15s;}
.nh-user-card:hover{background:rgba(255,255,255,.03);}
.nh-user-card img{width:36px;height:36px;border-radius:50%;object-fit:cover;flex-shrink:0;}

.nh-empty{color:var(--dim);font-size:.9rem;padding:2rem 0;text-align:center;}
.nh-page-title{font-size:1.4rem;font-weight:700;margin-bottom:1rem;}

/* ---------- Phase 2: search box, notifications bell, bookmarks ---------- */

.nh-search-box{flex:1;max-width:360px;margin:0 clamp(.5rem,3vw,2rem);}
.nh-search-box input{
  width:100%;background:#141414;border:1px solid var(--line);border-radius:20px;
  padding:6px 14px;color:var(--text);font-size:.82rem;outline:none;transition:border-color .15s;
}
.nh-search-box input:focus{border-color:var(--accent);}
.nh-search-box input::placeholder{color:var(--dim);}

.nh-bell{position:relative;display:flex;align-items:center;font-size:1rem;color:var(--dim);transition:color .15s;}
.nh-bell:hover{color:var(--text);}
.nh-bell-badge{
  position:absolute;top:-6px;right:-9px;background:var(--accent);color:#fff;
  font-size:.62rem;font-weight:700;line-height:1;border-radius:999px;
  padding:2px 5px;min-width:15px;text-align:center;box-shadow:0 0 0 2px var(--bg);
}
.nh-bell-badge[hidden]{display:none;}

.nh-bookmark-btn{
  background:none;border:none;color:var(--dim);font-size:.78rem;cursor:pointer;
  padding:4px 8px;border-radius:6px;transition:all .15s;
}
.nh-bookmark-btn:hover{color:var(--text);background:rgba(255,255,255,.04);}
.nh-bookmark-btn.nh-bookmark-active{color:var(--accent);}

.nh-notif-row{
  display:block;padding:12px 14px;border-radius:10px;font-size:.88rem;
  border-bottom:1px solid var(--line);transition:background .15s;
}
.nh-notif-row:last-child{border-bottom:none;}
.nh-notif-row:hover{background:rgba(255,255,255,.03);}
.nh-notif-row.nh-notif-unread{background:rgba(188,6,2,.06);}
.nh-notif-row.nh-notif-unread:hover{background:rgba(188,6,2,.1);}

/* ---------- Phase 3: moderation (badges, report, mod controls) ---------- */

.nh-mod-badge{
  display:inline-flex;align-items:center;gap:3px;font-size:.72rem;font-weight:600;
  padding:2px 7px;border-radius:5px;margin-right:6px;vertical-align:middle;
}
.nh-mod-badge.nh-badge-sticky{background:rgba(50,150,210,.15);color:#5cb3e6;}
.nh-mod-badge.nh-badge-locked{background:rgba(210,150,50,.15);color:#e6b35c;}

/* Reset native <button> chrome so mod/report action buttons match the
   plain-text look of the <a> actions they sit next to. */
button.nh-card-action, button.nh-comment-action{background:none;border:none;cursor:pointer;font-family:inherit;}

.nh-mod-controls{display:inline-flex;gap:2px;margin-left:6px;padding-left:8px;border-left:1px solid var(--line);}
.nh-mod-controls .top-btn{color:#e6b35c;}
.nh-report-btn{color:var(--dim);}
.nh-mod-remove{color:#ff8a84;}
.nh-mod-restore{color:#32d296;}
