/**
 * Tailwind CSS Class Presets for Task&Coffee
 * Material Design 3 + Neon Aesthetic
 * Using Mirage Color Palette
 */

// Card Styles - Material Design 3 Variants
export const cardStyles = {
  // Filled card - основной вариант для большинства карточек
  filled: "bg-card text-card-foreground p-6 rounded-lg shadow-sm",
  
  // Elevated card - карточки с эффектом поднятия
  elevated: "bg-card text-card-foreground p-6 rounded-lg shadow-lg hover:shadow-xl transition-all duration-300",
  
  // Outlined card - карточки с границей
  outlined: "bg-background border-2 border-border text-foreground p-6 rounded-lg",
  
  // Task card - компактные карточки для задач
  task: "bg-card text-card-foreground p-3 rounded-lg shadow-sm hover:shadow-md hover:-translate-y-0.5 transition-all duration-200",
  
  // Task card with neon accent
  taskNeon: "bg-card text-card-foreground p-3 rounded-lg shadow-sm hover:shadow-[0_0_15px_rgba(104,147,200,0.3)] hover:-translate-y-0.5 transition-all duration-200",
};

// Button Styles
export const buttonStyles = {
  // Primary button - основные действия
  primary: "bg-primary text-primary-foreground hover:bg-primary/90 px-4 py-2 rounded-lg font-medium transition-all duration-200 shadow-sm hover:shadow-md",
  
  // Primary with neon glow
  primaryNeon: "bg-primary text-primary-foreground hover:bg-primary/90 px-4 py-2 rounded-lg font-medium transition-all duration-200 hover:shadow-[0_0_20px_rgba(104,147,200,0.5)]",
  
  // Secondary button - вторичные действия
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80 px-4 py-2 rounded-lg font-medium transition-all duration-200",
  
  // Outline button - менее важные действия
  outline: "border-2 border-input bg-background text-foreground hover:bg-accent hover:text-accent-foreground px-4 py-2 rounded-lg font-medium transition-all duration-200",
  
  // Ghost button - минималистичные кнопки
  ghost: "text-foreground hover:bg-accent hover:text-accent-foreground px-4 py-2 rounded-lg font-medium transition-all duration-200",
  
  // Destructive button - опасные действия
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90 px-4 py-2 rounded-lg font-medium transition-all duration-200 shadow-sm hover:shadow-md",
  
  // Icon button
  icon: "p-2 rounded-lg hover:bg-accent transition-all duration-200",
  
  // Icon button with neon effect
  iconNeon: "p-2 rounded-lg hover:bg-accent transition-all duration-200 hover:shadow-[0_0_15px_rgba(104,147,200,0.4)]",
};

// Layout Styles
export const layoutStyles = {
  // Main container
  container: "flex min-h-screen bg-background text-foreground",
  
  // Sidebar/Navigation rail
  sidebar: "w-20 bg-sidebar border-r border-sidebar-border flex flex-col items-center py-4 gap-4",
  
  // Main content area
  main: "flex-1 p-6 bg-background flex flex-col",
  
  // Content wrapper with max width
  content: "max-w-7xl mx-auto w-full flex flex-1 flex-col gap-6",
  
  // Grid layouts
  gridCards: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",
  gridTasks: "grid grid-cols-1 gap-3",
};

// Input Styles
export const inputStyles = {
  // Standard input
  default: "w-full px-4 py-2 bg-background border border-input rounded-lg text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring transition-all duration-200",
  
  // Input with neon focus effect
  neon: "w-full px-4 py-2 bg-background border border-input rounded-lg text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:shadow-[0_0_15px_rgba(104,147,200,0.3)] transition-all duration-200",
  
  // Search input
  search: "w-full px-4 py-2 pl-10 bg-background border border-input rounded-lg text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring transition-all duration-200",
};

// Text Styles
export const textStyles = {
  // Headings
  h1: "text-4xl font-bold text-foreground",
  h2: "text-3xl font-semibold text-foreground",
  h3: "text-2xl font-semibold text-foreground",
  h4: "text-xl font-semibold text-foreground",
  
  // Body text
  body: "text-base text-foreground",
  bodyMuted: "text-base text-muted-foreground",
  
  // Small text
  small: "text-sm text-foreground",
  smallMuted: "text-sm text-muted-foreground",
  
  // Neon text (to be combined with neon.css animations)
  neonBlue: "text-[#c6e2ff]",
  neonPink: "text-[#ffc5ec]",
};

// Badge/Chip Styles
export const badgeStyles = {
  // Default badge
  default: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-primary/20 text-primary border border-primary/30",
  
  // Priority badges
  low: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-green-500/20 text-green-400 border border-green-500/30",
  medium: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-yellow-500/20 text-yellow-400 border border-yellow-500/30",
  high: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-orange-500/20 text-orange-400 border border-orange-500/30",
  critical: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-red-500/20 text-red-400 border border-red-500/30",
  
  // Status badges
  success: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-green-500/20 text-green-400 border border-green-500/30",
  warning: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-yellow-500/20 text-yellow-400 border border-yellow-500/30",
  error: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-red-500/20 text-red-400 border border-red-500/30",
  info: "inline-flex items-center px-2.5 py-0.5 rounded-md text-xs font-medium bg-blue-500/20 text-blue-400 border border-blue-500/30",
};

// Utility Styles
export const utilityStyles = {
  // Neon glow effects (for hover states)
  glowBlue: "hover:shadow-[0_0_20px_rgba(104,147,200,0.6)]",
  glowPink: "hover:shadow-[0_0_20px_rgba(255,20,147,0.6)]",
  glowSoft: "hover:shadow-[0_0_15px_rgba(104,147,200,0.3)]",
  
  // Glassmorphism effect
  glass: "bg-card/50 backdrop-blur-md border border-border/50",
  
  // Smooth transitions
  transition: "transition-all duration-200 ease-in-out",
  transitionSlow: "transition-all duration-300 ease-in-out",
  
  // Focus visible states
  focusRing: "focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:ring-offset-background",
};

// Complete component compositions
export const componentStyles = {
  // Day column in calendar
  dayColumn: "flex-1 min-w-[180px] flex flex-col bg-background rounded-lg p-4 transition-all duration-300",
  dayColumnToday: "flex-1 min-w-[180px] flex flex-col bg-primary/10 border-2 border-primary rounded-lg p-4 transition-all duration-300",
  
  // Avatar
  avatar: "w-14 h-14 rounded-lg overflow-hidden",
  avatarLarge: "w-20 h-20 rounded-xl overflow-hidden",
  
  // Divider
  divider: "h-px bg-border w-full",
  dividerVertical: "w-px bg-border h-full",
};

// Export all styles as a single object for convenience
export const styles = {
  card: cardStyles,
  button: buttonStyles,
  layout: layoutStyles,
  input: inputStyles,
  text: textStyles,
  badge: badgeStyles,
  utility: utilityStyles,
  component: componentStyles,
};

export default styles;

