/* Style général */ :root { --primary-color: #004494; --secondary-color: #e3051b; --background-color: #f5f5f5; --text-color: #333; --border-color: #ddd; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Open Sans', sans-serif; background-color: var(--background-color); color: var(--text-color); line-height: 1.6; } /* Header */ .header { background-color: var(--primary-color); color: white; padding: 1rem; text-align: center; } .header h1 { font-size: 1.5rem; margin-bottom: 0.5rem; } .header .last-update { font-size: 0.9rem; color: #e0e0e0; } /* Container principal */ .container { max-width: 1400px; margin: 0 auto; padding: 1rem; display: grid; grid-template-columns: 300px 1fr; gap: 1rem; } /* Panneau de gauche */ .left-panel { background: white; border-radius: 8px; padding: 1rem; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .traffic-section { margin-bottom: 2rem; } .traffic-section h2 { color: var(--primary-color); font-size: 1.2rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--primary-color); } /* Alertes */ .alerts { margin-bottom: 1.5rem; } .alert-item { background: #fff8f8; border-left: 4px solid var(--secondary-color); padding: 0.8rem; margin-bottom: 0.8rem; } .alert-title { font-weight: 600; color: var(--secondary-color); margin-bottom: 0.3rem; } .alert-time { font-size: 0.8rem; color: #666; } /* Statistiques de trafic */ .traffic-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-bottom: 1.5rem; } .stat-box { background: white; border: 1px solid var(--border-color); border-radius: 6px; padding: 1rem; text-align: center; } .stat-value { font-size: 1.5rem; font-weight: bold; color: var(--primary-color); } .stat-label { font-size: 0.9rem; color: #666; } /* Carte */ .map-container { background: white; border-radius: 8px; padding: 1rem; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .map-controls { margin-bottom: 1rem; display: flex; gap: 0.5rem; } .map-button { padding: 0.5rem 1rem; border: 1px solid var(--border-color); border-radius: 4px; background: white; cursor: pointer; font-size: 0.9rem; transition: all 0.2s; } .map-button:hover { background: #f0f0f0; } .map-button.active { background: var(--primary-color); color: white; border-color: var(--primary-color); } #map { height: calc(100vh - 200px); border-radius: 8px; overflow: hidden; } /* Responsive */ @media (max-width: 1024px) { .container { grid-template-columns: 1fr; } .left-panel { order: 2; } .map-container { order: 1; } #map { height: 500px; } } @media (max-width: 768px) { .traffic-stats { grid-template-columns: 1fr; } }