SPB Git

spb/vquant Public MIT

VibeQuant — AI-powered institutional-grade financial intelligence platform.

TypeScript 84.3% Python 11.7% JavaScript 1.6% CSS 1.5% HTML 0.7%
6.0 KB · 332 lines css
Raw Blame History
1/*2 * =============================================================================3 *  VibeQuant (vquant) — AI-Powered Financial Intelligence Platform4 * -----------------------------------------------------------------------------5 *  File:      desktop/setup.css6 *7 *  Author:    Simon-Pierre Boucher8 *  Contact:   contact@spboucher.ai9 *  Website:   https://www.spboucher.ai10 *  Demo:      https://www.vquant.ai11 *  License:   MIT (see LICENSE)12 *13 *  Copyright © 2026 Simon-Pierre Boucher. All rights reserved.14 * =============================================================================15 */1617* {18  margin: 0;19  padding: 0;20  box-sizing: border-box;21}2223:root {24  --bg: #ffffff;25  --bg-secondary: #f5f5f7;26  --bg-tertiary: #e8e8ed;27  --text: #1d1d1f;28  --text-secondary: #6e6e73;29  --text-tertiary: #86868b;30  --border: #d2d2d7;31  --accent: #0071e3;32  --accent-hover: #0077ED;33  --error: #ff3b30;34  --error-bg: #fff2f0;35  --badge-required: #ff3b30;36  --badge-optional: #86868b;37  --input-bg: #ffffff;38  --input-border: #d2d2d7;39  --input-focus: #0071e3;40}4142[data-theme="dark"] {43  --bg: #1a1a1a;44  --bg-secondary: #2a2a2a;45  --bg-tertiary: #3a3a3a;46  --text: #f5f5f7;47  --text-secondary: #a1a1a6;48  --text-tertiary: #86868b;49  --border: #424245;50  --accent: #2997ff;51  --accent-hover: #4db1ff;52  --error: #ff453a;53  --error-bg: #3a1a18;54  --badge-required: #ff453a;55  --badge-optional: #6e6e73;56  --input-bg: #2a2a2a;57  --input-border: #424245;58  --input-focus: #2997ff;59}6061body {62  font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', sans-serif;63  background: var(--bg);64  color: var(--text);65  -webkit-font-smoothing: antialiased;66  -moz-osx-font-smoothing: grayscale;67  overflow: hidden;68  height: 100vh;69}7071.drag-region {72  position: fixed;73  top: 0;74  left: 0;75  right: 0;76  height: 52px;77  -webkit-app-region: drag;78  z-index: 100;79}8081.container {82  max-width: 560px;83  margin: 0 auto;84  padding: 64px 32px 24px;85  height: 100vh;86  overflow-y: auto;87}8889.header {90  text-align: center;91  margin-bottom: 24px;92}9394.logo {95  display: inline-flex;96  align-items: center;97  justify-content: center;98  width: 56px;99  height: 56px;100  border-radius: 14px;101  background: linear-gradient(135deg, var(--accent), #5856d6);102  color: white;103  margin-bottom: 16px;104}105106h1 {107  font-size: 28px;108  font-weight: 700;109  letter-spacing: -0.5px;110  color: var(--text);111}112113.subtitle {114  font-size: 14px;115  color: var(--text-secondary);116  margin-top: 4px;117}118119.description {120  text-align: center;121  margin-bottom: 28px;122}123124.description p {125  font-size: 13px;126  color: var(--text-secondary);127  line-height: 1.5;128}129130.section {131  margin-bottom: 20px;132}133134.section h2 {135  font-size: 13px;136  font-weight: 600;137  color: var(--text-secondary);138  text-transform: uppercase;139  letter-spacing: 0.5px;140  margin-bottom: 14px;141  display: flex;142  align-items: center;143  gap: 8px;144}145146.badge {147  display: inline-block;148  font-size: 10px;149  font-weight: 600;150  padding: 2px 8px;151  border-radius: 4px;152  text-transform: uppercase;153  letter-spacing: 0.5px;154}155156.badge.required {157  background: var(--badge-required);158  color: white;159}160161.badge.optional {162  background: var(--bg-tertiary);163  color: var(--text-secondary);164}165166.field {167  margin-bottom: 14px;168}169170.field label {171  display: block;172  font-size: 13px;173  font-weight: 500;174  color: var(--text);175  margin-bottom: 6px;176}177178.field input {179  width: 100%;180  height: 38px;181  padding: 0 12px;182  font-size: 13px;183  font-family: 'SF Mono', 'Fira Code', monospace;184  background: var(--input-bg);185  border: 1px solid var(--input-border);186  border-radius: 8px;187  color: var(--text);188  outline: none;189  transition: border-color 0.2s, box-shadow 0.2s;190}191192.field input:focus {193  border-color: var(--input-focus);194  box-shadow: 0 0 0 3px color-mix(in srgb, var(--input-focus) 20%, transparent);195}196197.field input::placeholder {198  color: var(--text-tertiary);199  font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', sans-serif;200}201202.hint {203  display: block;204  font-size: 11px;205  color: var(--text-tertiary);206  margin-top: 4px;207}208209.hint a {210  color: var(--accent);211  text-decoration: none;212  cursor: pointer;213}214215.hint a:hover {216  text-decoration: underline;217}218219.collapsible-btn {220  display: flex;221  align-items: center;222  justify-content: space-between;223  width: 100%;224  padding: 10px 14px;225  font-size: 13px;226  font-weight: 500;227  color: var(--text-secondary);228  background: var(--bg-secondary);229  border: 1px solid var(--border);230  border-radius: 8px;231  cursor: pointer;232  transition: background 0.2s;233}234235.collapsible-btn:hover {236  background: var(--bg-tertiary);237}238239.chevron {240  transition: transform 0.2s;241}242243.optional-fields {244  margin-top: 14px;245}246247.error {248  padding: 10px 14px;249  background: var(--error-bg);250  border: 1px solid var(--error);251  border-radius: 8px;252  color: var(--error);253  font-size: 13px;254  margin-bottom: 16px;255}256257.loading {258  display: flex;259  align-items: center;260  justify-content: center;261  gap: 10px;262  padding: 14px;263  margin-bottom: 16px;264  font-size: 13px;265  color: var(--text-secondary);266}267268.spinner {269  width: 18px;270  height: 18px;271  border: 2px solid var(--border);272  border-top-color: var(--accent);273  border-radius: 50%;274  animation: spin 0.8s linear infinite;275}276277@keyframes spin {278  to { transform: rotate(360deg); }279}280281.submit-btn {282  width: 100%;283  height: 44px;284  font-size: 15px;285  font-weight: 600;286  color: white;287  background: var(--accent);288  border: none;289  border-radius: 10px;290  cursor: pointer;291  transition: background 0.2s, transform 0.1s;292}293294.submit-btn:hover:not(:disabled) {295  background: var(--accent-hover);296}297298.submit-btn:active:not(:disabled) {299  transform: scale(0.98);300}301302.submit-btn:disabled {303  opacity: 0.5;304  cursor: not-allowed;305}306307.footer {308  display: flex;309  justify-content: center;310  gap: 8px;311  margin-top: 24px;312  font-size: 11px;313  color: var(--text-tertiary);314}315316::-webkit-scrollbar {317  width: 6px;318}319320::-webkit-scrollbar-track {321  background: transparent;322}323324::-webkit-scrollbar-thumb {325  background: var(--border);326  border-radius: 3px;327}328329::-webkit-scrollbar-thumb:hover {330  background: var(--text-tertiary);331}332