@import "tailwindcss"; :root { --font-display: "Avenir Next", "Segoe UI", "Helvetica Neue", Arial, sans-serif; --font-mono: "Menlo", "SFMono-Regular", "Consolas", "Liberation Mono", monospace; --bg-0: #121417; --bg-1: #181b20; --bg-2: #21252b; --panel: rgba(28, 31, 36, 0.84); --panel-soft: rgba(36, 39, 45, 0.72); --panel-bright: rgba(49, 53, 60, 0.94); --line-weak: rgba(196, 202, 211, 0.18); --line-strong: rgba(220, 226, 234, 0.34); --accent: #d9dee5; --accent-strong: #f4f7fb; --danger: #ff8e8e; --danger-soft: rgba(111, 46, 46, 0.42); --terminal-bright: #f3f5f7; --terminal-muted: #a1a9b3; --focus-ring: rgba(229, 231, 235, 0.14); } * { box-sizing: border-box; } html, body { margin: 0; padding: 0; } html { -webkit-text-size-adjust: 100%; } [data-sonner-toaster] { --normal-bg: rgba(31, 34, 39, 0.96); --normal-text: #f3f5f7; --normal-border: rgba(220, 226, 234, 0.24); --success-bg: rgba(34, 44, 39, 0.96); --success-text: #e4efe7; --success-border: rgba(163, 191, 171, 0.55); --error-bg: rgba(67, 27, 27, 0.96); --error-text: #ffd6d6; --error-border: rgba(255, 112, 112, 0.8); } [data-sonner-toast] { backdrop-filter: blur(8px); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28); } body { min-height: 100vh; overflow-x: hidden; font-family: var(--font-display), sans-serif; color: var(--terminal-bright); background: radial-gradient( circle at 18% -10%, rgba(170, 178, 188, 0.16), transparent 35% ), radial-gradient( circle at 84% 0%, rgba(121, 128, 138, 0.14), transparent 30% ), linear-gradient(140deg, var(--bg-0), var(--bg-1) 50%, var(--bg-2)); } .app-surface, .auth-page { position: relative; min-height: 100vh; overflow: hidden; } .ambient-grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(204, 210, 218, 0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(204, 210, 218, 0.05) 1px, transparent 1px); background-size: 34px 34px; mask-image: radial-gradient(ellipse at center, black 20%, transparent 75%); pointer-events: none; } .noise-layer { position: absolute; inset: 0; pointer-events: none; opacity: 0.24; background-image: radial-gradient( rgba(220, 226, 234, 0.1) 0.7px, transparent 0.7px ); background-size: 4px 4px; } .terminal-caption { font-family: var(--font-mono), monospace; } .panel-heading { font-family: var(--font-mono), monospace; letter-spacing: 0.08em; } a, button, input, select, textarea { touch-action: manipulation; } .data-table { width: 100%; border-collapse: collapse; } .data-surface { border: 1px solid var(--line-weak); border-radius: 1rem; background: linear-gradient( 180deg, rgba(40, 43, 49, 0.92), rgba(24, 27, 32, 0.78) ); } .data-table-wrap { overflow-x: auto; border: 1px solid var(--line-weak); border-radius: 1rem; background: linear-gradient( 180deg, rgba(34, 37, 42, 0.9), rgba(20, 23, 27, 0.76) ); } .data-table th, .data-table td { border-bottom: 1px solid var(--line-weak); padding: 0.8rem 0.8rem; text-align: left; font-size: 0.875rem; vertical-align: top; } .data-table th { font-family: var(--font-mono), monospace; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--terminal-muted); } .data-table tbody tr:hover { background-color: rgba(63, 68, 76, 0.32); } @media (prefers-reduced-motion: no-preference) { .ambient-grid { animation: subtle-grid-shift 18s linear infinite; } @keyframes subtle-grid-shift { 0% { transform: translateY(0px); } 50% { transform: translateY(-8px); } 100% { transform: translateY(0px); } } } @media (max-width: 1024px) { .ambient-grid { background-size: 26px 26px; } } @media (max-width: 640px) { body { background: radial-gradient( circle at 24% -4%, rgba(170, 178, 188, 0.14), transparent 36% ), radial-gradient( circle at 82% 2%, rgba(121, 128, 138, 0.12), transparent 30% ), linear-gradient(155deg, var(--bg-0), var(--bg-1) 54%, var(--bg-2)); } .data-table th, .data-table td { padding: 0.65rem 0.55rem; font-size: 0.8125rem; } } .panel-compact { padding: 0.75rem; } .panel-dense { padding: 0.5rem 0.75rem; } .data-table-dense { width: 100%; border-collapse: collapse; } .data-table-dense th, .data-table-dense td { border-bottom: 1px solid var(--line-weak); padding: 0.5rem 0.6rem; text-align: left; font-size: 0.8125rem; vertical-align: top; } .data-table-dense th { font-family: var(--font-mono), monospace; font-size: 0.6875rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--terminal-muted); } .data-table-dense tbody tr:hover { background-color: rgba(63, 68, 76, 0.32); } .metric-compact { padding-top: 0.5rem; } .metric-compact .metric-value { font-size: 1.25rem; } .metric-compact .metric-label { font-size: 0.625rem; } .index-card-row { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: thin; } .index-card-row::-webkit-scrollbar { height: 4px; } .index-card-row::-webkit-scrollbar-track { background: transparent; } .index-card-row::-webkit-scrollbar-thumb { background: var(--line-weak); border-radius: 2px; } .index-card { flex-shrink: 0; min-width: 140px; padding: 0.625rem 0.75rem; border-right: 1px solid var(--line-weak); } .index-card:last-child { border-right: none; } .index-card .label { font-family: var(--font-mono), monospace; font-size: 0.625rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--terminal-muted); } .index-card .value { font-size: 1.125rem; font-weight: 600; color: var(--terminal-bright); margin-top: 0.25rem; } .index-card .delta { font-size: 0.75rem; margin-top: 0.125rem; } .index-card .delta.positive { color: #96f5bf; } .index-card .delta.negative { color: #ff9f9f; } .filter-chip { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.5rem; border-radius: 0.5rem; border: 1px solid var(--line-weak); background: var(--panel-soft); font-size: 0.6875rem; font-family: var(--font-mono), monospace; letter-spacing: 0.06em; text-transform: uppercase; color: var(--terminal-bright); transition: border-color 0.15s, background-color 0.15s; } .filter-chip:hover { border-color: var(--line-strong); } .filter-chip .remove { display: flex; align-items: center; justify-content: center; width: 14px; height: 14px; border-radius: 3px; cursor: pointer; opacity: 0.6; transition: opacity 0.15s, background-color 0.15s; } .filter-chip .remove:hover { opacity: 1; background: rgba(255, 255, 255, 0.1); } .section-divider { border-top: 1px solid var(--line-weak); margin-top: 1rem; padding-top: 1rem; } .section-divider-compact { border-top: 1px solid var(--line-weak); margin-top: 0.75rem; padding-top: 0.75rem; } .toolbar-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; } .screener-table-wrap { overflow-x: auto; border: 1px solid var(--line-weak); border-radius: 0.75rem; background: linear-gradient( 180deg, rgba(34, 37, 42, 0.9), rgba(20, 23, 27, 0.76) ); } .screener-table-wrap thead { position: sticky; top: 0; background: rgba(28, 31, 36, 0.95); z-index: 1; } .screener-table-wrap thead::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--line-weak); } .control-compact { min-height: 32px; padding: 0.375rem 0.625rem; font-size: 0.75rem; } .control-compact.rounded-xl { border-radius: 0.625rem; }