@import "tailwindcss"; :root { --background: #09090b; --surface-1: #111118; --surface-2: #16161f; --surface-3: #1d1d28; --border: rgba(255, 255, 255, 0.08); --brand: #6366f1; --brand-hover: #4f46e5; --success: #10b981; --warning: #f59e0b; --danger: #ef4444; --foreground: #ffffff; --foreground-secondary: rgba(255, 255, 255, 0.6); --foreground-muted: rgba(255, 255, 255, 0.4); --radius: 0.5rem; } @theme inline { --color-background: var(--background); --color-foreground: var(--foreground); --font-sans: var(--font-geist-sans); --font-mono: var(--font-geist-mono); } * { border-color: var(--border); } body { background: var(--background); color: var(--foreground); font-family: Arial, Helvetica, sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* Row highlight animation — used after create redirects */ @keyframes highlight-flash { 0% { background-color: rgba(99, 102, 241, 0.25); } 100% { background-color: transparent; } } .animate-highlight { animation: highlight-flash 1.8s ease-out forwards; } /* Gradient text animation */ @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } .animate-gradient { animation: gradient-shift 4s ease infinite; } /* Rotating gradient border button */ @property --border-angle { syntax: ""; initial-value: 0deg; inherits: false; } @keyframes border-rotate { to { --border-angle: 360deg; } } .gradient-border-wrapper { position: relative; border-radius: 0.75rem; padding: 2px; background: conic-gradient( from var(--border-angle), #6366f1 0%, #8b5cf6 25%, #06b6d4 50%, #8b5cf6 75%, #6366f1 100% ); animation: border-rotate 3s linear infinite; } .gradient-border-btn { display: inline-flex; align-items: center; justify-content: center; border-radius: calc(0.75rem - 2px); background: #4f46e5; padding: 0.875rem 1.5rem; font-size: 0.875rem; font-weight: 600; color: white; gap: 0.5rem; transition: background 0.2s, box-shadow 0.2s; width: 100%; } .gradient-border-btn:hover { background: #4338ca; box-shadow: 0 0 24px rgba(99, 102, 241, 0.4); } /* Dark native form elements — prevents white dropdown popup */ select, input[type="date"], input[type="time"], input[type="datetime-local"], input[type="month"], input[type="week"], input[type="color"] { color-scheme: dark; } /* ── Toasts (Sonner) — on-brand dark glass ──────────────────────── */ [data-sonner-toaster] { font-family: var(--font-geist-sans), system-ui, sans-serif; } [data-sonner-toast] { background: rgba(22, 22, 31, 0.82) !important; border: 1px solid var(--border) !important; border-radius: 14px !important; padding: 15px 16px !important; gap: 12px !important; color: var(--foreground) !important; backdrop-filter: blur(16px) saturate(160%); -webkit-backdrop-filter: blur(16px) saturate(160%); box-shadow: 0 18px 40px -14px rgba(0, 0, 0, 0.75), 0 0 0 1px rgba(255, 255, 255, 0.02) inset; } [data-sonner-toast] [data-title] { font-size: 14px; font-weight: 600; letter-spacing: -0.01em; color: var(--foreground); } [data-sonner-toast] [data-description] { font-size: 12.5px; line-height: 1.5; color: var(--foreground-secondary); margin-top: 2px; } [data-sonner-toast] [data-icon] { width: 20px; height: 20px; margin: 0; } /* Faint per-type accent ring — keeps the card dark but signals intent */ [data-sonner-toast][data-type="success"] { box-shadow: 0 18px 40px -14px rgba(0,0,0,.75), 0 0 0 1px rgba(16,185,129,.28) inset; } [data-sonner-toast][data-type="error"] { box-shadow: 0 18px 40px -14px rgba(0,0,0,.75), 0 0 0 1px rgba(239,68,68,.30) inset; } [data-sonner-toast][data-type="warning"] { box-shadow: 0 18px 40px -14px rgba(0,0,0,.75), 0 0 0 1px rgba(245,158,11,.28) inset; } [data-sonner-toast][data-type="info"], [data-sonner-toast][data-type="loading"] { box-shadow: 0 18px 40px -14px rgba(0,0,0,.75), 0 0 0 1px rgba(99,102,241,.30) inset; } /* Action / cancel buttons inside a toast */ [data-sonner-toast] [data-button] { border-radius: 8px !important; font-weight: 600 !important; font-size: 12.5px !important; } [data-sonner-toast] [data-button]:not([data-cancel]) { background: var(--brand) !important; color: #fff !important; } [data-sonner-toast] [data-button]:not([data-cancel]):hover { background: var(--brand-hover) !important; } [data-sonner-toast] [data-cancel] { background: var(--surface-3) !important; color: var(--foreground-secondary) !important; } /* Close button — appears on hover */ [data-sonner-toast] [data-close-button] { background: var(--surface-3) !important; border: 1px solid var(--border) !important; color: var(--foreground-secondary) !important; border-radius: 8px !important; width: 20px !important; height: 20px !important; transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease; } [data-sonner-toast] [data-close-button]:hover { background: #26263a !important; color: var(--foreground) !important; transform: scale(1.08); } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: var(--surface-1); } ::-webkit-scrollbar-thumb { background: rgba(255, 255, 255, 0.15); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.25); }