mirror of
https://github.com/bybrooklyn/alchemist.git
synced 2026-04-18 09:53:33 -04:00
548 lines
8.2 KiB
CSS
548 lines
8.2 KiB
CSS
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Outfit:wght@500;600;700&display=swap');
|
|
|
|
:root {
|
|
/* Crimson Theme - RGB Triplets */
|
|
--bg-main: 14 7 10;
|
|
--bg-surface: 22 12 16;
|
|
|
|
--brand-primary: 225 82 94;
|
|
--brand-glow: 0 0 20px rgb(225 82 94 / 0.15);
|
|
|
|
--text-primary: 244 232 235;
|
|
--text-secondary: 189 160 168;
|
|
--text-muted: 189 160 168;
|
|
|
|
--border-subtle: 74 50 58;
|
|
--border-active: 225 82 94;
|
|
|
|
--status-success: 86 192 135;
|
|
--status-warning: 242 176 78;
|
|
--status-error: 225 82 94;
|
|
|
|
/* Computed */
|
|
--bg-glass: rgb(var(--bg-surface) / 0.7);
|
|
--border-color: rgb(var(--border-subtle) / 0.5);
|
|
--border-accent: rgb(var(--border-active) / 0.2);
|
|
|
|
/* Spacing Scale */
|
|
--space-2: 0.5rem;
|
|
--space-4: 1rem;
|
|
--space-6: 1.5rem;
|
|
--space-8: 2rem;
|
|
--space-12: 3rem;
|
|
|
|
/* Dimensions */
|
|
--sidebar-width: 260px;
|
|
--content-max-width: 1200px;
|
|
}
|
|
|
|
* {
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
background-color: rgb(var(--bg-main));
|
|
color: rgb(var(--text-primary));
|
|
font-family: 'Inter', system-ui, sans-serif;
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4 {
|
|
font-family: 'Outfit', sans-serif;
|
|
color: rgb(var(--text-primary));
|
|
line-height: 1.2;
|
|
}
|
|
|
|
/* Layout */
|
|
.app-container {
|
|
display: grid;
|
|
grid-template-columns: var(--sidebar-width) 1fr;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
.sidebar {
|
|
background: rgb(var(--bg-surface));
|
|
border-right: 1px solid rgba(var(--border-subtle), 0.1);
|
|
padding: var(--space-8) var(--space-6);
|
|
display: flex;
|
|
flex-direction: column;
|
|
height: 100vh;
|
|
position: sticky;
|
|
top: 0;
|
|
}
|
|
|
|
.main-content {
|
|
background: rgb(var(--bg-main));
|
|
padding: var(--space-8);
|
|
width: 100%;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Specific component containers should limit width, not flex parent */
|
|
.dashboard-container,
|
|
.settings-container {
|
|
max-width: var(--content-max-width);
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* Navigation */
|
|
.logo-container {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-4);
|
|
margin-bottom: var(--space-12);
|
|
padding-left: var(--space-2);
|
|
}
|
|
|
|
.logo-text {
|
|
font-size: 1.25rem;
|
|
font-weight: 700;
|
|
letter-spacing: -0.025em;
|
|
color: rgb(var(--text-primary));
|
|
}
|
|
|
|
.nav-links {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-2);
|
|
}
|
|
|
|
.nav-link {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-4);
|
|
padding: var(--space-2) var(--space-4);
|
|
color: rgb(var(--text-secondary));
|
|
text-decoration: none;
|
|
font-weight: 500;
|
|
border-radius: 6px;
|
|
height: 48px;
|
|
transition: color 0.15s ease;
|
|
}
|
|
|
|
/* Subtle hover, no background shifting */
|
|
.nav-link:hover {
|
|
color: rgb(var(--text-primary));
|
|
}
|
|
|
|
.nav-link.active {
|
|
color: rgb(var(--text-primary));
|
|
background: rgba(var(--brand-primary), 0.1);
|
|
color: rgb(var(--brand-primary));
|
|
}
|
|
|
|
.nav-link svg {
|
|
width: 20px;
|
|
height: 20px;
|
|
opacity: 0.8;
|
|
}
|
|
|
|
/* Cards & Stats */
|
|
.glass-card {
|
|
background: rgb(var(--bg-surface));
|
|
border: 1px solid rgba(var(--border-subtle), 0.1);
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.grid-stats {
|
|
display: grid;
|
|
grid-template-columns: repeat(4, 1fr);
|
|
gap: var(--space-6);
|
|
margin-bottom: var(--space-8);
|
|
}
|
|
|
|
.stat-card {
|
|
background: rgb(var(--bg-surface));
|
|
border: 1px solid rgba(var(--border-subtle), 0.1);
|
|
padding: var(--space-6);
|
|
border-radius: 12px;
|
|
}
|
|
|
|
.stat-label {
|
|
font-size: 0.875rem;
|
|
color: rgb(var(--text-secondary));
|
|
margin-bottom: var(--space-2);
|
|
}
|
|
|
|
.stat-value {
|
|
font-size: 2rem;
|
|
font-weight: 600;
|
|
font-family: 'Outfit', sans-serif;
|
|
color: rgb(var(--text-primary));
|
|
}
|
|
|
|
/* Buttons */
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
padding: 0 var(--space-6);
|
|
height: 40px;
|
|
border-radius: 8px;
|
|
font-weight: 500;
|
|
font-size: 0.9rem;
|
|
cursor: pointer;
|
|
border: none;
|
|
transition: opacity 0.2s ease;
|
|
}
|
|
|
|
.btn-primary {
|
|
background: rgb(var(--brand-primary));
|
|
color: white;
|
|
}
|
|
|
|
.btn-primary:hover {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
/* Header */
|
|
header h1 {
|
|
font-size: 2rem;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
header p {
|
|
color: rgb(var(--text-secondary));
|
|
}
|
|
|
|
/* Utilities */
|
|
.text-xs {
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.text-sm {
|
|
font-size: 0.875rem;
|
|
}
|
|
|
|
.text-lg {
|
|
font-size: 1.125rem;
|
|
}
|
|
|
|
.text-xl {
|
|
font-size: 1.25rem;
|
|
}
|
|
|
|
.text-4xl {
|
|
font-size: 2.25rem;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.text-slate-200 {
|
|
color: #e2e8f0;
|
|
}
|
|
|
|
.text-slate-400 {
|
|
color: rgb(var(--text-secondary));
|
|
}
|
|
|
|
.text-slate-500 {
|
|
color: rgb(var(--text-muted));
|
|
}
|
|
|
|
.text-slate-600 {
|
|
color: #475569;
|
|
}
|
|
|
|
.bg-slate-800 {
|
|
background-color: rgb(var(--bg-surface));
|
|
}
|
|
|
|
.bg-slate-900 {
|
|
background-color: rgb(var(--bg-main));
|
|
}
|
|
|
|
.border-slate-800 {
|
|
border-color: rgba(var(--border-subtle), 0.2);
|
|
}
|
|
|
|
.flex {
|
|
display: flex;
|
|
}
|
|
|
|
.justify-between {
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.items-center {
|
|
align-items: center;
|
|
}
|
|
|
|
.gap-4 {
|
|
gap: 1rem;
|
|
}
|
|
|
|
.gap-2 {
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.gap-3 {
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.gap-6 {
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
.gap-8 {
|
|
gap: 2rem;
|
|
}
|
|
|
|
.grid {
|
|
display: grid;
|
|
}
|
|
|
|
.grid-cols-1 {
|
|
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.md\:grid-cols-2 {
|
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
}
|
|
|
|
.md\:grid-cols-3 {
|
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
}
|
|
|
|
.md\:col-span-2 {
|
|
grid-column: span 2 / span 2;
|
|
}
|
|
}
|
|
|
|
.mb-2 {
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.mb-3 {
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.mb-4 {
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.mb-8 {
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.mb-12 {
|
|
margin-bottom: 3rem;
|
|
}
|
|
|
|
.mt-4 {
|
|
margin-top: 1rem;
|
|
}
|
|
|
|
.mt-6 {
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.p-4 {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.p-6 {
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.p-8 {
|
|
padding: 2rem;
|
|
}
|
|
|
|
.px-6 {
|
|
padding-left: 1.5rem;
|
|
padding-right: 1.5rem;
|
|
}
|
|
|
|
.mx-auto {
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.max-w-6xl {
|
|
max-width: 72rem;
|
|
}
|
|
|
|
.leading-relaxed {
|
|
line-height: 1.625;
|
|
}
|
|
|
|
.tracking-wider {
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.uppercase {
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.text-center {
|
|
text-align: center;
|
|
}
|
|
|
|
.font-bold {
|
|
font-weight: 700;
|
|
}
|
|
|
|
.text-2xl {
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.text-5xl {
|
|
font-size: 3rem;
|
|
}
|
|
|
|
.text-6xl {
|
|
font-size: 3.75rem;
|
|
}
|
|
|
|
.text-emerald-400 {
|
|
color: rgb(86 192 135);
|
|
}
|
|
|
|
.text-amber-400 {
|
|
color: rgb(242 176 78);
|
|
}
|
|
|
|
.bg-indigo-500 {
|
|
background-color: #6366f1;
|
|
}
|
|
|
|
.bg-brand-primary\/5 {
|
|
background-color: rgb(var(--brand-primary) / 0.05);
|
|
}
|
|
|
|
.border-brand-primary\/20 {
|
|
border-color: rgb(var(--brand-primary) / 0.2);
|
|
}
|
|
|
|
.flex-col {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.justify-center {
|
|
justify-content: center;
|
|
}
|
|
|
|
.items-baseline {
|
|
align-items: baseline;
|
|
}
|
|
|
|
.block {
|
|
display: block;
|
|
}
|
|
|
|
.space-y-6>*+* {
|
|
margin-top: 1.5rem;
|
|
}
|
|
|
|
.h-1\.5 {
|
|
height: 0.375rem;
|
|
}
|
|
|
|
.mt-1 {
|
|
margin-top: 0.25rem;
|
|
}
|
|
|
|
.mt-3 {
|
|
margin-top: 0.75rem;
|
|
}
|
|
|
|
.px-8 {
|
|
padding-left: 2rem;
|
|
padding-right: 2rem;
|
|
}
|
|
|
|
.py-5 {
|
|
padding-top: 1.25rem;
|
|
padding-bottom: 1.25rem;
|
|
}
|
|
|
|
.rounded-full {
|
|
border-radius: 9999px;
|
|
}
|
|
|
|
.border-b {
|
|
border-bottom-width: 1px;
|
|
}
|
|
|
|
.overflow-hidden {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.overflow-x-auto {
|
|
overflow-x: auto;
|
|
}
|
|
|
|
.truncate {
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.max-w-sm {
|
|
max-width: 24rem;
|
|
}
|
|
|
|
.w-full {
|
|
width: 100%;
|
|
}
|
|
|
|
.divide-y>*+* {
|
|
border-top-width: 1px;
|
|
}
|
|
|
|
.font-mono {
|
|
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
|
|
}
|
|
|
|
.font-medium {
|
|
font-weight: 500;
|
|
}
|
|
|
|
.text-left {
|
|
text-align: left;
|
|
}
|
|
|
|
/* Engine Status */
|
|
.engine-status {
|
|
margin-top: auto;
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
padding-top: var(--space-4);
|
|
border-top: 1px solid rgba(var(--border-subtle), 0.1);
|
|
}
|
|
|
|
.pulse {
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background: #10b981;
|
|
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
|
|
}
|
|
|
|
@media (max-width: 1024px) {
|
|
.grid-stats {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.app-container {
|
|
grid-template-columns: 1fr;
|
|
}
|
|
|
|
.sidebar {
|
|
display: none;
|
|
}
|
|
|
|
.main-content {
|
|
padding: var(--space-4);
|
|
}
|
|
} |