/* The brand mark in the theme's accent (models.LogoFilter). */
.rb-brand { filter: var(--logo-filter, hue-rotate(0deg)); }
.rb-brand-glow { filter: var(--logo-filter, hue-rotate(0deg)) drop-shadow(0 0 10px rgb(var(--primary) / 0.9)); }
/* PnL Tracker card text (views/components/pnl.templ): the theme's, or the user's colors
   (pnl.js sets --pnl-primary / -secondary / -inc / -dec on the card) */
.pnl-primary { color: var(--pnl-primary, rgb(var(--text-primary))); }
.pnl-secondary { color: var(--pnl-secondary, rgb(var(--text-tertiary))); }
.pnl-inc { color: var(--pnl-inc, rgb(var(--increase))); }
.pnl-dec { color: var(--pnl-dec, rgb(var(--decrease))); }
.pnl-stroke-inc { stroke: var(--pnl-inc, rgb(var(--increase))); }
.pnl-stroke-dec { stroke: var(--pnl-dec, rgb(var(--decrease))); }
.pnl-bold .pnl-figure { font-weight: 700; }
.pnl-shadow .pnl-figure { text-shadow: 0 2px 8px rgb(0 0 0 / 0.65); }
.rb-row-link { position: absolute; inset: 0; z-index: 4; }
.rb-rug-glow { border-color: rgb(var(--primary-red) / 0.45) !important;
    box-shadow: 0 0 22px rgb(var(--primary-red) / 0.22), inset 0 0 28px rgb(var(--primary-red) / 0.06); }
.rb-rug-glow .rb-qb:hover { border-color: rgb(var(--primary-red) / 0.8) !important;
    background-color: rgb(var(--primary-red) / 0.06) !important;
    box-shadow: 0 0 14px rgb(var(--primary-red) / 0.35), inset 0 0 10px rgb(var(--primary-red) / 0.12) !important; }
.rb-rug-glow .rb-qb:active { background-color: rgb(var(--primary-red) / 0.12) !important; }
.rb-rug-glow .rb-qb-logo { filter: hue-rotate(-140deg) saturate(1.4) drop-shadow(0 0 10px rgb(var(--primary-red) / 0.9)) !important; }
.rb-row > :not(.rb-row-link):not(.absolute) { position: relative; z-index: 5; }
.rb-row > :not(.rb-row-link) { pointer-events: none; }
.rb-row a:not(.rb-row-link), .rb-row button, .rb-row input, .rb-row label, .rb-row [data-tip], .rb-row .rb-zoom { pointer-events: auto !important; }
.safe-mode .safe-blur { filter: blur(4px); user-select: none; }
.safe-blur { transition: filter 0.15s ease; }
/* Theme tokens: the Rugbuster preset (RGB triplets). A user theme overrides them inline on
   <html> (layouts/main.templ); Tailwind reads them as rgb(var(--x) / alpha). */
:root,
.dark {
    --background: 12 12 14;
    --background-secondary: 16 16 17;
    --background-tertiary: 24 24 26;
    --border-subtle: 31 31 35;
    --primary-stroke: 42 44 51;
    --secondary-stroke: 50 53 66;
    --text-primary: 252 252 252;
    --text-secondary: 200 201 209;
    --text-tertiary: 130 133 152;
    --primary: 66 247 108;
    --primary-hover: 107 250 140;
    --increase: 66 247 108;
    --increase-hover: 107 250 140;
    --decrease: 242 84 97;
    --decrease-hover: 245 124 134;
    --primary-green: 18 175 128;
    --primary-red: 242 84 97;
    --primary-yellow: 245 197 66;
    --primary-orange: 226 124 77;
    --primary-light-blue: 93 188 255;
    --chart-up: 66 247 108;
    --chart-down: 242 84 97;
    --chart-up-border: 66 247 108;
    --chart-down-border: 242 84 97;
    --chart-up-wick: 66 247 108;
    --chart-down-wick: 242 84 97;
    --chart-up-opacity: 1;
    --chart-down-opacity: 1;
    --chart-up-border-opacity: 1;
    --chart-down-border-opacity: 1;
    --chart-up-wick-opacity: 1;
    --chart-down-wick-opacity: 1;
    --chart-background: 16 17 20;
    --my-buy: 78 138 62;
    --my-sell: 181 88 63;
    /* Axiom's chart bubble defaults */
    --bubble-buy: 8 153 129;
    --bubble-sell: 242 54 69;
    --bubble-early-sniper: 250 204 21;
    --bubble-sniper: 239 68 68;
    --logo-filter: hue-rotate(0deg);
}
.ws-toast { animation: ws-toast 2.5s ease forwards; }
@keyframes ws-toast { 0% { opacity: 0; } 8%, 80% { opacity: 1; } 100% { opacity: 0; visibility: hidden; } }

