import 'package:flutter/material.dart'; /// HandwerkPro: Dark UI mit Lila-Header und Türkis-Akzenten (Mockup). class AppTheme { AppTheme._(); static const Color background = Color(0xFF121212); static const Color card = Color(0xFF1E1E1E); static const Color headerPurple = Color(0xFF4A148C); static const Color headerPurpleLight = Color(0xFF6A1B9A); static const Color accentCyan = Color(0xFF00E5FF); static const Color statusOffen = Color(0xFF2196F3); static const Color statusFertig = Color(0xFF4CAF50); static const Color statusGeplant = Color(0xFFFF9800); static ThemeData dark() { final base = ThemeData( useMaterial3: true, brightness: Brightness.dark, scaffoldBackgroundColor: background, ); return base.copyWith( colorScheme: ColorScheme.dark( surface: background, primary: accentCyan, onPrimary: Colors.black, secondary: headerPurpleLight, onSecondary: Colors.white, tertiary: accentCyan, surfaceContainerHighest: card, onSurface: Colors.white, onSurfaceVariant: Color(0xFFB0B0B0), outline: Color(0xFF404040), ), appBarTheme: const AppBarTheme( backgroundColor: headerPurple, foregroundColor: Colors.white, elevation: 0, centerTitle: false, scrolledUnderElevation: 0, ), cardTheme: CardThemeData( color: card, elevation: 0, shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), margin: EdgeInsets.zero, ), inputDecorationTheme: InputDecorationTheme( filled: true, fillColor: card, hintStyle: const TextStyle(color: Color(0xFF888888)), labelStyle: const TextStyle(color: Color(0xFFAAAAAA)), border: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: Color(0xFF404040)), ), enabledBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: Color(0xFF404040)), ), focusedBorder: OutlineInputBorder( borderRadius: BorderRadius.circular(12), borderSide: const BorderSide(color: accentCyan, width: 1.5), ), ), filledButtonTheme: FilledButtonThemeData( style: FilledButton.styleFrom( backgroundColor: accentCyan, foregroundColor: Colors.black, padding: const EdgeInsets.symmetric(horizontal: 24, vertical: 16), shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(14)), ), ), floatingActionButtonTheme: const FloatingActionButtonThemeData( backgroundColor: accentCyan, foregroundColor: Colors.black, elevation: 4, ), navigationBarTheme: NavigationBarThemeData( backgroundColor: card, indicatorColor: accentCyan.withValues(alpha: 0.25), labelTextStyle: WidgetStateProperty.resolveWith((s) { final sel = s.contains(WidgetState.selected); return TextStyle( fontSize: 12, fontWeight: sel ? FontWeight.w600 : FontWeight.w400, color: sel ? accentCyan : const Color(0xFF9E9E9E), ); }), iconTheme: WidgetStateProperty.resolveWith((s) { final sel = s.contains(WidgetState.selected); return IconThemeData(color: sel ? accentCyan : const Color(0xFF9E9E9E)); }), ), tabBarTheme: TabBarThemeData( labelColor: accentCyan, unselectedLabelColor: const Color(0xFF9E9E9E), indicatorColor: accentCyan, ), ); } }