*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#0f0f11;color:#e2e8f0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:13px;min-height:100vh}header{padding:10px 20px;border-bottom:1px solid #1e1e2e;display:flex;align-items:center;gap:16px}header h1{font-size:13px;font-weight:600;color:#7c3aed;letter-spacing:.05em;text-transform:uppercase}header span{font-size:11px;color:#4b5563}header nav{display:flex;align-items:center;gap:12px;margin-left:auto}header nav a{font-size:11px;color:#4b5563;text-decoration:none;padding:3px 8px;border-radius:4px;border:1px solid #2d2d44;transition:color .1s,border-color .1s}header nav a:hover{color:#e2e8f0;border-color:#4b5563}.toolbar{display:flex;align-items:center;gap:10px;padding:8px 20px;border-bottom:1px solid #1e1e2e;flex-wrap:wrap}label{color:#6b7280;font-size:11px}select,button{background:#1a1a2e;border:1px solid #2d2d44;color:#e2e8f0;border-radius:4px;padding:5px 10px;font-size:12px;font-family:inherit;cursor:pointer}select:focus,button:focus{outline:2px solid #7c3aed;outline-offset:1px}button.primary{background:#7c3aed;border-color:#7c3aed;color:#fff;font-weight:600}button.primary:hover{background:#6d28d9}.threshold-group{display:flex;align-items:center;gap:6px;margin-left:auto}.threshold-group label{white-space:nowrap}.content{padding:20px;max-width:1100px}#status-bar{font-size:11px;color:#6b7280;padding:8px 20px;border-bottom:1px solid #1e1e2e;min-height:28px}.results-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:12px}thead th{text-align:left;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4b5563;padding:8px 12px;border-bottom:1px solid #1e1e2e;white-space:nowrap}thead th.right{text-align:right}tbody tr{border-bottom:1px solid #13131f;transition:background .08s}tbody tr:hover{background:#13131f}tbody td{padding:6px 10px;vertical-align:middle}tbody td.right{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tbody td:first-child{white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.cat-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;flex-shrink:0}.cat-dot.bullish{background:#22c55e}.cat-dot.bearish{background:#ef4444}.cat-dot.neutral{background:#facc15}.cat-dot.indicator{background:#a78bfa}.signal-name{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.signal-name.bullish .sig-label{color:#4ade80}.signal-name.bearish .sig-label{color:#f87171}.signal-name.neutral .sig-label{color:#fbbf24}.signal-name.indicator .sig-label{color:#a78bfa}.cat-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:3px;padding:1px 5px;flex-shrink:0}.cat-badge.bullish{background:#14532d44;color:#4ade80;border:1px solid #16653488}.cat-badge.bearish{background:#450a0a44;color:#f87171;border:1px solid #7f1d1d88}.cat-badge.neutral{background:#42200644;color:#fbbf24;border:1px solid #92400e88}.cat-badge.indicator{background:#2e106544;color:#a78bfa;border:1px solid #4c1d9588}.bar-wrap{width:80px;height:8px;background:#1a1a2e;border-radius:3px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:8px}.bar-inner{height:100%;border-radius:3px}.bar-inner.bullish{background:#22c55e}.bar-inner.bearish{background:#ef4444}.bar-inner.neutral{background:#facc15}.bar-inner.indicator{background:#a78bfa}.score-high{color:#4ade80;font-weight:700}.score-mid{color:#fbbf24;font-weight:700}.score-low{color:#f87171;font-weight:700}.delta{font-weight:600}.delta.good{color:#4ade80}.delta.warn{color:#facc15}.delta.bad{color:#f87171}.delta.na{color:#374151}.insuff{color:#374151;font-style:italic}.hits-frac{font-variant-numeric:tabular-nums}.hits-denom{color:#4b5563;font-size:11px}details.legend{background:#13131f;border:1px solid #1e1e2e;border-radius:6px;padding:12px 16px;margin-bottom:20px}details.legend summary{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#4b5563;cursor:pointer;user-select:none;list-style:none}details.legend summary::-webkit-details-marker{display:none}details.legend summary:before{content:"▸  "}details.legend[open] summary:before{content:"▾  "}.legend-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px 24px;margin-top:12px}.legend-item{display:flex;flex-direction:column;gap:2px}.legend-key{color:#9ca3af;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.legend-val{font-size:11px;color:#6b7280}.summary{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.card{background:#13131f;border:1px solid #1e1e2e;border-radius:6px;padding:12px 18px;min-width:120px}.card-val{font-size:22px;font-weight:700;color:#e2e8f0;margin-bottom:2px}.card-lbl{font-size:10px;color:#4b5563;text-transform:uppercase;letter-spacing:.05em}.card-val.green{color:#4ade80}.card-val.red{color:#f87171}.card-val.yellow{color:#facc15}.card-val.purple{color:#a78bfa}.empty{padding:40px 20px;color:#374151;text-align:center}thead th[data-sort]{cursor:pointer;user-select:none}thead th[data-sort]:hover{color:#9ca3af}thead th[data-sort].sorted{color:#a78bfa}.modal-overlay{display:none;position:fixed;inset:0;background:#000000a6;z-index:100;align-items:center;justify-content:center;padding:20px}.modal-overlay.open{display:flex}.modal{background:#13131f;border:1px solid #2d2d44;border-radius:8px;padding:24px 28px;max-width:480px;width:100%;position:relative}.modal-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.modal-title{font-size:15px;font-weight:700}.modal-cat{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:3px}.modal-close{position:absolute;top:14px;right:16px;background:none;border:none;color:#4b5563;font-size:18px;cursor:pointer;line-height:1;padding:2px 6px;border-radius:3px}.modal-close:hover{color:#e2e8f0}.modal-body{font-size:12px;color:#9ca3af;line-height:1.7}.modal-body p{margin-bottom:10px}.modal-body p:last-child{margin-bottom:0}.modal-body strong{color:#e2e8f0}.modal-section{margin-top:14px}.modal-section-label{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#374151;margin-bottom:6px}.modal-candle{display:flex;align-items:flex-end;gap:5px;height:64px;margin:8px 0 12px}.mc{display:flex;flex-direction:column;align-items:center;font-size:9px;color:#4b5563;gap:2px}.mc svg{flex-shrink:0}.modal-link{font-size:11px;color:#7c3aed;text-decoration:none}.modal-link:hover{color:#a78bfa}