.rb-copied .rb-copy-icon { display: none; }
.rb-copy-done { display: none; }
.rb-copied .rb-copy-done { display: inline-block; }

.radar-form:has([name=window][value=creation]:checked) .radar-hint-creation,
.radar-form:has([name=window][value=anytime]:checked) .radar-hint-anytime,
.radar-form:has([name=window][value=any]:checked) .radar-hint-anywin,
.radar-form:has([name=migration][value=any]:checked) .radar-hint-any,
.radar-form:has([name=migration][value=none]:checked) .radar-hint-none { display: block; }
.radar-form:has([name=migration][value=instant]:checked) .radar-instant { display: flex; }

.tracker-tabs:has([name=tracker-tab][value=live]:checked) .tracker-actions,
.tracker-tabs:has([name=tracker-tab][value=transfers]:checked) .tracker-actions { display: none; }
.tracker-tabs .tracker-qb { display: none; }
.tracker-tabs:has([name=tracker-tab][value=transfers]:checked) .tracker-qb,
.tracker-tabs:has([name=tracker-tab][value=live]:checked) .tracker-qb { display: flex; }
.tracker-tabs .tracker-ltf { display: none; }
.tracker-tabs:has([name=tracker-tab][value=live]:checked) .tracker-ltf { display: flex; }

/* Pulse Filters modal: the checked column tab shows its fields, the checked section tab its
   section (radios, see pulse_filters.templ). */
.pf-form:has([name=pf-col][value=newPairs]:checked) [data-pf-col=newPairs],
.pf-form:has([name=pf-col][value=finalStretch]:checked) [data-pf-col=finalStretch],
.pf-form:has([name=pf-col][value=migrated]:checked) [data-pf-col=migrated] { display: flex; }
.pf-form:has([name=pf-tab][value=protocols]:checked) .pf-protocols,
.pf-form:has([name=pf-tab][value=audit]:checked) .pf-audit,
.pf-form:has([name=pf-tab][value=metrics]:checked) .pf-metrics,
.pf-form:has([name=pf-tab][value=socials]:checked) .pf-socials,
.pf-form:has([name=pf-tab][value=blacklist]:checked) .pf-blacklist { display: flex; }
.pf-form:has([name=pf-tab][value=blacklist]:checked) [data-pf-col] { display: none; }

/* A tracker row's groups menu (shown on hover in the template): fixed under its folder button
   through anchor positioning, so the scrolling table does not clip it; flipped above near the
   bottom, right-aligned near the right edge. The pt-1 gap stays inside .mv, hover carries over
   from button to menu. */
.mv { position: relative; anchor-scope: --mv; }
.mv > button { anchor-name: --mv; }
.mv-menu { position: absolute; top: 100%; right: -3px; }
@supports (anchor-name: --mv) {
    .mv-menu { position: fixed; position-anchor: --mv; top: anchor(bottom); right: auto; left: calc(anchor(left) - 3px); position-try-fallbacks: flip-inline, flip-block, flip-block flip-inline; }
}

.pay-qr:has([name=qr-tab][value=usdt]:checked) .qr-sol { display: none; }
.pay-qr:has([name=qr-tab][value=usdt]:checked) .qr-usdt { display: block; }

.lt-feed:has(#lt-usd:checked) .lt-sol { display: none; }
.lt-feed:has(#lt-usd:checked) .lt-usd { display: inline; }
