/* ========= UNBAN REQUEST PANEL =========
   Shown at the top of any topic inside the Unban Requests board: the author's
   live ban record pulled from the game server, plus a staff accept action.
   The thread itself is a normal topic; this panel is the only bespoke part. */
.unban-panel{
    margin-bottom:18px;padding:18px 20px;
    background:var(--panel-glass);backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    -webkit-backdrop-filter:var(--lg-blur,blur(20px) saturate(1.6));
    border:var(--lg-border,1px solid var(--line-glass));border-radius:var(--lg-radius,var(--radius));
    border-left:3px solid rgba(233,82,91,.5);
}
.unban-panel.is-clear{border-left-color:rgba(47,201,105,.5)}
.unban-panel-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}
.unban-panel .appeal-ban-meta{margin:0 0 14px;padding:0 0 14px;border-top:none;border-bottom:1px solid var(--line)}
.unban-panel form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.unban-panel-hint{margin:0}

.appeal-ban-meta{display:flex;gap:26px;flex-wrap:wrap}
.appeal-ban-meta dt{color:var(--muted);font-size:var(--fs-xs,.72rem);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.appeal-ban-meta dd{margin:0;font-size:var(--fs-sm,.86rem)}

@media (max-width:640px){
    .server-ban-inner{flex-direction:column;align-items:flex-start;gap:9px}
    .server-ban-cta{width:100%;text-align:center}
    .unban-panel .appeal-ban-meta{gap:16px}
}

/* ========= THREAD & REPLY TOOLS ========= */
.post-tools-toast{
    position:fixed;left:50%;bottom:28px;z-index:9999;transform:translate(-50%,12px);opacity:0;pointer-events:none;
    padding:10px 16px;border-radius:12px;font-size:.84rem;font-weight:600;color:var(--text);
    background:rgba(20,23,29,.96);border:1px solid var(--line-glass);box-shadow:0 18px 40px -12px rgba(0,0,0,.8);
    transition:opacity .22s var(--ease-out,ease), transform .22s var(--ease-out,ease);
}
.post-tools-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.post-tools-toast.is-error{border-color:rgba(233,82,91,.4);color:#f5b3b7}

.draft-notice{
    display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;padding:8px 12px;border-radius:10px;
    font-size:.8rem;color:var(--muted-strong);background:rgba(242,201,76,.07);border:1px solid rgba(242,201,76,.25);
}
.draft-notice button{background:none;border:0;color:var(--gold);font-weight:700;font-size:.78rem;cursor:pointer}
.draft-notice button:hover{text-decoration:underline}

.emoji-panel{
    position:absolute;top:calc(100% + 8px);left:0;z-index:60;display:grid;grid-template-columns:repeat(8,34px);gap:2px;padding:8px;
    border-radius:14px;background:#14171d;border:1px solid var(--line);box-shadow:0 24px 50px -14px rgba(0,0,0,.85);
    animation:zrPageIn .16s var(--ease-out,ease) both;
}
.emoji-cell{width:34px;height:34px;border:0;border-radius:8px;background:none;font-size:1.15rem;cursor:pointer;line-height:1;transition:background .15s}
.emoji-cell:hover{background:rgba(255,255,255,.07)}

.mention-list{
    position:relative;z-index:40;display:flex;flex-direction:column;max-width:280px;margin-top:6px;padding:5px;border-radius:12px;
    background:#14171d;border:1px solid var(--line);box-shadow:0 20px 44px -14px rgba(0,0,0,.85);
}
.mention-list[hidden]{display:none}
.mention-item{display:flex;align-items:center;gap:9px;padding:7px 9px;border:0;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:.84rem;text-align:left;cursor:pointer}
.mention-item img{width:22px;height:22px;border-radius:50%;object-fit:cover}
.mention-item.active,.mention-item:hover{background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent-border)}
.post-mention{padding:0 4px;border-radius:5px;font-weight:700;color:var(--accent-bright);background:var(--accent-soft)}
.post-mention:hover{color:#fff}

.form-textarea.is-drop-target{border-color:var(--accent-bright);box-shadow:0 0 0 3px rgba(204,0,68,.18)}

.selection-quote-btn{
    position:absolute;z-index:70;transform:translateX(-50%);padding:6px 12px;border:1px solid var(--accent-border);border-radius:999px;
    font-size:.75rem;font-weight:700;color:#fff;background:linear-gradient(135deg,var(--button_primary),var(--button_third));
    box-shadow:0 10px 26px -8px rgba(204,0,68,.6);cursor:pointer;animation:zrPageIn .14s var(--ease-out,ease) both;
}
.selection-quote-btn[hidden]{display:none}

.multiquote-bar{
    position:fixed;right:24px;bottom:24px;z-index:80;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:14px;
    background:rgba(20,23,29,.96);border:1px solid var(--accent-border);box-shadow:0 20px 44px -14px rgba(0,0,0,.85);
    opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .22s var(--ease-out,ease), transform .22s var(--ease-out,ease);
}
.multiquote-bar.is-visible{opacity:1;transform:none;pointer-events:auto}
.multiquote-count{font-size:.8rem;font-weight:700;color:var(--muted-strong);margin-right:4px}
.post-action-btn.multiquote-btn.active,.post-action-btn.bookmark-btn.active{color:var(--accent-bright);border-color:var(--accent-border);background:var(--accent-soft)}
.post-action-btn.bookmark-btn{display:inline-flex;align-items:center;gap:5px}
.post-action-btn.bookmark-btn.active svg{fill:currentColor}

.new-reply-banner{
    display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:11px 14px;border-radius:12px;
    font-size:.84rem;color:var(--text);background:linear-gradient(120deg,rgba(93,156,236,.14),rgba(93,156,236,.03) 60%), var(--panel-glass);
    border:1px solid rgba(93,156,236,.35);opacity:0;transform:translateY(6px);transition:opacity .25s var(--ease-out,ease), transform .25s var(--ease-out,ease);
}
.new-reply-banner.is-visible{opacity:1;transform:none}
.new-reply-banner a{font-weight:700;color:var(--blue)}

.post-code-block{position:relative}
.code-copy-btn{
    position:absolute;top:8px;right:8px;padding:4px 10px;border-radius:7px;font-size:.7rem;font-weight:700;cursor:pointer;
    color:var(--muted-strong);background:rgba(255,255,255,.06);border:1px solid var(--line-glass);opacity:.7;transition:opacity .15s, color .15s, background .15s;
}
.post-code-block:hover .code-copy-btn,.code-copy-btn:focus-visible{opacity:1}
.code-copy-btn.is-done{color:var(--green);border-color:rgba(47,201,105,.35)}
.tok-keyword{color:#ff6b9d;font-weight:600}
.tok-string{color:#9be28f}
.tok-number{color:#f2c94c}
.tok-comment{color:#6f7886;font-style:italic}
.tok-function{color:#7fb6ff}

.embed-card{
    display:inline-flex;align-items:center;gap:12px;max-width:100%;min-width:260px;margin:6px 0;padding:11px 14px;border-radius:14px;
    color:var(--text);text-decoration:none;vertical-align:middle;
    background:var(--lg-specular), var(--panel-glass);border:var(--lg-border);box-shadow:var(--lg-rim), var(--lg-ambient);
    transition:border-color .2s var(--ease-out,ease), transform .2s var(--ease-out,ease);
}
.embed-card:hover{border-color:var(--accent-border);transform:translateY(-1px);color:var(--text)}
.embed-card-icon{width:40px;height:40px;flex-shrink:0;display:grid;place-items:center;border-radius:12px;color:var(--accent-bright);background:color-mix(in srgb,var(--accent-bright) 14%,transparent);border:1px solid color-mix(in srgb,var(--accent-bright) 30%,transparent)}
.embed-card-avatar{width:40px;height:40px;flex-shrink:0;border-radius:12px;object-fit:cover}
.embed-card-body{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.embed-card-kicker{font-size:.64rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.embed-card-title{font-size:.95rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.embed-card-meta{font-size:.74rem;color:var(--muted-strong)}
.embed-card-muted{color:var(--muted)}

.topic-poll{
    margin-bottom:16px;padding:18px 20px;border-radius:var(--lg-radius-sm,16px);
    background:var(--lg-specular), var(--panel-glass);border:var(--lg-border);box-shadow:var(--lg-rim), var(--lg-ambient);
}
.topic-poll-head{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.topic-poll-head h2{margin:0;font-size:1.05rem;font-weight:800}
.topic-poll-icon{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:11px;color:var(--blue);background:color-mix(in srgb,var(--blue) 14%,transparent);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent)}
.topic-poll-meta{font-size:.74rem;color:var(--muted)}
.topic-poll-form{display:flex;flex-direction:column;gap:8px}
.topic-poll-option{
    position:relative;overflow:hidden;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;cursor:pointer;
    background:rgba(255,255,255,.025);border:1px solid var(--line-glass);transition:border-color .2s;
}
.topic-poll-option:hover{border-color:var(--accent-border)}
.topic-poll-option.is-chosen{border-color:var(--accent-border)}
.topic-poll-option input{position:relative;z-index:1;accent-color:var(--accent-bright)}
.topic-poll-bar{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,rgba(204,0,68,.24),rgba(204,0,68,.08));transition:width .6s var(--ease-out,ease)}
.topic-poll-form.show-results .topic-poll-bar{width:var(--poll-share)}
.topic-poll-label{position:relative;z-index:1;flex:1;font-size:.88rem;font-weight:600}
.topic-poll-count{position:relative;z-index:1;font-size:.76rem;font-weight:700;color:var(--muted-strong);font-variant-numeric:tabular-nums;opacity:0;transition:opacity .2s}
.topic-poll-form.show-results .topic-poll-count{opacity:1}
.topic-poll-actions{display:flex;gap:8px;margin-top:6px}
.topic-poll-note{margin:4px 0 0;font-size:.8rem;color:var(--muted)}

.new-topic-poll{margin:0 0 18px;border-radius:12px;border:1px solid var(--line-glass);background:rgba(255,255,255,.02)}
.new-topic-poll summary{display:flex;align-items:center;gap:8px;padding:11px 14px;cursor:pointer;font-size:.86rem;font-weight:700;color:var(--muted-strong);list-style:none}
.new-topic-poll summary::-webkit-details-marker{display:none}
.new-topic-poll[open] summary{color:var(--text);border-bottom:1px solid var(--line-glass)}
.new-topic-poll-body{display:flex;flex-direction:column;gap:10px;padding:14px}
.new-topic-poll-options{display:flex;flex-direction:column;gap:6px}
.new-topic-poll-settings{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.new-topic-poll-duration{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted-strong)}
.new-topic-poll-duration .form-select{width:auto}

.bookmarks-intro{margin-top:6px;color:var(--muted);font-size:.86rem}
.bookmarks-list{display:flex;flex-direction:column;gap:10px}
.bookmark-card{
    display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:var(--lg-radius-sm,16px);
    background:var(--lg-specular), var(--panel-glass);border:var(--lg-border);box-shadow:var(--lg-rim), var(--lg-ambient);
    transition:opacity .25s var(--ease-out,ease), transform .25s var(--ease-out,ease), border-color .2s;
}
.bookmark-card:hover{border-color:rgba(255,255,255,.12)}
.bookmark-card.is-removing{opacity:0;transform:translateX(12px)}
.bookmark-card-link{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0;color:var(--text)}
.bookmark-card-topic{font-weight:800;font-size:.95rem}
.bookmark-card-excerpt{font-size:.84rem;color:var(--muted-strong);line-height:1.5}
.bookmark-card-meta{font-size:.72rem;color:var(--muted)}
.bookmarks-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:50px 20px;color:var(--muted);border-radius:var(--lg-radius-sm,16px);border:1px dashed var(--line)}

@media (max-width: 860px){
    .multiquote-bar{left:12px;right:12px;bottom:84px;justify-content:space-between}
    .emoji-panel{grid-template-columns:repeat(6,34px)}
    .embed-card{min-width:0;width:100%}
}
@media (prefers-reduced-motion: reduce){
    .topic-poll-bar,.post-tools-toast,.multiquote-bar,.new-reply-banner{transition:none}
}
