/* Strong Forum — GrandRP-inspired header + dark forum body */
*,*::before,*::after{box-sizing:border-box}
:root{
  --bg:#0e0c14;--panel:#14121c;--card:#17151f;--line:rgba(255,255,255,.08);
  --text:#f3f0fa;--muted:#9a94a8;--accent:#7152fd;--accent-2:#9b86ff;--accent-dark:#472cfe;
  --grand-purple:#472cfe;--grand-gold:#ffcc00;
  --ok:#22c55e;--danger:#ef4444;--radius:8px;
  --font-ui:"Exo 2",system-ui,sans-serif;
  --font-display:Rajdhani,"Exo 2",system-ui,sans-serif;
}
html{overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#6d5aef #121018}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:#121018;border-radius:999px}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#7152fd 0%,#472cfe 100%);
  border-radius:999px;border:2px solid #121018
}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#9b86ff 0%,#7152fd 100%)}
*::-webkit-scrollbar-corner{background:#121018}
a{color:var(--accent-2);text-decoration:none}a:hover{color:#fff}
em{font-style:normal;color:var(--accent)}
button,input,select,textarea{font:inherit}
img,svg,video{max-width:100%;height:auto}

.hub-app{
  position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;overflow-x:clip;
  background:
    radial-gradient(900px 420px at 8% -10%, rgba(113,82,253,.30), transparent 55%),
    radial-gradient(700px 380px at 92% 8%, rgba(71,44,254,.18), transparent 50%),
    radial-gradient(600px 500px at 50% 110%, rgba(71,44,254,.20), transparent 55%),
    var(--bg)
}
.hub-admin,.hub-auth{position:relative;z-index:1;min-height:100vh;background:var(--bg)}
.hub-auth{background:#070708}

/* ---- Grand-style top bar ---- */
.ff-top{
  position:sticky;top:0;z-index:50;height:68px;
  display:flex;align-items:stretch;width:100%;
  background:#fff;border-bottom:1px solid #e6e4ef;
  box-shadow:0 8px 24px rgba(10,6,24,.18)
}
.ff-brandblock{
  position:relative;z-index:2;flex:0 0 250px;max-width:42vw;
  display:flex;align-items:center;gap:.75rem;
  padding:0 2.4rem 0 1.15rem;color:#fff;text-decoration:none;
  background:linear-gradient(160deg,var(--accent) 0%,var(--accent-dark) 100%);
  clip-path:polygon(0 0,100% 0,calc(100% - 28px) 100%,0 100%)
}
.ff-brandblock__mark{
  width:40px;height:40px;border-radius:10px;overflow:hidden;flex-shrink:0;
  background:rgba(255,255,255,.1);display:grid;place-items:center
}
.ff-brandblock__mark img{width:30px;height:30px;object-fit:contain;display:block}
.ff-brandblock__text{display:flex;flex-direction:column;line-height:1.05;min-width:0;font-family:var(--font-display)}
.ff-brandblock__text strong{font-size:1.15rem;font-weight:700;letter-spacing:.06em}
.ff-brandblock__text span{font-size:.78rem;font-weight:600;letter-spacing:.1em;opacity:.92}
.ff-brandblock__text em{font-style:normal;font-size:.78rem;font-weight:700;letter-spacing:.12em;color:var(--grand-gold)}

.ff-top__bar{
  flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:0 1.15rem 0 .35rem;background:#fff;overflow:hidden
}
.ff-top__site{
  display:inline-flex;align-items:center;gap:.4rem;flex-shrink:0;
  height:34px;padding:0 .85rem;margin-right:.35rem;
  border-radius:8px;border:1.5px solid rgba(71,44,254,.35);
  background:linear-gradient(135deg,rgba(113,82,253,.12),rgba(71,44,254,.08));
  color:var(--accent-dark);font-family:var(--font-display);font-size:.82rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;white-space:nowrap
}
.ff-top__site:hover{color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-dark));border-color:transparent}
.ff-top__site .ff-ico{width:14px;height:14px;color:currentColor}
.ff-nav{display:flex;align-items:stretch;gap:.15rem;height:100%;min-width:0;overflow:hidden}
.ff-nav__link{
  position:relative;display:inline-flex;align-items:center;height:100%;
  padding:0 .85rem;color:#2a2a33;font-family:var(--font-display);font-size:.88rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;white-space:nowrap
}
.ff-nav__link:hover{color:var(--accent-dark)}
.ff-nav__link.is-active{color:var(--accent-dark)}
.ff-nav__link.is-active::after{
  content:"";position:absolute;left:.85rem;right:.85rem;bottom:0;height:3px;
  background:linear-gradient(90deg,var(--accent-dark),var(--accent));border-radius:2px 2px 0 0
}

.ff-top__actions{display:flex;align-items:center;gap:.55rem;flex-shrink:0;margin-left:auto}
.ff-top__textlink{
  display:inline-flex;align-items:center;gap:.35rem;color:#2a2a33;
  font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase
}
.ff-top__textlink:hover{color:var(--accent-dark)}
.ff-top__action{
  width:34px;height:34px;border:0;border-radius:8px;background:transparent;
  color:#3a3a44;display:grid;place-items:center;cursor:pointer;text-decoration:none
}
.ff-top__action:hover{color:var(--accent-dark);background:rgba(113,82,253,.10)}
.ff-top__user{
  display:inline-flex;align-items:center;gap:.45rem;padding:.2rem .55rem .2rem .2rem;
  border-radius:999px;color:#2a2a33;text-decoration:none
}
.ff-top__user:hover{background:rgba(113,82,253,.10);color:var(--accent-dark)}
.ff-top__user-name{font-size:.78rem;font-weight:700;max-width:8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ff-avatar--nav{width:30px;height:30px;border-radius:50%;background:var(--accent);font-size:.7rem}
.ff-menu-btn{display:none}

/* legacy brand used in footer */
.ff-brand{display:inline-flex;align-items:center;gap:.6rem;color:#fff;text-decoration:none}
.ff-brand__text{font-weight:800;font-size:1.05rem}
.ff-brand em{color:var(--accent-2);font-style:normal}

.ff-avatar{
  width:32px;height:32px;border-radius:8px;background:var(--accent);
  display:grid;place-items:center;font-weight:800;font-size:.75rem;overflow:hidden;flex-shrink:0;color:#fff
}
.ff-avatar img{width:100%;height:100%;object-fit:cover}

.ff-shell{flex:1;width:100%;max-width:1480px;margin:0 auto;padding:1.35rem 1.35rem 2rem;display:grid;grid-template-columns:250px minmax(0,1fr);gap:1.35rem;align-items:start}

.ff-side{
  background:rgba(20,18,28,.72);border:1px solid rgba(255,255,255,.06);border-radius:12px;
  padding:.85rem .7rem 1rem;position:sticky;top:84px;backdrop-filter:blur(8px)
}
.ff-side::-webkit-scrollbar{display:none;width:0;height:0}
.ff-side{scrollbar-width:none;-ms-overflow-style:none}
.ff-side__label{margin:1rem .5rem .4rem;font-family:var(--font-display);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#6b6680;font-weight:700}
.ff-side__label:first-child{margin-top:.2rem}
.ff-side__group{margin:.55rem .5rem .25rem;font-family:var(--font-display);font-size:.78rem;font-weight:700;color:#b4aec4;letter-spacing:.1em}
.ff-side__link{display:flex;align-items:center;gap:.55rem;padding:.5rem .7rem;border-radius:7px;color:var(--muted);font-size:.86rem;line-height:1.25;border:1px solid transparent;margin-bottom:3px;width:100%;max-width:100%;min-width:0}
.ff-side__link:hover{color:#fff;background:rgba(255,255,255,.05);border-color:transparent}
.ff-side__link.is-active{color:#fff;background:var(--accent);border-color:transparent;font-weight:700}
.ff-side__link.is-active .ff-side__dot{background:#fff}
.ff-side__dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;background:var(--accent)}
.ff-side__new{
  position:relative;z-index:0;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:.4rem;
  margin-top:1rem;height:44px;border:none;color:#fff;font-family:var(--font-display);font-weight:700;font-size:.9rem;letter-spacing:.08em;
  text-transform:uppercase;width:100%;border-radius:10px;text-decoration:none;
  background:linear-gradient(135deg,var(--accent-dark) 0%,var(--accent) 100%);
  box-shadow:0 10px 28px rgba(71,44,254,.38);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease
}
.ff-side__new:hover{color:#fff;transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 14px 32px rgba(113,82,253,.48)}
.ff-side__staff{color:#dcd6ff!important;margin-top:.35rem}

.ff-main{min-width:0}
.ff-section{margin-bottom:1.75rem}
.ff-section__head{display:flex;align-items:center;justify-content:space-between;margin:0 0 .8rem}
.ff-section__title{margin:0;font-family:var(--font-display);font-size:.92rem;font-weight:700;letter-spacing:.12em;color:var(--accent);text-transform:uppercase}
.ff-section__more{font-size:.75rem;font-weight:700;color:var(--muted)}
.ff-section__more:hover{color:#fff}

/* ---- Hoş geldin hero ---- */
.ff-hero{
  position:relative;overflow:hidden;margin:0 0 1.35rem;padding:1.45rem 1.5rem;
  display:grid;grid-template-columns:1fr auto;grid-template-areas:"who actions" "stats stats";gap:1.15rem;
  background:
    linear-gradient(135deg, rgba(113,82,253,.24), transparent 42%),
    linear-gradient(180deg, #1b1728 0%, #14121c 100%);
  border:1px solid rgba(113,82,253,.28);border-radius:14px;
  box-shadow:0 18px 40px rgba(0,0,0,.28)
}
.ff-hero__glow{position:absolute;top:-60%;right:-6%;width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle,rgba(71,44,254,.22),transparent 68%);pointer-events:none}
.ff-hero__left{grid-area:who;display:flex;align-items:center;gap:1rem;position:relative;z-index:1}
.ff-hero__avatar{width:64px;height:64px;border-radius:14px;background:var(--accent);display:grid;place-items:center;
  font-weight:900;font-size:1.5rem;color:#fff;overflow:hidden;flex-shrink:0;border:1px solid var(--line)}
.ff-hero__avatar img{width:100%;height:100%;object-fit:cover}
.ff-hero__hi{margin:0;font-size:.78rem;color:var(--muted);letter-spacing:.02em}
.ff-hero__name{margin:.1rem 0 .35rem;font-family:var(--font-display);font-size:1.7rem;font-weight:700;line-height:1.1;letter-spacing:.02em}
.ff-hero__badge{display:flex}
.ff-hero__actions{grid-area:actions;display:flex;align-items:center;position:relative;z-index:1}
.ff-hero__stats{grid-area:stats;display:flex;gap:.75rem;position:relative;z-index:1}
.ff-hero__stat{flex:1;padding:.7rem .9rem;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:10px;
  display:flex;flex-direction:column;gap:.15rem}
.ff-hero__stat-num{font-size:1.35rem;font-weight:900;color:#fff;line-height:1}
.ff-hero__stat-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}

/* ---- Duyuru kartı ---- */
.ff-ann-list{display:flex;flex-direction:column;gap:.55rem}
.ff-ann{display:flex;gap:.9rem;align-items:flex-start;padding:1rem 1.1rem;background:var(--card);
  border:1px solid rgba(113,82,253,.18);border-radius:10px;transition:border-color .15s,background .15s,box-shadow .15s;text-decoration:none;color:inherit}
.ff-ann:hover{border-color:rgba(113,82,253,.45);box-shadow:0 10px 28px rgba(71,44,254,.16);background:#1a1730}
.ff-ann--empty{cursor:default;opacity:.9}
.ff-ann--empty:hover{border-color:rgba(113,82,253,.18);box-shadow:none;background:var(--card)}
.ff-ann__icon{
  width:40px;height:40px;flex-shrink:0;border-radius:10px;
  display:grid;place-items:center;
  background:linear-gradient(145deg,rgba(113,82,253,.28),rgba(71,44,254,.12));
  color:var(--accent-2);border:1px solid rgba(113,82,253,.28)
}
.ff-ann__icon .ff-ico,.ff-ico{display:inline-block;width:1.15em;height:1.15em;vertical-align:-.15em;flex-shrink:0}
.ff-ico--ann{width:22px;height:22px}
.ff-ico--sm{width:15px;height:15px}
.ff-ico--xs{width:12px;height:12px;margin-left:.2rem;opacity:.85}
.ff-side__link .ff-ico{color:inherit}
.ff-thread-row__title .ff-ico{margin-right:.2rem;color:var(--accent-2)}
.ff-page-title .ff-ico{margin-right:.25rem;color:var(--accent-2);vertical-align:-.2em}
.ff-toolbar .ff-ico{width:14px;height:14px;display:block;margin:0 auto}
.ff-ann__body{min-width:0;flex:1}
.ff-ann__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;font-size:.72rem;color:var(--muted)}
.ff-ann__title{margin:.3rem 0 .25rem;font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:#fff;letter-spacing:.02em}
.ff-ann__text{margin:0;font-size:.83rem;color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ff-ann__go{flex-shrink:0;align-self:center;color:#6a6578;font-size:1.15rem;opacity:.45;transition:opacity .15s,color .15s,transform .15s}
.ff-ann:hover .ff-ann__go{opacity:1;color:var(--accent-2);transform:translateX(3px)}
.ff-ann-section{margin-bottom:1.35rem}

/* ---- Son konular ---- */
.ff-recent{display:flex;flex-direction:column;gap:.4rem}
.ff-recent__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.9rem;
  padding:.85rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:10px;transition:border-color .15s,background .15s}
.ff-recent__row:hover{border-color:rgba(255,255,255,.16)}
.ff-recent__accent{width:4px;height:34px;border-radius:3px;flex-shrink:0}
.ff-recent__main{min-width:0}
.ff-recent__title{margin:0;font-size:.92rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ff-recent__meta{margin:.25rem 0 0;font-size:.72rem;color:var(--muted)}
.ff-recent__stat{text-align:right;font-size:.7rem;color:var(--muted);white-space:nowrap;display:flex;flex-direction:column;gap:.1rem}

/* ---- XenForo / GrandRP board + node list ---- */
.ff-board{margin:0 0 1.15rem;border-radius:6px;overflow:hidden;border:1px solid rgba(255,255,255,.07)}
.ff-board.is-collapsed .ff-node-list{display:none}
.ff-board__header{
  margin:0;display:flex;align-items:center;justify-content:space-between;gap:.75rem;
  min-height:44px;padding:.65rem 1rem .65rem 1.05rem;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-dark) 100%);
  border:none;color:#fff
}
.ff-board__title{
  font-family:var(--font-display);font-size:1.05rem;font-weight:700;letter-spacing:.04em;color:#fff;text-transform:uppercase
}
.ff-board__toggle{
  width:28px;height:28px;border:0;border-radius:4px;background:rgba(255,255,255,.12);
  color:#fff;cursor:pointer;position:relative;flex-shrink:0
}
.ff-board__toggle::before{
  content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;
  border-right:2px solid #fff;border-bottom:2px solid #fff;
  transform:translate(-50%,-65%) rotate(45deg)
}
.ff-board.is-collapsed .ff-board__toggle::before{transform:translate(-50%,-35%) rotate(-135deg)}
.ff-node-list{background:#15151c;margin:0;padding:0}
.ff-node{
  display:grid;grid-template-columns:56px minmax(0,1.35fr) 120px minmax(200px,1fr);
  gap:.85rem 1rem;align-items:center;padding:.85rem 1rem;
  border-top:1px solid rgba(255,255,255,.06)
}
.ff-node:first-child{border-top:none}
.ff-node:hover{background:rgba(255,255,255,.02)}
.ff-node__icon{
  width:46px;height:46px;border-radius:0;display:grid;place-items:center;flex-shrink:0;
  text-decoration:none;color:var(--accent);background:transparent;border:0
}
.ff-node__icon--img{padding:4px;color:inherit}
.ff-node__icon--img img{width:100%;height:100%;object-fit:contain;display:block}
.ff-node__bubble{display:block;opacity:.95}
.ff-node__main{min-width:0;padding-right:.25rem}
.ff-node__title{
  margin:0;font-family:var(--font-display);font-size:1.08rem;font-weight:700;color:#fff;
  display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;line-height:1.25;letter-spacing:.02em
}
.ff-node__title a{color:#ececf2}.ff-node__title a:hover{color:#c4b5fd}
.ff-node__new,.ff-node__locked{
  display:inline-flex;align-items:center;padding:.15rem .42rem;border-radius:3px;
  font-size:.62rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;line-height:1
}
.ff-node__new{background:#1f7a4d;color:#dff8ea}
.ff-node__locked{background:#7a2430;color:#fecaca}
.ff-node__desc{
  margin:.28rem 0 0;font-size:.8rem;color:#8b8b96;line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden
}
.ff-node__stats{display:flex;gap:1.1rem;justify-content:flex-end;align-items:center}
.ff-node__pair{margin:0;text-align:center;min-width:44px}
.ff-node__pair dd{margin:0;font-size:1.05rem;font-weight:800;color:#fff;line-height:1.1}
.ff-node__pair dt{margin:.2rem 0 0;font-size:.68rem;color:#8b8b96;font-weight:500}
.ff-node__extra{
  min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr);gap:.65rem;align-items:center
}
.ff-node__avatar{
  width:36px;height:36px;border-radius:50%;overflow:hidden;background:#2a2140;
  display:grid;place-items:center;font-size:.7rem;font-weight:800;color:#ddd6fe;flex-shrink:0
}
.ff-node__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.ff-node__extra-body{min-width:0}
.ff-node__last-title{
  display:block;font-size:.84rem;font-weight:650;color:#ececf2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.ff-node__last-title:hover{color:#c4b5fd}
.ff-node__last-title .ff-tag{margin-right:.35rem;vertical-align:1px}
.ff-node__last-meta{
  margin-top:.22rem;display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;
  font-size:.72rem;color:#8b8b96
}
.ff-node__last-meta time::after{content:"·";margin-left:.45rem;color:#5c5c68}
.ff-node__last-author{font-weight:700}
.ff-node__empty{font-size:.78rem;color:#8b8b96;grid-column:1 / -1}

@media(max-width:1200px){
  .ff-node{grid-template-columns:46px minmax(0,1fr) minmax(180px,.9fr);gap:.75rem}
  .ff-node__stats{display:none}
}

/* legacy cat helpers (sidebar / other pages) */
.ff-cat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.ff-cat{display:flex;align-items:center;gap:.9rem;padding:1rem 1.1rem;background:var(--card);border:1px solid var(--line);
  border-radius:10px;transition:border-color .15s}
.ff-cat:hover{border-color:rgba(255,255,255,.16)}
.ff-cat__icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;
  font-weight:900;font-size:.95rem;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.ff-cat__icon--img{background:rgba(255,255,255,.05);border:1px solid var(--line);padding:6px}
.ff-cat__icon--img img{width:100%;height:100%;object-fit:contain;display:block}
.ff-side__ico{width:20px;height:20px;flex-shrink:0;display:grid;place-items:center}
.ff-side__ico img{width:100%;height:100%;object-fit:contain;display:block}
.ff-cat__body{flex:1;min-width:0}
.ff-cat__title{margin:0;font-size:.98rem;font-weight:800;color:#fff}
.ff-cat__desc{margin:.25rem 0 0;font-size:.78rem;color:var(--muted);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ff-cat__stat{text-align:right;color:var(--muted);font-size:.72rem;white-space:nowrap;line-height:1.3;display:flex;flex-direction:column}
.ff-cat__stat strong{font-size:1.05rem;color:#fff}

.ff-crumb{margin:0 0 .75rem;font-size:.78rem;color:var(--muted)}
.ff-crumb a{color:var(--muted)}.ff-crumb a:hover{color:#fff}
.ff-page-title{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:700;letter-spacing:.03em}
.ff-thread-row{display:grid;grid-template-columns:1fr auto;gap:.75rem;align-items:center;padding:.9rem 1rem;margin-bottom:.4rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.ff-thread-row:hover{border-color:rgba(255,255,255,.16)}
.ff-thread-row__title{margin:0;font-size:.95rem;font-weight:700;color:#fff}
.ff-thread-row__meta{margin:.3rem 0 0;font-size:.72rem;color:var(--muted)}
.ff-thread-row__stat{font-size:.72rem;color:var(--muted);text-align:right}

.ff-post{display:grid;grid-template-columns:180px minmax(0,1fr);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:1rem}
.ff-post__author{padding:1.1rem .9rem;background:#0a0a0e;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem}
.ff-post__author .ff-avatar{width:72px;height:72px;border-radius:10px;font-size:1.5rem;border:2px solid rgba(113,82,253,.45)}
.ff-post__name{font-weight:800;font-size:.9rem;word-break:break-word}
.ff-post__joined{font-size:.68rem;color:var(--muted)}
.ff-post__msgs{font-size:.7rem;color:#c4c0d0;font-weight:700}
.ff-post__msgs:before{content:"✉ ";opacity:.6}
.ff-post__body{padding:1.1rem 1.2rem;position:relative}
.ff-post__time{position:absolute;top:1rem;right:1.1rem;font-size:.72rem;color:var(--muted)}
.ff-post__content{color:#e4e4e7;font-size:.92rem;line-height:1.7;padding-right:4rem;word-break:break-word;overflow-wrap:anywhere}
.ff-post__content h2,.ff-post__content h3{margin:.35rem 0 .65rem;color:#fff;display:block}
.ff-post__content code{background:#1a1228;padding:.1rem .35rem;border-radius:4px;font-size:.88em}
.ff-post__content pre{background:#0a0a0e;border:1px solid var(--line);border-radius:8px;padding:.85rem;overflow:auto;margin:.6rem 0}
.ff-post__content pre code{background:none;padding:0}
.ff-post__content .ff-md-line,.ff-post__content .ff-md-li{display:block;margin:0 0 .4rem;line-height:1.65}
.ff-post__content .ff-md-gap{height:.55rem}
.ff-post__content blockquote{margin:.4rem 0;padding:.35rem .75rem;border-left:3px solid var(--accent);color:#c4c0d0}
.ff-post__sig{margin-top:1.1rem;padding-top:.75rem;border-top:1px dashed var(--line);color:var(--muted);font-size:.8rem}
.ff-post__foot{margin-top:1rem;display:flex;gap:.85rem;font-size:.78rem;color:var(--muted)}
.ff-post__foot a{color:var(--muted)}.ff-post__foot a:hover{color:var(--accent-2)}
.ff-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin:0 0 1.25rem}

.ff-compose{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.ff-compose__head{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;border-top:2px solid var(--accent);border-bottom:1px solid var(--line);font-weight:800}
.ff-compose__body{padding:1rem;display:grid;gap:.85rem}
.ff-compose__row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.ff-toolbar{display:flex;flex-wrap:wrap;gap:.25rem;padding:.35rem;background:#0a0a0e;border:1px solid var(--line);border-radius:6px}
.ff-toolbar button{width:32px;height:32px;border:none;background:transparent;color:var(--muted);cursor:pointer;border-radius:4px;font-weight:700}
.ff-toolbar button:hover{background:#1a1228;color:#fff}
.ff-editor{
  display:block;width:100%;min-height:360px;border:1px solid var(--line);border-radius:8px;
  background:#0a0a0e;color:#fff;padding:1rem 1.05rem;outline:none;resize:vertical;
  font-family:var(--font-ui);font-size:.95rem;line-height:1.65;
  white-space:pre-wrap;word-break:break-word
}
.ff-editor.is-wysiwyg{
  overflow:auto;resize:vertical;cursor:text;white-space:normal
}
.ff-editor.is-wysiwyg:empty:before,
.ff-editor.is-wysiwyg.is-empty:before{
  content:attr(data-placeholder);color:#71717a;pointer-events:none
}
.ff-editor.is-wysiwyg h2{margin:.4rem 0 .55rem;font-size:1.25rem;font-weight:800;color:#fff}
.ff-editor.is-wysiwyg h3{margin:.35rem 0 .45rem;font-size:1.05rem;font-weight:800;color:#fff}
.ff-editor.is-wysiwyg ul,.ff-editor.is-wysiwyg ol{margin:.4rem 0 .4rem 1.2rem;padding:0}
.ff-editor.is-wysiwyg a{color:var(--accent-2);text-decoration:underline}
.ff-editor.is-wysiwyg code{background:#1a1228;padding:.1rem .35rem;border-radius:4px;font-family:ui-monospace,Consolas,monospace;font-size:.88em}
.ff-editor.is-wysiwyg.is-invalid{border-color:#b91c1c}
.ff-editor:focus,.ff-editor.is-wysiwyg:focus{border-color:rgba(113,82,253,.55)}
.ff-post__content h2{margin:.4rem 0 .55rem;font-size:1.2rem;font-weight:800}
.ff-post__content h3{margin:.35rem 0 .45rem;font-size:1.05rem;font-weight:800}
.ff-post__content ul,.ff-post__content ol{margin:.4rem 0 .4rem 1.2rem}
.ff-post__content a{color:var(--accent-2)}
.ff-preview{display:none}
.ff-editor-hint{display:none}
.ff-toolbar__color{position:relative;width:32px;height:32px;display:grid;place-items:center;border-radius:4px;cursor:pointer;color:#ff4d6d;font-weight:900}
.ff-toolbar__color:hover{background:#1a1228}
.ff-toolbar__color input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%}
.ff-toolbar__color span{pointer-events:none;border-bottom:2px solid currentColor;line-height:1;font-size:.85rem}

.ff-tag{display:inline-block;vertical-align:middle;margin-right:.35rem;padding:.12rem .4rem;border-radius:3px;font-size:.65rem;font-weight:800;letter-spacing:.02em;line-height:1.2;border:0;text-transform:none}
.ff-tag--review{background:#1e3a5f;color:#93c5fd;border-color:#2f5a8f}
.ff-tag--ok{background:#14532d;color:#86efac;border-color:#1f7a44}
.ff-tag--deny{background:#7f1d1d;color:#fca5a5;border-color:#b91c1c}
/* Beklemede — açık sarı kutu */
.ff-tag--wait{background:#4a3a0f;color:#fde68a;border-color:#a98a2a}
/* ÖNEMLİ — kıpkırmızı parlayan */
.ff-tag--important{
  background:#ef1d1d;color:#fff;border-color:#ff5252;text-transform:uppercase;
  box-shadow:0 0 5px rgba(239,29,29,.35)
}
.ff-tag--archive{background:#27272a;color:#a1a1aa;border-color:#3f3f46}
.ff-tag--lock{background:#3b0764;color:#e9d5ff;border-color:#6b21a8}

.ff-modbar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center;margin:0 0 1rem;padding:.75rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--radius)}
.ff-modbar__row{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin:0}
.ff-modbar select{background:#0a0a0e;border:1px solid var(--line);color:#fff;border-radius:6px;padding:.35rem .5rem;font-size:.8rem}

.ff-info-box{
  margin:0 0 1rem;padding:.85rem 1rem;max-width:42rem;
  background:#0c0e16;border:1px solid #1e2740;border-radius:8px;
  font-size:.88rem;line-height:1.55
}
.ff-info-box__row{display:grid;grid-template-columns:11.5rem minmax(0,1fr);gap:.5rem .85rem;padding:.12rem 0;align-items:baseline}
.ff-info-box__label{color:#8b93a7;font-weight:500}
.ff-info-box__value{color:#e8eaef;word-break:break-word}
.ff-info-box__proof{color:#ff4d6d;word-break:break-all;text-decoration:none}
.ff-info-box__proof:hover{text-decoration:underline;color:#ff6b85}

.ff-complaint-form{margin:.25rem 0 .5rem;padding:1rem;background:#0c0e16;border:1px solid #1e2740;border-radius:8px}
.ff-complaint-form__head{font-weight:800;margin-bottom:.35rem;color:#fff}
.ff-complaint-form__grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}

.hub-field input,.hub-field select,.hub-field textarea{
  width:100%;border:1px solid var(--line);background:#0a0a0e!important;color:#fff!important;
  padding:.7rem .85rem;border-radius:8px;outline:none;-webkit-text-fill-color:#fff;
  caret-color:#fff;line-height:1.35;box-sizing:border-box
}
.hub-field input:-webkit-autofill,
.hub-field input:-webkit-autofill:hover,
.hub-field input:-webkit-autofill:focus,
.hub-field input:-webkit-autofill:active{
  -webkit-text-fill-color:#fff!important;
  caret-color:#fff!important;
  border-color:#262632!important;
  box-shadow:0 0 0 1000px #0a0a0e inset!important;
  transition:background-color 99999s ease-out
}
.hub-field input[type=password]{
  letter-spacing:.12em;font-size:1.05rem;padding-left:1rem;padding-right:1rem
}

.ff-profile-banner{height:220px;border-radius:var(--radius) var(--radius) 0 0;background:#0a0a0e;border:1px solid var(--line);border-bottom:none;overflow:hidden}
.ff-profile-banner img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.ff-profile-head{background:var(--card);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding:0 1.25rem 1.25rem;margin-bottom:1.1rem;display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:end}
.ff-profile-head .ff-avatar{width:96px;height:96px;border-radius:12px;font-size:2rem;margin-top:-48px;border:3px solid var(--bg)}
.ff-profile-head h1{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:.02em}
.ff-profile-stats{display:flex;gap:1.25rem;color:var(--muted);font-size:.8rem}
.ff-grid-2{display:grid;grid-template-columns:1fr 1.2fr;gap:1rem}
.ff-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.1rem}
.ff-card h2{margin:0 0 .85rem;font-size:.85rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#a1a1aa}
.ff-upload{border:1px solid var(--line);border-radius:8px;padding:1.5rem 1rem;text-align:center;color:var(--muted);font-size:.85rem;cursor:pointer;background:#121018;margin-bottom:.75rem;display:block}
.ff-upload input{display:none}
.ff-upload:hover{border-color:var(--accent);color:#fff}

/* —— Settings —— */
.set-head{margin-bottom:1.25rem}
.set-head__preview{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.set-head__banner{height:160px;background:#0a0a0e;position:relative;overflow:hidden}
.set-head__banner img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.set-head__row{display:flex;align-items:flex-end;gap:1rem;padding:0 1.15rem 1.15rem}
.set-head__avatar{width:72px;height:72px;border-radius:12px;font-size:1.4rem;margin-top:-36px;border:3px solid var(--card);flex-shrink:0}
.set-head__meta{min-width:0;padding-top:.85rem}
.set-head__meta h1{margin:0;font-family:var(--font-display);font-size:1.45rem;font-weight:700;letter-spacing:.02em}
.set-head__meta p{margin:.35rem 0 0;color:var(--muted);font-size:.82rem}
.set-head__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.45rem;align-items:center}

.set-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:start}
.set-side{display:grid;gap:1rem}
.set-panel{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:1.2rem 1.25rem}
.set-panel--muted{background:#111116}
.set-panel__head{margin-bottom:1rem;padding-bottom:.85rem;border-bottom:1px solid var(--line)}
.set-panel__head h2{margin:0;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:#fff}
.set-panel__head p{margin:.3rem 0 0;color:var(--muted);font-size:.82rem}
.set-2fa-status{margin:0 0 1rem;padding:.65rem .85rem;border-radius:8px;border:1px solid rgba(255,255,255,.1);font-size:.88rem;font-weight:600}
.set-2fa-status.is-on{background:rgba(34,197,94,.1);border-color:rgba(34,197,94,.35);color:#86efac}
.set-2fa-setup{display:flex;gap:1rem;align-items:flex-start;flex-wrap:wrap;padding:1rem;border:1px solid var(--line);border-radius:10px;background:#0f0f14}
.set-2fa-qr{border-radius:8px;background:#fff;padding:8px;display:block}
.set-2fa-secret{display:inline-block;margin-top:.25rem;padding:.45rem .65rem;background:#0d0d12;border:1px solid var(--line);border-radius:6px;font-size:.82rem;word-break:break-all;color:#c4b5fd;letter-spacing:.04em}
.set-hint{font-weight:600;color:#71717a;text-transform:none;letter-spacing:0;margin-left:.25rem}

.set-uploads{display:grid;grid-template-columns:120px 1fr;gap:.75rem;margin-bottom:.25rem}
.set-drop{display:flex;flex-direction:column;gap:.55rem;cursor:pointer}
.set-drop input{display:none}
.set-drop__visual{
  display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);
  background:#0a0a0e;color:var(--muted);font-size:.78rem;font-weight:700
}
.set-drop__visual img{width:100%;height:100%;object-fit:cover;display:block}
.set-drop__visual--avatar{width:120px;height:120px;border-radius:12px;font-size:1.6rem;color:#fff;background:var(--accent)}
.set-drop__visual--banner{width:100%;height:140px;border-radius:10px;background:#0a0a0e;overflow:hidden}
.set-drop__visual--banner img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.set-drop__label{display:flex;flex-direction:column;gap:.1rem}
.set-drop__label strong{font-size:.82rem;color:#fff}
.set-drop__label em{font-style:normal;font-size:.72rem;color:var(--muted)}
.set-drop:hover .set-drop__visual{border-color:#3a2a55}

.set-facts{list-style:none;margin:0;padding:0;display:grid;gap:.65rem}
.set-facts li{display:flex;justify-content:space-between;gap:1rem;align-items:baseline;font-size:.85rem}
.set-facts span{color:var(--muted)}
.set-facts strong{color:#fff;font-weight:700;text-align:right}

.hub-field{display:grid;gap:.3rem}
.hub-field label{font-size:.72rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#8b8b96}
.hub-field input,.hub-field select,.hub-field textarea{width:100%;border:1px solid var(--line);background:#0a0a0e;color:#fff;padding:.7rem .8rem;border-radius:6px;outline:none}
.hub-field input:focus,.hub-field select:focus,.hub-field textarea:focus{border-color:rgba(113,82,253,.7)}
.hub-check{display:flex;gap:.5rem;align-items:center;font-size:.82rem;color:var(--muted)}
.hub-check input{accent-color:var(--accent)}
.hub-form{display:grid;gap:.85rem}
/* CTA buttons — solid purple glow, no split wipe */
.hub-btn{
  position:relative;z-index:0;
  display:inline-flex;align-items:center;justify-content:center;gap:.45rem;
  height:42px;padding:0 1.35rem;border:none;cursor:pointer;
  color:#fff;font-family:var(--font-display);font-weight:700;font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;
  border-radius:10px;text-decoration:none;
  background:linear-gradient(135deg,var(--accent-dark) 0%,var(--accent) 100%);
  box-shadow:0 10px 26px rgba(71,44,254,.34);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease
}
.hub-btn:hover{color:#fff;transform:translateY(-1px);filter:brightness(1.08);box-shadow:0 14px 30px rgba(113,82,253,.45)}
.hub-btn:active{transform:translateY(0);filter:brightness(.98)}

.hub-btn--ghost{
  color:#e8e4f5;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);box-shadow:none
}
.hub-btn--ghost:hover{color:#fff;background:rgba(113,82,253,.28);border-color:rgba(113,82,253,.5);box-shadow:none}

.hub-btn--danger{
  background:linear-gradient(135deg,#ef2d5e 0%,#b91c1c 100%);
  box-shadow:0 10px 24px rgba(185,28,28,.28)
}
.hub-btn--danger:hover{box-shadow:0 12px 28px rgba(185,28,28,.4)}

.hub-btn--sm{height:34px;font-size:.68rem;padding:0 1rem;border-radius:8px}
.hub-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.hub-alert{margin-bottom:1rem;padding:.75rem .85rem;font-size:.875rem;border:1px solid transparent;border-radius:8px}
.hub-alert--error{background:#2a1215;color:#fecaca;border-color:#4a1c22}
.hub-alert--success{background:#122a1a;color:#bbf7d0;border-color:#1c4a2a}
.hub-alert--info{background:#1a1228;color:#e9d5ff;border-color:#2e1a4a}
.hub-muted{color:var(--muted);font-size:.85rem;line-height:1.55}
.hub-page-sub{margin:0 0 1.15rem;color:var(--muted);font-size:.9rem}
.hub-stat{font-size:1.6rem;font-weight:900}
.hub-grid{display:grid;gap:1rem}
.hub-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.hub-card{border:1px solid var(--line);background:var(--card);padding:1.1rem;border-radius:8px}
.hub-card h2,.hub-card h3{margin:0 0 .55rem;font-size:1rem;font-weight:800}
.hub-page-title{margin:0 0 .35rem;font-family:var(--font-display);font-size:clamp(1.45rem,2.5vw,1.9rem);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.hub-table{width:100%;border-collapse:collapse;font-size:.85rem}
.hub-table th,.hub-table td{padding:.7rem .55rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.hub-table th{color:#8b8b96;font-size:.7rem;text-transform:uppercase}
.hub-table tr:hover td{background:#18181f}

/* —— Admin dashboard extras —— */

.hub-admin .hub-shell{max-width:1320px;grid-template-columns:240px 1fr}
.hub-admin .hub-side--admin{background:var(--card);border-color:var(--line);box-shadow:none;padding:1rem .75rem}
.hub-admin .hub-top--admin{background:#0b0b0f}
.hub-admin .hub-main{min-width:0}

.hub-badge{display:inline-block;padding:.2rem .5rem;font-size:.68rem;font-weight:700;text-transform:uppercase;border:none;border-radius:4px;background:#1c1c24;color:#c4c4cc}
.hub-badge--ok{color:#fff;background:#166534}
.hub-badge--warn{color:#111;background:#eab308}
.hub-badge--danger{color:#fff;background:#b91c1c}
.hub-badge--admin{color:#fff;background:var(--accent)}
.hub-thread{border:1px solid var(--line);background:var(--card);padding:1rem;margin-bottom:.65rem;border-radius:var(--radius);border-left:3px solid var(--accent)}
.hub-thread__meta{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.4rem;color:var(--muted);font-size:.75rem}
.hub-thread__title{margin:0 0 .35rem;font-size:1.05rem;font-weight:800}
.hub-thread__body{margin:0;color:#d4d4d8;font-size:.9rem;line-height:1.6;white-space:pre-wrap}

/* Rank rozeti — arkaplan rank rengi, yazı beyaz */
.role-badge{
  --role-fg:#fff;
  position:relative;overflow:hidden;isolation:isolate;
  display:inline-flex;align-items:center;gap:.35rem;
  padding:.28rem .7rem;border-radius:6px;
  background:var(--role,var(--accent));
  color:var(--role-fg);font-family:var(--font-display);
  font-size:.72rem;font-weight:700;letter-spacing:.04em;white-space:nowrap;text-transform:none;
  border:1px solid color-mix(in srgb, var(--role,var(--accent)) 70%, #fff 30%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--role,var(--accent)) 40%, transparent),
    0 0 14px color-mix(in srgb, var(--role,var(--accent)) 55%, transparent),
    0 0 28px color-mix(in srgb, var(--role,var(--accent)) 28%, transparent),
    inset 0 1px 0 rgba(255,255,255,.28);
  text-shadow:0 1px 1px rgba(0,0,0,.18)
}
.role-badge__shine{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    linear-gradient(115deg, rgba(255,255,255,.45) 0%, rgba(255,255,255,.08) 28%, transparent 46%),
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.35), transparent 45%);
  mix-blend-mode:soft-light;opacity:.9
}
.role-badge__label{position:relative;z-index:1}
.role-badge__dot{display:none}

.ff-md-img,.ff-sig-box img,.ff-post__sig img{
  display:block;max-width:min(100%,420px);max-height:220px;width:auto;height:auto;
  margin:.55rem 0;border-radius:8px;border:1px solid var(--line);object-fit:contain;background:#0a0a0e
}
.ff-sig-box{color:#cfc9dc;font-size:.88rem;line-height:1.55}
.ff-post__sig .ff-md-img,.ff-sig-box .ff-md-img{max-height:280px;max-width:100%;width:auto;height:auto;object-fit:contain}

/* —— Profile page —— */
.pf{display:grid;gap:1.15rem}
.pf-hero{
  position:relative;border:1px solid rgba(255,255,255,.08);border-radius:16px;overflow:hidden;
  background:var(--card);box-shadow:0 18px 40px rgba(0,0,0,.28)
}
.pf-hero__banner{position:relative;height:260px;background:#0a0a0e;overflow:hidden}
.pf-hero__banner img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.pf-hero__banner-fallback{
  width:100%;height:100%;
  background:
    radial-gradient(600px 180px at 20% 30%, color-mix(in srgb, var(--pf-role,#7152fd) 45%, transparent), transparent 70%),
    linear-gradient(135deg,#1a1630,#121018 55%,#0e0c14)
}
.pf-hero__shade{
  position:absolute;inset:auto 0 0;height:70%;
  background:linear-gradient(180deg,transparent,rgba(14,12,20,.92))
}
.pf-hero__body{
  display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:end;
  padding:0 1.25rem 1.25rem;position:relative
}
.pf-hero__avatar{
  width:108px;height:108px;margin-top:-58px;border-radius:18px;overflow:hidden;flex-shrink:0;
  border:3px solid #14121c;background:var(--accent);
  display:grid;place-items:center;font-family:var(--font-display);font-size:2rem;font-weight:700;color:#fff;
  box-shadow:0 12px 28px rgba(0,0,0,.35),0 0 0 1px color-mix(in srgb, var(--pf-role,#7152fd) 40%, transparent)
}
.pf-hero__avatar img{width:100%;height:100%;object-fit:cover;display:block}
.pf-hero__meta{min-width:0;padding-bottom:.15rem}
.pf-hero__name{
  margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,2.4vw,2rem);font-weight:700;
  letter-spacing:.02em;color:var(--pf-role,#fff);text-shadow:0 0 24px color-mix(in srgb, var(--pf-role,#7152fd) 35%, transparent)
}
.pf-hero__badges{display:flex;flex-wrap:wrap;gap:.45rem;margin:.45rem 0 .55rem;align-items:center}
.pf-hero__stats{display:flex;flex-wrap:wrap;gap:.35rem .95rem;color:var(--muted);font-size:.8rem}
.pf-hero__stats strong{color:#fff;font-weight:700}
.pf-hero__edit{align-self:center}
.pf-grid{display:grid;grid-template-columns:.95fr 1.15fr;gap:1rem;align-items:start}
.pf-col{display:grid;gap:1rem}
.pf-card{
  background:rgba(23,21,31,.92);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1.15rem 1.2rem
}
.pf-card__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.pf-card__head h2{margin:0;font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#b7b0c8}
.pf-card__head a{font-size:.78rem;color:var(--accent-2)}
.pf-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.pf-stat{
  padding:.85rem .75rem;border-radius:12px;text-align:center;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06)
}
.pf-stat strong{display:block;font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:#fff;line-height:1}
.pf-stat span{display:block;margin-top:.35rem;font-size:.72rem;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}
.pf-bio{margin:0;color:#cfc9dc;line-height:1.6;white-space:pre-wrap}
.pf-empty{margin:0;color:var(--muted)}
.pf-threads{display:grid;gap:.45rem}
.pf-thread{
  display:grid;grid-template-columns:4px 1fr;gap:.75rem;align-items:stretch;
  padding:.75rem .85rem;border-radius:10px;border:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.02);text-decoration:none;color:inherit
}
.pf-thread:hover{border-color:rgba(113,82,253,.35);background:rgba(113,82,253,.08)}
.pf-thread__bar{border-radius:4px}
.pf-thread__body{min-width:0}
.pf-thread__body strong{display:block;color:#fff;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pf-thread__body em{display:block;margin-top:.25rem;font-style:normal;color:var(--muted);font-size:.75rem}

.set-sig-upload{display:grid;gap:.85rem}
.set-drop--sig{flex-direction:row;align-items:center}
.set-drop__visual--sig{
  width:120px;height:72px;border-radius:10px;flex-shrink:0;font-size:.72rem;text-align:center;padding:.35rem
}
.set-sig-preview{border:1px solid var(--line);border-radius:10px;padding:.85rem;background:#0a0a0e}
.set-sig-preview__label{display:block;margin-bottom:.5rem;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}

.adm-hero{
  position:relative;overflow:hidden;margin:0 0 1.15rem;padding:1.35rem 1.4rem;border-radius:14px;
  border:1px solid rgba(113,82,253,.28);
  background:
    radial-gradient(500px 180px at 90% 0%, rgba(113,82,253,.28), transparent 60%),
    linear-gradient(135deg,#1b1728,#14121c)
}
.adm-hero__top{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}
.adm-hero__eyebrow{margin:0 0 .35rem;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#9b86ff;font-weight:700}
.adm-hero h1{margin:0;font-family:var(--font-display);font-size:clamp(1.5rem,2.5vw,1.95rem);font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.adm-hero p{margin:.45rem 0 0;color:var(--muted);max-width:42rem;line-height:1.55}
.adm-hero__pulse{
  display:flex;flex-direction:column;gap:.2rem;align-items:flex-start;
  padding:.7rem .9rem;border-radius:12px;background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.28)
}
.adm-hero__dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 12px #22c55e;margin-bottom:.15rem}
.adm-hero__pulse strong{font-size:.82rem;letter-spacing:.08em;color:#86efac}
.adm-hero__pulse em{font-style:normal;font-size:.72rem;color:var(--muted)}
.adm-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.15rem}
.adm-stat{
  position:relative;overflow:hidden;padding:1rem 1.05rem 1rem 1.15rem;border-radius:12px;
  background:var(--card);border:1px solid var(--line)
}
.adm-stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.adm-stat__label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.adm-stat__value{margin-top:.35rem;font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:-.02em}
.adm-stat__slash{font-size:1rem;color:var(--muted);font-weight:600}
.adm-stat__hint{margin-top:.35rem;font-size:.75rem;color:var(--muted)}
.adm-roles{margin:0 0 1.2rem;padding:1.1rem 1.15rem;border-radius:14px;border:1px solid rgba(255,255,255,.07);background:rgba(20,18,28,.85)}
.adm-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.9rem}
.adm-section-head h2{margin:0;font-family:var(--font-display);font-size:.92rem;letter-spacing:.1em;text-transform:uppercase}
.adm-section-head a{font-size:.78rem;color:var(--accent-2)}
.adm-roles__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.65rem}
.adm-role-card{
  position:relative;overflow:hidden;padding:.85rem .9rem;border-radius:12px;
  background:rgba(255,255,255,.03);border:1px solid color-mix(in srgb, var(--role,#7152fd) 35%, transparent);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02),0 0 24px color-mix(in srgb, var(--role,#7152fd) 12%, transparent)
}
.adm-role-card::before{
  content:"";position:absolute;inset:auto -20% -40% auto;width:90px;height:90px;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb, var(--role,#7152fd) 45%, transparent), transparent 70%);
  pointer-events:none
}
.adm-role-card__badge{position:relative;z-index:1;margin-bottom:.55rem}
.adm-role-card__count{position:relative;z-index:1;font-family:var(--font-display);font-size:1.55rem;font-weight:700;color:#fff;line-height:1}
.adm-role-card__meta{position:relative;z-index:1;margin-top:.35rem;display:flex;justify-content:space-between;gap:.5rem;font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.adm-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.65rem;margin:0 0 1.25rem}
.adm-quick a{
  display:flex;flex-direction:column;gap:.25rem;padding:.95rem 1rem;border-radius:12px;text-decoration:none;color:#fff;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)
}
.adm-quick a strong{font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.03em}
.adm-quick a:hover{border-color:rgba(113,82,253,.4);background:#18181f;color:#fff}
.adm-quick span{font-size:.72rem;color:var(--muted);font-weight:500}
.adm-grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem}
.adm-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.adm-card h2{margin:0 0 .85rem;font-family:var(--font-display);font-size:.88rem;letter-spacing:.08em;text-transform:uppercase}
.adm-card__more{margin:.75rem 0 0}
.adm-mini-label{margin:0 0 .45rem;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#6b6680;font-weight:700}
@media(max-width:1000px){
  .adm-grid-2,.adm-grid-3,.adm-stat-grid,.pf-grid{grid-template-columns:1fr}
  .pf-hero__body{grid-template-columns:auto 1fr}
  .pf-hero__edit{grid-column:1 / -1;width:100%;text-align:center}
}

.ff-foot{
  margin-top:auto;border-top:1px solid var(--line);
  background:#0b0b0f;position:relative;z-index:1;overflow:hidden
}
.ff-foot__inner{
  max-width:1480px;margin:0 auto;padding:2.25rem 1.35rem 1.5rem;
  display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr) minmax(0,1fr);
  gap:2.5rem;align-items:start
}
.ff-foot__brand p{margin:.7rem 0 0;color:var(--muted);font-size:.875rem;line-height:1.65;max-width:22rem}
.ff-foot h4{
  margin:0 0 .85rem;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:#7a748c;font-weight:800
}
.ff-foot__nav{display:flex;flex-direction:column;gap:.15rem}
.ff-foot__nav a{
  color:#b8b4c4;font-size:.9rem;padding:.35rem 0;border:none;display:inline-block;
  transition:color .15s,padding-left .15s
}
.ff-foot__nav a:hover{color:#fff}
.ff-foot__social{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.ff-foot__social a{
  display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 .9rem;
  border-radius:8px;border:1px solid var(--line);background:#14141a;
  color:#ddd;font-size:.78rem;font-weight:700;letter-spacing:.02em
}
.ff-foot__social a:hover{border-color:var(--accent);background:#1a1228;color:#fff}
.ff-foot__stats{display:flex;flex-direction:column;gap:.15rem}
.ff-foot__stat{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.06)
}
.ff-foot__stat:last-child{border-bottom:none}
.ff-foot__stat-row{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;
  padding:.65rem 0;border-bottom:1px solid rgba(255,255,255,.06);background:none
}
.ff-foot__stat-row:last-child{border-bottom:none}
.ff-foot__stat-num{font-family:var(--font-display);font-size:1.45rem;font-weight:700;color:#fff;letter-spacing:.02em;line-height:1}
.ff-foot__stat-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:#7a748c;font-weight:700}
.ff-foot__bar{
  max-width:1480px;margin:0 auto;padding:.9rem 1.35rem;
  border-top:1px solid rgba(255,255,255,.06);
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  font-size:.75rem;color:#5c5868
}

.hub-auth{min-height:100vh;margin:0;background:#070708;color:#fff}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);position:relative;overflow:hidden}
.auth-page__bg{
  position:absolute;inset:0;z-index:0;opacity:.55;pointer-events:none;
  background-repeat:no-repeat;background-size:cover;background-position:center;mix-blend-mode:screen
}
.auth-visual{
  position:relative;z-index:1;min-height:100vh;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  padding:2.35rem 2.25rem 2.25rem;border-right:1px solid rgba(255,255,255,.06)
}
.auth-visual__art{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;
  z-index:0;opacity:.92;pointer-events:none
}
.auth-visual__shade{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(7,7,8,.25) 0%,rgba(7,7,8,.45) 50%,rgba(7,7,8,.9) 100%),
    linear-gradient(180deg,rgba(7,7,8,.5) 0%,transparent 26%,transparent 55%,rgba(7,7,8,.92) 100%)
}
.auth-visual__lines{position:absolute;z-index:2;width:120px;height:120px;opacity:.55;pointer-events:none}
.auth-visual__lines--tl{top:1rem;left:1rem}
.auth-visual__lines--br{right:1rem;bottom:1rem;transform:rotate(180deg)}
.auth-visual__top,.auth-visual__bottom{position:relative;z-index:3;max-width:34rem}
.auth-visual__mark{display:inline-flex;align-items:center;gap:.75rem;margin:0 0 .85rem;padding-top:.15rem}
.auth-visual__mark .ff-brand__mark{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.14);flex-shrink:0
}
.auth-visual__mark .ff-brand__mark img{width:28px;height:28px;object-fit:contain;display:block}
.auth-visual__mark strong{font-family:var(--font-display);font-size:clamp(2.2rem,4.6vw,3.2rem);font-weight:700;letter-spacing:.02em;line-height:1;color:#fff}
.auth-visual__top > p{margin:0;max-width:16rem;color:rgba(0,0,0,.8);background:rgba(255,255,255,.86);padding:.55rem .7rem;border-radius:6px;font-size:.8rem;line-height:1.45}
.auth-visual__headline{margin:0;font-size:clamp(1.05rem,2vw,1.25rem);font-weight:800;letter-spacing:.04em;text-transform:uppercase;line-height:1.35}
.auth-visual__headline em{color:var(--accent);font-style:normal}
.auth-visual__sub{margin:.65rem 0 0;color:#b4b4bc;font-size:.9rem;line-height:1.55;max-width:28rem}
.auth-visual__sub em{color:#fff;font-style:normal;font-weight:700}
.auth-visual__checks{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.15rem}
.auth-visual__checks span{display:inline-flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.auth-visual__checks img{display:block}

.auth-panel{
  position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:2rem 1.5rem;
  background:
    radial-gradient(ellipse 90% 55% at 70% -10%, rgba(113,82,253,.22), transparent 55%),
    radial-gradient(ellipse 60% 40% at 20% 110%, rgba(71,44,254,.12), transparent 50%),
    linear-gradient(165deg,#121018 0%,#0b0b0f 45%,#08080c 100%)
}
.auth-panel__inner{
  width:100%;max-width:440px;
  padding:1.85rem 1.7rem 1.35rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(22,22,30,.92),rgba(14,14,20,.88));
  box-shadow:0 28px 70px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.05)
}
.auth-panel__head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.55rem}
.auth-panel__brand{gap:.8rem}
.auth-panel__brand .ff-brand__mark{
  width:44px;height:44px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(145deg,rgba(113,82,253,.35),rgba(71,44,254,.12));
  border:1px solid rgba(113,82,253,.4);box-shadow:0 8px 20px rgba(71,44,254,.25)
}
.auth-panel__brand .ff-brand__mark img{width:28px;height:28px;object-fit:contain;display:block}
.auth-panel__brand .ff-brand__text{font-family:var(--font-display);font-size:1.4rem;font-weight:700;letter-spacing:.03em}
.auth-panel__tabs{display:flex;gap:.35rem;background:#111116;border:1px solid var(--line);border-radius:10px;padding:.2rem}
.auth-panel__tabs a{color:var(--muted);font-size:.8rem;font-weight:700;padding:.45rem .85rem;border-radius:8px}
.auth-panel__tabs a:hover{color:#fff}
.auth-panel__tabs a.is-active{color:#fff;background:var(--accent)}
.auth-panel__intro{margin-bottom:1.25rem}
.auth-panel__intro h1{margin:0;font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:.02em}
.auth-panel__intro p{margin:.4rem 0 0;color:var(--muted);font-size:.875rem;line-height:1.5}
.auth-panel__body .hub-form{gap:1rem}
.auth-panel__body .hub-btn{width:100%;height:46px;margin-top:.35rem;border-radius:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.88rem}
.auth-panel__body .hub-field label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#8b8699;font-weight:700}
.auth-panel__body .hub-field input{
  height:46px;border-radius:10px;background:#0e0e14!important;border:1px solid #262632;
  padding:.7rem 1rem;font-size:.95rem;color:#fff!important;-webkit-text-fill-color:#fff;caret-color:#fff
}
.auth-panel__body .hub-field input:focus{
  border-color:var(--accent);background:#12121a!important;box-shadow:0 0 0 3px rgba(113,82,253,.18)
}
.auth-panel__body .hub-field input:-webkit-autofill,
.auth-panel__body .hub-field input:-webkit-autofill:hover,
.auth-panel__body .hub-field input:-webkit-autofill:focus,
.auth-panel__body .hub-field input:-webkit-autofill:active{
  -webkit-text-fill-color:#fff!important;
  caret-color:#fff!important;
  border-color:#3a3550!important;
  box-shadow:0 0 0 1000px #0e0e14 inset!important;
  transition:background-color 99999s ease-out
}
.auth-panel__body .hub-field input[type=password]{letter-spacing:.14em}
.auth-panel__body .hub-check{color:#a1a1aa;font-size:.8rem}
.auth-panel__body .hub-switch{margin:1.1rem 0 0;text-align:center;color:#71717a;font-size:.84rem}
.auth-forgot-row{display:flex;justify-content:flex-end;margin:-.35rem 0 .15rem}
.auth-forgot-row a{font-size:.8rem;color:#a1a1aa;font-weight:600}
.auth-forgot-row a:hover{color:#fff}
.auth-panel__foot{
  margin-top:1.65rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.07);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#5c5868;font-size:.72rem
}
.auth-panel__foot a{color:#7a748c}
.auth-panel__foot a:hover{color:#fff}
.hub-switch{margin:1rem 0 0;text-align:center;color:var(--muted);font-size:.875rem}
@media(max-width:980px){
  .auth-page{grid-template-columns:1fr}
  .auth-visual{min-height:42vh;padding:1.25rem}
  .auth-visual__mark strong{font-size:2.2rem}
  .auth-visual__top > p{display:none}
  .auth-visual__lines{width:88px;height:88px}
  .auth-panel{min-height:auto;padding:1.5rem 1.15rem 2rem;align-items:flex-start}
}

.hub-top{position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line);background:#0b0b0f}
.hub-top__inner{max-width:1180px;margin:0 auto;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.hub-top__brand{display:inline-flex;align-items:center;gap:.6rem;color:#fff;font-weight:800}
.hub-top__admin-tag{font-size:.65rem;letter-spacing:.14em;padding:.25rem .45rem;background:var(--accent);border-radius:4px}
.hub-top__links{display:flex;align-items:center;gap:.85rem;font-size:.875rem;flex-wrap:wrap}
.hub-top__links a{color:var(--muted)}.hub-top__links a:hover{color:#fff}
.hub-top__user{color:#fff!important;font-weight:700}
.hub-top__logout{padding:.35rem .7rem;border:1px solid var(--line);border-radius:6px}
.hub-top__menu{display:none;background:transparent;border:1px solid var(--line);color:#fff;padding:.35rem .55rem;cursor:pointer;border-radius:6px}
.hub-shell{max-width:1180px;margin:0 auto;padding:1.25rem 1rem 2.75rem;display:grid;grid-template-columns:230px minmax(0,1fr);gap:1.25rem}
.hub-side{border:1px solid var(--line);background:var(--card);padding:.85rem;height:fit-content;position:sticky;top:4.35rem;border-radius:var(--radius)}
.hub-side__label{margin:.85rem 0 .4rem;padding:0 .55rem;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.4);font-weight:700}
.hub-side__link{display:flex;width:fit-content;max-width:100%;padding:.5rem .7rem;color:var(--muted);font-size:.9rem;border:1px solid transparent;border-radius:7px;margin-bottom:3px}
.hub-side__link:hover{color:#fff;background:#1c1c24}
.hub-side__link.is-active{color:#fff;background:var(--accent);font-weight:700}
.hub-side__link--staff{margin-top:.35rem;color:#e9d5ff!important}
.hub-main{min-width:0}

@media(max-width:1000px){
  .ff-shell{grid-template-columns:1fr}
  .ff-side{display:none;position:fixed;inset:76px 1rem auto;z-index:60;max-height:70vh;overflow:auto;background:#17151f;border:1px solid var(--line);border-radius:12px;padding:1rem}
  .ff-side.is-open{display:block}
  .ff-menu-btn{display:grid}
  .ff-nav{display:none}
  .ff-brandblock{flex-basis:190px;padding-right:1.8rem;gap:.55rem}
  .ff-brandblock__mark{width:34px;height:34px}
  .ff-brandblock__mark img{width:24px;height:24px}
  .ff-brandblock__text strong{font-size:.92rem}
  .ff-brandblock__text span,.ff-brandblock__text em{font-size:.62rem}
  .ff-top__site span{display:none}
  .ff-top__site{padding:0 .55rem;margin-right:.15rem}
  .ff-top__user-name{display:none}
  .ff-top__textlink{gap:0;padding:.4rem;border-radius:8px}
  .ff-top__textlink{font-size:0;line-height:0}
  .ff-top__textlink svg{width:15px;height:15px}
  .ff-node{grid-template-columns:46px minmax(0,1fr);gap:.75rem}
  .ff-node__stats{display:none}
  .ff-node__extra{display:none}
  .ff-board__header{min-height:40px;padding:.55rem .85rem}
  .ff-hero{grid-template-columns:1fr;grid-template-areas:"who" "actions" "stats"}
  .ff-hero__actions .hub-btn{width:100%;text-align:center}
  .ff-recent__row{grid-template-columns:auto 1fr}
  .ff-recent__stat{display:none}
  .ff-post{grid-template-columns:1fr}
  .ff-post__author{border-right:none;border-bottom:1px solid var(--line);flex-direction:row;justify-content:flex-start;text-align:left}
  .ff-editor-split,.ff-grid-2,.hub-grid--2,.hub-grid--3,.hub-auth-grid,.ff-foot__inner,.ff-complaint-form__grid,.ff-cat-grid{grid-template-columns:1fr}
  .ff-info-box__row{grid-template-columns:1fr}
  .ff-profile-head{grid-template-columns:1fr}
  .hub-shell{grid-template-columns:1fr}
  .hub-side{display:none;position:fixed;inset:3.5rem 1rem auto;z-index:50;background:#111116}
  .hub-side.is-open{display:block}
  .hub-top__links{display:none}
  .hub-top__menu{display:inline-flex}
  .set-grid,.set-uploads{grid-template-columns:1fr}
  .set-drop__visual--avatar{width:96px;height:96px}
}

.adm-feed-item{padding:.75rem 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:1rem;font-size:.85rem}
.adm-feed-item:last-child{border-bottom:none}
.adm-feed-item strong{display:block;color:#fff;margin-bottom:.15rem}
.adm-feed-item em{font-style:normal;color:var(--muted);font-size:.75rem}
