#!/usr/bin/env python3
import re

with open('public/assets/css/global.css', 'r') as f:
    content = f.read()
    lines = content.split('\n')

errors = []
warnings = []

# Vérifier les sélecteurs dupliqués
selectors = {}
in_media = False
for i, line in enumerate(lines, 1):
    # Détecter les media queries
    if '@media' in line:
        in_media = True
    if in_media and '}' in line and line.count('}') > line.count('{'):
        in_media = False
    
    # Détecter les sélecteurs (ligne qui finit par {)
    if re.match(r'^[^/\*].*\{$', line.strip()) and not in_media:
        selector = line.strip().replace('{', '').strip()
        if selector in selectors:
            warnings.append(f"Ligne {i}: Sélecteur dupliqué '{selector}' (déjà ligne {selectors[selector]})")
        selectors[selector] = i

# Vérifier les accolades non fermées
open_braces = 0
for i, line in enumerate(lines, 1):
    open_braces += line.count('{')
    open_braces -= line.count('}')
    if open_braces < 0:
        errors.append(f"Ligne {i}: Accolade fermante sans ouverture")

if open_braces != 0:
    errors.append(f"Accolades non équilibrées: {open_braces} accolades ouvertes non fermées")

# Vérifier les propriétés CSS mal formées
for i, line in enumerate(lines, 1):
    stripped = line.strip()
    if ':' in stripped and not stripped.startswith('/*') and not stripped.startswith('@'):
        if not stripped.endswith(';') and not stripped.endswith('{') and not stripped.endswith('}') and stripped != '':
            if '{' not in stripped and '}' not in stripped:
                warnings.append(f"Ligne {i}: Point-virgule manquant? '{stripped[:50]}'")

print("=== ERREURS ===")
if errors:
    for error in errors:
        print(f"❌ {error}")
else:
    print("✅ Aucune erreur trouvée")

print("\n=== AVERTISSEMENTS ===")
if warnings:
    for warning in warnings[:10]:  # Limiter à 10
        print(f"⚠️  {warning}")
    if len(warnings) > 10:
        print(f"... et {len(warnings) - 10} autres avertissements")
else:
    print("✅ Aucun avertissement")

# Vérifier les doublons de règles
print("\n=== RÈGLES DUPLIQUÉES ===")
duplicates = []
for i, line in enumerate(lines, 1):
    # Chercher les blocs .main-nav répétés
    if '.main-nav' in line and '{' in line:
        duplicates.append((i, line.strip()))

if len(duplicates) > 1:
    print(f"⚠️  Le sélecteur .main-nav apparaît {len(duplicates)} fois:")
    for line_num, selector in duplicates[:5]:
        print(f"   - Ligne {line_num}: {selector[:60]}")
else:
    print("✅ Pas de duplication majeure détectée")
