
.fb-page {
    --fb-r-card: var(--radius-lg, 12px);
    --fb-r: 8px;
    --fb-r-sm: 6px;
    --fb-line: var(--card-border, #e2eaf4);
    --fb-line-strong: #d3deec;
    --fb-fill: #f4f8fd;
    --fb-ink: var(--text-primary, #0b1730);
    --fb-mute: var(--text-secondary, #5f6f87);
    --fb-faint: var(--text-tertiary, #8a99ad);
    --fb-blue: var(--brand-primary, #1769e8);
    --fb-shadow: 0 10px 30px rgba(24, 65, 123, .07);
}

.fb-st-open { --fb-st: #1769e8; --fb-st-bg: rgba(23, 105, 232, .1); }
.fb-st-doing { --fb-st: #c27400; --fb-st-bg: rgba(227, 154, 0, .14); }
.fb-st-fixed { --fb-st: #059669; --fb-st-bg: rgba(16, 185, 129, .12); }
.fb-st-done { --fb-st: #0e7c86; --fb-st-bg: rgba(14, 124, 134, .11); }
.fb-st-rejected { --fb-st: #6b7280; --fb-st-bg: rgba(107, 114, 128, .12); }
.fb-st-duplicate { --fb-st: #6b7280; --fb-st-bg: rgba(107, 114, 128, .12); }

.fb-ico { flex: none; inline-size: 1rem; aspect-ratio: 1; }
.fb-ico-open { color: #1769e8; }
.fb-ico-doing { color: #c27400; }
.fb-ico-fixed { color: #059669; }
.fb-ico-done { color: #0e7c86; }
.fb-ico-rejected, .fb-ico-duplicate { color: #6b7280; }

.fb-pill {
    display: inline-flex; align-items: center; gap: 6px; flex: none;
    min-height: 1.85rem; padding: 0 12px 0 10px; border-radius: var(--fb-r-sm);
    background: var(--fb-st-bg); color: var(--fb-st);
    font-size: .82rem; font-weight: 700; white-space: nowrap;
}
.fb-pill .fb-ico { inline-size: .9rem; }

.fb-label {
    display: inline-flex; align-items: center; gap: 4px; flex: none;
    min-height: 1.4rem; padding: 0 8px; border-radius: var(--fb-r-sm);
    background: var(--fb-fill); color: var(--fb-mute);
    font-size: .74rem; font-weight: 600; white-space: nowrap;
}
.fb-label svg { inline-size: .8rem; aspect-ratio: 1; flex: none; }
.fb-label.lock { background: rgba(227, 154, 0, .12); color: #9a6200; }
.fb-label.admin { background: rgba(239, 68, 68, .1); color: #c2410c; }

.fb-avatar { flex: none; inline-size: 1.75rem; aspect-ratio: 1; border-radius: 50%; object-fit: cover; background: var(--fb-fill); }
.fb-avatar.sm { inline-size: 1.5rem; }

.fb-board, .fb-card, .fb-panel, .fb-side-card, .fb-comp {
    background: var(--card-bg, #fff); border: 1px solid var(--fb-line); border-radius: var(--fb-r-card);
}


.fb-hero {
    position: relative; overflow: hidden;
    padding: calc(72px + 44px) 0 88px;
    background: #061a38;
    color: #fff;
}
.fb-hero::before {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background-image:
        linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(180deg, #000 30%, transparent 100%);
}
.fb-hero::after {
    content: ""; position: absolute; pointer-events: none;
    inset: -40% -10% auto auto; inline-size: 55%; aspect-ratio: 1;
    background: radial-gradient(closest-side, rgba(23, 105, 232, .38), transparent);
}
.fb-hero-inner { position: relative; z-index: 1; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.fb-eyebrow { margin: 0 0 10px; font-size: .74rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: #8db8ff; }
.fb-hero h1 { margin: 0; font-size: clamp(1.9rem, 3.4vw, 2.6rem); font-weight: 800; letter-spacing: -.01em; line-height: 1.15; }
.fb-hero-copy p { margin: 10px 0 0; max-inline-size: 36rem; color: rgba(255, 255, 255, .72); font-size: .98rem; line-height: 1.7; }
.fb-hero-act .btn { display: inline-flex; align-items: center; gap: 8px; border-radius: var(--fb-r); }
.fb-hero-act .btn svg { inline-size: 1rem; aspect-ratio: 1; flex: none; }

.fb-body { padding: 0 0 72px; }
.fb-list-page .fb-body .container { position: relative; z-index: 2; margin-top: -48px; }

.fb-board { overflow: hidden; box-shadow: var(--fb-shadow); }
.fb-toolbar {
    display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
    padding: 14px 20px; border-bottom: 1px solid var(--fb-line);
}
.fb-states { display: flex; gap: 4px; flex-wrap: wrap; padding: 3px; border-radius: var(--fb-r); background: var(--fb-fill); }
.fb-state {
    display: inline-flex; align-items: center; gap: 7px;
    min-height: 2.1rem; padding: 0 14px; border-radius: var(--fb-r-sm);
    color: var(--fb-mute); font-size: .88rem; font-weight: 600; text-decoration: none;
}
.fb-state b { font-weight: 700; color: var(--fb-faint); font-variant-numeric: tabular-nums; }
.fb-state:hover { color: var(--fb-ink); }
.fb-state.on { background: #fff; color: var(--fb-ink); box-shadow: 0 1px 3px rgba(11, 23, 48, .08); }
.fb-state.on b { color: var(--fb-ink); }

.fb-search { position: relative; display: flex; align-items: center; flex: 1 1 15rem; max-inline-size: 22rem; }
.fb-search svg { position: absolute; inset-inline-start: 12px; inline-size: 1rem; aspect-ratio: 1; color: var(--fb-faint); pointer-events: none; }
.fb-search input {
    inline-size: 100%; min-height: 2.5rem; padding: 0 12px 0 36px;
    border: 1px solid transparent; border-radius: var(--fb-r); background: var(--fb-fill);
    font: inherit; font-size: .9rem; color: var(--fb-ink); transition: border-color .15s, background .15s;
}
.fb-search input:focus { outline: none; background: #fff; border-color: var(--fb-blue); box-shadow: 0 0 0 3px rgba(23, 105, 232, .12); }

.fb-filters {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    padding: 12px 20px; border-bottom: 1px solid var(--fb-line);
}
.fb-cats, .fb-sorts { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fb-chip {
    display: inline-flex; align-items: center; min-height: 1.9rem; padding: 0 12px;
    border-radius: var(--fb-r-sm); background: transparent; border: 1px solid var(--fb-line);
    color: var(--fb-mute); font-size: .82rem; font-weight: 600; text-decoration: none; transition: .15s;
}
.fb-chip:hover { border-color: var(--fb-line-strong); color: var(--fb-ink); }
.fb-chip.on { background: rgba(23, 105, 232, .08); border-color: rgba(23, 105, 232, .35); color: var(--fb-blue); }
.fb-divider { inline-size: 1px; align-self: stretch; min-height: 1.2rem; background: var(--fb-line); margin: 0 4px; }
.fb-sort { color: var(--fb-faint); font-size: .82rem; font-weight: 600; text-decoration: none; padding: 5px 8px; border-radius: var(--fb-r-sm); }
.fb-sort:hover { color: var(--fb-ink); }
.fb-sort.on { color: var(--fb-ink); background: var(--fb-fill); }

.fb-list { list-style: none; margin: 0; padding: 0; }
.fb-row {
    position: relative; display: flex; align-items: flex-start; gap: 14px;
    padding: 16px 20px; border-bottom: 1px solid var(--fb-line); transition: background .15s;
}
.fb-row:last-child { border-bottom: 0; }
.fb-row:hover { background: #f9fbfe; }
.fb-row-icon { display: flex; padding-top: 3px; }
.fb-row-main { flex: 1 1 0; min-inline-size: 0; }
.fb-row-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fb-row-title a { color: var(--fb-ink); font-weight: 650; font-size: 1rem; line-height: 1.45; text-decoration: none; word-break: break-word; }
.fb-row-title a::after { content: ""; position: absolute; inset: 0; }
.fb-row-title a:hover { color: var(--fb-blue); }
.fb-row-meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 6px; color: var(--fb-faint); font-size: .8rem; }
.fb-row-st { color: var(--fb-st); font-weight: 600; }
.fb-media-tag::before { content: "["; } .fb-media-tag::after { content: "]"; }
.fb-row-nums { display: flex; align-items: center; gap: 16px; flex: none; padding-top: 2px; }
.fb-num { display: inline-flex; align-items: center; gap: 5px; color: var(--fb-faint); font-size: .82rem; min-inline-size: 2.6rem; }
.fb-num svg { inline-size: .95rem; aspect-ratio: 1; flex: none; }
.fb-num b { font-weight: 600; color: var(--fb-mute); font-variant-numeric: tabular-nums; }
.fb-num.on, .fb-num.on b { color: var(--fb-blue); }

.fb-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 64px 20px; text-align: center; color: var(--fb-faint); }
.fb-empty svg { inline-size: 3rem; aspect-ratio: 1; color: #c3d0e0; }
.fb-empty b { color: var(--fb-ink); font-size: 1.02rem; }
.fb-empty span { font-size: .88rem; }

.fpager { display: flex; gap: 6px; justify-content: center; align-items: center; flex-wrap: wrap; margin-top: 24px; }
.fpager a, .fpager span {
    min-inline-size: 2.2rem; min-height: 2.2rem; display: flex; align-items: center; justify-content: center; padding: 0 8px;
    border: 1px solid var(--fb-line); border-radius: var(--fb-r); background: #fff;
    color: var(--fb-mute); font-size: .86rem; font-weight: 600; text-decoration: none;
}
.fpager a:hover { border-color: var(--fb-blue); color: var(--fb-blue); }
.fpager .cur { background: var(--fb-blue); border-color: var(--fb-blue); color: #fff; }
.fpager .gap { border-color: transparent; background: transparent; color: var(--fb-faint); }
.fpager-jump { display: flex; align-items: center; gap: 6px; font-size: .82rem; color: var(--fb-faint); }
.fpager .fpager-jump input { inline-size: 3.5rem; text-align: center; padding: 5px; font-size: .82rem; border: 1px solid var(--fb-line); border-radius: var(--fb-r-sm); }


.fb-issue-head { padding: calc(72px + 28px) 0 22px; }
.fb-back { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 16px; color: var(--fb-mute); font-size: .85rem; font-weight: 600; text-decoration: none; }
.fb-back svg { inline-size: .95rem; aspect-ratio: 1; flex: none; }
.fb-back:hover { color: var(--fb-blue); }
.fb-issue-titlebar { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.fb-issue-titlebar h1 { margin: 0; font-size: clamp(1.45rem, 2.6vw, 2rem); font-weight: 800; line-height: 1.3; color: var(--fb-ink); word-break: break-word; }
.fb-issue-no { color: var(--fb-faint); font-weight: 500; }
.fb-issue-acts { display: flex; gap: 8px; flex: none; }
.fb-issue-acts .btn { border-radius: var(--fb-r); }
.fb-issue-sub { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 14px; color: var(--fb-mute); font-size: .88rem; }
.fb-dot { color: var(--fb-faint); }

.fb-new-title { margin: 0; font-size: clamp(1.45rem, 2.6vw, 2rem); font-weight: 800; color: var(--fb-ink); }
.fb-new-sub { margin: 8px 0 0; color: var(--fb-mute); font-size: .94rem; }

.fb-issue-body { padding: 8px 0 80px; }
.fb-issue-grid, .fb-new-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 18.5rem); gap: 28px; align-items: start; }


.fb-notice {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 16px;
    padding: 14px 18px; border-radius: var(--fb-r-card); background: rgba(107, 114, 128, .08);
    color: var(--fb-mute); font-size: .9rem;
}
.fb-notice a { color: var(--fb-blue); font-weight: 700; text-decoration: none; }

.fb-timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.fb-timeline::before {
    content: ""; position: absolute; inset-block: 0; inset-inline-start: 2.1rem;
    inline-size: 2px; background: var(--fb-line);
}
.fb-tl-item { position: relative; }
.fb-post { margin-bottom: 16px; }
.fb-card { position: relative; overflow: hidden; transition: box-shadow .2s; }
.fb-card:hover { box-shadow: var(--fb-shadow); }
.fb-post.is-op .fb-card { box-shadow: var(--fb-shadow); }
.fb-post.is-staff .fb-card { border-color: rgba(23, 105, 232, .28); }
.fb-post.is-staff .fb-card::before { content: ""; position: absolute; inset-block: 0; inset-inline-start: 0; inline-size: 3px; background: var(--fb-blue); }
.fb-post.is-new .fb-card, .fb-post.is-target .fb-card { box-shadow: 0 0 0 3px rgba(23, 105, 232, .16); border-color: rgba(23, 105, 232, .45); }

.fb-card-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 16px 22px 0; font-size: .85rem; color: var(--fb-faint); }
.fb-user { color: var(--fb-ink); font-weight: 700; text-decoration: none; font-size: .92rem; }
.fb-user:hover { color: var(--fb-blue); }
.fb-role { display: inline-flex; align-items: center; min-height: 1.3rem; padding: 0 7px; border-radius: var(--fb-r-sm); font-size: .72rem; font-weight: 600; color: var(--fb-mute); background: var(--fb-fill); }
.fb-role.admin { color: var(--fb-blue); background: rgba(23, 105, 232, .1); }
.fb-time { color: inherit; text-decoration: none; }
a.fb-time:hover { color: var(--fb-blue); }
.fb-card-menu {
    margin-inline-start: auto; display: inline-flex; align-items: center; justify-content: center;
    min-inline-size: 2rem; min-height: 2rem; border: 0; border-radius: var(--fb-r-sm); background: none;
    color: var(--fb-faint); cursor: pointer; opacity: 0; transition: opacity .15s;
}
.fb-card:hover .fb-card-menu, .fb-card-menu:focus-visible { opacity: 1; }
.fb-card-menu svg { inline-size: 1rem; aspect-ratio: 1; }
.fb-card-menu:hover { color: #dc2626; background: rgba(239, 68, 68, .08); }
@media (hover: none) { .fb-card-menu { opacity: 1; } }

.fb-event { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; padding-inline-start: calc(2.1rem - .8rem); color: var(--fb-mute); font-size: .86rem; }
.fb-ev-dot {
    position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; flex: none;
    inline-size: 1.8rem; aspect-ratio: 1; border-radius: 50%;
    background: var(--bg-color, #f7faff); border: 2px solid var(--bg-color, #f7faff); color: var(--fb-faint);
}
.fb-event[class*="fb-st-"] .fb-ev-dot { background: var(--fb-st-bg); }
.fb-ev-dot .fb-ico { inline-size: .85rem; }
.fb-ev-text b { color: var(--fb-ink); font-weight: 650; }
.fb-ev-text a { color: var(--fb-blue); font-weight: 600; text-decoration: none; }
.fb-ev-text time { margin-inline-start: 6px; color: var(--fb-faint); }

.fb-reply-wrap { position: relative; margin-top: 4px; }
.fb-login-tip {
    display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
    padding: 18px 22px; border-radius: var(--fb-r-card); background: #fff; border: 1px dashed var(--fb-line-strong);
    color: var(--fb-mute); font-size: .92rem;
}

.fb-md { padding: 12px 22px 20px; color: #2a3a52; font-size: .95rem; line-height: 1.8; word-break: break-word; }
.fb-comp-preview.fb-md { padding: 16px 18px; }
.fb-md > :first-child { margin-top: 0; }
.fb-md > :last-child { margin-bottom: 0; }
.fb-md p, .fb-md ul, .fb-md ol, .fb-md pre, .fb-md blockquote, .fb-md table, .fb-md figure { margin: 0 0 12px; }
.fb-md ul, .fb-md ol { padding-inline-start: 1.5em; }
.fb-md li + li { margin-top: 4px; }
.fb-md h1, .fb-md h2, .fb-md h3 { margin: 20px 0 10px; font-size: 1.05rem; color: var(--fb-ink); }
.fb-md a { color: var(--fb-blue); }
.fb-md strong { color: var(--fb-ink); }
.fb-md img { max-inline-size: 100%; height: auto; border-radius: var(--fb-r); }
.fb-md code { padding: 2px 6px; border-radius: 4px; background: var(--fb-fill); font-size: .86em; color: #1f3b63; }
.fb-md pre { padding: 14px 16px; border-radius: var(--fb-r); background: var(--fb-fill); border: 1px solid var(--fb-line); overflow-x: auto; font-size: .84rem; line-height: 1.65; }
.fb-md pre code { padding: 0; background: none; color: #1f3b63; }
.fb-md blockquote { padding: 2px 14px; border-inline-start: 3px solid var(--fb-line-strong); color: var(--fb-mute); }
.fb-md table { border-collapse: collapse; display: block; overflow-x: auto; }
.fb-md th, .fb-md td { padding: 6px 10px; border: 1px solid var(--fb-line); }
.fb-md .md-code { margin: 0 0 12px; border: 1px solid var(--fb-line); border-radius: var(--fb-r); overflow: hidden; background: var(--fb-fill); }
.fb-md .md-code pre { margin: 0; border: 0; border-radius: 0; background: none; }
.fb-md .md-code-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 2rem; padding: 0 6px 0 14px; border-bottom: 1px solid var(--fb-line); color: var(--fb-faint); font-size: .74rem; font-weight: 600; }
.fb-md .md-code-copy { min-height: 1.6rem; padding: 0 8px; border: 0; border-radius: var(--fb-r-sm); background: none; color: var(--fb-mute); font: inherit; cursor: pointer; }
.fb-md .md-code-copy:hover { background: #e7eef8; color: var(--fb-blue); }
.fb-md .md-table-wrap { margin: 0 0 12px; overflow-x: auto; }
.fb-md .md-table { display: table; margin: 0; }
.fb-md .md-task { list-style: none; margin-inline-start: -1.3em; }
.fb-md .md-task input { margin-inline-end: 6px; }
.fb-md .md-spoiler { margin: 0 0 12px; padding: 8px 14px; border-radius: var(--fb-r); background: var(--fb-fill); }
.fb-md .md-spoiler summary { cursor: pointer; font-weight: 600; color: var(--fb-ink); }
.fb-md .md-spoiler-body { margin-top: 8px; }
.fb-md .md-mention { font-weight: 600; text-decoration: none; }

.fb-video {
    position: relative; display: flex; align-items: center; justify-content: center;
    max-inline-size: 44rem; min-height: 5rem; margin: 0 0 12px; border-radius: var(--fb-r); overflow: hidden;
    background: var(--fb-fill); border: 1px dashed var(--fb-line-strong); color: var(--fb-mute);
}
.fb-video:has(video) { display: block; border: 0; background: #000; min-height: 0; }
.fb-video video { display: block; inline-size: 100%; max-height: 70vh; background: #000; }
.fb-video-msg { display: flex; align-items: center; gap: 8px; padding: 22px 16px; font-size: .86rem; text-align: center; }
.fb-video-msg::before {
    content: ""; flex: none; inline-size: .9rem; aspect-ratio: 1; border-radius: 50%;
    border: 2px solid var(--fb-line-strong); border-top-color: var(--fb-blue); animation: fb-spin .8s linear infinite;
}
.fb-video[data-state="failed"] .fb-video-msg::before { animation: none; border-color: #f0b4b4; }
@keyframes fb-spin { to { transform: rotate(360deg); } }
.fb-video-ph {
    display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 4.5rem; margin: 0 0 12px;
    border-radius: var(--fb-r); background: var(--fb-fill); border: 1px dashed var(--fb-line-strong); color: var(--fb-mute); font-size: .86rem;
}
.fb-video-ph::before { content: "▶"; color: var(--fb-blue); }


.fb-side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 88px; }
.fb-panel { overflow: hidden; }
.fb-panel-sec { padding: 18px 20px; }
.fb-panel-sec + .fb-panel-sec { border-top: 1px solid var(--fb-line); }
.fb-panel h3, .fb-side-card h3 { margin: 0 0 12px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; color: var(--fb-faint); }
.fb-side-hint { margin: 10px 0 0; color: var(--fb-faint); font-size: .78rem; line-height: 1.6; }

.fb-vote {
    display: flex; align-items: center; gap: 10px; inline-size: 100%; min-height: 2.9rem; padding: 0 12px 0 16px;
    border: 1px solid var(--fb-line-strong); border-radius: var(--fb-r); background: #fff; cursor: pointer;
    font: inherit; font-size: .92rem; font-weight: 650; color: var(--fb-ink); transition: .15s;
}
.fb-vote svg { inline-size: 1.1rem; aspect-ratio: 1; flex: none; color: var(--fb-mute); }
.fb-vote-n { margin-inline-start: auto; min-inline-size: 1.8rem; min-height: 1.6rem; display: inline-flex; align-items: center; justify-content: center; padding: 0 8px; border-radius: var(--fb-r-sm); background: var(--fb-fill); font-size: .9rem; font-variant-numeric: tabular-nums; }
.fb-vote:hover:not(:disabled) { border-color: var(--fb-blue); color: var(--fb-blue); }
.fb-vote:hover:not(:disabled) svg { color: var(--fb-blue); }
.fb-vote.on { background: rgba(23, 105, 232, .07); border-color: rgba(23, 105, 232, .4); color: var(--fb-blue); }
.fb-vote.on svg { color: var(--fb-blue); }
.fb-vote.on .fb-vote-n { background: var(--fb-blue); color: #fff; }
.fb-vote:disabled { cursor: default; opacity: .65; }

.fb-facts { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.fb-facts div { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.fb-facts dt { color: var(--fb-faint); font-size: .82rem; }
.fb-facts dd { margin: 0; color: var(--fb-ink); font-size: .86rem; font-weight: 600; text-align: end; }

.fb-owner { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--fb-line); }
.fb-link-btn { padding: 2px 0; border: 0; background: none; font: inherit; font-size: .84rem; font-weight: 600; color: var(--fb-mute); cursor: pointer; }
.fb-link-btn:hover { color: var(--fb-blue); }
.fb-link-btn.danger { color: #dc2626; }
.fb-link-btn.danger:hover { color: #b91c1c; }

.fb-admin-states { display: flex; flex-direction: column; gap: 2px; }
.fb-st-btn {
    display: flex; align-items: center; gap: 10px; min-height: 2.3rem; padding: 0 10px;
    border: 0; border-radius: var(--fb-r-sm); background: none; cursor: pointer; text-align: start;
    font: inherit; font-size: .88rem; font-weight: 600; color: var(--fb-mute); transition: background .15s;
}
.fb-st-btn:hover { background: var(--fb-fill); color: var(--fb-ink); }
.fb-st-btn.on { background: var(--fb-st-bg); color: var(--fb-st); cursor: default; }
.fb-st-btn.on::after { content: "✓"; margin-inline-start: auto; font-weight: 700; }
.fb-dup-form { margin-top: 14px; }
.fb-dup-form label { display: block; margin-bottom: 8px; color: var(--fb-faint); font-size: .78rem; font-weight: 700; letter-spacing: .04em; }
.fb-dup-row { display: flex; align-items: center; min-height: 2.4rem; border-radius: var(--fb-r); background: var(--fb-fill); border: 1px solid transparent; overflow: hidden; }
.fb-dup-row:focus-within { background: #fff; border-color: var(--fb-blue); }
.fb-dup-hash { padding-inline: 12px 2px; color: var(--fb-faint); font-weight: 700; }
.fb-dup-row input { flex: 1 1 auto; min-inline-size: 0; align-self: stretch; padding: 0 6px; border: 0; background: transparent; font: inherit; font-size: .88rem; outline: none; }
.fb-dup-row button { flex: none; align-self: stretch; padding: 0 14px; border: 0; border-inline-start: 1px solid var(--fb-line); background: transparent; font: inherit; font-size: .84rem; font-weight: 700; color: var(--fb-blue); cursor: pointer; white-space: nowrap; }
.fb-dup-row button:hover { background: rgba(23, 105, 232, .08); }
.fb-side-link { display: inline-block; margin-top: 14px; color: var(--fb-blue); font-size: .82rem; font-weight: 600; text-decoration: none; }
.fb-side-link:hover { text-decoration: underline; }

.fb-side-card { padding: 18px 20px; }


.fb-comp { overflow: hidden; transition: border-color .15s, box-shadow .15s; }
.fb-comp:focus-within { border-color: rgba(23, 105, 232, .45); box-shadow: 0 0 0 3px rgba(23, 105, 232, .08); }
.fb-comp-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; padding: 8px 10px; border-bottom: 1px solid var(--fb-line); }
.fb-comp-tabs { display: flex; gap: 2px; padding: 3px; border-radius: var(--fb-r); background: var(--fb-fill); }
.fb-comp-tabs button { min-height: 1.95rem; padding: 0 14px; border: 0; border-radius: var(--fb-r-sm); background: none; cursor: pointer; font: inherit; font-size: .84rem; font-weight: 600; color: var(--fb-faint); }
.fb-comp-tabs button.on { background: #fff; color: var(--fb-ink); box-shadow: 0 1px 3px rgba(11, 23, 48, .08); }
.fb-comp-tools { display: flex; align-items: center; gap: 2px; flex-wrap: wrap; }
.is-preview .fb-comp-tools { visibility: hidden; }
.fb-tool {
    display: inline-flex; align-items: center; justify-content: center; gap: 6px;
    min-inline-size: 2.1rem; min-height: 2.1rem; padding: 0 7px; border: 0; border-radius: var(--fb-r-sm); background: none;
    color: var(--fb-mute); cursor: pointer; font: inherit; font-size: .82rem; font-weight: 600;
}
.fb-tool svg { inline-size: 1rem; aspect-ratio: 1; flex: none; }
.fb-tool:hover { background: var(--fb-fill); color: var(--fb-blue); }
.fb-tool.wide { padding: 0 11px; }
.fb-tool-sep { inline-size: 1px; min-height: 1.2rem; background: var(--fb-line); margin: 0 6px; }

.fb-comp-area { position: relative; }
.fb-comp-input {
    display: block; inline-size: 100%; min-height: 8rem; padding: 14px 18px; border: 0; resize: vertical;
    font: inherit; font-size: .95rem; line-height: 1.75; color: var(--fb-ink); background: transparent;
}
.fb-comp-input::placeholder { color: var(--fb-faint); }
.fb-comp-input:focus { outline: none; }
.fb-comp-preview { min-height: 8rem; }
.fb-pv-empty { color: var(--fb-faint); }
.fb-comp-drop {
    position: absolute; inset: 8px; display: none; align-items: center; justify-content: center;
    border: 2px dashed rgba(23, 105, 232, .6); border-radius: var(--fb-r); background: rgba(240, 246, 255, .94);
    color: var(--fb-blue); font-weight: 700; pointer-events: none;
}
.fb-comp.is-drag .fb-comp-drop { display: flex; }

.fb-queue { list-style: none; margin: 0; padding: 10px 14px; border-top: 1px solid var(--fb-line); display: flex; flex-direction: column; gap: 6px; }
.fb-q { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: var(--fb-r); background: var(--fb-fill); }
.fb-q-thumb { display: flex; align-items: center; justify-content: center; flex: none; inline-size: 2.4rem; aspect-ratio: 1; border-radius: var(--fb-r-sm); overflow: hidden; background: #e4ecf6; color: var(--fb-mute); }
.fb-q-thumb img { inline-size: 100%; block-size: 100%; object-fit: cover; }
.fb-q-thumb svg { inline-size: 1.2rem; aspect-ratio: 1; }
.fb-q-main { flex: 1 1 auto; min-inline-size: 0; display: flex; flex-direction: column; gap: 5px; }
.fb-q-name { font-size: .82rem; font-weight: 600; color: var(--fb-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fb-q-bar { display: block; min-height: 4px; border-radius: 4px; background: #dde6f2; overflow: hidden; }
.fb-q-bar i { display: block; min-height: 4px; inline-size: 2%; border-radius: 4px; background: var(--fb-blue); transition: inline-size .2s; }
.fb-q-meta { font-size: .74rem; color: var(--fb-faint); font-variant-numeric: tabular-nums; }
.fb-q.err .fb-q-bar i { background: #dc2626; }
.fb-q.err .fb-q-meta { color: #dc2626; }
.fb-q-acts { display: flex; gap: 4px; flex: none; }
.fb-q-acts button { min-height: 1.9rem; padding: 0 10px; border: 1px solid var(--fb-line-strong); border-radius: var(--fb-r-sm); background: #fff; font: inherit; font-size: .76rem; font-weight: 600; color: var(--fb-mute); cursor: pointer; }
.fb-q-acts button:hover { border-color: var(--fb-blue); color: var(--fb-blue); }

.fb-comp-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 10px 12px 10px 18px; border-top: 1px solid var(--fb-line); }
.fb-comp-foot { justify-content: flex-end; }
.fb-comp-hint { flex: 1 1 14rem; color: var(--fb-faint); font-size: .76rem; }
.fb-comp-space { display: none; }
.fb-comp-foot .btn { display: inline-flex; align-items: center; gap: 6px; border-radius: var(--fb-r); }


.fb-form { display: flex; flex-direction: column; gap: 24px; min-inline-size: 0; padding: 26px 28px; background: #fff; border: 1px solid var(--fb-line); border-radius: var(--fb-r-card); }
.fb-field { margin: 0; padding: 0; border: 0; min-inline-size: 0; }
.fb-field-label { display: block; margin-bottom: 10px; padding: 0; color: var(--fb-ink); font-size: .9rem; font-weight: 700; }
.fb-field-label em { margin-inline-start: 3px; color: #dc2626; font-style: normal; }
.fb-input {
    inline-size: 100%; min-height: 2.9rem; padding: 0 14px;
    border: 1px solid transparent; border-radius: var(--fb-r); background: var(--fb-fill);
    font: inherit; font-size: 1rem; color: var(--fb-ink); transition: .15s;
}
.fb-input::placeholder { color: var(--fb-faint); }
.fb-input:focus { outline: none; background: #fff; border-color: var(--fb-blue); box-shadow: 0 0 0 3px rgba(23, 105, 232, .12); }
.fb-form .fb-comp { border-color: var(--fb-line); }

.fb-seg { display: inline-flex; flex-wrap: wrap; gap: 3px; padding: 3px; border-radius: var(--fb-r); background: var(--fb-fill); }
.fb-seg-opt { position: relative; }
.fb-seg-opt input { position: absolute; opacity: 0; pointer-events: none; }
.fb-seg-opt span { display: flex; align-items: center; min-height: 2.2rem; padding: 0 18px; border-radius: var(--fb-r-sm); cursor: pointer; font-size: .88rem; font-weight: 600; color: var(--fb-mute); transition: .15s; }
.fb-seg-opt span:hover { color: var(--fb-ink); }
.fb-seg-opt input:checked + span { background: #fff; color: var(--fb-blue); box-shadow: 0 1px 3px rgba(11, 23, 48, .1); }
.fb-seg-opt input:focus-visible + span { box-shadow: 0 0 0 2px rgba(23, 105, 232, .5); }

.fb-vis { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.fb-vis-opt { position: relative; display: flex; }
.fb-vis-opt input { position: absolute; opacity: 0; pointer-events: none; }
.fb-vis-card { position: relative; flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; padding: 14px 16px 14px 44px; cursor: pointer; border: 1px solid var(--fb-line); border-radius: var(--fb-r); background: #fff; transition: .15s; }
.fb-vis-card:hover { border-color: var(--fb-line-strong); }
.fb-vis-card::before { content: ""; position: absolute; inset-inline-start: 16px; top: 17px; inline-size: 1rem; aspect-ratio: 1; border-radius: 50%; border: 2px solid var(--fb-line-strong); background: #fff; }
.fb-vis-card b { font-size: .92rem; color: var(--fb-ink); }
.fb-vis-card small { font-size: .8rem; color: var(--fb-mute); line-height: 1.6; }
.fb-vis-opt input:checked + .fb-vis-card { border-color: rgba(23, 105, 232, .5); background: rgba(23, 105, 232, .04); }
.fb-vis-opt input:checked + .fb-vis-card::before { border-color: var(--fb-blue); background: radial-gradient(circle, var(--fb-blue) 42%, #fff 47%); }
.fb-vis-opt input:focus-visible + .fb-vis-card { box-shadow: 0 0 0 3px rgba(23, 105, 232, .2); }

.fb-form-foot { display: flex; justify-content: flex-end; gap: 10px; padding-top: 20px; border-top: 1px solid var(--fb-line); }
.fb-form-foot .btn { border-radius: var(--fb-r); min-inline-size: 6.5rem; }

.fb-guide ol { margin: 0; padding-inline-start: 1.15rem; display: flex; flex-direction: column; gap: 8px; color: var(--fb-mute); font-size: .84rem; line-height: 1.6; }
.fb-limits dl { margin: 0; display: flex; flex-direction: column; gap: 10px; }
.fb-limits dl div { display: flex; justify-content: space-between; gap: 10px; font-size: .84rem; }
.fb-limits dt { color: var(--fb-faint); }
.fb-limits dd { margin: 0; color: var(--fb-ink); font-weight: 600; text-align: end; }


@media (max-width: 900px) {
    .fb-issue-grid, .fb-new-grid { grid-template-columns: minmax(0, 1fr); }
    .fb-side { position: static; }
}

@media (max-width: 640px) {
    .fb-hero { padding: calc(56px + 30px) 0 70px; }
    .fb-issue-head { padding-top: calc(56px + 20px); }
    .fb-toolbar, .fb-filters, .fb-row { padding-inline: 14px; }
    .fb-search { max-inline-size: none; }
    .fb-row { flex-wrap: wrap; }
    .fb-row-nums { inline-size: 100%; padding-inline-start: 30px; gap: 12px; }
    .fb-row-nums .fb-avatar { display: none; }
    .fb-timeline::before { inset-inline-start: 1.5rem; }
    .fb-event { padding-inline-start: calc(1.5rem - .8rem); }
    .fb-card-head { padding: 14px 16px 0; }
    .fb-md { padding: 10px 16px 16px; }
    .fb-form { padding: 18px 16px; }
    .fb-vis { grid-template-columns: minmax(0, 1fr); }
    .fb-comp-tools .fb-tool.wide span { display: none; }
    .fb-issue-acts { inline-size: 100%; }
}
