/* The FMP views' CSS. A plugin view is an iframe of its own, so there is no Tailwind here: plain classes, the house style by hand. Colours are the app's theme variables, so the views follow its light and dark, each with its light value as the fallback for an app from before the theme. Square everything, one grey line, muted secondary text, 13px, and no accent colour. */ .fm-root { display: flex; flex-direction: column; height: 100%; width: 100%; background: var(--jaspers-background, #fff); color: var(--jaspers-foreground, #171717); font: 13px/1.45 var(--jaspers-font-sans, system-ui, -apple-system, sans-serif); } .fm-bar { flex: 0 0 auto; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-bottom: 1px solid var(--jaspers-border, #e5e5e5); } .fm-input, .fm-select { border: 1px solid var(--jaspers-border, #e5e5e5); background: var(--jaspers-background, #fff); color: var(--jaspers-foreground, #171717); font: inherit; padding: 2px 6px; outline: none; border-radius: 0; } .fm-input:focus, .fm-select:focus { border-color: var(--jaspers-foreground, #171717); } .fm-input-symbol { width: 80px; text-transform: uppercase; } .fm-input-year { width: 64px; } .fm-body { flex: 1 1 auto; overflow: auto; padding: 0 8px 8px; } .fm-section { padding-top: 8px; } .fm-h { display: flex; align-items: baseline; gap: 8px; margin: 0 0 4px; font-size: 13px; font-weight: 600; } .fm-muted { color: var(--jaspers-muted-foreground, #737373); } .fm-loading { font-weight: 400; } .fm-error { color: var(--jaspers-destructive, #dc2626); white-space: pre-wrap; margin: 4px 0; } .fm-empty { color: var(--jaspers-muted-foreground, #737373); padding: 8px 0; margin: 0; } /* Tables. */ .fm-table { border-collapse: collapse; width: 100%; margin: 2px 0 6px; } .fm-table th, .fm-table td { border-bottom: 1px solid var(--jaspers-border, #e5e5e5); padding: 3px 6px; text-align: left; white-space: nowrap; vertical-align: top; } .fm-table th { font-weight: 500; color: var(--jaspers-muted-foreground, #737373); } .fm-num { text-align: right !important; font-variant-numeric: tabular-nums; } /* News. */ .fm-list { list-style: none; margin: 0; padding: 0; } .fm-item { border-bottom: 1px solid var(--jaspers-border, #e5e5e5); padding: 6px 0; } .fm-item-head { display: flex; gap: 12px; font-size: 12px; } .fm-link { display: block; border: 0; background: none; color: var(--jaspers-foreground, #171717); font: inherit; font-weight: 500; text-align: left; padding: 0; cursor: pointer; } .fm-link:hover { text-decoration: underline; } .fm-title { font-weight: 500; } .fm-snippet { margin: 2px 0 0; color: var(--jaspers-foreground, #404040); }