/* ═══════════════════════════════════════════════════════════════════════════
   Polymoly — Polymarket Trading Bot UI Styles
   Uses CSS custom properties from variables.css (accent-cyan palette).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Polymoly Palette (cyan-based) ───────────────────────────────────── */
:root {
    --pm-cyan:        var(--accent-cyan, #06b6d4);
    --pm-cyan-hover:  var(--accent-cyan-hover, #22d3ee);
    --pm-cyan-dim:    var(--accent-cyan-dim, rgba(6, 182, 212, 0.12));
    --pm-teal:        var(--accent-teal, #10b981);
    --pm-teal-dim:    var(--accent-teal-dim, rgba(16, 185, 129, 0.15));
    --pm-blue:        var(--accent-blue, #3b82f6);
    --pm-blue-dim:    var(--accent-blue-dim, rgba(59, 130, 246, 0.12));
    --pm-surface:     var(--bg-surface, #111827);
    --pm-elevated:    var(--bg-elevated, #1a2235);
    --pm-border:      var(--border-default, rgba(255, 255, 255, 0.10));
    --pm-sniper:      var(--accent-amber, #f59e0b);
    --pm-sniper-dim:  var(--accent-amber-dim, rgba(245, 158, 11, 0.15));
    --pm-hedge:       var(--accent-cyan, #06b6d4);
    --pm-hedge-dim:   var(--accent-cyan-dim, rgba(6, 182, 212, 0.15));
    --pm-zombie:      var(--accent-purple-hover, #c084fc);
    --pm-zombie-dim:  var(--accent-purple-dim, rgba(192, 132, 252, 0.15));
    --pm-kamoni:      var(--accent-amber-hover, #fbbf24);
    --pm-kamoni-dim:  var(--accent-amber-dim, rgba(251, 191, 36, 0.15));
    --pm-kamoni-subtle: var(--bg-hover, rgba(251, 191, 36, 0.04));
}

/* ── Overlay ─────────────────────────────────────────────────────────── */
.pm-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 9000;
    background: var(--bg-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: pmFadeIn 0.2s ease-out;
}

@keyframes pmFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

.pm-panel {
    width: calc(100% - 48px);
    max-width: 1200px;
    height: calc(100vh - 64px);
    min-width: 360px; min-height: 300px;
    background: var(--pm-surface);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-lg, 14px);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    animation: pmSlideUp 0.25s ease-out;
    position: relative;
    resize: both;
}

@keyframes pmSlideUp {
    from { transform: translateY(20px); opacity: 0; }
    to   { transform: translateY(0); opacity: 1; }
}

.pm-panel.pm-closing {
    animation: pmSlideDown 0.2s ease-in forwards;
}

@keyframes pmSlideDown {
    to { transform: translateY(20px); opacity: 0; }
}

/* ── Header ──────────────────────────────────────────────────────────── */
.pm-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    border-bottom: 1px solid var(--border-default, var(--pm-border, #2d3548));
    background: var(--bg-base, var(--bg-main, #0a0e17));
    flex-shrink: 0;
}

.pm-header-left {
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
}

.pm-header-icon {
    width: 30px; height: 30px;
    border-radius: 8px;
    background: var(--accent-teal-dim, rgba(16, 185, 129, 0.12));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-teal, var(--pm-teal, #10b981));
    font-size: 0.9rem;
}

.pm-header-title {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text-primary, #e2e8f0);
}

.pm-header-sub {
    font-size: var(--text-xs, 11px);
    color: var(--text-muted, #64748b);
}

.pm-header-controls {
    display: flex;
    gap: var(--space-xs, 4px);
}

.pm-header-btn {
    width: 32px; height: 32px;
    border: none;
    border-radius: var(--radius-sm, 6px);
    background: transparent;
    color: var(--text-secondary, #94a3b8);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    transition: background 0.15s, color 0.15s;
}

.pm-header-btn:hover {
    background: var(--bg-hover, rgba(255, 255, 255, 0.06));
    color: var(--text-primary, #e2e8f0);
}

.pm-pin-active {
    color: var(--accent-teal, var(--pm-teal, #10b981)) !important;
    background: var(--accent-teal-dim, rgba(16, 185, 129, 0.12)) !important;
}

/* ── Tabs ─────────────────────────────────────────────────────────────── */
.pm-tabs {
    display: flex;
    align-items: center;
    gap: 0;
    border-bottom: 1px solid var(--border-default, var(--pm-border, #2d3548));
    background: var(--bg-base, var(--bg-main, #0a0e17));
    padding: 0 var(--space-md, 12px);
    flex-shrink: 0;
}

.pm-tab {
    padding: var(--space-sm, 8px) var(--space-md, 12px);
    border: none;
    background: transparent;
    color: var(--text-muted, #64748b);
    font-size: var(--text-sm, 13px);
    font-weight: 500;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}

.pm-tab:hover {
    color: var(--text-secondary, #94a3b8);
}

.pm-tab.active {
    color: var(--accent-teal, var(--pm-teal, #10b981));
    border-bottom-color: var(--accent-teal, var(--pm-teal, #10b981));
}

/* ── Account Switcher (in tabs row, right-aligned) ────────────────────── */
.pm-acct-switcher {
    margin-left: auto;
    position: relative;
    display: flex;
    align-items: center;
    flex-shrink: 0;
    padding-right: var(--space-xs, 4px);
}
.pm-acct-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 1px solid var(--border-default, var(--pm-border, #2d3548));
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-elevated, var(--pm-elevated, #111827));
    color: var(--text-secondary, #94a3b8);
    font-size: var(--text-xs, 11px);
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s, color 0.15s;
    white-space: nowrap;
    line-height: 1;
}
.pm-acct-btn:hover {
    border-color: var(--accent-teal, var(--pm-teal, #10b981));
    color: var(--text-primary, #e2e8f0);
}
.pm-acct-btn.pm-acct-loading {
    opacity: 0.5;
    pointer-events: none;
}
.pm-acct-btn.pm-acct-loading .pm-acct-caret {
    animation: pm-spin 0.8s linear infinite;
}
@keyframes pm-spin { to { transform: rotate(360deg); } }
.pm-acct-label { max-width: 80px; overflow: hidden; text-overflow: ellipsis; }
.pm-acct-caret { font-size: 10px; opacity: 0.5; }

.pm-acct-dropdown {
    display: none;
    position: fixed;
    min-width: 180px;
    background: var(--bg-elevated, var(--pm-elevated, #111827));
    border: 1px solid var(--border-default, var(--pm-border, #2d3548));
    border-radius: var(--radius-md, 8px);
    box-shadow: var(--shadow-lg, 0 8px 24px rgba(0,0,0,0.4));
    z-index: 9999;
    padding: 4px 0;
}
.pm-acct-dropdown.pm-acct-open { display: block; }

.pm-acct-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    font-size: var(--text-xs, 11px);
    color: var(--text-secondary, #94a3b8);
    cursor: pointer;
    transition: background 0.12s;
}
.pm-acct-item:hover { background: var(--bg-hover, rgba(255,255,255,0.04)); }
.pm-acct-item.active {
    color: var(--accent-teal, var(--pm-teal, #10b981));
    font-weight: 600;
}
.pm-acct-item-label { flex: 1; }
.pm-acct-item-hint { opacity: 0.45; font-family: monospace; font-size: 10px; }
.pm-acct-check { font-size: 10px; }
.pm-acct-divider { height: 1px; background: var(--border-default, var(--pm-border, #2d3548)); margin: 4px 0; }
.pm-acct-action { color: var(--text-muted, #64748b); }
.pm-acct-action i { width: 14px; text-align: center; }

/* ── Body ─────────────────────────────────────────────────────────────── */
.pm-body {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-md, 12px);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm, 6px);
}

/* ── Cards ────────────────────────────────────────────────────────────── */
.pm-card {
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 10px);
    padding: var(--space-sm, 8px) var(--space-md, 12px);
    margin-bottom: 0;
}

.pm-card-title {
    font-size: var(--text-xs, 11px);
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs, 4px);
    display: flex;
    align-items: center;
    gap: var(--space-xs, 4px);
}

.pm-card-title i {
    color: var(--accent-teal, var(--pm-teal, #10b981));
}

/* ── Metrics Grid ────────────────────────────────────────────────────── */
.pm-metrics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
    gap: 4px;
}

.pm-metric {
    background: var(--bg-base, var(--pm-surface, #0f1724));
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-sm, 6px);
    padding: 4px 8px;
    text-align: center;
}

.pm-metric-value {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-primary, #e2e8f0);
    font-variant-numeric: tabular-nums;
}

.pm-metric-label {
    font-size: var(--text-xs, 11px);
    color: var(--text-muted, #64748b);
    margin-top: 2px;
}

.pm-metric-sub {
    font-size: 9px;
    color: var(--text-muted, #64748b);
    font-weight: 400;
}

.pm-metric-value.positive { color: var(--pm-teal); }
.pm-metric-value.negative { color: var(--accent-rose, #f43f5e); }

/* ── Status Badge ────────────────────────────────────────────────────── */
.pm-status {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: var(--text-xs, 11px);
    font-weight: 600;
    padding: 2px 8px;
    border-radius: var(--radius-full, 9999px);
    text-transform: uppercase;
}

.pm-status.running {
    background: var(--pm-teal-dim);
    color: var(--pm-teal);
}

.pm-status.stopped {
    background: var(--accent-rose-dim, rgba(244, 63, 94, 0.12));
    color: var(--accent-rose, #f43f5e);
}

.pm-status.dry-run {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.12));
    color: var(--accent-amber, #f59e0b);
}

/* ── Table ────────────────────────────────────────────────────────────── */
.pm-table-wrap {
    overflow-x: auto;
}

.pm-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--text-sm, 13px);
}

.pm-table th {
    text-align: left;
    padding: var(--space-xs, 4px) var(--space-sm, 8px);
    color: var(--text-muted, #64748b);
    font-weight: 500;
    font-size: var(--text-xs, 11px);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--pm-border);
}

.pm-table td {
    padding: var(--space-sm, 8px);
    color: var(--text-primary, #e2e8f0);
    border-bottom: 1px solid var(--pm-border);
    font-variant-numeric: tabular-nums;
}

.pm-table tr:hover td {
    background: var(--bg-hover, rgba(255, 255, 255, 0.03));
}

/* ── Buttons ──────────────────────────────────────────────────────────── */
.pm-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs, 4px);
    padding: var(--space-xs, 4px) var(--space-md, 12px);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 8px);
    background: transparent;
    color: var(--text-secondary, #94a3b8);
    font-size: var(--text-sm, 13px);
    font-weight: 500;
    cursor: pointer;
    transition: all 0.15s;
}

.pm-btn:hover {
    border-color: var(--accent-teal, var(--pm-teal, #10b981));
    color: var(--accent-teal, var(--pm-teal, #10b981));
}

.pm-btn-primary {
    background: var(--accent-teal, var(--pm-teal, #10b981));
    color: var(--bg-deepest, var(--bg-overlay, #060a13));
    border-color: var(--accent-teal, var(--pm-teal, #10b981));
    font-weight: 600;
}

.pm-btn-primary:hover {
    background: var(--accent-teal-hover, var(--accent-teal, #34d399));
    border-color: var(--accent-teal-hover, var(--accent-teal, #34d399));
    color: var(--bg-deepest, var(--bg-overlay, #060a13));
}

.pm-btn-danger {
    border-color: var(--accent-rose, #f43f5e);
    color: var(--accent-rose, #f43f5e);
}

.pm-btn-danger:hover {
    background: var(--accent-rose-dim, rgba(244, 63, 94, 0.12));
}

/* ── Icon Buttons (transparent, icon-only) ───────────────────────────── */
.pm-btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border: none;
    border-radius: var(--radius-sm, 6px);
    background: transparent;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    font-size: 13px;
    transition: background 0.15s, color 0.15s;
}
.pm-btn-icon:hover {
    background: var(--bg-hover);
    color: var(--text-primary, #f0f4f8);
}
.pm-btn-icon-danger {
    color: var(--accent-rose, #f43f5e);
}
.pm-btn-icon-danger:hover {
    background: var(--accent-rose-dim, rgba(244, 63, 94, 0.12));
    color: var(--accent-rose-hover, #fb7185);
}

/* ── Session Header ──────────────────────────────────────────────────── */
.pm-session-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 6px;
    gap: 8px;
    flex-wrap: wrap;
}
.pm-session-title-row {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    flex-wrap: wrap;
}
.pm-session-title {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary, #f0f4f8);
}
.pm-session-badges {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}
.pm-badge-kamoni-active {
    background: var(--pm-kamoni-dim);
    color: var(--pm-kamoni);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
}
.pm-badge-kamoni-active i { font-size: 8px; margin-right: 2px; }
.pm-badge-zombie-active {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
}
.pm-badge-zombie-active i { font-size: 8px; margin-right: 2px; }
.pm-badge-sig-mode {
    background: var(--pm-blue-dim, rgba(59,130,246,0.15));
    color: var(--pm-blue, #3b82f6);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
}
.pm-badge-exec-mode {
    background: var(--bg-hover, rgba(255,255,255,0.06));
    color: var(--text-secondary, #94a3b8);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
}
.pm-session-metrics {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}
.pm-sm-item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    color: var(--text-secondary, #94a3b8);
}
.pm-sm-item i {
    font-size: 9px;
    opacity: 0.6;
}
.pm-session-right {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 1;
    flex-wrap: wrap;
    justify-content: flex-end;
}
.pm-session-counts {
    font-size: 11px;
    color: var(--text-muted, #64748b);
    white-space: nowrap;
}
.pm-session-actions {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* ── Numeric table cells ─────────────────────────────────────────────── */
.pm-td-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ── SL / TP value colors ────────────────────────────────────────────── */
/* (defined below in TP/SL cell block) */

/* ── Trade Row Actions ───────────────────────────────────────────────── */
.pm-trade-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
}

/* ── Text Size Utilities ─────────────────────────────────────────────── */
.pm-text-xs {
    font-size: var(--text-xs, 11px);
}

/* ── Configuration Form ──────────────────────────────────────────────── */
.pm-form-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: var(--space-sm, 8px);
}

.pm-form-group {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pm-form-label {
    font-size: var(--text-xs, 11px);
    color: var(--text-muted, #64748b);
    font-weight: 500;
}

.pm-form-input {
    padding: var(--space-xs, 4px) var(--space-sm, 8px);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-base, var(--pm-surface, #0f1724));
    color: var(--text-primary, #e2e8f0);
    font-size: var(--text-sm, 13px);
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    transition: border-color 0.15s;
    color-scheme: dark;
}

/* Select dropdowns — force dark native chrome */
select.pm-form-input {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 8px center;
    padding-right: 28px;
    cursor: pointer;
}

select.pm-form-input option {
    background: var(--bg-surface, var(--pm-surface, #111827));
    color: var(--text-primary, #e2e8f0);
    padding: 4px 8px;
}

.pm-form-input:focus {
    outline: none;
    border-color: var(--accent-teal, var(--pm-teal, #10b981));
    box-shadow: 0 0 0 2px var(--accent-teal-dim, rgba(16, 185, 129, 0.12));
}

.pm-form-toggle {
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
}

.pm-form-hint {
    color: var(--text-muted, #64748b);
    font-size: 10px;
    line-height: 1.3;
    margin-top: 1px;
    display: block;
}

.pm-form-hint-ok {
    color: var(--color-success, var(--pm-teal, #10b981));
    font-size: 10px;
    line-height: 1.3;
    margin-top: 1px;
    display: block;
}

/* ── Empty State ──────────────────────────────────────────────────────── */
.pm-empty {
    text-align: center;
    padding: var(--space-2xl, 32px);
    color: var(--text-muted, #64748b);
}

.pm-empty i {
    font-size: 40px;
    margin-bottom: var(--space-sm, 8px);
    opacity: 0.4;
}

/* ── API Status Row ──────────────────────────────────────────────────── */
.pm-status-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md, 12px);
    margin-bottom: var(--space-md, 12px);
}

.pm-status-row-3 {
    grid-template-columns: repeat(3, 1fr);
}

.pm-card-compact { padding: var(--space-md, 12px); margin-bottom: 0; }
.pm-card-half { min-width: 0; }
.pm-card-third { min-width: 0; }

.pm-api-status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 4px;
}

.pm-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}
.pm-dot-green {
    background: var(--pm-teal, #10b981);
    box-shadow: 0 0 6px var(--pm-teal, #10b981);
    animation: pmPulse 2s ease-in-out infinite;
}
.pm-dot-red {
    background: var(--accent-rose, #f43f5e);
    box-shadow: 0 0 6px var(--accent-rose, #f43f5e);
}
.pm-badge-yes {
    background: var(--pm-teal);
    color: var(--text-primary, #ffffff);
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.pm-badge-no {
    background: var(--accent-rose, #f43f5e);
    color: var(--text-primary, #ffffff);
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.pm-badge-pending {
    background: var(--accent-amber, #f59e0b);
    color: var(--bg-deepest, var(--bg-overlay, #060a13));
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 600;
    margin-left: 3px;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.pm-badge-closing {
    background: var(--accent-rose, #f43f5e);
    color: var(--text-primary, #f0f4f8);
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 600;
    margin-left: 3px;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
}
.pm-badge-strikeback {
    background: linear-gradient(135deg, var(--accent-purple-hover, var(--accent-purple, #a78bfa)), var(--accent-purple, var(--accent-purple, #8b5cf6)));
    color: var(--text-primary, #f0f4f8);
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin-left: 3px;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    box-shadow: var(--shadow-glow-purple);
}
.pm-badge-recovery {
    background: linear-gradient(135deg, var(--accent-amber-dim, #92400e), var(--accent-amber, #f59e0b));
    color: var(--text-primary, #f0f4f8);
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.03em;
    margin-left: 3px;
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    animation: pm-recovery-pulse 1.5s ease-in-out infinite;
}
@keyframes pm-recovery-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.pm-badge-recovery-win {
    background: linear-gradient(135deg, var(--accent-green-dim, #065f46), var(--accent-green, #10b981));
    animation: none;
}

/* TP/SL cell in positions table */
.pm-tp-val,
.pm-sl-val {
    font-variant-numeric: tabular-nums;
}
.pm-tp-val {
    color: var(--pm-teal, #10b981);
}
.pm-sl-val {
    color: var(--accent-rose, #f43f5e);
}
.pm-tpsl-dist {
    font-size: 10px;
    opacity: 0.6;
    font-weight: 400;
    letter-spacing: -0.01em;
}


.pm-text-muted {
    color: var(--text-secondary, #94a3b8);
}
.pm-text-sm {
    font-size: .75rem;
}

@keyframes pmPulse {
    0%, 100% { opacity: 1; }
    50%      { opacity: 0.5; }
}

.pm-api-label {
    font-size: var(--text-sm, 13px);
    color: var(--text-primary, #e2e8f0);
    font-weight: 500;
}

.pm-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: var(--radius-sm, 4px);
    text-transform: uppercase;
    line-height: 1.2;
    vertical-align: middle;
    white-space: nowrap;
}
.pm-badge-ok {
    background: var(--pm-teal-dim, rgba(16, 185, 129, 0.12));
    color: var(--pm-teal, #10b981);
}
.pm-badge-warn {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.12));
    color: var(--accent-amber, #f59e0b);
}
.pm-badge-perspective {
    background: var(--pm-teal-dim);
    color: var(--pm-teal);
}

.pm-balance-value {
    font-size: var(--text-2xl, 24px);
    font-weight: 700;
    color: var(--text-primary, #e2e8f0);
    font-variant-numeric: tabular-nums;
    margin-top: 4px;
}
.pm-balance-sub {
    font-size: var(--text-xs, 11px);
    color: var(--text-muted, #64748b);
    margin-top: 2px;
}

/* ── Engine Command Center Card ──────────────────────────────────────── */
.pm-engine-card {
    border: 1px solid var(--pm-teal-dim, rgba(16, 185, 129, 0.2));
}

.pm-engine-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.pm-engine-badges {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pm-engine-controls {
    display: flex;
    gap: 8px;
}

.pm-engine-paper {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.12));
    color: var(--accent-amber, #f59e0b);
}

.pm-engine-live {
    background: var(--pm-teal-dim, rgba(16, 185, 129, 0.12));
    color: var(--pm-teal, #10b981);
}

.pm-engine-activity {
    margin-bottom: 12px;
    padding: 8px 12px;
    background: var(--bg-base, var(--pm-surface, #0f1724));
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 8px);
}

.pm-engine-phase {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--pm-teal, #10b981);
}

.pm-engine-phase.pm-engine-idle {
    color: var(--text-muted, #64748b);
}

.pm-engine-pulse {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pm-teal, #10b981);
    animation: pmEnginePulse 1.5s ease-in-out infinite;
    flex-shrink: 0;
}

@keyframes pmEnginePulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--pm-teal, #10b981); }
    50%      { opacity: 0.4; box-shadow: 0 0 8px var(--pm-teal, #10b981); }
}

.pm-engine-portfolio {
    display: flex;
    gap: 16px;
    padding: 10px 0 4px;
    border-top: 1px solid var(--pm-border);
    margin-top: 12px;
    flex-wrap: wrap;
}

.pm-engine-portfolio-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.pm-engine-portfolio-val {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-primary, #e2e8f0);
    font-variant-numeric: tabular-nums;
}

.pm-engine-portfolio-val.positive { color: var(--pm-teal, #10b981); }
.pm-engine-portfolio-val.negative { color: var(--accent-rose, #f43f5e); }

.pm-engine-portfolio-label {
    font-size: 10px;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pm-engine-section {
    border-top: 1px solid var(--pm-border);
    padding-top: 12px;
    margin-top: 12px;
}

.pm-engine-section-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    gap: 6px;
}

.pm-engine-section-title i {
    color: var(--accent-teal, var(--pm-teal, #10b981));
}

/* ── Exit Position Button ────────────────────────────────────────────── */
.pm-btn-exit {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border: 1px solid var(--accent-rose, #f43f5e);
    border-radius: var(--radius-sm, 6px);
    background: transparent;
    color: var(--accent-rose, #f43f5e);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.pm-btn-exit:hover {
    background: var(--accent-rose-dim, rgba(244, 63, 94, 0.12));
}

.pm-btn-exit:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.pm-btn-abandon {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px;
    border: 1px solid var(--accent-amber, #f59e0b);
    border-radius: var(--radius-sm, 6px);
    background: transparent;
    color: var(--accent-amber, #f59e0b);
    font-size: 11px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    white-space: nowrap;
}

.pm-btn-abandon:hover {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.12));
}

.pm-btn-abandon:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ── Empty State Compact ─────────────────────────────────────────────── */
.pm-empty-compact {
    padding: 16px;
}

.pm-empty-compact i {
    font-size: 24px;
    opacity: 0.3;
}

.pm-empty-compact p {
    font-size: 12px;
    margin-top: 4px;
}

/* ── Mini Card (minimized state) ─────────────────────────────────────── */
.pm-mini-card {
    position: fixed;
    bottom: 16px;
    right: 16px;
    z-index: 9999;
    background: var(--pm-surface);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-lg, 12px);
    padding: var(--space-sm, 8px) var(--space-md, 12px);
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
    box-shadow: var(--shadow-lg);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.2s, transform 0.2s;
    cursor: pointer;
}

.pm-mini-card.pm-mini-visible {
    opacity: 1;
    transform: translateY(0);
}

.pm-mini-icon {
    width: 28px; height: 28px;
    border-radius: var(--radius-sm, 6px);
    background: var(--accent-teal-dim, rgba(16, 185, 129, 0.12));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-teal, var(--pm-teal, #10b981));
    font-size: 13px;
    flex-shrink: 0;
}

.pm-mini-info {
    flex: 1;
    min-width: 0;
    cursor: pointer;
    overflow: hidden;
}

.pm-mini-title {
    font-size: var(--text-sm, 13px);
    font-weight: 600;
    color: var(--text-primary, #e2e8f0);
}

.pm-mini-status {
    font-size: var(--text-xs, 11px);
}

.pm-mini-actions {
    display: flex;
    gap: 4px;
    margin-left: auto;
    flex-shrink: 0;
}

.pm-mini-btn {
    width: 24px; height: 24px;
    border: none;
    border-radius: var(--radius-sm, 6px);
    background: transparent;
    color: var(--text-muted, #64748b);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
}

.pm-mini-btn:hover {
    background: var(--bg-hover, rgba(255, 255, 255, 0.06));
    color: var(--text-primary, #e2e8f0);
}

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 768px) {
    .pm-panel {
        width: 100vw;
        height: 100vh;
        border-radius: 0;
    }
    .pm-metrics {
        grid-template-columns: repeat(2, 1fr);
    }
    .pm-form-grid {
        grid-template-columns: 1fr;
    }
    .pm-status-row,
    .pm-status-row-3 {
        grid-template-columns: 1fr;
    }
    .pm-widget { bottom: 10px; left: 10px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Ghost Button Variants + Confirmation Modal
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-btn-ghost {
    background: transparent;
    border: 1px solid var(--pm-border);
    color: var(--text-secondary, #94a3b8);
    padding: 6px 14px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.pm-btn-ghost:hover {
    background: var(--bg-hover);
    color: var(--text-primary, #e2e8f0);
    border-color: var(--text-muted);
}
.pm-btn-danger-ghost {
    color: var(--accent-rose, #f43f5e);
    border-color: var(--accent-rose-dim);
}
.pm-btn-danger-ghost:hover {
    background: var(--accent-rose-dim, rgba(244,63,94,0.12));
    color: var(--accent-rose);
    border-color: var(--accent-rose);
}

/* Reset / Confirmation Modal */
.pm-modal-overlay {
    position: fixed;
    inset: 0;
    z-index: 100000;
    background: var(--bg-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s;
}
.pm-modal-overlay.pm-modal-visible { opacity: 1; }
.pm-modal {
    background: var(--pm-surface, var(--pm-surface, #111827));
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-lg, 14px);
    padding: 28px 32px;
    max-width: 420px;
    width: 90%;
    text-align: center;
    box-shadow: var(--shadow-lg);
    transform: scale(0.95);
    transition: transform 0.2s;
}
.pm-modal-visible .pm-modal { transform: scale(1); }
.pm-modal-icon {
    font-size: 32px;
    color: var(--accent-rose, #f43f5e);
    margin-bottom: 12px;
}
.pm-modal-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--text-primary, #e2e8f0);
    margin-bottom: 8px;
}
.pm-modal-body {
    font-size: 13px;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.6;
    margin-bottom: 20px;
}
.pm-modal-actions {
    display: flex;
    gap: 10px;
    justify-content: center;
}
.pm-modal-actions .pm-btn {
    min-width: 120px;
    justify-content: center;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Performance / Accuracy Card
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-perf-card { position: relative; }
.pm-perf-mode {
    font-size: 9px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 9999px;
    background: var(--accent-amber-dim, rgba(245,158,11,0.12));
    color: var(--accent-amber, #f59e0b);
    margin-left: 8px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    vertical-align: middle;
}

.pm-perf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    margin-bottom: 8px;
}
.pm-perf-stat {
    background: var(--bg-hover);
    border: 1px solid var(--pm-border);
    border-radius: 8px;
    padding: 6px 8px;
    text-align: center;
}
.pm-perf-val {
    font-size: 16px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary, #e2e8f0);
    line-height: 1.2;
}
.pm-perf-val.positive { color: var(--color-profit, var(--pm-teal, #10b981)); }
.pm-perf-val.negative { color: var(--accent-rose, #f43f5e); }
.pm-perf-label {
    font-size: 10px;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 2px;
}
.pm-perf-sub {
    font-size: 10px;
    color: var(--text-secondary, #94a3b8);
    margin-top: 2px;
}

/* Per-strategy breakdown rows */
.pm-perf-strats {
    border-top: 1px solid var(--pm-border);
    padding-top: 10px;
}
.pm-perf-strat-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 0;
    font-size: 12px;
    color: var(--text-secondary, #94a3b8);
}
.pm-perf-strat-icon {
    width: 22px; height: 22px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
}
.pm-perf-strat-icon.momentum { background: var(--accent-purple-dim, rgba(168, 85, 247, 0.15)); color: var(--accent-purple, #a855f7); }
.pm-perf-strat-icon.value { background: var(--pm-teal-dim); color: var(--pm-teal); }
.pm-perf-strat-name {
    font-weight: 600;
    color: var(--text-primary, #e2e8f0);
    min-width: 80px;
}
.pm-perf-strat-wr {
    font-weight: 700;
    min-width: 56px;
}
.pm-perf-strat-trades {
    color: var(--text-muted);
    min-width: 60px;
}
.pm-perf-strat-pnl {
    margin-left: auto;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}
.pm-perf-strat-pnl.positive { color: var(--color-profit, var(--pm-teal, #10b981)); }
.pm-perf-strat-pnl.negative { color: var(--accent-rose, #f43f5e); }
.pm-perf-strat-wr.positive { color: var(--color-profit, var(--pm-teal, #10b981)); }

/* Empty state */
.pm-perf-empty {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px;
    background: var(--bg-hover);
    border: 1px dashed var(--pm-border);
    border-radius: 10px;
    font-size: 12px;
    color: var(--text-secondary, #94a3b8);
    line-height: 1.5;
}
.pm-perf-empty i {
    font-size: 24px;
    color: var(--accent-amber, #f59e0b);
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .pm-perf-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Upgraded Mini Card
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-mini-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
}
.pm-mini-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}
.pm-mini-pnl-pos { font-size: 12px; font-weight: 700; color: var(--pm-teal); font-variant-numeric: tabular-nums; }
.pm-mini-pnl-neg { font-size: 12px; font-weight: 700; color: var(--accent-rose, #f43f5e); font-variant-numeric: tabular-nums; }

.pm-mini-play {
    color: var(--pm-teal) !important;
}
.pm-mini-play:hover {
    background: var(--pm-teal-dim) !important;
}
.pm-mini-stop {
    color: var(--accent-rose, #f43f5e) !important;
}
.pm-mini-stop:hover {
    background: var(--accent-rose-dim, rgba(244,63,94,0.12)) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Floating Widget — persistent across all pages
   ═══════════════════════════════════════════════════════════════════════════ */
.pm-widget {
    position: fixed;
    bottom: 18px;
    left: 18px;
    z-index: 99998;
    background: var(--pm-surface, var(--pm-surface, #111827));
    border: 1px solid var(--pm-border, rgba(255,255,255,0.06));
    border-radius: 14px;
    padding: 6px 12px 6px 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    box-shadow: var(--shadow-lg);
    cursor: pointer;
    opacity: 0;
    transform: translateY(10px) scale(0.95);
    transition: opacity 0.25s, transform 0.25s, box-shadow 0.2s;
    user-select: none;
}

.pm-widget.pm-widget-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.pm-widget:hover {
    border-color: var(--accent-teal, var(--pm-teal, #10b981));
    box-shadow: 0 4px 24px var(--pm-teal-dim);
}

.pm-wg-icon {
    width: 28px; height: 28px;
    border-radius: 8px;
    background: var(--accent-teal-dim, rgba(16, 185, 129, 0.12));
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--accent-teal, var(--pm-teal, #10b981));
    font-size: 13px;
    flex-shrink: 0;
}

.pm-wg-body {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.pm-wg-top {
    display: flex;
    align-items: center;
    gap: 5px;
}

.pm-wg-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    flex-shrink: 0;
}

.pm-wg-status {
    font-size: 10px;
    width: 16px; height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}
.pm-wg-live { background: var(--pm-teal-dim); color: var(--pm-teal); }
.pm-wg-dry  { background: var(--accent-amber-dim, rgba(245,158,11,0.12)); color: var(--accent-amber, #f59e0b); }
.pm-wg-off  { background: var(--accent-rose-dim, rgba(244,63,94,0.12)); color: var(--accent-rose); }

.pm-wg-sent {
    font-size: 10px;
    width: 16px; height: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
}
.pm-wg-bull { background: var(--pm-teal-dim); color: var(--pm-teal); }
.pm-wg-bear { background: var(--accent-rose-dim, rgba(244,63,94,0.12)); color: var(--accent-rose); }
.pm-wg-neut { background: var(--bg-hover); color: var(--text-muted); }

.pm-wg-pnl {
    font-size: 13px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
.pm-wg-pnl-pos { color: var(--pm-teal); }
.pm-wg-pnl-neg { color: var(--accent-rose, #f43f5e); }


/* ═══════════════════════════════════════════════════════════════════════
   Trade History Badges
   ═══════════════════════════════════════════════════════════════════════ */

.pm-badge-tp,
.pm-badge-sl,
.pm-badge-reason,
.pm-badge-greedy,
.pm-badge-trailing,
.pm-badge-merge,
.pm-badge-manual,
.pm-badge-stale {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 1px 6px;
    font-size: 9px;
    font-weight: 700;
    border-radius: var(--radius-sm, 4px);
}

.pm-badge-tp {
    background: var(--accent-teal-dim);
    color: var(--pm-teal);
    border: 1px solid var(--accent-teal-dim);
}

.pm-badge-sl {
    background: var(--accent-rose-dim);
    color: var(--accent-rose, #f43f5e);
    border: 1px solid var(--accent-rose-dim);
}

.pm-badge-reason {
    background: var(--bg-hover);
    color: var(--text-muted);
    border: 1px solid var(--border-subtle);
}

.pm-badge-stale {
    background: var(--accent-amber-dim, rgba(245,158,11,0.15));
    color: var(--accent-amber, #f59e0b);
    border: 1px solid var(--accent-amber-dim);
}

/* Strategy badges — signal source */
.pm-badge-strat-mom {
    background: var(--pm-blue-dim, rgba(59,130,246,0.15));
    color: var(--pm-blue, #3b82f6);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-orc {
    background: var(--accent-teal-dim, rgba(16, 185, 129, 0.15));
    color: var(--accent-teal, #10b981);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-fx {
    background: var(--pm-kamoni-dim);
    color: var(--pm-kamoni);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-fx i { font-size: 8px; margin-right: 2px; }
.pm-badge-strat-zmb {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-zmb i { font-size: 8px; }
.pm-badge-strat-exp {
    background: var(--accent-rose-dim, rgba(244, 63, 94, 0.15));
    color: var(--accent-rose, #f43f5e);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-exp i { font-size: 8px; margin-right: 2px; }
.pm-badge-strat-hge {
    background: var(--pm-hedge-dim);
    color: var(--pm-hedge);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-hge i { font-size: 8px; margin-right: 2px; }
.pm-badge-strat-ud {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.15));
    color: var(--accent-amber, #f59e0b);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-ud i { font-size: 8px; margin-right: 2px; }
.pm-badge-strat-gap {
    background: var(--accent-teal-dim, rgba(20, 184, 166, 0.15));
    color: var(--accent-teal, #14b8a6);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-gap i { font-size: 8px; margin-right: 2px; }
.pm-badge-strat-obk {
    background: var(--accent-amber-dim, rgba(245, 158, 11, 0.15));
    color: var(--accent-amber, #f59e0b);
    font-size: 9px;
    vertical-align: middle;
}
.pm-badge-strat-obk i { font-size: 8px; margin-right: 2px; }

/* Hold time badge */
.pm-badge-hold {
    background: var(--bg-hover, rgba(255,255,255,0.04));
    color: var(--text-muted, #64748b);
    font-size: 9px;
    font-variant-numeric: tabular-nums;
    vertical-align: middle;
}

/* Flow ticker icons — themed without inline styles */
.pm-icon-sniper { color: var(--pm-sniper); }
.pm-icon-hedge  { color: var(--pm-hedge); }

/* Leaderboard icons moved to consolidated Flows Performance section below */

/* ═══════════════════════════════════════════════════════════════════════════
   Live Execution Terminal
   ═══════════════════════════════════════════════════════════════════════════ */

.pm-terminal {
    flex: 1;
    min-height: 200px;
    max-height: calc(100vh - 260px);
    overflow-y: auto;
    background: var(--bg-deepest);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-sm, 6px);
    padding: 8px 10px;
    font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
    font-size: 11.5px;
    line-height: 1.6;
    color: var(--text-secondary, #94a3b8);
    scrollbar-width: thin;
    scrollbar-color: var(--pm-border) transparent;
}

.pm-terminal::-webkit-scrollbar { width: 6px; }
.pm-terminal::-webkit-scrollbar-thumb {
    background: var(--pm-border);
    border-radius: 3px;
}

.pm-terminal-empty {
    color: var(--text-muted, #475569);
    font-style: italic;
    padding: 24px 0;
    text-align: center;
}

.pm-log-line {
    white-space: pre-wrap;
    word-break: break-word;
    padding: 1px 0;
    border-bottom: 1px solid var(--border-subtle);
}

.pm-log-error {
    color: var(--accent-rose, #f43f5e);
}

.pm-log-warn {
    color: var(--accent-amber, #f59e0b);
}

.pm-log-trade {
    color: var(--pm-teal);
}

.pm-log-info {
    color: var(--text-secondary, #94a3b8);
}

/* ── Tx Hash Links ───────────────────────────────────────────────────── */

.pm-tx-link {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 10px;
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    color: var(--pm-cyan);
    text-decoration: none;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 6px);
    background: var(--pm-cyan-dim);
    border: 1px solid var(--pm-cyan-dim);
    transition: background 0.15s, color 0.15s;
    margin-left: 4px;
    white-space: nowrap;
}

.pm-tx-link:hover {
    background: var(--pm-cyan-dim);
    color: var(--pm-cyan-hover);
}

.pm-tx-link::before {
    content: '\f35d'; /* fa-external-link-alt */
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 8px;
}

/* ── Extra Small Button ──────────────────────────────────────────────── */

.pm-btn-xs {
    font-size: 11px;
    padding: 2px 8px;
    min-height: 0;
    line-height: 1.4;
}

/* ── Utility classes (eliminate inline styles from JS) ────────────────── */

/* Badge wrapper row (e.g. status cards, trade summary) */
.pm-badge-row {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    margin-top: 6px;
}

/* Abandon modal spacing */
.pm-modal-error-detail {
    margin: 8px 0;
}

/* Badge at slightly larger size for trade summary */
.pm-badge-lg { font-size: 12px; }

/* Trade summary stat bar */
.pm-trade-summary {
    display: flex;
    gap: 16px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}

/* Actions row (export + reset bar) */
.pm-actions-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.pm-actions-summary {
    margin-left: auto;
    font-size: var(--text-xs, 11px);
    color: var(--text-muted, #64748b);
}

/* Table helpers */
.pm-td-market {
    max-width: 160px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}
.pm-td-market-wide { max-width: 220px; }
.pm-td-nowrap { white-space: nowrap; }
.pm-td-compact { font-size: var(--text-xs, 11px); white-space: nowrap; }
.pm-th-market { min-width: 140px; }
.pm-th-market-wide { min-width: 160px; }

/* Inline status badge (smaller variant for mini-card / modals) */
.pm-status-sm {
    font-size: 10px;
    padding: 1px 6px;
}
.pm-status-xs {
    font-size: 9px;
    padding: 1px 6px;
}

/* Modal icon override for amber/warning context */
.pm-modal-icon-warn {
    color: var(--accent-amber, #f59e0b);
}
/* Modal icon override for danger/panic context */
.pm-icon-danger {
    color: var(--accent-rose, #f43f5e);
}

/* Modal body layout helpers */
.pm-modal-question {
    margin-bottom: 10px;
    font-size: var(--text-base, 13px);
    line-height: 1.5;
}
.pm-modal-details {
    display: flex;
    gap: 12px;
    justify-content: center;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.pm-modal-warn-text {
    font-size: var(--text-xs, 11px);
}

/* Log terminal card layout */
.pm-log-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}
.pm-log-header {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
/* log-controls + log-autoscroll defined in log section below */
.pm-log-autoscroll input {
    accent-color: var(--pm-cyan);
}

/* Config: single-column form grid */
.pm-form-grid-single {
    grid-template-columns: 1fr;
}

/* Config: label suffix hint */
.pm-label-hint {
    color: var(--text-muted, #64748b);
}

/* save-row defined in config section below */

/* Widget metadata text */
.pm-wg-meta {
    font-size: 10px;
    color: var(--text-muted, #64748b);
}

/* badge-manual defined in trade badges section below */


/* ═══════════════════════════════════════════════════════════════════════
   Collapsible Sections
   ═══════════════════════════════════════════════════════════════════════ */

.pm-section {
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 10px);
    overflow: hidden;
}

.pm-section-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    cursor: pointer;
    user-select: none;
    transition: background 0.15s;
}

.pm-section-hdr:hover {
    background: var(--bg-hover, rgba(255,255,255,0.03));
}

.pm-section-title {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: flex;
    align-items: center;
    gap: 6px;
}

.pm-section-title i {
    color: var(--accent-teal, var(--pm-teal, #10b981));
}

.pm-collapse-chevron {
    font-size: 10px;
    color: var(--text-muted, #64748b);
    transition: transform 0.2s;
}

.pm-collapsed .pm-collapse-chevron {
    transform: rotate(-90deg);
}

.pm-collapsed .pm-section-body {
    display: none;
}

.pm-section-body {
    padding: 0 12px 10px;
}

/* Config card collapsible */
.pm-card .pm-form-grid,
.pm-card .pm-form-grid-single,
.pm-card .pm-fast-track-section {
    max-height: 2000px;
    overflow: hidden;
    transition: max-height 0.2s ease, opacity 0.15s ease, margin 0.2s ease, padding 0.2s ease, border-color 0.2s ease;
    opacity: 1;
}
.pm-card-collapsed .pm-form-grid,
.pm-card-collapsed .pm-form-grid-single,
.pm-card-collapsed .pm-fast-track-section {
    max-height: 0;
    opacity: 0;
    margin: 0;
    padding: 0;
    border-color: transparent;
    overflow: hidden;
}
.pm-card-collapsed .pm-form-hint,
.pm-card-collapsed > p {
    display: none;
}
.pm-card-collapsed .pm-fast-track-section::before {
    display: none;
}
.pm-card-collapsed {
    padding: 6px 12px;
    overflow: hidden;
    border-color: var(--pm-border);
    transition: border-color 0.2s ease, background 0.2s ease;
}
.pm-card-collapsed:hover {
    border-color: var(--pm-cyan-dim);
    background: var(--bg-hover);
}
.pm-card-collapsed .pm-card-title {
    margin-bottom: 0;
    font-size: 11px;
}
.pm-card:not(.pm-card-collapsed) {
    border-color: var(--pm-cyan-dim);
}
.pm-cfg-chevron {
    transition: transform 0.2s ease;
    margin-left: auto;
}
.pm-card-collapsed .pm-cfg-chevron {
    transform: rotate(-90deg);
}

/* ═══════════════════════════════════════════════════════════════════════
   Engine Status — Compact Layout
   ═══════════════════════════════════════════════════════════════════════ */

.pm-engine-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}

.pm-engine-left {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pm-engine-right {
    display: flex;
    gap: 6px;
    align-items: center;
}

.pm-engine-phase-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-muted, #64748b);
    padding: 6px 0;
}

.pm-engine-phase-row .pm-engine-pulse {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--pm-teal, #10b981);
    animation: pmEnginePulse 1.5s ease-in-out infinite;
    flex-shrink: 0;
}

.pm-engine-phase-row span {
    color: var(--pm-teal, #10b981);
}
/* ── Flow Ticker (rotating engine status) ──────────────────────────── */
.pm-flow-ticker {
    animation: pmFlowFadeIn 0.5s ease-out;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: calc(100% - 80px);
}
.pm-flow-ticker i { margin-right: 4px; font-size: 10px; opacity: 0.8; }
.pm-flow-dots {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: auto;
    flex-shrink: 0;
}
.pm-flow-dot {
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--text-muted, #64748b);
    opacity: 0.3;
    transition: opacity 0.3s, background 0.3s;
}
.pm-flow-dot.active {
    opacity: 1;
    background: var(--pm-teal, #10b981);
}
@keyframes pmFlowFadeIn {
    0%   { opacity: 0; transform: translateY(6px); }
    100% { opacity: 1; transform: translateY(0); }
}

.pm-engine-flow-row {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    color: var(--text-secondary, #94a3b8);
    padding: 5px 0 2px;
    flex-wrap: wrap;
}
.pm-engine-flow-row span {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.pm-engine-flow-row i {
    font-size: 9px;
    opacity: 0.6;
}

.pm-towin-cell {
    white-space: nowrap;
    color: var(--pm-teal, #10b981);
    font-weight: 500;
}

.pm-conn-row {
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 11px;
    color: var(--text-secondary, #94a3b8);
    padding-top: 6px;
    border-top: 1px solid var(--pm-border);
    margin-top: 4px;
    flex-wrap: wrap;
}

.pm-conn-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.pm-conn-sep {
    color: var(--pm-border, #334155);
    font-size: 13px;
    margin: 0 2px;
    user-select: none;
}

.pm-dot-sm {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}

.pm-dot-sm.pm-dot-green {
    background: var(--pm-teal, #10b981);
    box-shadow: 0 0 4px var(--pm-teal, #10b981);
}

.pm-dot-sm.pm-dot-red {
    background: var(--accent-rose, #f43f5e);
    box-shadow: 0 0 4px var(--accent-rose, #f43f5e);
}
.pm-dot-sm.pm-dot-inline {
    margin-left: 4px;
}

/* Leaderboard medals moved to consolidated Flows Performance section below */

/* ═══════════════════════════════════════════════════════════════════════
   Toggle Switch (Dry-Run / Live)
   ═══════════════════════════════════════════════════════════════════════ */

.pm-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
}

.pm-toggle input {
    display: none;
}

.pm-toggle-track {
    width: 32px;
    height: 18px;
    background: var(--accent-amber-dim, rgba(245,158,11,0.3));
    border: 1px solid var(--accent-amber, #f59e0b);
    border-radius: 9999px;
    position: relative;
    transition: background 0.2s, border-color 0.2s;
}

.pm-toggle input:checked + .pm-toggle-track {
    background: var(--pm-teal-dim, rgba(16,185,129,0.3));
    border-color: var(--pm-teal, #10b981);
}

.pm-toggle-thumb {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 12px;
    height: 12px;
    background: var(--accent-amber, #f59e0b);
    border-radius: 50%;
    transition: left 0.2s, background 0.2s;
}

.pm-toggle input:checked + .pm-toggle-track .pm-toggle-thumb {
    left: 16px;
    background: var(--pm-teal, #10b981);
}

.pm-toggle-label {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.pm-toggle-dry {
    color: var(--accent-amber, #f59e0b);
}

.pm-toggle-live {
    color: var(--pm-teal, #10b981);
}

/* ═══════════════════════════════════════════════════════════════════════
   Hero Metrics (PnL, Win Rate, Best Trade)
   ═══════════════════════════════════════════════════════════════════════ */

.pm-hero-row {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.pm-hero {
    flex: 1;
    background: var(--bg-base, var(--pm-surface, #0f1724));
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 8px);
    padding: 8px 10px;
    text-align: center;
    min-width: 0;
}

.pm-hero-val {
    font-size: 20px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    color: var(--text-primary, #e2e8f0);
    line-height: 1.2;
}

.pm-hero-val.positive { color: var(--pm-teal, #10b981); }
.pm-hero-val.negative { color: var(--accent-rose, #f43f5e); }

.pm-hero-label {
    font-size: 10px;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-top: 2px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Inline Stats Row (replaces metric cards)
   ═══════════════════════════════════════════════════════════════════════ */

.pm-inline-stats {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 6px;
    font-size: 11.5px;
    color: var(--text-secondary, #94a3b8);
    padding: 4px 0;
    font-variant-numeric: tabular-nums;
}

.pm-inline-stats .positive { color: var(--pm-teal, #10b981); }
.pm-inline-stats .negative { color: var(--accent-rose, #f43f5e); }

.pm-sep {
    color: var(--text-muted, #475569);
    font-size: 10px;
}

.pm-text-dim {
    color: var(--text-muted, #64748b);
}
.pm-text-win {
    color: var(--accent-teal, #10b981);
}
.pm-text-loss {
    color: var(--accent-rose, #f43f5e);
}
.pm-text-amber {
    color: var(--accent-amber, #f59e0b);
}

/* ═══════════════════════════════════════════════════════════════════════
   Strategy Breakdown (compact)
   ═══════════════════════════════════════════════════════════════════════ */

.pm-accuracy-detail {
    padding-bottom: 6px;
    border-bottom: 1px solid var(--pm-border);
    margin-bottom: 6px;
}

.pm-strat-rows {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.pm-strat-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--text-secondary, #94a3b8);
    padding: 3px 0;
}

.pm-strat-icon {
    width: 20px;
    height: 20px;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    flex-shrink: 0;
}

.pm-strat-icon.momentum { background: var(--accent-purple-dim, rgba(168,85,247,0.15)); color: var(--accent-purple, #a855f7); }
.pm-strat-icon.value { background: var(--pm-teal-dim); color: var(--pm-teal); }

.pm-strat-name {
    font-weight: 600;
    color: var(--text-primary, #e2e8f0);
    min-width: 36px;
}

.pm-strat-row .positive { color: var(--pm-teal, #10b981); font-weight: 700; }
.pm-strat-row .negative { color: var(--accent-rose, #f43f5e); font-weight: 700; }

/* ═══════════════════════════════════════════════════════════════════════
   Positions — compact table + scroll cap
   ═══════════════════════════════════════════════════════════════════════ */

.pm-pos-scroll {
    max-height: 320px;
    /* overflow-y: auto; disabled to prevent app scrolling */
    scrollbar-width: thin;
    scrollbar-color: var(--pm-border) transparent;
}

.pm-pos-scroll::-webkit-scrollbar { width: 5px; }
.pm-pos-scroll::-webkit-scrollbar-thumb {
    background: var(--pm-border);
    border-radius: 3px;
}

.pm-table-compact th,
.pm-table-compact td {
    padding: 3px 5px;
    font-size: 11px;
}

.pm-table-compact th {
    font-size: 10px;
}

.pm-table-compact th.pm-th-num {
    text-align: right;
}

.positive-row td { border-left: 2px solid transparent; }
.negative-row td:first-child { border-left: 2px solid var(--accent-rose, #f43f5e); }
.positive-row td:first-child { border-left: 2px solid var(--pm-teal, #10b981); }

.pm-show-more {
    display: flex;
    justify-content: center;
    padding: 4px 0 0;
}

/* Small button variant */
.pm-btn-sm {
    padding: 4px 10px;
    font-size: 12px;
}

/* pm-btn-xs already defined above */

/* Fast-exit badge */
.pm-badge-fast {
    background: var(--accent-amber-dim, rgba(245,158,11,0.15));
    color: var(--accent-amber, #f59e0b);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    margin-left: 3px;
    vertical-align: middle;
}

/* Secured badge */
.pm-badge-secured {
    background: var(--pm-teal-dim, rgba(16,185,129,0.15));
    color: var(--pm-teal, #10b981);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    margin-left: 3px;
    border: 1px solid var(--pm-teal-dim);
    vertical-align: middle;
}

/* Small-margin badge */
.pm-badge-small {
    background: var(--accent-purple-dim, rgba(168,85,247,0.15));
    color: var(--accent-purple, #a855f7);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 4px;
    border-radius: var(--radius-sm, 4px);
    margin-left: 3px;
}

/* Tx link small */
.pm-tx-link-sm {
    font-size: 9px;
    color: var(--pm-cyan, #06b6d4);
    text-decoration: none;
    margin-left: 3px;
    opacity: 0.6;
    transition: opacity 0.15s;
}
.pm-tx-link-sm:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════════
   Logs — Full-height layout + pause state
   ═══════════════════════════════════════════════════════════════════════ */

.pm-log-card-full {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-md, 10px);
    overflow: hidden;
}

.pm-log-toolbar {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-bottom: 1px solid var(--pm-border);
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    flex-shrink: 0;
}

.pm-log-toolbar i {
    color: var(--accent-teal, var(--pm-teal, #10b981));
}

.pm-log-controls {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
}

.pm-btn-paused {
    color: var(--accent-amber, #f59e0b) !important;
    border-color: var(--accent-amber, #f59e0b) !important;
}

.pm-log-autoscroll {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    color: var(--text-muted, #64748b);
    text-transform: none;
    letter-spacing: 0;
    font-weight: 400;
}

/* ═══════════════════════════════════════════════════════════════════════
   Config — Top bar with Save button
   ═══════════════════════════════════════════════════════════════════════ */

.pm-config-topbar {
    display: flex;
    justify-content: flex-end;
    padding: 0 0 6px;
    position: sticky;
    top: 0;
    z-index: 5;
    background: transparent;
}

.pm-save-row {
    display: flex;
    justify-content: center;
    padding: 8px 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   Trade History — Additional Reason Badges
   ═══════════════════════════════════════════════════════════════════════ */

.pm-badge-greedy {
    background: var(--accent-amber-dim, rgba(245,158,11,0.15));
    color: var(--accent-amber, #f59e0b);
    border: 1px solid var(--accent-amber-dim);
}

.pm-badge-trailing {
    background: var(--accent-purple-dim, rgba(168,85,247,0.15));
    color: var(--accent-purple, #a855f7);
    border: 1px solid var(--accent-purple-dim);
}

.pm-badge-manual {
    background: var(--pm-blue-dim, rgba(59,130,246,0.15));
    color: var(--pm-blue, var(--pm-blue, #3b82f6));
    border: 1px solid var(--pm-blue-dim);
}

/* Circuit breaker / crash_stop badge */
.pm-badge-cb {
    background: var(--accent-rose-dim, rgba(244,63,94,0.12));
    color: var(--accent-rose, #f43f5e);
    border: 1px solid var(--accent-rose-dim);
}

/* Error exit badge */
.pm-badge-err {
    background: var(--accent-rose-dim, rgba(244,63,94,0.12));
    color: var(--accent-rose, #f43f5e);
    border: 1px dashed var(--accent-rose-dim);
}

/* Abandoned / stuck badge */
.pm-badge-abd {
    background: var(--bg-hover, rgba(255,255,255,0.04));
    color: var(--text-muted, #64748b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}

/* Resolved market badge */
.pm-badge-resolved {
    background: var(--accent-teal-dim, rgba(16,185,129,0.12));
    color: var(--pm-teal, #10b981);
    border: 1px dashed var(--accent-teal-dim);
}

/* Dust badge (wallet dust import) */
.pm-badge-dust {
    background: var(--bg-hover, rgba(255,255,255,0.04));
    color: var(--text-muted, #64748b);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    font-style: italic;
}

/* Auto-merge badge — gold coin accent with pulse animation */
.pm-badge-merge {
    background: var(--accent-amber-dim, rgba(245,158,11,0.15));
    color: var(--accent-amber, #f59e0b);
    border: 1px solid var(--accent-amber, #f59e0b);
    animation: pm-merge-glow 1.5s ease-in-out 1;
}
@keyframes pm-merge-glow {
    0%   { box-shadow: 0 0 0 0 var(--accent-amber-dim, rgba(245,158,11,0.4)); }
    50%  { box-shadow: 0 0 8px 2px var(--accent-amber-dim, rgba(245,158,11,0.25)); }
    100% { box-shadow: 0 0 0 0 transparent; }
}

/* pm-status-sm already defined above */

/* ═══════════════════════════════════════════════════════════════════════
   Responsive — compact on small panels
   ═══════════════════════════════════════════════════════════════════════ */

@media (max-width: 600px) {
    .pm-hero-row { flex-direction: column; }
    .pm-engine-row { flex-direction: column; align-items: flex-start; }
    .pm-conn-row { flex-direction: column; gap: 4px; }
    .pm-strat-row { font-size: 11px; }
}

/* Custom additions for unified trade view */
.pm-closed-trade td { color: var(--text-muted, #94a3b8) !important; opacity: 0.55; }
.pm-closed-trade {
    background: var(--pm-surface, rgba(0,0,0,0.2)) !important;
}

.pm-closed-trade td * {
    color: inherit;
    border-color: inherit;
}
/* Preserve semantic badge colors in closed rows */
.pm-closed-trade td .pm-badge { filter: none; opacity: 0.85; }
.pm-closed-trade td .pm-badge-yes,
.pm-closed-trade td .pm-badge-no { filter: none; opacity: 0.85; }

/* Imported wallet positions — dimmed to distinguish from engine-opened */
.pm-imported-trade { opacity: 0.7; }
.pm-imported-trade td:first-child::before {
    content: '\f56e';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 8px;
    margin-right: 4px;
    opacity: 0.5;
}
.pm-badge-imported {
    background: var(--pm-surface, rgba(100,116,139,0.25));
    color: var(--text-muted, #94a3b8);
    font-size: 9px;
    padding: 1px 4px;
    border-radius: var(--radius-sm, 4px);
}

.pm-btn-exit-all {
    margin-left: auto;
    background: transparent;
    color: var(--accent-rose, #f43f5e);
    border: 1px solid var(--accent-rose, #f43f5e);
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 4px;
    cursor: pointer;
    transition: 0.2s;
}
.pm-btn-exit-all:hover {
    background: var(--accent-rose-dim, rgba(244,63,94,0.12));
    color: var(--text-primary, #f0f4f8);
}

.pm-pagination {
    display: flex;
    justify-content: center;
    gap: 15px;
    margin-top: 10px;
    padding: 5px 0;
    align-items: center;
    font-size: 12px;
}
.pm-pagination button {
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    color: var(--text-primary, #f0f4f8);
    cursor: pointer;
    padding: 3px 8px;
    border-radius: 4px;
}
.pm-pagination button:hover {
    background: var(--pm-cyan);
}
.pm-pagination button:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    background: var(--pm-elevated);
}

.pm-table-unified-wrap {
    overflow-x: auto; 
}

/* ═══════════════════════════════════════════════════════════════════════════
   Oracle Fast-Track — UI additions (Upgrade #1+#2)
   ═══════════════════════════════════════════════════════════════════════════ */

/* Fast-Track Active badge in connectivity row */
.pm-ft-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: var(--radius-full, 9999px);
    background: var(--pm-cyan-dim, rgba(6, 182, 212, 0.12));
    color: var(--pm-cyan, #06b6d4);
    border: 1px solid var(--pm-cyan-dim);
    margin-left: 4px;
    animation: pmFtPulse 2s ease-in-out infinite;
    vertical-align: middle;
}
.pm-ft-badge i { font-size: 7px; }

@keyframes pmFtPulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--pm-cyan-dim); }
    50%      { opacity: 0.7; box-shadow: 0 0 8px var(--pm-cyan-dim); }
}

/* Oracle fast-track log lines */
.pm-log-oracle {
    color: var(--pm-cyan, #06b6d4);
}

/* ── Fast-Track Config Sub-section ───────────────────────────────────── */
.pm-fast-track-section {
    margin-top: 12px;
    padding: 10px 12px 12px;
    border: 1px solid var(--pm-cyan-dim);
    border-radius: var(--radius-md, 8px);
    background: var(--bg-hover);
    position: relative;
}

.pm-fast-track-section::before {
    content: '';
    position: absolute;
    left: 0; top: 8px; bottom: 8px;
    width: 2px;
    background: var(--pm-cyan, #06b6d4);
    border-radius: 1px;
    opacity: 0.5;
}

.pm-fast-track-hdr {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 700;
    color: var(--pm-cyan, #06b6d4);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 10px;
}

.pm-fast-track-hdr i { font-size: 11px; }

.pm-ft-hint {
    font-size: 9px;
    font-weight: 400;
    color: var(--text-muted, #64748b);
    text-transform: none;
    letter-spacing: 0;
    margin-left: 4px;
}

/* ── Conditional Field Dimming ───────────────────────────────────────── */
.pm-field-dimmed {
    opacity: 0.35;
    pointer-events: none;
    transition: opacity 0.2s;
}

.pm-field-dimmed .pm-form-input {
    cursor: not-allowed;
}

.pm-field-dimmed .pm-form-label {
    color: var(--text-muted, #475569);
}

/* ── Grid utilities ──────────────────────────────────────────────────── */
.pm-col-span-2 {
    grid-column: span 2;
}

@media (max-width: 600px) {
    .pm-col-span-2 { grid-column: span 1; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Zombie Mode — Copy-Trading Visual Theme
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Zombie palette tokens ───────────────────────────────────────────── */
:root {
    --pm-zombie:       var(--accent-purple);
    --pm-zombie-dim:   var(--accent-purple-dim);
    --pm-zombie-glow:  rgba(139, 92, 246, 0.25);
    --pm-zombie-dark:  rgba(0, 0, 0, 0.35);
    --pm-zombie-deep:  rgba(15, 5, 25, 0.55);
    --pm-kamoni:       var(--accent-amber);
    --pm-kamoni-dim:   var(--accent-amber-dim, rgba(251, 191, 36, 0.12));
    --pm-kamoni-glow:  rgba(251, 191, 36, 0.25);
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Active — subtle border accent only (no overlay/glow/scanlines)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-active .pm-panel {
    border-color: var(--pm-zombie-dim);
}

/* Walking Zombie Animation — REMOVED (replaced by dynamic status icon) */

/* Grinding dots animation */
.pm-zombie-grind {
    display: inline-block;
    margin-left: 4px;
    font-size: 10px;
    color: var(--pm-zombie);
    opacity: 0.6;
}
.pm-zombie-grind::after {
    content: '...';
    animation: pmZombieGrind 1.5s steps(3, end) infinite;
}
@keyframes pmZombieGrind {
    0%   { content: '.'; }
    33%  { content: '..'; }
    66%  { content: '...'; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Toggle Button — shines when active
   ═══════════════════════════════════════════════════════════════════════ */
.pm-btn-zombie {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    border: 1px solid var(--pm-zombie-glow);
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: var(--radius-full, 9999px);
    cursor: pointer;
    transition: 0.2s;
    position: relative;
    overflow: hidden;
}
.pm-btn-zombie:hover {
    background: var(--pm-zombie-glow);
    box-shadow: 0 0 12px var(--pm-zombie-dim);
}
.pm-btn-zombie-off {
    opacity: 0.45;
    animation: none !important;
    border-color: var(--pm-zombie-dim);
}
.pm-btn-zombie-off:hover { opacity: 0.85; }
.pm-btn-zombie-off::after { display: none !important; }

/* Active ZMB button — subtle border pulse, no heavy glow */
.pm-zombie-active .pm-btn-zombie {
    box-shadow: 0 0 6px var(--pm-zombie-dim);
    border-color: var(--pm-zombie);
}
.pm-zombie-active .pm-btn-zombie::after { display: none; }

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Phase Row Pulse
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-pulse {
    display: inline-block;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--pm-zombie);
    margin-right: 6px;
    animation: pmZombieDot 1.5s ease-in-out infinite;
    vertical-align: middle;
}
.pm-zombie-phase-label {
    color: var(--pm-zombie);
    font-weight: 600;
    font-size: 11px;
    margin-right: 12px;
}
@keyframes pmZombieDot {
    0%, 100% { opacity: 1; box-shadow: 0 0 4px var(--pm-zombie); }
    50%      { opacity: 0.4; box-shadow: 0 0 8px var(--pm-zombie-glow); }
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Indicator in Conn Row
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-indicator {
    color: var(--pm-zombie);
    font-weight: 600;
}
.pm-zombie-indicator .pm-btn-icon {
    font-size: 9px;
    padding: 1px 3px;
    margin-left: 3px;
    color: var(--pm-zombie);
    opacity: 0.6;
    cursor: pointer;
    background: transparent;
    border: none;
}
.pm-zombie-indicator .pm-btn-icon:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Badge on Trades
   ═══════════════════════════════════════════════════════════════════════ */
.pm-badge-zombie {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    border: 1px solid var(--pm-zombie-glow);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    vertical-align: middle;
}
.pm-badge-zombie i { font-size: 8px; margin-right: 2px; }
.pm-badge-kamoni {
    background: var(--pm-kamoni-dim);
    color: var(--pm-kamoni);
    border: 1px solid var(--pm-kamoni-glow, rgba(251,191,36,0.25));
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    vertical-align: middle;
}
.pm-badge-kamoni i { font-size: 8px; margin-right: 2px; }
.pm-badge-wallet-src {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    letter-spacing: 0.3px;
    text-transform: uppercase;
    vertical-align: middle;
}
.pm-badge-wallet-src-fx {
    background: var(--pm-kamoni-dim);
    color: var(--pm-kamoni);
}
.pm-badge-wallet-scout {
    background: var(--pm-cyan-dim);
    color: var(--color-info, #06b6d4);
    font-size: 9px;
    font-weight: 600;
    padding: 1px 5px;
    border-radius: var(--radius-sm, 4px);
    letter-spacing: 0.3px;
    text-transform: uppercase;
    vertical-align: middle;
}
.pm-badge-wallet-scout i { font-size: 8px; margin-right: 2px; }

/* Zombie log lines green */
.pm-log-zombie { color: var(--pm-zombie); }

/* ═══════════════════════════════════════════════════════════════════════
   Flows Performance (consolidated)
   All performance visuals: table, icons, bars, sort, streaks
   ═══════════════════════════════════════════════════════════════════════ */

/* Source icons */
.pm-lb-icon-sniper { color: var(--pm-sniper); font-size: 10px; }
.pm-lb-icon-hedge  { color: var(--pm-hedge); font-size: 10px; }
.pm-lb-icon-ud     { color: var(--pm-sniper); font-size: 10px; }
.pm-lb-icon-fx     { color: var(--pm-kamoni); font-size: 10px; }
.pm-lb-icon-gap    { color: var(--accent-teal, #14b8a6); font-size: 10px; }
.pm-lb-icon-obk    { color: var(--accent-amber, #f59e0b); font-size: 10px; }
.pm-lb-icon-wl     { color: var(--pm-zombie); font-size: 10px; }

/* Table layout */
.pm-lb-table { font-size: 12px; width: 100%; }
.pm-lb-table th { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; white-space: nowrap; overflow: hidden; }
.pm-lb-table td { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pm-lb-table th i { font-size: 10px; color: var(--text-muted, #64748b); }

/* Column widths */
.pm-lb-col-rank  { width: 30px; text-align: center; }
.pm-lb-col-src   { width: 28px; text-align: center; }
.pm-lb-col-name  { min-width: 90px; }
.pm-lb-col-wl    { width: 52px; }
.pm-lb-col-wr    { width: 72px; }
.pm-lb-col-pnl   { width: 80px; }
.pm-lb-col-streak{ width: 48px; }
.pm-lb-col-trades{ width: 48px; }

/* Name column */
.pm-lb-name {
    font-weight: 600;
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Signal row tint & link */
.pm-lb-signal-row { background: var(--pm-kamoni-subtle); }
.pm-lb-gap-row    { background: var(--accent-teal-dim, rgba(20,184,166,0.06)); }
.pm-lb-link {
    color: var(--pm-zombie);
    text-decoration: none;
}
.pm-lb-link:hover { text-decoration: underline; }

/* Win rate mini progress bar */
.pm-lb-wr-bar {
    position: relative;
    height: 16px;
    background: var(--bg-hover, rgba(255,255,255,0.04));
    border-radius: 3px;
    overflow: hidden;
    min-width: 38px;
}
.pm-lb-wr-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}
.pm-lb-wr-fill-win  { background: var(--pm-teal-dim); }
.pm-lb-wr-fill-loss { background: var(--accent-rose-dim); }
.pm-lb-wr-fill-mid  { background: var(--bg-active, rgba(255,255,255,0.08)); }
.pm-lb-wr-text {
    position: relative;
    z-index: 1;
    font-size: 11px;
    font-weight: 600;
    line-height: 16px;
    padding: 0 4px;
    display: block;
    text-align: right;
}

/* PnL magnitude bar */
.pm-lb-pnl-wrap {
    position: relative;
    height: 16px;
    min-width: 48px;
}
.pm-lb-pnl-bar {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    border-radius: 3px;
    transition: width 0.3s ease;
}
.pm-lb-pnl-bar-win  { background: var(--pm-teal-dim); }
.pm-lb-pnl-bar-loss { background: var(--accent-rose-dim); }
.pm-lb-pnl-text {
    position: relative;
    z-index: 1;
    font-size: 11px;
    font-weight: 600;
    line-height: 16px;
    display: block;
    text-align: right;
}

/* Streak fire/ice icons */
.pm-lb-streak-fire,
.pm-lb-streak-ice {
    font-size: 10px;
    margin-right: 1px;
}
.pm-lb-streak-fire { color: var(--accent-amber, #f59e0b); }
.pm-lb-streak-ice  { color: var(--accent-cyan, #22d3ee); }

/* Sortable column headers */
.pm-lb-sortable {
    cursor: pointer;
    user-select: none;
}
.pm-lb-sortable:hover {
    color: var(--text-primary, #e2e8f0);
}
.pm-lb-sortable i {
    font-size: 9px;
    margin-left: 2px;
    opacity: 0.7;
}

/* Flows Performance header right (cog + chevron) */
.pm-lb-hdr-right {
    display: flex;
    align-items: center;
    gap: 6px;
}
.pm-lb-hdr-right .pm-btn-icon {
    color: var(--pm-zombie);
}
.pm-lb-hdr-right .pm-btn-icon:hover {
    background: var(--pm-zombie-dim);
}

/* Clickable wallet source badge */
.pm-badge-wallet-link {
    text-decoration: none;
    cursor: pointer;
}
.pm-badge-wallet-link:hover {
    filter: brightness(1.3);
    text-decoration: underline;
}

/* ── Layout Stabilization ──────────────────────────────────────────── */
.pm-table-unified-wrap {
    min-height: 120px;
}
.pm-table-unified-wrap .pm-table {
    table-layout: fixed;
    width: 100%;
}
.pm-table-unified-wrap .pm-table th:nth-child(1) { width: 28%; }  /* Market */
.pm-table-unified-wrap .pm-table th:nth-child(2) { width: 22%; }  /* Info/badges */
.pm-table-unified-wrap .pm-table th:nth-child(3) { width: 7%; }   /* Size */
.pm-table-unified-wrap .pm-table th:nth-child(4) { width: 7%; }   /* Entry */
.pm-table-unified-wrap .pm-table th:nth-child(5) { width: 7%; }   /* SL */
.pm-table-unified-wrap .pm-table th:nth-child(6) { width: 7%; }   /* TP */
.pm-table-unified-wrap .pm-table th:nth-child(7) { width: 7%; }   /* Now/Exit */
.pm-table-unified-wrap .pm-table th:nth-child(8) { width: 7%; }   /* To Win */
.pm-table-unified-wrap .pm-table th:nth-child(9) { width: 8%; }   /* PnL/Action */
.pm-td-market {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Wallet Settings Modal — Professional Redesign
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-modal-pro {
    max-width: 520px;
    padding: 14px 16px;
    border: 1px solid var(--pm-zombie-glow);
    box-shadow: 0 8px 40px rgba(0,0,0,0.5), 0 0 30px var(--pm-zombie-dim);
    border-radius: var(--radius-lg, 12px);
    text-align: left;
}
.pm-zombie-modal-pro .pm-modal-btns {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--pm-zombie-dim);
}
.pm-zombie-modal-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--pm-zombie-dim);
    cursor: grab;
    user-select: none;
}
.pm-zombie-modal-header:active { cursor: grabbing; }
.pm-zombie-modal-header h3 {
    margin: 0;
    font-size: 14px;
    color: var(--pm-zombie);
}
.pm-zombie-modal-header p { margin: 2px 0 0; }
.pm-zombie-modal-icon {
    width: 30px; height: 30px;
    border-radius: var(--radius-sm, 6px);
    background: var(--pm-zombie-dim);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pm-zombie);
    font-size: 15px;
    border: 1px solid var(--pm-zombie-glow);
    flex-shrink: 0;
}

/* Sections with stroke border */
.pm-zombie-section {
    border: 1px solid var(--pm-zombie-dim);
    border-radius: var(--radius-sm, 6px);
    padding: 5px 8px;
    margin-bottom: 5px;
    background: var(--pm-zombie-dim);
}
.pm-zombie-section-title {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--pm-zombie);
    margin-bottom: 3px;
    display: flex;
    align-items: center;
    gap: 5px;
}
.pm-zombie-section-title i {
    font-size: 9px;
    opacity: 0.7;
}

/* Expiry Sniper section accent */
.pm-zombie-section-sniper {
    border-color: var(--pm-sniper-dim);
    background: var(--pm-sniper-dim);
}
.pm-zombie-section-sniper .pm-zombie-section-title {
    color: var(--pm-sniper);
}
.pm-zombie-section-sniper .pm-zombie-setting-label i {
    color: var(--pm-sniper);
}

/* Opposite-Side Hedge section accent */
.pm-zombie-section-hedge {
    border-color: var(--pm-hedge-dim);
    background: var(--pm-hedge-dim);
}
.pm-zombie-section-hedge .pm-zombie-section-title {
    color: var(--pm-hedge);
}
.pm-zombie-section-hedge .pm-zombie-setting-label i {
    color: var(--pm-hedge);
}

/* Settings row */
.pm-zombie-setting-row {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 2px 0;
    flex-wrap: wrap;
}

/* Compact metrics row — inline grid for numeric fields */
.pm-zombie-metrics-row {
    display: flex;
    gap: 6px;
    padding: 2px 0;
    flex-wrap: wrap;
}
.pm-zombie-metric {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pm-zombie-metric-label {
    font-size: 9px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--text-muted, #64748b);
}
.pm-zombie-setting-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-primary, #e2e8f0);
    white-space: nowrap;
}
.pm-zombie-setting-label i {
    color: var(--pm-zombie);
    margin-right: 4px;
    font-size: 10px;
}
.pm-zombie-setting-row .pm-text-xs {
    flex: 1;
}

/* Stats row in zombie modal — inline chips, not dashboard cards */
.pm-zombie-stats-row {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}
.pm-zombie-status-row {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}
.pm-zombie-status-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 10px;
    border-radius: 10px;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.3px;
}
.pm-zombie-status-tag i { font-size: 0.68rem; }
.pm-tag-on {
    color: var(--color-success, #22c55e);
    background: var(--bg-deepest, rgba(0,0,0,0.15));
    border: 1px solid var(--color-success, #22c55e);
    opacity: 0.85;
}
.pm-tag-off {
    color: var(--text-muted, #64748b);
    background: var(--bg-deepest, rgba(0,0,0,0.15));
    border: 1px solid var(--border-default, #2d3548);
    opacity: 0.6;
}
.pm-zombie-stat {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 7px;
    background: var(--bg-deepest, rgba(0,0,0,0.15));
    border-radius: 10px;
    border: none;
    font-size: 10px;
}
.pm-zombie-stat-val {
    font-size: 11px;
    font-weight: 700;
    color: var(--pm-zombie);
    font-variant-numeric: tabular-nums;
}
.pm-zombie-stat-lbl {
    font-size: 9px;
    color: var(--text-muted, #64748b);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Wallet list */
.pm-zombie-wallet-list {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 5px 0;
    max-height: 220px;
    overflow-y: auto;
}
.pm-zombie-wallet-row {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 5px 8px;
    border-radius: var(--radius-sm, 6px);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    background: var(--bg-deepest, rgba(0,0,0,0.15));
    transition: border-color 0.15s;
}
.pm-zombie-wallet-row:hover {
    border-color: var(--pm-zombie-dim);
}
.pm-zombie-wallet-top {
    display: flex;
    gap: 6px;
    align-items: center;
}
.pm-zombie-wallet-top .pm-zombie-addr {
    flex: 1;
    font-family: var(--font-mono, monospace);
    font-size: 11px;
    min-width: 0;
}
.pm-zombie-wallet-top .pm-zombie-label {
    width: 100px;
    flex-shrink: 0;
    font-size: 11px;
}
.pm-zombie-wallet-bottom {
    display: flex;
    gap: 6px;
    align-items: center;
}
.pm-zombie-wallet-bottom .pm-zombie-link {
    flex: 1;
    font-size: 11px;
    min-width: 0;
}
.pm-zombie-perf {
    font-size: 11px;
    white-space: nowrap;
    flex-shrink: 0;
}
.pm-zombie-actions {
    margin-bottom: 4px;
}
.pm-zombie-remove {
    color: var(--accent-rose, #f43f5e);
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: 11px;
    padding: 2px 4px;
    opacity: 0.5;
    flex-shrink: 0;
}
.pm-zombie-remove:hover { opacity: 1; }

/* ═══════════════════════════════════════════════════════════════════════
   Colored Metrics — white icons, colored values
   ═══════════════════════════════════════════════════════════════════════ */
.pm-metric-icon {
    color: var(--text-secondary, #94a3b8);
    font-size: 10px;
    margin-right: 2px;
}
.pm-wl-win {
    color: var(--pm-teal, #10b981);
    font-weight: 700;
    font-size: 11px;
}
.pm-wl-loss {
    color: var(--accent-rose, #f43f5e);
    font-weight: 700;
    font-size: 11px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Closed Position Row Visuals — win/loss tint
   ═══════════════════════════════════════════════════════════════════════ */
.pm-row-win {
    background: var(--color-profit-dim);
    border-left: 2px solid var(--pm-teal, #10b981);
}
.pm-row-loss {
    background: var(--color-loss-dim);
    border-left: 2px solid var(--accent-rose, #f43f5e);
}
.pm-pnl-badge {
    font-weight: 700;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 11px;
}
.pm-closed-win {
    background: var(--color-profit-dim);
}
.pm-closed-loss {
    background: var(--color-loss-dim);
}

/* ═══════════════════════════════════════════════════════════════════════
   Minicard Zombie Theming
   ═══════════════════════════════════════════════════════════════════════ */
.pm-mini-zombie {
    border-color: var(--pm-zombie-glow) !important;
}
.pm-mini-icon-zombie {
    background: var(--pm-zombie-dim) !important;
    color: var(--pm-zombie) !important;
    animation: pmZombieDot 2s ease-in-out infinite;
}
.pm-mini-zmb-tag {
    font-size: 9px;
    font-weight: 700;
    color: var(--pm-zombie);
    background: var(--pm-zombie-dim);
    padding: 0 4px;
    border-radius: 3px;
    margin-left: 4px;
    vertical-align: middle;
}

/* ═══════════════════════════════════════════════════════════════════════
   Amber / Dim / Yellow dots for zombie indicators
   ═══════════════════════════════════════════════════════════════════════ */
.pm-dot-amber {
    background: var(--accent-amber, #f59e0b);
    box-shadow: 0 0 4px var(--accent-amber, #f59e0b);
}
.pm-dot-dim {
    background: var(--text-tertiary, #555);
    box-shadow: none;
    opacity: 0.4;
}
.pm-dot-yellow {
    background: var(--accent-yellow, #eab308);
    box-shadow: 0 0 4px var(--accent-yellow, #eab308);
}

/* ═══════════════════════════════════════════════════════════════════════
   Backtest Tab
   ═══════════════════════════════════════════════════════════════════════ */
.pm-bt-container { padding: 4px 0; }
.pm-bt-form { display: flex; flex-direction: column; gap: 10px; }
.pm-bt-field { display: flex; flex-direction: column; gap: 4px; }
.pm-bt-field-full { width: 100%; }
.pm-bt-field label { font-size: 0.78rem; color: var(--text-secondary, #94a3b8); font-weight: 500; }
.pm-bt-row { display: flex; gap: 10px; }
.pm-bt-row .pm-bt-field { flex: 1; }
.pm-bt-desc { opacity: 0.7; margin: 0 0 12px; font-size: 0.82rem; }
.pm-bt-optional { opacity: 0.5; }

.pm-bt-summary { margin-top: 16px; }
.pm-bt-summary h3 {
    font-size: 0.9rem;
    color: var(--text-primary, #e2e8f0);
    margin: 0 0 10px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
}
.pm-bt-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}
.pm-bt-stat {
    background: var(--bg-elevated, #1a2235);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    border-radius: 6px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.pm-bt-label { font-size: 0.7rem; color: var(--text-tertiary, #64748b); text-transform: uppercase; letter-spacing: 0.3px; }
.pm-bt-val { font-size: 0.95rem; font-weight: 600; color: var(--text-primary, #e2e8f0); }
.pm-bt-win { color: var(--accent-teal, #10b981) !important; }
.pm-bt-loss { color: var(--accent-red, #ef4444) !important; }

.pm-bt-strats {
    display: flex; gap: 20px;
    font-size: 0.8rem;
    color: var(--text-secondary, #94a3b8);
    margin-bottom: 14px;
}

/* Exit reasons tags */
.pm-bt-exit-reasons {
    display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
    margin-bottom: 14px;
}
.pm-bt-exit-reasons .pm-bt-label { margin-right: 4px; }
.pm-bt-reason-tag {
    background: var(--bg-elevated, #1a2235);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    border-radius: 4px;
    padding: 2px 8px;
    font-size: 0.72rem;
    color: var(--text-secondary, #94a3b8);
}

/* Equity curve chart */
.pm-bt-chart-section {
    margin-top: 12px;
    margin-bottom: 12px;
}
.pm-bt-chart-section h4 {
    font-size: 0.82rem;
    color: var(--text-primary, #e2e8f0);
    margin: 0 0 8px;
}
.pm-bt-canvas {
    width: 100%;
    height: 180px;
    background: var(--bg-elevated, #1a2235);
    border: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
    border-radius: 6px;
}

/* Trade log */
.pm-bt-trades { margin-top: 10px; }
.pm-bt-trades h4 {
    font-size: 0.82rem;
    color: var(--text-primary, #e2e8f0);
    margin: 0 0 6px;
}
.pm-bt-table-wrap { overflow-x: auto; }
.pm-bt-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.75rem;
}
.pm-bt-table th {
    text-align: left;
    padding: 5px 6px;
    color: var(--text-tertiary, #64748b);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.08));
    font-weight: 500;
    text-transform: uppercase;
    font-size: 0.68rem;
    letter-spacing: 0.3px;
}
.pm-bt-table td {
    padding: 4px 6px;
    color: var(--text-secondary, #94a3b8);
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.04));
}
.pm-bt-table tr.pm-bt-win td:nth-child(7),
.pm-bt-table tr.pm-bt-win td:nth-child(8) { color: var(--accent-teal, #10b981); }
.pm-bt-table tr.pm-bt-loss td:nth-child(7),
.pm-bt-table tr.pm-bt-loss td:nth-child(8) { color: var(--accent-red, #ef4444); }

/* Pagination */
.pm-bt-pagination {
    display: flex; align-items: center; gap: 10px; margin: 8px 0;
    font-size: 0.78rem;
}
.pm-bt-page-info { color: var(--text-tertiary, #64748b); flex: 1; text-align: center; }

/* Empty state */
.pm-bt-empty {
    text-align: center;
    padding: 32px 16px;
    color: var(--text-tertiary, #64748b);
}
.pm-bt-empty i { font-size: 2rem; margin-bottom: 12px; opacity: 0.5; }
.pm-bt-empty p { margin: 4px 0; font-size: 0.82rem; }
.pm-bt-hint { opacity: 0.6; font-size: 0.75rem !important; }

/* Error state */
.pm-bt-error {
    display: flex; align-items: center; gap: 10px;
    background: var(--color-danger-dim);
    border: 1px solid var(--color-danger-dim);
    border-radius: 6px;
    padding: 12px 16px;
    margin-top: 14px;
    color: var(--accent-red, #ef4444);
    font-size: 0.82rem;
}
.pm-bt-error i { font-size: 1.1rem; flex-shrink: 0; }

/* Loading skeleton */
.pm-bt-loading { margin-top: 16px; }
.pm-bt-skeleton-row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 8px;
    margin-bottom: 12px;
}
.pm-bt-skeleton {
    background: linear-gradient(90deg,
        var(--bg-elevated, #1a2235) 25%,
        rgba(255,255,255,0.06) 50%,
        var(--bg-elevated, #1a2235) 75%
    );
    background-size: 200% 100%;
    animation: pm-bt-shimmer 1.5s infinite;
    border-radius: 6px;
}
.pm-bt-skeleton-stat { height: 52px; }
.pm-bt-skeleton-chart { height: 180px; margin-bottom: 12px; }
.pm-bt-skeleton-table { height: 120px; }
@keyframes pm-bt-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Zombie Market Asset Selector — collapsible card with toggleable chips
   ═══════════════════════════════════════════════════════════════════════════ */

/* Collapsible header */
.pm-zombie-assets-header {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    padding: 2px 0;
}
.pm-zombie-assets-header .pm-zombie-section-title {
    margin-bottom: 0;
    flex: 1;
}

/* Market type badge inside assets header */
.pm-market-type-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 10px;
    letter-spacing: 0.5px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.pm-mt-binary {
    background: var(--accent-cyan-dim, rgba(0, 188, 212, 0.15));
    color: var(--accent-cyan, #00bcd4);
    border: 1px solid var(--accent-cyan, #00bcd4);
}
.pm-mt-prediction {
    background: var(--accent-purple-dim, rgba(156, 39, 176, 0.15));
    color: var(--accent-purple, #9c27b0);
    border: 1px solid var(--accent-purple, #9c27b0);
}
.pm-mt-all {
    background: var(--accent-amber-dim, rgba(255, 193, 7, 0.15));
    color: var(--accent-amber, #ffc107);
    border: 1px solid var(--accent-amber, #ffc107);
}

.pm-zombie-assets-chevron {
    font-size: 10px;
    color: var(--text-muted, #64748b);
    transition: transform 0.2s ease;
}
/* Market type select inside assets header */
.pm-mkt-type-select {
    font-size: 10px;
    padding: 1px 6px;
    min-width: 0;
    width: auto;
    border-radius: 10px;
}
.pm-zombie-assets-collapsed .pm-zombie-assets-chevron {
    transform: rotate(-90deg);
}
.pm-zombie-assets-body {
    margin-top: 4px;
}
.pm-zombie-assets-collapsed .pm-zombie-assets-body {
    display: none;
}

/* Dimmed state when master toggle is off */
.pm-zombie-assets-disabled .pm-zombie-assets-body {
    opacity: 0.35;
    pointer-events: none;
}

/* ALL toggle row */
.pm-zombie-assets-all-row {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 4px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--border-subtle, rgba(255,255,255,0.06));
}
.pm-zombie-assets-all-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-secondary, #94a3b8);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* Chip grid */
.pm-zombie-chip-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* Individual asset chip */
.pm-zombie-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 26px;
    padding: 2px 10px;
    border-radius: 13px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    cursor: pointer;
    user-select: none;
    border: 1px solid var(--pm-zombie-dim);
    background: transparent;
    color: var(--text-muted, #64748b);
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.pm-zombie-chip:hover {
    border-color: var(--pm-zombie);
    color: var(--text-primary, #e2e8f0);
}
.pm-zombie-chip.pm-chip-selected {
    background: var(--pm-zombie-dim);
    color: var(--pm-zombie);
    border-color: var(--pm-zombie);
}
.pm-zombie-chip.pm-chip-all-active {
    opacity: 0.5;
    pointer-events: none;
}

/* ═══════════════════════════════════════════════════════════════════════
   Connection Indicator — Dim State
   ═══════════════════════════════════════════════════════════════════════ */
.pm-conn-dim {
    opacity: 0.35;
    filter: grayscale(0.7);
}

/* ── Wallet Copy-Trade Pill ──────────────────────────────────────────── */
.pm-conn-wlt:not(.pm-conn-dim) {
    color: var(--pm-zombie, #c084fc);
}

/* ── Probability Engine / Kelly Pill ─────────────────────────────────── */
.pm-conn-kel {
    color: var(--pm-sniper, #f59e0b);
}
.pm-conn-kel i.fa-brain {
    font-size: 9px;
}

/* ── Circuit Breaker Active Pill ─────────────────────────────────────── */
.pm-cb-active {
    color: var(--om-error, #ef4444);
    animation: pm-cb-pulse 1.5s ease-in-out infinite;
}
.pm-cb-active i.fa-shield-alt {
    font-size: 9px;
}
@keyframes pm-cb-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Telemetry Row (Dashboard)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-telemetry-row {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 10px;
    color: var(--text-tertiary, #64748b);
    padding: 4px 0 2px;
    flex-wrap: wrap;
}
.pm-zombie-telemetry-row span {
    font-variant-numeric: tabular-nums;
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Modal — Inline Style Replacements
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-modal-title-wrap {
    flex: 1;
}
.pm-zombie-ml-gap {
    margin-left: 8px;
}
.pm-zombie-mt {
    margin-top: 4px;
}
.pm-zombie-hint-right {
    margin-left: auto;
}

/* ── Base input class for zombie modal inputs ────────────────────────── */
.pm-input {
    padding: 4px 8px;
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-sm, 6px);
    background: var(--bg-base, var(--pm-surface, #0f1724));
    color: var(--text-primary, #e2e8f0);
    font-size: 13px;
    font-family: inherit;
    font-variant-numeric: tabular-nums;
    transition: border-color 0.15s;
    color-scheme: dark;
}
.pm-input:focus {
    outline: none;
    border-color: var(--pm-zombie);
    box-shadow: 0 0 0 2px var(--pm-zombie-dim);
}
.pm-input-sm {
    font-size: 11px;
    padding: 2px 6px;
}
select.pm-input {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 6px center;
    padding-right: 22px;
    cursor: pointer;
}
select.pm-input option {
    background: var(--bg-surface, var(--pm-surface, #111827));
    color: var(--text-primary, #e2e8f0);
    padding: 4px 8px;
}
.pm-input-narrow {
    width: 58px;
}
.pm-input-auto {
    width: auto;
    min-width: 110px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Zombie Modal — Collapsible Section Toggle
   ═══════════════════════════════════════════════════════════════════════ */
.pm-zombie-section-toggle {
    cursor: pointer;
    user-select: none;
}
.pm-zombie-section-toggle .pm-zombie-section-chevron {
    transition: transform 0.2s ease;
    margin-left: auto;
    font-size: 10px;
    color: var(--text-tertiary, #64748b);
}
.pm-zombie-section-toggle.pm-section-collapsed .pm-zombie-section-chevron {
    transform: rotate(-90deg);
}
.pm-zombie-section-body {
    transition: max-height 0.25s ease, opacity 0.2s ease;
    overflow: hidden;
}
.pm-zombie-section-body.pm-section-hidden {
    max-height: 0 !important;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 0;
}

/* ═══════════════════════════════════════════════════════════════════════
   Mini Card — Meta Line (Position Count + Balance)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-mini-meta {
    font-size: 11px;
    color: var(--text-secondary, #94a3b8);
    font-variant-numeric: tabular-nums;
}

/* ═══════════════════════════════════════════════════════════════════════
   Trade Row — Badge Wrap (flex overflow)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-badge-wrap {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 2px;
    align-items: center;
    vertical-align: middle;
}

/* ═══════════════════════════════════════════════════════════════════════
   Alpha Scouter — CSS Classes (replacing inline styles)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-scout-actions-bar {
    padding: 8px 12px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.pm-scout-traders-list {
    padding: 8px 12px;
    max-height: 300px;
    overflow-y: auto;
}
.pm-scout-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 0;
    border-bottom: 1px solid var(--pm-border, rgba(255,255,255,0.06));
    font-size: 12px;
}
.pm-scout-addr {
    font-family: monospace;
    color: var(--text-primary, #e5e7eb);
    min-width: 90px;
    font-size: 11px;
}
.pm-scout-status-col {
    min-width: 80px;
}
.pm-scout-status {
    font-size: 11px;
}
.pm-scout-promoted {
    color: var(--accent-teal, #10b981);
    font-weight: 600;
}
.pm-scout-demoted {
    color: var(--accent-rose, #f43f5e);
    font-weight: 600;
}
.pm-scout-candidate {
    color: var(--text-secondary, #9ca3af);
}
.pm-scout-trust {
    color: var(--pm-cyan, #06b6d4);
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}
.pm-scout-action-btn {
    font-size: 10px;
    padding: 2px 6px;
}
.pm-scout-empty {
    color: var(--text-secondary, #9ca3af);
    font-size: 12px;
    padding: 8px;
}
.pm-scout-error {
    color: var(--accent-rose, #f43f5e);
    font-size: 12px;
    padding: 8px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Market Type Filter Badge (Engine Status Row)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-mkt-badge-all {
    background: var(--accent-amber-dim, rgba(245,158,11,0.12));
    color: var(--accent-amber, #f59e0b);
    font-size: 10px;
}
.pm-mkt-badge-bin {
    background: var(--accent-cyan-dim, rgba(0,188,212,0.12));
    color: var(--accent-cyan, #00bcd4);
    font-size: 10px;
}
.pm-mkt-badge-pred {
    background: var(--accent-purple-dim, rgba(168,85,247,0.12));
    color: var(--accent-purple, #a855f7);
    font-size: 10px;
}
.pm-mkt-badge-ud {
    background: var(--accent-amber-dim, rgba(245,158,11,0.12));
    color: var(--accent-amber, #f59e0b);
    font-size: 10px;
}

/* ═══════════════════════════════════════════════════════════════════════
   Kamoni Live Scores Row (Dashboard)
   ═══════════════════════════════════════════════════════════════════════ */
.pm-kamoni-scores-row {
    font-size: 10px;
    gap: 10px;
}
.pm-kamoni-scores-row i.fa-broadcast-tower {
    margin-right: 2px;
    opacity: 0.6;
}

/* ═══════════════════════════════════════════════════════════════════════
   Panic Modal — Checkbox Label
   ═══════════════════════════════════════════════════════════════════════ */
.pm-modal-check-label {
    display: flex;
    align-items: center;
    gap: 6px;
    cursor: pointer;
}

/* ═══════════════════════════════════════════════════════════════════════
   Scout Finder — Interactive Trader Discovery Panel
   ═══════════════════════════════════════════════════════════════════════ */
.pm-finder-backdrop {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    z-index: 9500;
    background: var(--bg-overlay);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease-out;
}
.pm-finder-backdrop.pm-finder-visible { opacity: 1; }
.pm-finder-panel {
    width: 400px;
    max-width: calc(100% - 32px);
    max-height: calc(100vh - 80px);
    background: var(--pm-surface);
    border: 1px solid var(--pm-zombie);
    border-radius: var(--radius-lg, 12px);
    box-shadow: 0 8px 40px rgba(0,0,0,0.5), 0 0 20px var(--pm-zombie-dim);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.pm-finder-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border-bottom: 1px solid var(--pm-zombie-dim);
    cursor: grab;
    user-select: none;
}
.pm-finder-header:active { cursor: grabbing; }
.pm-finder-icon {
    width: 28px; height: 28px;
    border-radius: var(--radius-sm, 6px);
    background: var(--pm-zombie-dim);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--pm-zombie);
    font-size: 13px;
    flex-shrink: 0;
}
.pm-finder-header h3 {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: var(--pm-zombie);
    flex: 1;
}
.pm-finder-close {
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    font-size: 14px;
    padding: 2px 4px;
    border-radius: var(--radius-sm, 4px);
}
.pm-finder-close:hover { color: var(--text-primary); background: var(--bg-hover); }

.pm-finder-controls {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    padding: 10px 14px 6px;
    border-bottom: none;
    align-items: center;
}
.pm-finder-tags {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
    width: 100%;
}
.pm-finder-tag {
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    border-radius: 16px;
    color: var(--text-secondary);
    font-size: 11px;
    font-weight: 600;
    padding: 4px 12px;
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}
.pm-finder-tag i { margin-right: 4px; font-size: 10px; }
.pm-finder-tag:hover {
    border-color: var(--pm-zombie);
    color: var(--pm-zombie);
    background: var(--pm-zombie-dim);
}
.pm-finder-tag.active {
    background: var(--pm-zombie);
    color: var(--text-inverse);
    border-color: var(--pm-zombie);
}
.pm-finder-row2 {
    display: flex;
    gap: 6px;
    padding: 6px 14px 8px;
    border-bottom: 1px solid var(--border-subtle);
    align-items: center;
}
.pm-finder-select {
    flex: 1;
    background: var(--pm-elevated);
    border: 1px solid var(--pm-border);
    border-radius: var(--radius-sm, 4px);
    color: var(--text-primary);
    font-size: 11px;
    padding: 5px 8px;
    outline: none;
}
.pm-finder-select:focus { border-color: var(--pm-zombie); }
.pm-finder-search-btn {
    background: var(--pm-zombie-dim);
    border: 1px solid var(--pm-zombie);
    border-radius: var(--radius-sm, 4px);
    color: var(--pm-zombie);
    font-size: 11px;
    padding: 5px 12px;
    cursor: pointer;
    white-space: nowrap;
    font-weight: 600;
}
.pm-finder-search-btn:hover { background: var(--pm-zombie); color: var(--text-inverse); }
.pm-finder-search-btn:disabled { opacity: 0.5; cursor: not-allowed; }

.pm-finder-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px 14px;
    min-height: 80px;
}
.pm-finder-empty {
    text-align: center;
    color: var(--text-muted);
    font-size: 11px;
    padding: 24px 0;
}
.pm-finder-error {
    text-align: center;
    color: var(--color-danger);
    font-size: 11px;
    padding: 24px 0;
}
.pm-finder-loading {
    text-align: center;
    color: var(--pm-zombie);
    font-size: 11px;
    padding: 24px 0;
}
.pm-finder-loading i { animation: pmFaSpin 1s linear infinite; }
@keyframes pmFaSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Live progress indicator */
.pm-finder-progress {
    padding: 20px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}
.pm-finder-progress-phase {
    font-size: 12px;
    color: var(--pm-zombie);
    font-weight: 500;
    letter-spacing: 0.3px;
}
.pm-finder-progress-phase i {
    margin-right: 6px;
    animation: pmFaSpin 1.2s linear infinite;
}
.pm-finder-progress-bar-container {
    width: 100%;
    height: 6px;
    background: var(--border-subtle);
    border-radius: 3px;
    overflow: hidden;
}
.pm-finder-progress-bar {
    height: 100%;
    background: var(--pm-zombie);
    border-radius: 3px;
    transition: width 0.3s ease;
    box-shadow: 0 0 8px color-mix(in srgb, var(--pm-zombie) 40%, transparent);
}
.pm-finder-progress-stats {
    display: flex;
    gap: 14px;
    font-size: 11px;
    color: var(--text-muted);
}
.pm-finder-prog-found {
    color: var(--color-success);
}
.pm-finder-prog-found i,
.pm-finder-prog-skipped i {
    margin-right: 3px;
    font-size: 10px;
}
.pm-finder-prog-skipped {
    color: var(--text-muted);
}
.pm-finder-prog-pct {
    color: var(--pm-zombie);
    font-weight: 600;
}

/* Result count */
.pm-finder-result-count {
    font-size: 10px;
    color: var(--text-muted);
    padding: 0 0 6px;
    letter-spacing: 0.3px;
}
/* Trader card */
.pm-finder-card {
    border: 1px solid var(--border-subtle);
    border-radius: var(--radius-sm, 6px);
    padding: 10px 12px;
    margin-bottom: 8px;
    background: var(--pm-elevated);
    transition: border-color 0.2s, box-shadow 0.2s;
}
.pm-finder-card:hover { border-color: var(--pm-zombie); box-shadow: 0 2px 12px rgba(0,0,0,0.15); }
.pm-finder-card-top {
    display: flex;
    align-items: center;
    gap: 8px;
}
.pm-finder-rank {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-muted);
    width: 22px;
    text-align: center;
    flex-shrink: 0;
}
.pm-finder-card:first-child .pm-finder-rank { color: var(--accent-amber); }
.pm-finder-rank-badge {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 800;
}
.pm-finder-rank-badge.pm-medal-gold {
    background: var(--accent-amber-dim);
    color: var(--accent-amber, #f59e0b);
    border: 1.5px solid var(--accent-amber, #f59e0b);
    font-size: 13px;
}
.pm-finder-rank-badge.pm-medal-silver {
    background: var(--bg-active);
    color: var(--text-secondary, #94a3b8);
    border: 1.5px solid var(--text-secondary, #94a3b8);
    font-size: 12px;
}
.pm-finder-rank-badge.pm-medal-bronze {
    background: var(--color-warning-dim);
    color: var(--color-warning, #d97706);
    border: 1.5px solid var(--color-warning, #d97706);
    font-size: 12px;
}
.pm-finder-rank-badge.pm-rank-num {
    background: var(--bg-hover);
    color: var(--text-muted);
    border: 1px solid var(--border-subtle);
    font-size: 10px;
}
.pm-finder-card-info { flex: 1; min-width: 0; }
.pm-finder-name {
    font-size: 12px;
    font-weight: 600;
    color: var(--text-primary);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pm-finder-addr {
    font-size: 10px;
    color: var(--text-muted);
    font-family: monospace;
}
.pm-finder-trust {
    font-size: 20px;
    font-weight: 800;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 2px solid;
}
.pm-finder-trust.trust-high { color: var(--color-success); border-color: var(--color-success); background: rgba(16,185,129,0.08); }
.pm-finder-trust.trust-mid  { color: var(--color-warning); border-color: var(--color-warning); background: rgba(245,158,11,0.08); }
.pm-finder-trust.trust-low  { color: var(--color-danger);  border-color: var(--color-danger);  background: rgba(239,68,68,0.08); }

.pm-finder-metrics {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    font-size: 10px;
}
.pm-finder-stat {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px 6px;
    background: var(--bg-hover);
    border-radius: var(--radius-sm, 4px);
}
.pm-finder-metric-label { color: var(--text-muted); font-size: 9px; text-transform: uppercase; letter-spacing: 0.3px; }
.pm-finder-metric-val   { color: var(--text-primary); font-weight: 700; font-size: 12px; }
.pm-finder-metric-val.pnl-pos { color: var(--color-success); }
.pm-finder-metric-val.pnl-neg { color: var(--color-danger); }
.pm-finder-metric-val.wr-good { color: var(--color-success); }
.pm-finder-metric-val.wr-mid  { color: var(--color-warning); }
.pm-finder-metric-val.wr-low  { color: var(--color-danger); }
.pm-finder-wr-bar {
    height: 3px;
    border-radius: 2px;
    background: var(--border-subtle);
    overflow: hidden;
    margin-top: 2px;
}
.pm-finder-wr-fill {
    height: 100%;
    border-radius: 2px;
    transition: width 0.4s ease;
}
.pm-finder-wr-fill.wr-good { background: var(--color-success); }
.pm-finder-wr-fill.wr-mid  { background: var(--color-warning); }
.pm-finder-wr-fill.wr-low  { background: var(--color-danger); }

.pm-finder-metric-val.tph-hyper { color: var(--color-info); font-weight: 700; }
.pm-finder-metric-val.tph-active { color: var(--color-success); }

.pm-finder-card-actions {
    display: flex;
    gap: 6px;
    margin-top: 8px;
    justify-content: flex-end;
}
.pm-finder-details-btn,
.pm-finder-pick-btn {
    font-size: 10px;
    padding: 4px 14px;
    border-radius: var(--radius-sm, 4px);
    cursor: pointer;
    border: 1px solid;
    font-weight: 600;
    transition: all 0.15s;
}
.pm-finder-details-btn {
    background: transparent;
    border-color: var(--border-default);
    color: var(--text-secondary);
}
.pm-finder-details-btn:hover { border-color: var(--text-primary); color: var(--text-primary); }
.pm-finder-pick-btn {
    background: var(--pm-zombie-dim);
    border-color: var(--pm-zombie);
    color: var(--pm-zombie);
}
.pm-finder-pick-btn:hover { background: var(--pm-zombie); color: var(--text-inverse); }
.pm-finder-pick-btn:disabled { opacity: 0.4; cursor: not-allowed; }
.pm-finder-visit-btn {
    font-size: 10px;
    padding: 4px 10px;
    border-radius: var(--radius-sm, 4px);
    cursor: pointer;
    border: 1px solid var(--border-default);
    font-weight: 600;
    transition: all 0.15s;
    background: transparent;
    color: var(--text-secondary);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.pm-finder-visit-btn:hover { border-color: var(--color-info); color: var(--color-info); }
.pm-finder-visit-btn i { font-size: 9px; }

/* Pagination */
.pm-finder-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 10px 0 4px;
    border-top: 1px solid var(--border-subtle);
    margin-top: 4px;
}
.pm-finder-page-btn {
    font-size: 10px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: var(--radius-sm, 4px);
    cursor: pointer;
    border: 1px solid var(--border-default);
    background: transparent;
    color: var(--text-secondary);
    transition: all 0.15s;
}
.pm-finder-page-btn:hover:not(:disabled) { border-color: var(--pm-zombie); color: var(--pm-zombie); }
.pm-finder-page-btn:disabled { opacity: 0.3; cursor: not-allowed; }
.pm-finder-page-indicator {
    font-size: 10px;
    color: var(--text-muted);
    font-weight: 600;
}

.pm-finder-detail-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 3px 10px;
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px solid var(--border-subtle);
    font-size: 10px;
}
.pm-finder-detail-grid .pm-finder-metric-label { grid-column: 1; }
.pm-finder-detail-grid .pm-finder-metric-val   { grid-column: 2; text-align: right; }

.pm-finder-tracked-badge {
    font-size: 9px;
    background: var(--accent-amber-dim);
    color: var(--accent-amber);
    border-radius: 3px;
    padding: 1px 5px;
    font-weight: 600;
    margin-left: 4px;
}
.pm-finder-trigger {
    margin-left: 4px;
    color: var(--pm-zombie);
}
.pm-finder-trigger:hover {
    color: var(--pm-zombie);
    opacity: 0.85;
}
