103 lines
2.7 KiB
CSS
103 lines
2.7 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
/* FiberOps Design System — Pixel/Conan approved */
|
|
/* Primary: #0891B2 | CTA: #059669 | BG: #F8FAFC | Text: #0F172A */
|
|
/* Fonts: Fira Sans (body) + Fira Code (data/numbers) */
|
|
|
|
@layer base {
|
|
:root {
|
|
/* FiberOps tokens */
|
|
--color-primary: #0891B2;
|
|
--color-primary-dark: #0E7490;
|
|
--color-secondary: #22D3EE;
|
|
--color-cta: #059669;
|
|
--color-cta-hover: #047857;
|
|
--color-bg: #F8FAFC;
|
|
--color-surface: #FFFFFF;
|
|
--color-text: #0F172A;
|
|
--color-muted: #64748B;
|
|
--color-border: #E2E8F0;
|
|
--color-danger: #EF4444;
|
|
--color-warning: #F59E0B;
|
|
--color-success: #059669;
|
|
|
|
/* Shadows */
|
|
--shadow-sm: 0 1px 2px rgba(0,0,0,0.05);
|
|
--shadow-md: 0 4px 6px rgba(0,0,0,0.07);
|
|
--shadow-lg: 0 10px 15px rgba(0,0,0,0.08);
|
|
--shadow-xl: 0 20px 25px rgba(0,0,0,0.12);
|
|
|
|
/* Radius */
|
|
--radius-sm: 6px;
|
|
--radius-md: 10px;
|
|
--radius-lg: 14px;
|
|
--radius-xl: 20px;
|
|
}
|
|
|
|
* {
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
background-color: var(--color-bg);
|
|
color: var(--color-text);
|
|
font-family: 'Fira Sans', 'Inter', system-ui, sans-serif;
|
|
font-size: 15px;
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
/* Data values, numbers, IDs */
|
|
code, .font-mono, .tabular-nums {
|
|
font-family: 'Fira Code', 'JetBrains Mono', monospace;
|
|
}
|
|
}
|
|
|
|
@layer utilities {
|
|
/* Skeleton loading animation */
|
|
.skeleton {
|
|
@apply animate-pulse bg-slate-200 rounded;
|
|
}
|
|
|
|
/* Row hover for tables */
|
|
.table-row-hover:hover {
|
|
background-color: #F0FDFF;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Transition helper */
|
|
.transition-fast {
|
|
transition: all 150ms ease;
|
|
}
|
|
|
|
.transition-smooth {
|
|
transition: all 200ms ease;
|
|
}
|
|
|
|
/* Card base */
|
|
.fiberops-card {
|
|
background: white;
|
|
border-radius: var(--radius-lg);
|
|
border: 1px solid var(--color-border);
|
|
box-shadow: var(--shadow-sm);
|
|
}
|
|
|
|
/* Status badge helpers */
|
|
.badge-active { background: #DCFCE7; color: #166534; }
|
|
.badge-inactive { background: #F1F5F9; color: #475569; }
|
|
.badge-suspended { background: #FEF3C7; color: #92400E; }
|
|
.badge-pending { background: #DBEAFE; color: #1E40AF; }
|
|
.badge-overdue { background: #FEE2E2; color: #991B1B; }
|
|
.badge-paid { background: #DCFCE7; color: #166534; }
|
|
.badge-partial { background: #FEF3C7; color: #92400E; }
|
|
.badge-void { background: #F1F5F9; color: #94A3B8; }
|
|
.badge-open { background: #DBEAFE; color: #1E40AF; }
|
|
.badge-in-progress { background: #FEF3C7; color: #92400E; }
|
|
.badge-resolved { background: #DCFCE7; color: #166534; }
|
|
.badge-closed { background: #F1F5F9; color: #475569; }
|
|
|
|
.text-balance { text-wrap: balance; }
|
|
}
|