Download frontend/src/styles.css from Sanjam19/FinSight: direct link, hf CLI and curl.
- Browser
- Download file 25.8 kB
-
https://huggingface.co/spaces/Sanjam19/FinSight/resolve/main/frontend/src/styles.css
- Command line
-
hf download hf://spaces/Sanjam19/FinSight/frontend/src/styles.css
-
curl -L -o styles.css https://huggingface.co/spaces/Sanjam19/FinSight/resolve/main/frontend/src/styles.css
25.8 kB
| /* βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| FinSight Design System | |
| Palette: Slate-50 bg Β· Slate-900 text Β· Blue-700 accent | |
| Type: Inter (UI) Β· JetBrains Mono (data) | |
| βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| :root { | |
| --bg: #f8fafc; | |
| --surface: #ffffff; | |
| --surface-2: #f1f5f9; | |
| --border: #e2e8f0; | |
| --border-strong: #cbd5e1; | |
| --text-primary: #0f172a; | |
| --text-secondary: #475569; | |
| --text-muted: #94a3b8; | |
| --accent: #1d4ed8; | |
| --accent-hover: #1e40af; | |
| --accent-subtle: #eff6ff; | |
| /* Confidence */ | |
| --conf-high-bg: #f0fdf4; | |
| --conf-high-border: #bbf7d0; | |
| --conf-high-text: #15803d; | |
| --conf-high-dot: #16a34a; | |
| --conf-medium-bg: #fffbeb; | |
| --conf-medium-border: #fde68a; | |
| --conf-medium-text: #b45309; | |
| --conf-medium-dot: #d97706; | |
| --conf-low-bg: #fef2f2; | |
| --conf-low-border: #fecaca; | |
| --conf-low-text: #b91c1c; | |
| --conf-low-dot: #dc2626; | |
| /* Severity */ | |
| --sev-critical: #7f1d1d; | |
| --sev-critical-bg: #fef2f2; | |
| --sev-high: #dc2626; | |
| --sev-high-bg: #fef2f2; | |
| --sev-medium: #d97706; | |
| --sev-medium-bg: #fffbeb; | |
| --sev-low: #64748b; | |
| --sev-low-bg: #f8fafc; | |
| /* Recommendation */ | |
| --rec-buy: #15803d; | |
| --rec-buy-bg: #f0fdf4; | |
| --rec-hold: #1d4ed8; | |
| --rec-hold-bg: #eff6ff; | |
| --rec-avoid: #dc2626; | |
| --rec-avoid-bg: #fef2f2; | |
| --rec-skip: #64748b; | |
| --rec-skip-bg: #f8fafc; | |
| --sidebar-w: 220px; | |
| --radius: 6px; | |
| --radius-lg: 10px; | |
| --font-ui: 'Inter', system-ui, -apple-system, sans-serif; | |
| --font-mono: 'JetBrains Mono', 'Menlo', monospace; | |
| } | |
| /* βββ Reset βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } | |
| body { | |
| font-family: var(--font-ui); | |
| font-size: 14px; | |
| line-height: 1.6; | |
| color: var(--text-primary); | |
| background: var(--bg); | |
| -webkit-font-smoothing: antialiased; | |
| } | |
| a { color: inherit; text-decoration: none; } | |
| button { cursor: pointer; font-family: var(--font-ui); } | |
| ul { list-style: none; } | |
| .sr-only { | |
| position: absolute; | |
| width: 1px; height: 1px; | |
| padding: 0; margin: -1px; | |
| overflow: hidden; | |
| clip: rect(0,0,0,0); | |
| white-space: nowrap; | |
| border: 0; | |
| } | |
| /* βββ Layout βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .app-layout { | |
| display: flex; | |
| min-height: 100vh; | |
| } | |
| /* βββ Sidebar ββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .sidebar { | |
| width: var(--sidebar-w); | |
| min-height: 100vh; | |
| background: var(--surface); | |
| border-right: 1px solid var(--border); | |
| display: flex; | |
| flex-direction: column; | |
| position: sticky; | |
| top: 0; | |
| align-self: flex-start; | |
| height: 100vh; | |
| } | |
| .sidebar__brand { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 20px 16px 16px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .sidebar__logo { | |
| width: 30px; | |
| height: 30px; | |
| background: var(--accent); | |
| color: #fff; | |
| font-size: 11px; | |
| font-weight: 700; | |
| letter-spacing: 0.5px; | |
| border-radius: 6px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: center; | |
| flex-shrink: 0; | |
| } | |
| .sidebar__name { | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| letter-spacing: -0.2px; | |
| } | |
| .sidebar__nav { | |
| display: flex; | |
| flex-direction: column; | |
| padding: 12px 8px; | |
| flex: 1; | |
| gap: 2px; | |
| } | |
| .sidebar__item { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| padding: 8px 10px; | |
| border-radius: var(--radius); | |
| color: var(--text-secondary); | |
| font-size: 13.5px; | |
| font-weight: 500; | |
| transition: background 0.1s, color 0.1s; | |
| border-left: 2px solid transparent; | |
| } | |
| .sidebar__item:hover { | |
| background: var(--surface-2); | |
| color: var(--text-primary); | |
| } | |
| .sidebar__item--active { | |
| background: var(--accent-subtle); | |
| color: var(--accent); | |
| border-left-color: var(--accent); | |
| } | |
| .sidebar__icon { display: flex; align-items: center; flex-shrink: 0; } | |
| .sidebar__footer { | |
| padding: 12px 16px; | |
| border-top: 1px solid var(--border); | |
| } | |
| .sidebar__version { | |
| font-size: 11px; | |
| color: var(--text-muted); | |
| font-family: var(--font-mono); | |
| } | |
| /* βββ Main content βββββββββββββββββββββββββββββββββββββββββ */ | |
| .main-content { | |
| flex: 1; | |
| min-width: 0; | |
| overflow-y: auto; | |
| } | |
| /* βββ Page βββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .page { | |
| max-width: 900px; | |
| margin: 0 auto; | |
| padding: 36px 40px 60px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 24px; | |
| } | |
| .page--chat { | |
| height: 100vh; | |
| max-width: 780px; | |
| overflow: hidden; | |
| } | |
| .page-header { display: flex; flex-direction: column; gap: 4px; } | |
| .page-title { | |
| font-size: 22px; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| letter-spacing: -0.4px; | |
| } | |
| .page-subtitle { | |
| font-size: 14px; | |
| color: var(--text-secondary); | |
| } | |
| /* βββ Forms ββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .form-label { | |
| display: block; | |
| font-size: 12.5px; | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| margin-bottom: 6px; | |
| letter-spacing: 0.1px; | |
| } | |
| .form-input { | |
| width: 100%; | |
| height: 38px; | |
| padding: 0 12px; | |
| border: 1px solid var(--border-strong); | |
| border-radius: var(--radius); | |
| background: var(--surface); | |
| color: var(--text-primary); | |
| font-size: 14px; | |
| font-family: var(--font-ui); | |
| outline: none; | |
| transition: border-color 0.15s, box-shadow 0.15s; | |
| } | |
| .form-input:focus { | |
| border-color: var(--accent); | |
| box-shadow: 0 0 0 3px rgba(29,78,216,0.12); | |
| } | |
| .form-input::placeholder { color: var(--text-muted); } | |
| .form-input--sm { max-width: 130px; } | |
| .form-field { display: flex; flex-direction: column; flex: 1; } | |
| .form-field--sm { flex: 0 0 130px; } | |
| .form-row { | |
| display: flex; | |
| gap: 12px; | |
| align-items: flex-end; | |
| } | |
| /* βββ Buttons ββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .btn { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 6px; | |
| height: 38px; | |
| padding: 0 16px; | |
| border-radius: var(--radius); | |
| font-size: 13.5px; | |
| font-weight: 500; | |
| border: 1px solid transparent; | |
| transition: background 0.1s, box-shadow 0.1s, opacity 0.1s; | |
| white-space: nowrap; | |
| } | |
| .btn:disabled { opacity: 0.5; cursor: not-allowed; } | |
| .btn--primary { | |
| background: var(--accent); | |
| color: #fff; | |
| border-color: var(--accent); | |
| } | |
| .btn--primary:hover:not(:disabled) { background: var(--accent-hover); } | |
| .btn--ghost { | |
| background: transparent; | |
| color: var(--text-secondary); | |
| border-color: var(--border-strong); | |
| } | |
| .btn--ghost:hover:not(:disabled) { | |
| background: var(--surface-2); | |
| color: var(--text-primary); | |
| } | |
| .btn--icon { | |
| padding: 0; | |
| width: 38px; | |
| justify-content: center; | |
| background: var(--accent); | |
| color: #fff; | |
| border-color: var(--accent); | |
| flex-shrink: 0; | |
| } | |
| .btn--icon:hover:not(:disabled) { background: var(--accent-hover); } | |
| /* βββ Dropzone βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .dropzone { | |
| border: 2px dashed var(--border-strong); | |
| border-radius: var(--radius-lg); | |
| background: var(--surface); | |
| padding: 48px 32px; | |
| text-align: center; | |
| cursor: pointer; | |
| transition: border-color 0.15s, background 0.15s; | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| gap: 8px; | |
| } | |
| .dropzone:hover, | |
| .dropzone:focus-visible, | |
| .dropzone--active { | |
| border-color: var(--accent); | |
| background: var(--accent-subtle); | |
| } | |
| .dropzone--filled { border-style: solid; border-color: var(--accent); } | |
| .dropzone__icon { color: var(--text-muted); } | |
| .dropzone__icon--file { color: var(--accent); } | |
| .dropzone__primary { font-weight: 500; color: var(--text-primary); } | |
| .dropzone__secondary { font-size: 13px; color: var(--text-muted); } | |
| .dropzone__filename { font-weight: 600; color: var(--text-primary); font-size: 15px; } | |
| .dropzone__size { font-size: 13px; color: var(--text-secondary); } | |
| /* βββ Upload form ββββββββββββββββββββββββββββββββββββββββββ */ | |
| .upload-form { display: flex; flex-direction: column; gap: 16px; } | |
| /* βββ Upload result ββββββββββββββββββββββββββββββββββββββββ */ | |
| .upload-result { display: flex; flex-direction: column; gap: 16px; } | |
| .low-confidence-panel { | |
| border: 1px solid var(--conf-low-border); | |
| background: var(--conf-low-bg); | |
| border-radius: var(--radius-lg); | |
| padding: 20px 24px; | |
| } | |
| .low-confidence-panel__title { | |
| font-size: 14px; | |
| font-weight: 600; | |
| color: var(--conf-low-text); | |
| margin-bottom: 6px; | |
| } | |
| .low-confidence-panel__desc { | |
| font-size: 13px; | |
| color: var(--text-secondary); | |
| margin-bottom: 14px; | |
| } | |
| .low-confidence-list { display: flex; flex-direction: column; gap: 6px; } | |
| .low-confidence-list__item { | |
| font-size: 13px; | |
| color: var(--text-primary); | |
| font-family: var(--font-mono); | |
| background: rgba(220,38,38,0.06); | |
| border-radius: 4px; | |
| padding: 4px 10px; | |
| border-left: 3px solid var(--conf-low-dot); | |
| } | |
| /* βββ Alert ββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .alert { | |
| display: flex; | |
| gap: 12px; | |
| padding: 14px 16px; | |
| border-radius: var(--radius); | |
| border: 1px solid; | |
| font-size: 13.5px; | |
| } | |
| .alert--error { background: #fef2f2; border-color: #fecaca; color: #991b1b; } | |
| .alert--success { background: #f0fdf4; border-color: #bbf7d0; color: #15803d; } | |
| .alert--info { background: #eff6ff; border-color: #bfdbfe; color: #1d4ed8; } | |
| .alert--warning { background: #fffbeb; border-color: #fde68a; color: #92400e; } | |
| .alert__icon { margin-top: 1px; flex-shrink: 0; } | |
| .alert__title { font-weight: 600; margin-bottom: 2px; } | |
| .alert__content { line-height: 1.5; } | |
| /* βββ Spinner βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .spinner-wrap { | |
| display: flex; | |
| align-items: center; | |
| gap: 12px; | |
| padding: 16px 0; | |
| color: var(--text-secondary); | |
| font-size: 13.5px; | |
| } | |
| .spinner { | |
| width: 18px; | |
| height: 18px; | |
| border: 2px solid var(--border); | |
| border-top-color: var(--accent); | |
| border-radius: 50%; | |
| animation: spin 0.7s linear infinite; | |
| flex-shrink: 0; | |
| } | |
| @keyframes spin { to { transform: rotate(360deg); } } | |
| /* βββ Confidence badge βββββββββββββββββββββββββββββββββββββ */ | |
| .confidence-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 5px; | |
| padding: 2px 8px; | |
| border-radius: 100px; | |
| font-size: 11px; | |
| font-weight: 500; | |
| letter-spacing: 0.1px; | |
| border: 1px solid; | |
| white-space: nowrap; | |
| } | |
| .confidence-badge__dot { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| flex-shrink: 0; | |
| } | |
| .confidence-badge--high { | |
| background: var(--conf-high-bg); | |
| border-color: var(--conf-high-border); | |
| color: var(--conf-high-text); | |
| } | |
| .confidence-badge--medium { | |
| background: var(--conf-medium-bg); | |
| border-color: var(--conf-medium-border); | |
| color: var(--conf-medium-text); | |
| } | |
| .confidence-badge--low { | |
| background: var(--conf-low-bg); | |
| border-color: var(--conf-low-border); | |
| color: var(--conf-low-text); | |
| } | |
| .confidence-badge--md { font-size: 12px; padding: 3px 10px; } | |
| /* βββ Severity badge βββββββββββββββββββββββββββββββββββββββ */ | |
| .severity-badge { | |
| display: inline-flex; | |
| align-items: center; | |
| padding: 2px 8px; | |
| border-radius: 4px; | |
| font-size: 11px; | |
| font-weight: 600; | |
| letter-spacing: 0.4px; | |
| text-transform: uppercase; | |
| } | |
| .severity--critical { background: var(--sev-critical-bg); color: var(--sev-critical); } | |
| .severity--high { background: var(--sev-high-bg); color: var(--sev-high); } | |
| .severity--medium { background: var(--sev-medium-bg); color: var(--sev-medium); } | |
| .severity--low { background: var(--sev-low-bg); color: var(--sev-low); } | |
| /* βββ Recommendation badge βββββββββββββββββββββββββββββββββ */ | |
| .rec-badge { | |
| display: flex; | |
| flex-direction: column; | |
| align-items: center; | |
| justify-content: center; | |
| min-width: 100px; | |
| padding: 12px 20px; | |
| border-radius: var(--radius-lg); | |
| border: 1.5px solid; | |
| text-align: center; | |
| } | |
| .rec-badge__label { | |
| font-size: 18px; | |
| font-weight: 800; | |
| letter-spacing: 1px; | |
| } | |
| .rec-badge__desc { | |
| font-size: 11px; | |
| font-weight: 400; | |
| margin-top: 2px; | |
| opacity: 0.75; | |
| } | |
| .rec-badge--buy { background: var(--rec-buy-bg); color: var(--rec-buy); border-color: #bbf7d0; } | |
| .rec-badge--hold { background: var(--rec-hold-bg); color: var(--rec-hold); border-color: #bfdbfe; } | |
| .rec-badge--avoid { background: var(--rec-avoid-bg); color: var(--rec-avoid); border-color: #fecaca; } | |
| .rec-badge--skip { background: var(--rec-skip-bg); color: var(--rec-skip); border-color: var(--border); } | |
| /* βββ Lookup form ββββββββββββββββββββββββββββββββββββββββββ */ | |
| .lookup-form { | |
| display: flex; | |
| gap: 10px; | |
| align-items: flex-end; | |
| } | |
| /* βββ Report layout ββββββββββββββββββββββββββββββββββββββββ */ | |
| .report-layout { display: flex; flex-direction: column; gap: 32px; } | |
| .report-hero { | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| padding: 20px 24px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| } | |
| .report-hero__info { display: flex; flex-direction: column; gap: 2px; } | |
| .report-hero__company { | |
| font-size: 20px; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| letter-spacing: -0.3px; | |
| } | |
| .report-hero__year { | |
| font-size: 13px; | |
| color: var(--text-secondary); | |
| font-family: var(--font-mono); | |
| } | |
| /* βββ Sections βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .report-section { display: flex; flex-direction: column; gap: 14px; } | |
| .section-title { | |
| font-size: 13px; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| letter-spacing: 0.6px; | |
| text-transform: uppercase; | |
| display: flex; | |
| align-items: center; | |
| gap: 8px; | |
| padding-bottom: 10px; | |
| border-bottom: 1px solid var(--border); | |
| } | |
| .section-count { | |
| background: var(--surface-2); | |
| color: var(--text-secondary); | |
| padding: 1px 7px; | |
| border-radius: 100px; | |
| font-size: 11px; | |
| font-weight: 500; | |
| } | |
| /* βββ Metrics grid βββββββββββββββββββββββββββββββββββββββββ */ | |
| .metrics-grid { | |
| display: grid; | |
| grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); | |
| gap: 12px; | |
| } | |
| .metric-card { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| padding: 14px 16px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| transition: border-color 0.1s; | |
| } | |
| .metric-card:hover { border-color: var(--border-strong); } | |
| .metric-card--flagged { | |
| border-color: var(--conf-medium-border); | |
| background: var(--conf-medium-bg); | |
| } | |
| .metric-card__label { | |
| font-size: 11.5px; | |
| color: var(--text-muted); | |
| font-weight: 500; | |
| letter-spacing: 0.1px; | |
| white-space: nowrap; | |
| overflow: hidden; | |
| text-overflow: ellipsis; | |
| } | |
| .metric-card__value { | |
| font-size: 18px; | |
| font-weight: 700; | |
| color: var(--text-primary); | |
| font-family: var(--font-mono); | |
| letter-spacing: -0.5px; | |
| line-height: 1.2; | |
| } | |
| .metric-card__meta { display: flex; align-items: center; gap: 6px; margin-top: 4px; } | |
| .metric-card__clarify { | |
| font-size: 12px; | |
| color: var(--conf-medium-text); | |
| } | |
| /* βββ Red flags ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .flags-list { display: flex; flex-direction: column; gap: 10px; } | |
| .flag-card { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| padding: 14px 16px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .flag-card__header { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: 12px; | |
| } | |
| .flag-card__text { font-size: 14px; font-weight: 500; color: var(--text-primary); flex: 1; } | |
| .flag-card__badges { display: flex; gap: 6px; flex-shrink: 0; align-items: center; } | |
| .flag-card__detail { font-size: 13px; color: var(--text-secondary); line-height: 1.5; } | |
| /* βββ Decision triggers ββββββββββββββββββββββββββββββββββββ */ | |
| .triggers-meta { margin-bottom: 4px; } | |
| .triggers-list { display: flex; flex-direction: column; gap: 6px; } | |
| .triggers-list__item { | |
| display: flex; | |
| align-items: flex-start; | |
| gap: 10px; | |
| font-size: 13.5px; | |
| color: var(--text-primary); | |
| padding: 8px 12px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius); | |
| } | |
| .triggers-list__item::before { | |
| content: ''; | |
| width: 4px; | |
| height: 4px; | |
| border-radius: 50%; | |
| background: var(--accent); | |
| margin-top: 7px; | |
| flex-shrink: 0; | |
| } | |
| .reasoning-text { | |
| font-size: 13.5px; | |
| color: var(--text-secondary); | |
| line-height: 1.6; | |
| padding: 12px 16px; | |
| background: var(--surface-2); | |
| border-radius: var(--radius); | |
| border-left: 3px solid var(--accent); | |
| } | |
| /* βββ Narrative ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .narrative-text { | |
| font-size: 14px; | |
| color: var(--text-secondary); | |
| line-height: 1.75; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 12px; | |
| } | |
| /* βββ Chat βββββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .chat-context { | |
| display: flex; | |
| gap: 10px; | |
| align-items: center; | |
| } | |
| .chat-messages { | |
| flex: 1; | |
| overflow-y: auto; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 16px; | |
| padding: 4px 0 8px; | |
| } | |
| .chat-empty { | |
| color: var(--text-muted); | |
| font-size: 13.5px; | |
| padding: 32px 0; | |
| } | |
| .chat-suggestions { | |
| margin-top: 12px; | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| } | |
| .chat-suggestions li { | |
| font-style: italic; | |
| padding: 6px 12px; | |
| background: var(--surface-2); | |
| border-radius: var(--radius); | |
| font-size: 13px; | |
| color: var(--text-secondary); | |
| } | |
| .chat-bubble { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 6px; | |
| max-width: 85%; | |
| } | |
| .chat-bubble--user { align-self: flex-end; } | |
| .chat-bubble--assistant { align-self: flex-start; } | |
| .chat-bubble__role { | |
| font-size: 11.5px; | |
| font-weight: 600; | |
| color: var(--text-muted); | |
| letter-spacing: 0.3px; | |
| } | |
| .chat-bubble--user .chat-bubble__role { text-align: right; } | |
| .chat-bubble__body { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| padding: 12px 16px; | |
| font-size: 14px; | |
| line-height: 1.6; | |
| color: var(--text-primary); | |
| } | |
| .chat-bubble--user .chat-bubble__body { | |
| background: var(--accent); | |
| color: #fff; | |
| border-color: var(--accent); | |
| } | |
| .chat-bubble__meta { display: flex; gap: 8px; } | |
| .chat-typing { | |
| display: flex; | |
| gap: 4px; | |
| padding: 14px 18px; | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| width: 56px; | |
| } | |
| .chat-typing span { | |
| width: 6px; | |
| height: 6px; | |
| border-radius: 50%; | |
| background: var(--text-muted); | |
| animation: pulse 1.2s infinite; | |
| } | |
| .chat-typing span:nth-child(2) { animation-delay: 0.2s; } | |
| .chat-typing span:nth-child(3) { animation-delay: 0.4s; } | |
| @keyframes pulse { | |
| 0%, 80%, 100% { opacity: 0.3; transform: scale(0.85); } | |
| 40% { opacity: 1; transform: scale(1); } | |
| } | |
| .chat-input-row { | |
| display: flex; | |
| gap: 8px; | |
| padding-top: 8px; | |
| border-top: 1px solid var(--border); | |
| } | |
| .chat-input { flex: 1; } | |
| /* βββ Flagged values (chat) ββββββββββββββββββββββββββββββββ */ | |
| .flagged-value { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 5px; | |
| font-family: var(--font-mono); | |
| font-weight: 600; | |
| padding: 1px 5px; | |
| border-radius: 4px; | |
| } | |
| .flagged-value--medium { background: var(--conf-medium-bg); color: var(--conf-medium-text); } | |
| .flagged-value--low { background: var(--conf-low-bg); color: var(--conf-low-text); } | |
| /* βββ Compare βββββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .compare-form { display: flex; flex-direction: column; gap: 10px; } | |
| .compare-entry { | |
| display: flex; | |
| align-items: center; | |
| gap: 10px; | |
| } | |
| .compare-entry__num { | |
| font-size: 12px; | |
| font-weight: 600; | |
| color: var(--text-muted); | |
| width: 20px; | |
| text-align: center; | |
| flex-shrink: 0; | |
| font-family: var(--font-mono); | |
| } | |
| .compare-actions { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: center; | |
| padding-top: 4px; | |
| } | |
| .compare-table-wrap { | |
| overflow-x: auto; | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| } | |
| .compare-table { | |
| width: 100%; | |
| border-collapse: collapse; | |
| font-size: 13.5px; | |
| } | |
| .compare-table th { | |
| background: var(--surface-2); | |
| padding: 10px 14px; | |
| text-align: left; | |
| font-size: 12px; | |
| font-weight: 600; | |
| color: var(--text-secondary); | |
| letter-spacing: 0.3px; | |
| border-bottom: 1px solid var(--border); | |
| white-space: nowrap; | |
| } | |
| .compare-table td { | |
| padding: 10px 14px; | |
| border-bottom: 1px solid var(--border); | |
| vertical-align: middle; | |
| } | |
| .compare-table tr:last-child td { border-bottom: none; } | |
| .compare-table tr:hover td { background: var(--surface-2); } | |
| .compare-table__metric-col { | |
| font-weight: 500; | |
| color: var(--text-secondary); | |
| font-size: 12.5px; | |
| white-space: nowrap; | |
| } | |
| .compare-table__cell { | |
| display: flex; | |
| flex-direction: column; | |
| gap: 4px; | |
| } | |
| .compare-table__cell--low { background: var(--conf-low-bg); } | |
| .compare-table__val { | |
| font-family: var(--font-mono); | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| font-size: 13px; | |
| } | |
| /* Fix: table cells can't be flex, use wrapper */ | |
| .compare-table td.compare-table__cell { | |
| display: table-cell; | |
| } | |
| .compare-table td .compare-table__val { | |
| display: block; | |
| } | |
| /* βββ Companies βββββββββββββββββββββββββββββββββββββββββββββ */ | |
| .search-bar { | |
| position: relative; | |
| display: flex; | |
| align-items: center; | |
| } | |
| .search-bar__icon { | |
| position: absolute; | |
| left: 12px; | |
| color: var(--text-muted); | |
| pointer-events: none; | |
| } | |
| .search-bar__input { padding-left: 36px; } | |
| .company-list { display: flex; flex-direction: column; gap: 10px; } | |
| .company-card { | |
| background: var(--surface); | |
| border: 1px solid var(--border); | |
| border-radius: var(--radius-lg); | |
| padding: 16px 20px; | |
| display: flex; | |
| align-items: center; | |
| justify-content: space-between; | |
| gap: 16px; | |
| transition: border-color 0.1s; | |
| } | |
| .company-card:hover { border-color: var(--border-strong); } | |
| .company-card__info { display: flex; flex-direction: column; gap: 2px; } | |
| .company-card__name { | |
| font-size: 15px; | |
| font-weight: 600; | |
| color: var(--text-primary); | |
| } | |
| .company-card__years { | |
| font-size: 12.5px; | |
| color: var(--text-muted); | |
| } | |
| .company-card__filings { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; } | |
| .filing-pill { | |
| display: inline-flex; | |
| align-items: center; | |
| gap: 4px; | |
| padding: 5px 12px; | |
| border: 1px solid var(--border); | |
| border-radius: 100px; | |
| background: var(--surface-2); | |
| color: var(--text-secondary); | |
| font-size: 12.5px; | |
| font-weight: 500; | |
| transition: background 0.1s, color 0.1s, border-color 0.1s; | |
| font-family: var(--font-ui); | |
| } | |
| .filing-pill:hover { | |
| background: var(--accent-subtle); | |
| color: var(--accent); | |
| border-color: #bfdbfe; | |
| } | |
| /* βββ Empty state βββββββββββββββββββββββββββββββββββββββββββ */ | |
| .empty-state { | |
| text-align: center; | |
| padding: 40px 0; | |
| color: var(--text-muted); | |
| font-size: 14px; | |
| } | |
| /* βββ Responsive ββββββββββββββββββββββββββββββββββββββββββββ */ | |
| @media (max-width: 720px) { | |
| .sidebar { | |
| width: 60px; | |
| } | |
| .sidebar__name, | |
| .sidebar__label, | |
| .sidebar__version { display: none; } | |
| .sidebar__brand { justify-content: center; padding: 16px 8px; } | |
| .sidebar__item { | |
| justify-content: center; | |
| border-left: none; | |
| padding: 10px; | |
| } | |
| .sidebar__item--active { border-bottom: 2px solid var(--accent); } | |
| .page { padding: 20px 16px 40px; } | |
| .lookup-form { flex-wrap: wrap; } | |
| .metrics-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } | |
| .report-hero { flex-direction: column; gap: 16px; align-items: flex-start; } | |
| .company-card { flex-direction: column; align-items: flex-start; } | |
| .company-card__filings { justify-content: flex-start; } | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| .spinner, .chat-typing span { animation: none; } | |
| } | |