Medsentinal / ui /src /index.css
PRANAV05092003's picture
Initial Hugging Face upload
1234d18
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
/* LIGHT MODE — Warm Orange palette */
:root,
:root[data-theme="light"] {
/* Raw palette */
--bg-primary: #FFFBDC;
--bg-secondary: #FFD3A5;
--bg-card: #FFFFFF;
--bg-card-hover: #FFF5E8;
--accent-primary: #FF5900;
--accent-secondary: #FF8237;
--accent-muted: #FFAA6E;
--text-primary: #1a0a00;
--text-secondary: #7a4520;
--text-muted: #FFAA6E;
--text-accent: #FF5900;
--border-default: rgba(255, 89, 0, 0.2);
--border-hover: rgba(255, 89, 0, 0.5);
--border-card: rgba(255, 130, 55, 0.2);
--color-safe: #059669;
--color-safe-bg: rgba(5, 150, 105, 0.1);
--color-unsafe: #dc2626;
--color-unsafe-bg: rgba(220, 38, 38, 0.1);
--color-warning: #d97706;
--color-warning-bg: rgba(217, 119, 6, 0.1);
--color-info: #7a4520;
--particle-primary: #FF8237;
--particle-secondary: #FFAA6E;
--particle-line: rgba(255, 89, 0, 0.25);
--glass-bg: rgba(255, 251, 220, 0.85);
--glass-border: rgba(255, 89, 0, 0.2);
--glass-blur: blur(12px);
--gradient-primary: linear-gradient(135deg, #FF5900 0%, #FF8237 100%);
--gradient-hero: linear-gradient(135deg, #FF8237 0%, #FFFBDC 60%);
--gradient-glow: 0 0 40px rgba(255, 89, 0, 0.25);
--reward-positive: #059669;
--reward-negative: #FF5900;
--reward-neutral: #FFAA6E;
/* Map to semantic tokens (HSL triplets used by tailwind theme) */
--background: 53 100% 93%; /* #FFFBDC */
--foreground: 22 100% 5%; /* #1a0a00 */
--card: 0 0% 100%; /* #FFFFFF */
--card-foreground: 22 100% 5%;
--popover: 0 0% 100%;
--popover-foreground: 22 100% 5%;
--primary: 21 100% 50%; /* #FF5900 */
--primary-foreground: 0 0% 100%;
--secondary: 19 100% 60%; /* #FF8237 */
--secondary-foreground: 0 0% 100%;
--muted: 30 100% 82%; /* #FFD3A5 */
--muted-foreground: 24 59% 30%; /* #7a4520 */
--accent: 25 100% 72%; /* #FFAA6E */
--accent-foreground: 22 100% 5%;
--success: 158 90% 30%; /* ~#059669 */
--success-foreground: 0 0% 100%;
--danger: 0 73% 50%; /* ~#dc2626 */
--danger-foreground: 0 0% 100%;
--warning: 32 95% 44%; /* ~#d97706 */
--warning-foreground: 0 0% 100%;
--destructive: 0 73% 50%;
--destructive-foreground: 0 0% 100%;
--border: 19 100% 75%;
--input: 25 100% 85%;
--ring: 21 100% 50%;
--radius: 0.875rem;
--shadow-glow: 0 0 40px rgba(255, 89, 0, 0.25);
--shadow-card: 0 8px 32px rgba(255, 89, 0, 0.08);
}
/* DARK MODE — Original Indigo/Cyan palette */
.dark,
:root[data-theme="dark"] {
/* Backgrounds */
--bg-primary: #0a0a0f;
--bg-secondary: #0d0d14;
--bg-card: #111827;
--bg-card-hover: #1a2235;
/* Brand / Accent */
--accent-primary: #6366f1;
--accent-secondary: #06b6d4;
--accent-muted: #1e1b4b;
/* Text */
--text-primary: #f9fafb;
--text-secondary: #9ca3af;
--text-muted: #6b7280;
--text-accent: #6366f1;
/* Borders */
--border-default: rgba(99, 102, 241, 0.2);
--border-hover: rgba(99, 102, 241, 0.5);
--border-card: rgba(255, 255, 255, 0.08);
/* Semantic */
--color-safe: #10b981;
--color-safe-bg: rgba(16, 185, 129, 0.1);
--color-unsafe: #ef4444;
--color-unsafe-bg: rgba(239, 68, 68, 0.1);
--color-warning: #f59e0b;
--color-warning-bg: rgba(245, 158, 11, 0.1);
--color-info: #9ca3af;
/* 3D background particles */
--particle-primary: #6366f1;
--particle-secondary: #06b6d4;
--particle-line: rgba(99, 102, 241, 0.3);
/* Glassmorphism */
--glass-bg: rgba(10, 10, 15, 0.8);
--glass-border: rgba(255, 255, 255, 0.08);
--glass-blur: blur(12px);
/* Gradients */
--gradient-primary: linear-gradient(135deg, #6366f1 0%, #06b6d4 100%);
--gradient-hero: linear-gradient(135deg, #6366f1 0%, #0a0a0f 60%);
--gradient-glow: 0 0 40px rgba(99, 102, 241, 0.3);
/* Reward bar */
--reward-positive: #10b981;
--reward-negative: #ef4444;
--reward-neutral: #9ca3af;
/* Scrollbar */
--scrollbar-track: #0a0a0f;
--scrollbar-thumb: #6366f1;
--scrollbar-thumb-hover: #4f46e5;
/* Semantic tokens (HSL) */
--background: 240 22% 5%; /* #0a0a0f */
--foreground: 220 14% 96%; /* #f9fafb */
--card: 220 39% 11%; /* #111827 */
--card-foreground: 220 14% 96%;
--popover: 220 39% 11%;
--popover-foreground: 220 14% 96%;
--primary: 239 84% 67%; /* #6366f1 */
--primary-foreground: 0 0% 100%;
--secondary: 189 94% 43%; /* #06b6d4 */
--secondary-foreground: 0 0% 100%;
--muted: 240 17% 6%; /* #0d0d14 */
--muted-foreground: 220 9% 65%; /* #9ca3af */
--accent: 244 56% 20%; /* #1e1b4b */
--accent-foreground: 220 14% 96%;
--success: 158 84% 39%;
--success-foreground: 0 17% 95%;
--danger: 0 84% 60%;
--danger-foreground: 0 17% 95%;
--warning: 38 92% 50%;
--warning-foreground: 0 17% 95%;
--destructive: 0 84% 60%;
--destructive-foreground: 0 17% 95%;
--border: 239 84% 67% / 0.25;
--input: 220 39% 15%;
--ring: 239 84% 67%;
--shadow-glow: 0 0 40px rgba(99, 102, 241, 0.3);
--shadow-card: 0 8px 32px rgba(0, 0, 0, 0.5);
}
* {
@apply border-border;
}
html {
scroll-behavior: smooth;
}
body {
@apply bg-background text-foreground;
font-feature-settings: "cv02", "cv03", "cv04", "cv11";
transition: background-color 300ms ease, color 300ms ease;
}
/* Scrollbars */
::-webkit-scrollbar { width: 6px; height: 6px; }
:root[data-theme="dark"] ::-webkit-scrollbar-track,
.dark ::-webkit-scrollbar-track { background: #0a0a0f; }
:root[data-theme="dark"] ::-webkit-scrollbar-thumb,
.dark ::-webkit-scrollbar-thumb { background: #6366f1; border-radius: 3px; }
:root[data-theme="dark"] ::-webkit-scrollbar-thumb:hover,
.dark ::-webkit-scrollbar-thumb:hover { background: #4f46e5; }
:root[data-theme="light"] ::-webkit-scrollbar-track { background: #FFD3A5; }
:root[data-theme="light"] ::-webkit-scrollbar-thumb { background: #FF8237; border-radius: 3px; }
:root[data-theme="light"] ::-webkit-scrollbar-thumb:hover { background: #FF5900; }
}
@layer components {
.glass {
background: var(--glass-bg);
backdrop-filter: var(--glass-blur);
-webkit-backdrop-filter: var(--glass-blur);
border: 1px solid var(--glass-border);
box-shadow: var(--shadow-card);
}
.gradient-text {
background: var(--gradient-primary);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
color: transparent;
}
.gradient-bg {
background: var(--gradient-primary);
}
.glow {
box-shadow: var(--shadow-glow);
}
.grid-bg {
background-image:
linear-gradient(hsl(var(--border) / 0.4) 1px, transparent 1px),
linear-gradient(90deg, hsl(var(--border) / 0.4) 1px, transparent 1px);
background-size: 48px 48px;
mask-image: radial-gradient(ellipse 60% 50% at 50% 50%, #000 40%, transparent 100%);
}
.ecg-line {
stroke-dasharray: 8 4;
animation: ecg-march 3s linear infinite;
}
}
@layer utilities {
.animation-delay-200 { animation-delay: 200ms; }
.animation-delay-400 { animation-delay: 400ms; }
.animation-delay-600 { animation-delay: 600ms; }
.text-balance { text-wrap: balance; }
}
@keyframes ecg-march { to { stroke-dashoffset: -120; } }
@keyframes pulse-ring {
0% { transform: scale(0.6); opacity: 0.8; }
100% { transform: scale(2.4); opacity: 0; }
}
@keyframes dash-travel { to { stroke-dashoffset: -40; } }
@keyframes float-y {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-8px); }
}
.animate-pulse-ring { animation: pulse-ring 2.4s ease-out infinite; }
.animate-dash { stroke-dasharray: 6 6; animation: dash-travel 1.2s linear infinite; }
.animate-float { animation: float-y 4s ease-in-out infinite; }