:root { --npc-red: #b91c1c; --npc-red-dark: #7f1d1d; }
body { background: #f7f7f7; font-size: 16px; }
.logo-band { background: #fff; border-bottom: 1px solid #ddd; }
.portal-name { font-size: 1.35rem; font-weight: 700; color: var(--npc-red-dark); }
.red-bar { background: var(--npc-red); }
.red-bar a { color: #fff; text-decoration: none; font-weight: 600; }
.red-bar a:hover { text-decoration: underline; }
.ai-banner { background: #fff7d6; border-bottom: 2px solid #e0b100; font-size: .95rem; }
.card { border-radius: 4px; }
.cat-card { border: 1px solid #ccc; border-radius: 4px; padding: .6rem .8rem; margin-bottom: .5rem; background: #fff; }
.cat-card input { margin-right: .4rem; }
.masked { white-space: pre-wrap; background: #fff; border: 1px solid #ccc; padding: 1rem; font-family: Consolas, monospace; font-size: .92rem; max-height: 28rem; overflow: auto; }
.masked mark, .tok { background: #dbeafe; padding: 0 .15rem; }
.verdict-Red { color: #fff; background: var(--npc-red); padding: .1rem .4rem; border-radius: 3px; }
.verdict-Caution { background: #fde68a; padding: .1rem .4rem; border-radius: 3px; }
.verdict-Clear { background: #bbf7d0; padding: .1rem .4rem; border-radius: 3px; }
.unverified { color: var(--npc-red); font-weight: 700; }
.status-pill { display: inline-block; padding: .1rem .5rem; border-radius: 10px; background: #e5e7eb; font-size: .85rem; }
.btn-npc { background: var(--npc-red); color: #fff; }
.btn-npc:hover { background: var(--npc-red-dark); color: #fff; }
table { background: #fff; }
