/* Dark Web pages — shared visual language.
   Mirrors the entity.html / hunt.html look so the 6 dark-web pages match
   the rest of TC visually. Included via <link rel="stylesheet"
   href="/static/darkweb.css"> on every dark-web-*.html page. */

body { font-family: 'Inter', sans-serif; background-color: #0a0b0a; }
.mono { font-family: 'Inter', sans-serif; font-weight: 500; letter-spacing: 0.01em; }

/* --- Shared banner (copied from entity.html / hunt.html) --- */
.banner-bg .orb {
    position: absolute; border-radius: 50%;
    animation: banner-drift 20s ease-in-out infinite;
}
.banner-bg .orb:nth-child(1) {
    width: 800px; height: 800px; background: rgba(209, 10, 48, 0.15);
    filter: blur(120px); top: -60%; left: -10%; animation-duration: 25s;
}
.banner-bg .orb:nth-child(2) {
    width: 600px; height: 600px; background: rgba(209, 10, 48, 0.12);
    filter: blur(100px); top: -30%; right: -15%;
    animation-duration: 30s; animation-delay: -8s;
}
.banner-bg .orb:nth-child(3) {
    width: 500px; height: 500px; background: rgba(209, 10, 48, 0.10);
    filter: blur(90px); bottom: -50%; left: 30%;
    animation-duration: 22s; animation-delay: -14s;
}
@keyframes banner-drift {
    0%, 100% { transform: translate(0, 0) scale(1); }
    25% { transform: translate(60px, -30px) scale(1.1); }
    50% { transform: translate(-30px, 40px) scale(0.95); }
    75% { transform: translate(40px, 20px) scale(1.05); }
}
.banner-grid {
    position: absolute; inset: 0; pointer-events: none;
    background-image:
        linear-gradient(rgba(209, 10, 48, 0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(209, 10, 48, 0.04) 1px, transparent 1px);
    background-size: 60px 60px;
}

/* --- Status pills (ransomware publication status) --- */
.status-pill {
    display: inline-flex; align-items: center; gap: .25rem;
    padding: .125rem .5rem; border-radius: 999px;
    font-size: .7rem; font-weight: 600; letter-spacing: .02em;
    text-transform: uppercase;
}
.status-listed       { background: rgba(247,147,30,.15); color: #f7931e; border: 1px solid rgba(247,147,30,.25); }
.status-countdown    { background: rgba(209,10,48,.15);  color: #ff5570; border: 1px solid rgba(209,10,48,.25); }
.status-fully_leaked { background: rgba(239,68,68,.18);  color: #ff5570; border: 1px solid rgba(239,68,68,.3); }
.status-partial_leak { background: rgba(247,147,30,.15); color: #f7931e; border: 1px solid rgba(247,147,30,.25); }
.status-removed      { background: rgba(46,204,113,.15); color: #2ecc71; border: 1px solid rgba(46,204,113,.25); }
.status-unknown      { background: rgba(160,160,160,.12); color: #a0a0a0; border: 1px solid rgba(160,160,160,.2); }

/* --- Victim card — matches entity.html card style (border-only, no fill) --- */
.victim-card {
    border: 1px solid rgba(42, 43, 42, 0.3);
    border-radius: .5rem; padding: 1rem;
    transition: border-color .15s ease, transform .15s ease, background .15s ease;
    cursor: pointer;
}
.victim-card:hover { border-color: #d10a30; background: rgba(10, 11, 10, 0.4); transform: translateY(-1px); }

/* --- Pill-style filter buttons (match entity/hunt "chip" pattern) --- */
.region-btn {
    padding: .375rem .75rem; border-radius: 999px;
    font-size: .75rem; font-weight: 500;
    background: rgba(10, 11, 10, 0.5);
    border: 1px solid rgba(42, 43, 42, 0.3);
    color: #a0a0a0;
    transition: all .15s ease;
}
.region-btn:hover { border-color: #d10a30; color: #fff; }
.region-btn.active { background: #d10a30; border-color: #d10a30; color: #fff; }

/* --- Generic tag chip --- */
.dw-tag {
    display: inline-block;
    padding: .2rem .5rem;
    border-radius: .375rem;
    border: 1px solid rgba(42, 43, 42, 0.3);
    color: #a0a0a0;
    font-size: .72rem;
    margin: 0 .25rem .25rem 0;
}
.dw-tag-hot {
    background: rgba(209, 10, 48, .10);
    border-color: rgba(209, 10, 48, .3);
    color: #ff5570;
}

/* --- jsvectormap tooltip theming --- */
.jvm-tooltip {
    background: #1a1b1a !important;
    border: 1px solid #2a2b2a !important;
    color: #fff !important;
    border-radius: .5rem !important;
    padding: .5rem .75rem !important;
    font-size: .8rem !important;
}

/* --- Pagination buttons --- */
.dw-pager-btn {
    padding: .375rem .75rem;
    border-radius: .5rem;
    background: transparent;
    border: 1px solid rgba(42, 43, 42, 0.5);
    color: #fff;
    font-size: .8rem;
    transition: border-color .15s ease;
}
.dw-pager-btn:hover:not(:disabled) { border-color: #d10a30; }
.dw-pager-btn:disabled { opacity: .4; cursor: not-allowed; }

/* --- Chat transcript (Krybit-style negotiation excerpts) --- */
.dw-chat-line {
    display: grid; grid-template-columns: 120px 1fr; gap: .75rem;
    padding: .4rem 0; border-bottom: 1px dashed #2a2b2a;
    font-size: .8rem;
}
.dw-chat-line:last-child { border-bottom: 0; }
.dw-chat-speaker { color: #a0a0a0; font-weight: 600; }
.dw-chat-text { color: #fff; white-space: pre-wrap; word-break: break-word; }

/* --- File tree (sample leaked filenames) --- */
.dw-file-tree-item {
    font-family: ui-monospace, SFMono-Regular, monospace;
    font-size: .75rem; padding: .2rem .5rem;
    border-radius: .25rem; color: #a0a0a0;
}
.dw-file-tree-item:nth-child(even) { background: rgba(26,27,26,0.4); }
