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%
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